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

Reply via email to