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
#0 0x00007f2509b5a337 in raise () from /lib64/libc.so.6
No symbol table info available.
#1 0x00007f2509b5ba28 in abort () from /lib64/libc.so.6
No symbol table info available.
#2 0x0000000000a98887 in ExceptionalCondition (conditionName=0xbc9e05
"!IsPolymorphicType(rettype)", errorType=0xbc9885 "FailedAssertion",
fileName=0xbc9901 "parse_coerce.c", lineNumber=2049) at assert.c:67
No locals.
#3 0x00000000006126e1 in enforce_generic_type_consistency
(actual_arg_types=0x7ffc0442adb0, declared_arg_types=0x25dea70, nargs=3,
rettype=2277, allow_poly=false)
at parse_coerce.c:2049
have_poly_anycompatible = false
have_poly_unknowns = false
elem_typeid = 0
array_typeid = 0
range_typeid = 0
anycompatible_typeid = 0
anycompatible_array_typeid = 0
anycompatible_range_typeid = 0
anycompatible_range_typelem = 0
have_anynonarray = false
have_anyenum = false
have_anycompatible_nonarray = false
have_anycompatible_array = false
have_anycompatible_range = false
n_poly_args = 0
n_anycompatible_args = 0
anycompatible_actual_types = {71478080, 32764, 10973563, 0 <repeats 11
times>, 750, 0, 177595336, 1, 39212672, 0, 177596648, 32549, 39037672, 0, 750,
0, 0, 0,
71478064, 32764, 11362386, 0, 177596648, 32549, 39037608, 0,
71478112, 32764, 10974281, 0, 71478112, 32764, 177596648, 32549, 750, 0,
177596584, 32549,
71478144, 32764, 11082588, 0, 750, 0, 177596648, 32549, 71478432,
32764, 6432778, 0, 38864840, 1, 71478704, 32764, 1, 3, 0, 0, 39704032, 0,
38861280, 0, 0,
0, 39136672, 0, 0, 0, 16, 0, 71478272, 32764, 10963018, 1, 71478368,
32764, 39707920, 0, 16, 0, 38857776, 0, 20, 2476801540, 38864840, 1, 177596720,
32549,
177596648, 32549}
__func__ = "enforce_generic_type_consistency"
#4 0x0000000000620ce2 in ParseFuncOrColumn (pstate=0x25b74a0,
funcname=0x250f9e0, fargs=0x25dd5e0, last_srf=0x0, fn=0x25108f8,
proc_call=false, location=11)
at parse_func.c:660
is_column = false
agg_order = 0x0
agg_filter = 0x0
agg_within_group = false
agg_star = false
agg_distinct = false
func_variadic = false
over = 0x0
could_be_projection = false
rettype = 2277
funcid = 750
l = 0x0
first_arg = 0x25dd588
nargs = 3
nargsplusdefs = 3
actual_arg_types = {2275, 26, 23, 0, 39702592, 0, 39548064, 0, 0, 0,
39548064, 0, 39550048, 0, 177593384, 1, 39548624, 0, 39709168, 0, 71479120,
32764,
6392460, 0, 23, 0, 39261696, 0, 38864744, 0, 39548064, 0, 23, 0,
39061000, 0, 2, 4294967295, 23, 23, 39709168, 0, 39548064, 0, 38865000, 0,
39548064, 0,
39708136, 0, 1, 0, 39548064, 0, 39708048, 0, 0, 0, 38864840, 0, 0, 0,
6404911, 4294967295, 177593448, 32549, 39548064, 0, 71479008, 32764, 0, 0,
177593448,
32549, 39037672, 0, 38864616, 0, 38864800, 0, 39702592, 0, 71479128,
32764, 71479040, 227, 1, 2, 4294967295, 23, 39709168, 0, 23, 23, 0, 0,
71479200, 32764,
6355260, 0}
declared_arg_types = 0x25dea70
argnames = 0x0
argdefaults = 0x0
retval = 0x617d5d <transformExprRecurse+592>
retset = false
nvargs = 0
vatype = 0
fdresult = FUNCDETAIL_NORMAL
aggkind = 0 '\000'
pcbstate = {pstate = 0x25b74a0, location = 11, errcallback = {previous
= 0x0, callback = 0x624111 <pcb_error_callback>, arg = 0x7ffc0442ad60}}
__func__ = "ParseFuncOrColumn"
#5 0x000000000061ae22 in transformFuncCall (pstate=0x25b74a0, fn=0x25108f8) at
parse_expr.c:1558
last_srf = 0x0
targs = 0x25dd5e0
args = 0x0
#6 0x0000000000617f31 in transformExprRecurse (pstate=0x25b74a0,
expr=0x25108f8) at parse_expr.c:265
result = 0x40
__func__ = "transformExprRecurse"
#7 0x0000000000617af9 in transformExpr (pstate=0x25b74a0, expr=0x25108f8,
exprKind=EXPR_KIND_SELECT_TARGET) at parse_expr.c:155
result = 0x25dd0f0
sv_expr_kind = EXPR_KIND_NONE
#8 0x000000000062e56e in transformTargetEntry (pstate=0x25b74a0,
node=0x25108f8, expr=0x0, exprKind=EXPR_KIND_SELECT_TARGET, colname=0x2510950
"c0", resjunk=false)
at parse_target.c:105
No locals.
#9 0x000000000062e73a in transformTargetList (pstate=0x25b74a0,
targetlist=0x25109c8, exprKind=EXPR_KIND_SELECT_TARGET) at parse_target.c:193
res = 0x2510970
o_target__state = {l = 0x25109c8, i = 0}
p_target = 0x0
expand_star = true
o_target = 0x25109e0
#10 0x00000000005d4b85 in transformSelectStmt (pstate=0x25b74a0,
stmt=0x25b7330) at analyze.c:1224
qry = 0x25b75b8
qual = 0x442b2a0
l = 0x100
__func__ = "transformSelectStmt"
#11 0x00000000005d300e in transformStmt (pstate=0x25b74a0, parseTree=0x25b7330)
at analyze.c:301
n = 0x25b7330
result = 0xad123b <palloc0+255>
#12 0x00000000005d2ee9 in transformOptionalSelectInto (pstate=0x25b74a0,
parseTree=0x25b7330) at analyze.c:246
No locals.
#13 0x00000000005d2da7 in transformTopLevelStmt (pstate=0x25b74a0,
parseTree=0x2510c08) at analyze.c:196
result = 0x25b74a0
#14 0x00000000005d2bff in parse_analyze (parseTree=0x2510c08,
sourceText=0x250ed50 "select \n pg_catalog.array_in(\n
cast(pg_catalog.regoperatorout(\n cast(cast(null as regoperator) as
regoperator)) as cstring),\n cast((select pronamespace from
pg_catalog.pg_proc limit 1 off"..., paramTypes=0x0, numParams=0, queryEnv=0x0)
at analyze.c:116
pstate = 0x25b74a0
query = 0x7ffc0442b3a0
#15 0x0000000000918871 in pg_analyze_and_rewrite (parsetree=0x2510c08,
query_string=0x250ed50 "select \n pg_catalog.array_in(\n
cast(pg_catalog.regoperatorout(\n cast(cast(null as regoperator) as
regoperator)) as cstring),\n cast((select pronamespace from
pg_catalog.pg_proc limit 1 off"..., paramTypes=0x0, numParams=0, queryEnv=0x0)
at postgres.c:691
query = 0x258ca40
querytree_list = 0x25b7468
#16 0x0000000000918f42 in exec_simple_query (
query_string=0x250ed50 "select \n pg_catalog.array_in(\n
cast(pg_catalog.regoperatorout(\n cast(cast(null as regoperator) as
regoperator)) as cstring),\n cast((select pronamespace from
pg_catalog.pg_proc limit 1 off"...) at postgres.c:1155
snapshot_set = true
per_parsetree_context = 0x0
plantree_list = 0x47cea0 <_start>
parsetree = 0x2510c08
commandTag = CMDTAG_SELECT
qc = {commandTag = CMDTAG_UNKNOWN, nprocessed = 10}
querytree_list = 0x7ffc0442b490
portal = 0x0
receiver = 0xaafe68 <pg_any_to_server+85>
format = 0
parsetree_item__state = {l = 0x25b7448, i = 0}
dest = DestRemote
oldcontext = 0x258ca40
parsetree_list = 0x25b7448
parsetree_item = 0x25b7460
save_log_statement_stats = false
was_logged = false
use_implicit_block = false
msec_str =
"N\001\000\000\002\000\000\000;\001\000\000\000\000\000\000P\355P\002\000\000\000\000\065\001\000\000\000\000\000"
__func__ = "exec_simple_query"
#17 0x000000000091d0de in PostgresMain (argc=1, argv=0x2539008,
dbname=0x2538f18 "postgres", username=0x2538ef0 "postgres") at postgres.c:4315
query_string = 0x250ed50 "select \n pg_catalog.array_in(\n
cast(pg_catalog.regoperatorout(\n cast(cast(null as regoperator) as
regoperator)) as cstring),\n cast((select pronamespace from
pg_catalog.pg_proc limit 1 off"...
firstchar = 81
input_message = {
data = 0x250ed50 "select \n pg_catalog.array_in(\n
cast(pg_catalog.regoperatorout(\n cast(cast(null as regoperator) as
regoperator)) as cstring),\n cast((select pronamespace from
pg_catalog.pg_proc limit 1 off"..., len = 310, maxlen = 1024, cursor = 310}
local_sigjmp_buf = {{__jmpbuf = {0, -9149747278084179542, 4705952,
140720379968064, 0, 0, -9149747278029653590, 9150638196174748074},
__mask_was_saved = 1,
__saved_mask = {__val = {0, 4629771061636907072, 31142723648,
38862888, 6582955728264977243, 38857776, 11295216, 1024, 38862912,
140720379966944, 11299658,
38862912, 38857776, 34359738367, 38862912, 38862888}}}}
send_ready_for_query = false
disable_idle_in_transaction_timeout = false
__func__ = "PostgresMain"
#18 0x000000000086f366 in BackendRun (port=0x2530e70) at postmaster.c:4510
av = 0x2539008
maxac = 2
ac = 1
i = 1
__func__ = "BackendRun"
#19 0x000000000086eb5b in BackendStartup (port=0x2530e70) at postmaster.c:4202
bn = 0x2531030
pid = 0
__func__ = "BackendStartup"
#20 0x000000000086b192 in ServerLoop () at postmaster.c:1727
port = 0x2530e70
i = 2
rmask = {fds_bits = {256, 0 <repeats 15 times>}}
selres = 1
now = 1586032344
readmask = {fds_bits = {448, 0 <repeats 15 times>}}
nSockets = 9
last_lockfile_recheck_time = 1586032343
last_touch_time = 1586032343
__func__ = "ServerLoop"
#21 0x000000000086aa69 in PostmasterMain (argc=3, argv=0x250aa90) at
postmaster.c:1400
opt = -1
status = 0
userDoption = 0x252bac0 "data"
listen_addr_saved = true
i = 64
output_config_variable = 0x0
__func__ = "PostmasterMain"
#22 0x00000000007786ec in main (argc=3, argv=0x250aa90) at main.c:210
do_check_root = true