Thread
Commits
-
Remove bogus Assert, add some regression test cases showing why.
- 07871d40c72e 13.0 landed
-
Failed Assertion about PolymorphicType
Jaime Casanova <jaime.casanova@2ndquadrant.com> — 2020-04-04T21:03:52Z
Hi, Running sqlsmith on master i got an assertion failure on parse_coerce.c:2049 This is a minimal query to reproduce in an empty database, i also attached the stack trace """ select pg_catalog.array_in( cast(pg_catalog.regoperatorout( cast(cast(null as regoperator) as regoperator)) as cstring), cast((select pronamespace from pg_catalog.pg_proc limit 1 offset 1) as oid), cast(subq_1.pid as int4)) as c0 from pg_catalog.pg_stat_progress_analyze as subq_1 """ -- Jaime Casanova www.2ndQuadrant.com PostgreSQL Development, 24x7 Support, Remote DBA, Training & Services -
Re: Failed Assertion about PolymorphicType
Tom Lane <tgl@sss.pgh.pa.us> — 2020-04-04T21:21:07Z
Jaime Casanova <jaime.casanova@2ndquadrant.com> writes: > Running sqlsmith on master i got an assertion failure on parse_coerce.c:2049 Hmph, or more simply: regression=# select array_in('{1,2,3}',23,-1); server closed the connection unexpectedly which is a case that worked before. The core of the problem is that array_in() violates the assumption that a polymorphic result requires a polymorphic argument: regression=# \df array_in List of functions Schema | Name | Result data type | Argument data types | Type ------------+----------+------------------+-----------------------+------ pg_catalog | array_in | anyarray | cstring, oid, integer | func (1 row) I see that enforce_generic_type_consistency did not use to assert that it'd resolved every polymorphic rettype. So I think we should just remove that assertion (and fix the incorrect comment that led to adding it). regards, tom lane