EnterpriseDB / mysql_fdw

PostgreSQL foreign data wrapper for MySQL
Other
530 stars 162 forks source link

Test failure with PG10: ERROR: unrecognized node type: 217 #147

Closed df7cb closed 5 years ago

df7cb commented 6 years ago

Running the mysql_fdw regression tests (2.3.0 or 7d084c591) against PG10beta4 (witnessed on 2fa44f666f1) yields:

ERROR:  unrecognized node type: 217

The problem happens on the 6th iteration of this loop in the regression tests:

CREATE FOREIGN TABLE numbers(a int, b varchar(255)) SERVER mysql_svr OPTIONS (dbname 'testdb', table_name 'numbers');
create or replace function test_param_where() returns void as $$
DECLARE
  n varchar;
BEGIN
  FOR x IN 1..9 LOOP
    select b into n from numbers where a=x;
    raise notice 'Found number %', n;
  end loop;
  return;
END
$$ LANGUAGE plpgsql;
SELECT test_param_where();
***************
*** 345,368 ****
  NOTICE:  Found number Three
  NOTICE:  Found number Four
  NOTICE:  Found number Five
! NOTICE:  Found number Six
! NOTICE:  Found number Seven
! NOTICE:  Found number Eight
! NOTICE:  Found number Nine
!  test_param_where
! ------------------
!
! (1 row)
!
  DELETE FROM employee;
...
--- 344,365 ----
  NOTICE:  Found number Three
  NOTICE:  Found number Four
  NOTICE:  Found number Five
! ERROR:  unrecognized node type: 217
! CONTEXT:  SQL statement "select b        from numbers where a=x"
! PL/pgSQL function test_param_where() line 6 at SQL statement
! /*

With the help of Andres I extracted this backtrace:

(gdb) b execExpr.c:2030
Breakpoint 1 at 0x5604ececf232: file ./build/../src/backend/executor/execExpr.c, line 2030.
(gdb) c
Continuing.

Breakpoint 1, ExecInitExprRec (node=node@entry=0x5604ee910660, parent=parent@entry=0x5604ee8d7388, 
    state=state@entry=0x5604ee8d8fd0, resv=resv@entry=0x5604ee8d8fd8, resnull=resnull@entry=0x5604ee8d8fd5 "")
    at ./build/../src/backend/executor/execExpr.c:2030
2030    ./build/../src/backend/executor/execExpr.c: Datei oder Verzeichnis nicht gefunden.
(gdb) bt f
#0  ExecInitExprRec (node=node@entry=0x5604ee910660, parent=parent@entry=0x5604ee8d7388, 
    state=state@entry=0x5604ee8d8fd0, resv=resv@entry=0x5604ee8d8fd8, resnull=resnull@entry=0x5604ee8d8fd5 "")
    at ./build/../src/backend/executor/execExpr.c:2030
        scratch = {opcode = 140721673633968, resvalue = 0x5604ee8d8fd8, resnull = 0x5604ee8d8fd5 "", d = {fetch = {
              last_var = -292712496}, var = {attnum = -292712496, vartype = 22020}, wholerow = {
              var = 0x5604ee8d8fd0, first = 96 '`', slow = 6 '\006', tupdesc = 0x5604ee8d7388, junkFilter = 0x0}, 
            assign_var = {resultnum = -292712496, attnum = 22020}, assign_tmp = {resultnum = -292712496}, 
            constval = {value = 94579182112720, isnull = 96 '`'}, func = {finfo = 0x5604ee8d8fd0, 
              fcinfo_data = 0x5604ee910660, fn_addr = 0x5604ee8d7388, nargs = 0}, boolexpr = {
              anynull = 0x5604ee8d8fd0 "\223", jumpdone = -292485536}, qualexpr = {jumpdone = -292712496}, jump = {
              jumpdone = -292712496}, nulltest_row = {argdesc = 0x5604ee8d8fd0}, param = {paramid = -292712496, 
              paramtype = 22020}, casetest = {value = 0x5604ee8d8fd0, 
              isnull = 0x5604ee910660 <incomplete sequence \331>}, make_readonly = {value = 0x5604ee8d8fd0, 
              isnull = 0x5604ee910660 <incomplete sequence \331>}, iocoerce = {finfo_out = 0x5604ee8d8fd0, 
              fcinfo_data_out = 0x5604ee910660, finfo_in = 0x5604ee8d7388, fcinfo_data_in = 0x0}, 
            sqlvaluefunction = {svf = 0x5604ee8d8fd0}, nextvalueexpr = {seqid = 4002254800, seqtypid = 22020}, 
            arrayexpr = {elemvalues = 0x5604ee8d8fd0, elemnulls = 0x5604ee910660 <incomplete sequence \331>, 
              nelems = -292719736, elemtype = 22020, elemlength = 0, elembyval = 0 '\000', elemalign = 0 '\000', 
              multidims = 0 '\000'}, arraycoerce = {coerceexpr = 0x5604ee8d8fd0, resultelemtype = 4002481760, 
              elemfunc = 0x5604ee8d7388, amstate = 0x0}, row = {tupdesc = 0x5604ee8d8fd0, 
              elemvalues = 0x5604ee910660, elemnulls = 0x5604ee8d7388 "M"}, rowcompare_step = {
              finfo = 0x5604ee8d8fd0, fcinfo_data = 0x5604ee910660, fn_addr = 0x5604ee8d7388, jumpnull = 0, 
              jumpdone = 0}, rowcompare_final = {rctype = 4002254800}, minmax = {values = 0x5604ee8d8fd0, 
              nulls = 0x5604ee910660 <incomplete sequence \331>, nelems = -292719736, op = (unknown: 22020), 
              finfo = 0x0, fcinfo_data = 0x5604ee8d7fb8}, fieldselect = {fieldnum = -28720, resulttype = 22020, 
              argdesc = 0x5604ee910660}, fieldstore = {fstore = 0x5604ee8d8fd0, argdesc = 0x5604ee910660, 
              values = 0x5604ee8d7388, nulls = 0x0, ncolumns = -292716616}, arrayref_subscript = {
              state = 0x5604ee8d8fd0, off = -292485536, isupper = 4 '\004', jumpdone = -292719736}, arrayref = {
              state = 0x5604ee8d8fd0}, domaincheck = {constraintname = 0x5604ee8d8fd0 "\223", 
              checkvalue = 0x5604ee910660, checknull = 0x5604ee8d7388 "M", resulttype = 0}, convert_rowtype = {
              convert = 0x5604ee8d8fd0, indesc = 0x5604ee910660, outdesc = 0x5604ee8d7388, map = 0x0, 
              initialized = -72 '\270'}, scalararrayop = {element_type = 4002254800, useOr = 4 '\004', typlen = 0, 
              typbyval = 96 '`', typalign = 6 '\006', finfo = 0x5604ee8d7388, fcinfo_data = 0x0, 
              fn_addr = 0x5604ee8d7fb8}, xmlexpr = {xexpr = 0x5604ee8d8fd0, named_argvalue = 0x5604ee910660, 
              named_argnull = 0x5604ee8d7388 "M", argvalue = 0x0, argnull = 0x5604ee8d7fb8 "\370Î\356\004V"}, 
            aggref = {astate = 0x5604ee8d8fd0}, grouping_func = {parent = 0x5604ee8d8fd0, clauses = 0x5604ee910660}, 
            window_func = {wfstate = 0x5604ee8d8fd0}, subplan = {sstate = 0x5604ee8d8fd0}, alternative_subplan = {
              asstate = 0x5604ee8d8fd0}}}
        __func__ = "ExecInitExprRec"
#1  0x00005604eced0386 in ExecInitExpr (node=0x5604ee910660, parent=0x5604ee8d7388)
    at ./build/../src/backend/executor/execExpr.c:130
        state = 0x5604ee8d8fd0
        scratch = {opcode = 140721673634160, resvalue = 0x63dd3da33e9c6600, 
          resnull = 0x5604ee8d9148 "ؔ\215\356\004V", d = {fetch = {last_var = -1492487320}, var = {
              attnum = -1492487320, vartype = 32565}, wholerow = {var = 0x7f35a70a7368, first = 104 'h', 
              slow = 115 's', tupdesc = 0x5604ee839cd8, junkFilter = 0x7ffc515e8190}, assign_var = {
              resultnum = -1492487320, attnum = 32565}, assign_tmp = {resultnum = -1492487320}, constval = {
              value = 139868412474216, isnull = 104 'h'}, func = {finfo = 0x7f35a70a7368, 
              fcinfo_data = 0x7f35a70a7368, fn_addr = 0x5604ee839cd8, nargs = 1365148048}, boolexpr = {
              anynull = 0x7f35a70a7368 "\254", jumpdone = -1492487320}, qualexpr = {jumpdone = -1492487320}, jump = {
              jumpdone = -1492487320}, nulltest_row = {argdesc = 0x7f35a70a7368}, param = {paramid = -1492487320, 
              paramtype = 32565}, casetest = {value = 0x7f35a70a7368, isnull = 0x7f35a70a7368 "\254"}, 
            make_readonly = {value = 0x7f35a70a7368, isnull = 0x7f35a70a7368 "\254"}, iocoerce = {
              finfo_out = 0x7f35a70a7368, fcinfo_data_out = 0x7f35a70a7368, finfo_in = 0x5604ee839cd8, 
              fcinfo_data_in = 0x7ffc515e8190}, sqlvaluefunction = {svf = 0x7f35a70a7368}, nextvalueexpr = {
              seqid = 2802479976, seqtypid = 32565}, arrayexpr = {elemvalues = 0x7f35a70a7368, 
              elemnulls = 0x7f35a70a7368 "\254", nelems = -293364520, elemtype = 22020, elemlength = -32368, 
              elembyval = 94 '^', elemalign = 81 'Q', multidims = -4 '\374'}, arraycoerce = {
              coerceexpr = 0x7f35a70a7368, resultelemtype = 2802479976, elemfunc = 0x5604ee839cd8, 
              amstate = 0x7ffc515e8190}, row = {tupdesc = 0x7f35a70a7368, elemvalues = 0x7f35a70a7368, 
              elemnulls = 0x5604ee839cd8 "\300D\203\356\004V"}, rowcompare_step = {finfo = 0x7f35a70a7368, 
              fcinfo_data = 0x7f35a70a7368, fn_addr = 0x5604ee839cd8, jumpnull = 1365148048, jumpdone = 32764}, 
            rowcompare_final = {rctype = 2802479976}, minmax = {values = 0x7f35a70a7368, 
              nulls = 0x7f35a70a7368 "\254", nelems = -293364520, op = (unknown: 22020), finfo = 0x7ffc515e8190, 
              fcinfo_data = 0x63dd3da33e9c6600}, fieldselect = {fieldnum = 29544, resulttype = 32565, 
              argdesc = 0x7f35a70a7368}, fieldstore = {fstore = 0x7f35a70a7368, argdesc = 0x7f35a70a7368, 
              values = 0x5604ee839cd8, nulls = 0x7ffc515e8190 "\001", ncolumns = 1050437120}, arrayref_subscript = {
              state = 0x7f35a70a7368, off = -1492487320, isupper = 53 '5', jumpdone = -293364520}, arrayref = {
              state = 0x7f35a70a7368}, domaincheck = {constraintname = 0x7f35a70a7368 "\254", 
              checkvalue = 0x7f35a70a7368, checknull = 0x5604ee839cd8 "\300D\203\356\004V", 
---Type <return> to continue, or q <return> to quit---
              resulttype = 1365148048}, convert_rowtype = {convert = 0x7f35a70a7368, indesc = 0x7f35a70a7368, 
              outdesc = 0x5604ee839cd8, map = 0x7ffc515e8190, initialized = 0 '\000'}, scalararrayop = {
              element_type = 2802479976, useOr = 53 '5', typlen = 0, typbyval = 104 'h', typalign = 115 's', 
              finfo = 0x5604ee839cd8, fcinfo_data = 0x7ffc515e8190, fn_addr = 0x63dd3da33e9c6600}, xmlexpr = {
              xexpr = 0x7f35a70a7368, named_argvalue = 0x7f35a70a7368, 
              named_argnull = 0x5604ee839cd8 "\300D\203\356\004V", argvalue = 0x7ffc515e8190, 
              argnull = 0x63dd3da33e9c6600 <error: Cannot access memory at address 0x63dd3da33e9c6600>}, aggref = {
              astate = 0x7f35a70a7368}, grouping_func = {parent = 0x7f35a70a7368, clauses = 0x7f35a70a7368}, 
            window_func = {wfstate = 0x7f35a70a7368}, subplan = {sstate = 0x7f35a70a7368}, alternative_subplan = {
              asstate = 0x7f35a70a7368}}}
#2  0x00007f359515d7c0 in ?? () from /usr/lib/postgresql/10/lib/mysql_fdw.so
No symbol table info available.
#3  0x00005604ecf026b3 in ExecInitForeignScan (node=node@entry=0x5604ee910418, estate=estate@entry=0x5604ee8d7170, 
    eflags=eflags@entry=16) at ./build/../src/backend/executor/nodeForeignscan.c:231
        scanstate = 0x5604ee8d7388
        currentRelation = <optimized out>
        scanrelid = <optimized out>
        tlistvarno = 1
        fdwroutine = 0x5604ee8d7750
#4  0x00005604ecedcf40 in ExecInitNode (node=node@entry=0x5604ee910418, estate=estate@entry=0x5604ee8d7170, 
    eflags=eflags@entry=16) at ./build/../src/backend/executor/execProcnode.c:277
        result = <optimized out>
        subps = <optimized out>
        l = <optimized out>
        __func__ = "ExecInitNode"
#5  0x00005604eced90c6 in InitPlan (eflags=16, queryDesc=<optimized out>)
    at ./build/../src/backend/executor/execMain.c:1045
        operation = CMD_SELECT
        estate = 0x5604ee8d7170
        tupType = <optimized out>
        i = <optimized out>
        plannedstmt = <optimized out>
        plan = 0x5604ee910418
        rangeTable = <optimized out>
        planstate = <optimized out>
        l = <optimized out>
#6  standard_ExecutorStart (queryDesc=<optimized out>, eflags=16) at ./build/../src/backend/executor/execMain.c:257
        estate = <optimized out>
        __func__ = "standard_ExecutorStart"
#7  0x00005604ecf0a892 in _SPI_pquery (tcount=1, fire_triggers=1 '\001', queryDesc=0x5604ee8e8000)
    at ./build/../src/backend/executor/spi.c:2325
        operation = <optimized out>
        eflags = <optimized out>
        res = 5
#8  _SPI_execute_plan (plan=<optimized out>, paramLI=<optimized out>, snapshot=snapshot@entry=0x0, 
    crosscheck_snapshot=crosscheck_snapshot@entry=0x0, read_only=0 '\000', 
    fire_triggers=fire_triggers@entry=1 '\001', tcount=<optimized out>) at ./build/../src/backend/executor/spi.c:2103
        qdesc = 0x5604ee8e8000
        snap = <optimized out>
        canSetTag = 1 '\001'
        dest = <optimized out>
        plansource = <optimized out>
        stmt_list = <optimized out>
        lc2 = 0x5604ee910358
        my_res = <optimized out>
        my_processed = 0
        my_lastoid = 0
        my_tuptable = 0x0
        res = <optimized out>
        pushed_active_snap = <optimized out>
        spierrcontext = {previous = 0x7ffc515e8970, callback = 0x5604ecf08160 <_SPI_error_callback>, 
          arg = 0x5604ee8dfde0}
        cplan = <optimized out>
        lc1 = <optimized out>
        __func__ = "_SPI_execute_plan"
#9  0x00005604ecf0ae0a in SPI_execute_plan_with_paramlist (plan=<optimized out>, params=<optimized out>, 
    read_only=<optimized out>, tcount=<optimized out>) at ./build/../src/backend/executor/spi.c:385
        res = <optimized out>
#10 0x00007f359537a60c in exec_stmt_execsql (estate=estate@entry=0x7ffc515e8990, stmt=stmt@entry=0x5604ee8cfa18)
    at ./build/../src/pl/plpgsql/src/pl_exec.c:3684
---Type <return> to continue, or q <return> to quit---
        paramLI = <optimized out>
        tcount = <optimized out>
        rc = <optimized out>
        expr = 0x5604ee8cf6b8
        __func__ = "exec_stmt_execsql"
#11 0x00007f359537c00b in exec_stmt (stmt=0x5604ee8cfa18, estate=0x7ffc515e8990)
    at ./build/../src/pl/plpgsql/src/pl_exec.c:1627
        save_estmt = 0x5604ee8cf7c8
        rc = -1
#12 exec_stmts (estate=0x7ffc515e8990, stmts=<optimized out>) at ./build/../src/pl/plpgsql/src/pl_exec.c:1522
        stmt = 0x5604ee8cfa18
        s = 0x5604ee8cfa70
#13 0x00007f359537be68 in exec_stmt_fori (stmt=0x5604ee8cf7c8, estate=0x7ffc515e8990)
    at ./build/../src/pl/plpgsql/src/pl_exec.c:2151
        value = <optimized out>
        isnull = 0 '\000'
        end_value = <optimized out>
        step_value = 1
        found = 1 '\001'
        loop_value = 1
        var = 0x5604ee87e370
        valtype = 23
        valtypmod = -1
        rc = <optimized out>
#14 exec_stmt (stmt=0x5604ee8cf7c8, estate=0x7ffc515e8990) at ./build/../src/pl/plpgsql/src/pl_exec.c:1587
        save_estmt = 0x5604ee8cfdd8
        rc = -1
#15 exec_stmts (estate=0x7ffc515e8990, stmts=<optimized out>) at ./build/../src/pl/plpgsql/src/pl_exec.c:1522
        stmt = 0x5604ee8cf7c8
        s = 0x5604ee8cfcf8
#16 0x00007f359537e7aa in exec_stmt_block (estate=estate@entry=0x7ffc515e8990, block=0x5604ee8cfdd8)
    at ./build/../src/pl/plpgsql/src/pl_exec.c:1460
        rc = -1
        i = <optimized out>
        n = <optimized out>
        __func__ = "exec_stmt_block"
#17 0x00007f359537ea3a in plpgsql_exec_function (func=func@entry=0x5604ee839870, fcinfo=fcinfo@entry=0x5604ee8dc108, 
    simple_eval_estate=simple_eval_estate@entry=0x0) at ./build/../src/pl/plpgsql/src/pl_exec.c:465
        estate = {func = 0x5604ee839870, retval = 0, retisnull = 1 '\001', rettype = 0, fn_rettype = 2278, 
          retistuple = 0 '\000', retisset = 0 '\000', readonly_func = 0 '\000', rettupdesc = 0x0, exitlabel = 0x0, 
          cur_error = 0x0, tuple_store = 0x0, tuple_store_cxt = 0x0, tuple_store_owner = 0x0, rsi = 0x0, 
          found_varno = 0, ndatums = 4, datums = 0x5604ee87e170, paramLI = 0x5604ee87e1a8, params_dirty = 0 '\000', 
          simple_eval_estate = 0x5604ee910f40, cast_hash = 0x5604ee8cd0a0, cast_hash_context = 0x5604ee8b3aa0, 
          stmt_mcontext = 0x0, stmt_mcontext_parent = 0x5604ee8b5740, eval_tuptable = 0x0, eval_processed = 0, 
          eval_lastoid = 0, eval_econtext = 0x5604ee911158, err_stmt = 0x5604ee8cfa18, err_text = 0x0, 
          plugin_info = 0x0}
        plerrcontext = {previous = 0x0, callback = 0x7f3595376410 <plpgsql_exec_error_callback>, 
          arg = 0x7ffc515e8990}
        i = <optimized out>
        rc = <optimized out>
        __func__ = "plpgsql_exec_function"
#18 0x00007f3595372261 in plpgsql_call_handler (fcinfo=0x5604ee8dc108)
    at ./build/../src/pl/plpgsql/src/pl_handler.c:258
        save_exception_stack = 0x7ffc515e8e30
        save_context_stack = 0x0
        local_sigjmp_buf = {{__jmpbuf = {0, -8888394033231586384, 94579182126368, 0, 0, 94579182124488, 
              -8888394033200129104, -8847993907878716496}, __mask_was_saved = 0, __saved_mask = {__val = {
                0 <repeats 16 times>}}}}
        func = 0x5604ee839870
        save_cur_estate = 0x0
        retval = <optimized out>
        rc = <optimized out>
        __func__ = "plpgsql_call_handler"
#19 0x00005604eced4154 in ExecInterpExpr (state=0x5604ee8dc020, econtext=<optimized out>, isnull=<optimized out>)
    at ./build/../src/backend/executor/execExprInterp.c:650
        fcinfo = 0x5604ee8dc108
        op = <optimized out>
        resultslot = 0x5604ee8dbdc8
        innerslot = 0x0
        outerslot = 0x0
---Type <return> to continue, or q <return> to quit---
        scanslot = <optimized out>
        dispatch_table = {0x5604eced4250 <ExecInterpExpr+1840>, 0x5604eced4658 <ExecInterpExpr+2872>, 
          0x5604eced4670 <ExecInterpExpr+2896>, 0x5604eced4638 <ExecInterpExpr+2840>, 
          0x5604eced3ba0 <ExecInterpExpr+128>, 0x5604eced3bc5 <ExecInterpExpr+165>, 
          0x5604eced3dd0 <ExecInterpExpr+688>, 0x5604eced3df5 <ExecInterpExpr+725>, 
          0x5604eced3d58 <ExecInterpExpr+568>, 0x5604eced3d84 <ExecInterpExpr+612>, 
          0x5604eced3f98 <ExecInterpExpr+1144>, 0x5604eced4360 <ExecInterpExpr+2112>, 
          0x5604eced4310 <ExecInterpExpr+2032>, 0x5604eced3f78 <ExecInterpExpr+1112>, 
          0x5604eced41a8 <ExecInterpExpr+1672>, 0x5604eced42d8 <ExecInterpExpr+1976>, 
          0x5604eced4290 <ExecInterpExpr+1904>, 0x5604eced4180 <ExecInterpExpr+1632>, 
          0x5604eced4218 <ExecInterpExpr+1784>, 0x5604eced41f0 <ExecInterpExpr+1744>, 
          0x5604eced4130 <ExecInterpExpr+1552>, 0x5604eced4060 <ExecInterpExpr+1344>, 
          0x5604eced45b8 <ExecInterpExpr+2712>, 0x5604eced4508 <ExecInterpExpr+2536>, 
          0x5604eced3c08 <ExecInterpExpr+232>, 0x5604eced3c10 <ExecInterpExpr+240>, 
          0x5604eced40e8 <ExecInterpExpr+1480>, 0x5604eced3d30 <ExecInterpExpr+528>, 
          0x5604eced3d38 <ExecInterpExpr+536>, 0x5604eced3f50 <ExecInterpExpr+1072>, 
          0x5604eced4470 <ExecInterpExpr+2384>, 0x5604eced4448 <ExecInterpExpr+2344>, 
          0x5604eced4440 <ExecInterpExpr+2336>, 0x5604eced4430 <ExecInterpExpr+2320>, 
          0x5604eced4418 <ExecInterpExpr+2296>, 0x5604eced43e8 <ExecInterpExpr+2248>, 
          0x5604eced43a0 <ExecInterpExpr+2176>, 0x5604eced43d0 <ExecInterpExpr+2224>, 
          0x5604eced4a88 <ExecInterpExpr+3944>, 0x5604eced4a68 <ExecInterpExpr+3912>, 
          0x5604eced4a08 <ExecInterpExpr+3816>, 0x5604eced49f0 <ExecInterpExpr+3792>, 
          0x5604eced49c0 <ExecInterpExpr+3744>, 0x5604eced4970 <ExecInterpExpr+3664>, 
          0x5604eced4950 <ExecInterpExpr+3632>, 0x5604eced49a0 <ExecInterpExpr+3712>, 
          0x5604eced4920 <ExecInterpExpr+3584>, 0x5604eced48d0 <ExecInterpExpr+3504>, 
          0x5604eced3c40 <ExecInterpExpr+288>, 0x5604eced4a20 <ExecInterpExpr+3840>, 
          0x5604eced4830 <ExecInterpExpr+3344>, 0x5604eced4818 <ExecInterpExpr+3320>, 
          0x5604eced4d20 <ExecInterpExpr+4608>, 0x5604eced48b8 <ExecInterpExpr+3480>, 
          0x5604eced4800 <ExecInterpExpr+3296>, 0x5604eced47e8 <ExecInterpExpr+3272>, 
          0x5604eced47d0 <ExecInterpExpr+3248>, 0x5604eced4730 <ExecInterpExpr+3088>, 
          0x5604eced46d8 <ExecInterpExpr+3000>, 0x5604eced46c0 <ExecInterpExpr+2976>, 
          0x5604eced44e8 <ExecInterpExpr+2504>, 0x5604eced46a0 <ExecInterpExpr+2944>, 
          0x5604eced44c8 <ExecInterpExpr+2472>, 0x5604eced44a8 <ExecInterpExpr+2440>, 
          0x5604eced4490 <ExecInterpExpr+2416>, 0x5604eced3f38 <ExecInterpExpr+1048>, 
          0x5604eced3f20 <ExecInterpExpr+1024>, 0x5604eced48f0 <ExecInterpExpr+3536>, 
          0x5604eced3ee0 <ExecInterpExpr+960>, 0x5604eced3eb8 <ExecInterpExpr+920>, 
          0x5604eced3f00 <ExecInterpExpr+992>, 0x5604eced4688 <ExecInterpExpr+2920>, 
          0x5604eced3ea0 <ExecInterpExpr+896>, 0x5604eced3e50 <ExecInterpExpr+816>, 
          0x5604eced3e38 <ExecInterpExpr+792>, 0x5604eced4028 <ExecInterpExpr+1288>, 
          0x5604eced4008 <ExecInterpExpr+1256>, 0x5604eced3fe8 <ExecInterpExpr+1224>, 
          0x5604eced4cf8 <ExecInterpExpr+4568>}
#20 0x00005604ecefc05f in ExecEvalExprSwitchContext (isNull=0x7ffc515e8cd7 "", econtext=0x5604ee8dbcd0, 
    state=0x5604ee8dc020) at ./build/../src/include/executor/executor.h:308
No locals.
#21 ExecProject (projInfo=0x5604ee8dc018) at ./build/../src/include/executor/executor.h:342
        econtext = 0x5604ee8dbcd0
        state = 0x5604ee8dc020
        slot = 0x5604ee8dbdc8
        isnull = 0 '\000'
#22 ExecResult (pstate=<optimized out>) at ./build/../src/backend/executor/nodeResult.c:136
        outerPlan = <optimized out>
        econtext = <optimized out>
#23 0x00005604eced7d2d in ExecProcNode (node=0x5604ee8dbbb8) at ./build/../src/include/executor/executor.h:250
No locals.
#24 ExecutePlan (execute_once=<optimized out>, dest=0x5604ee7ea3e8, direction=<optimized out>, numberTuples=0, 
    sendTuples=<optimized out>, operation=CMD_SELECT, use_parallel_mode=<optimized out>, planstate=0x5604ee8dbbb8, 
    estate=0x5604ee8db9a0) at ./build/../src/backend/executor/execMain.c:1720
        slot = <optimized out>
        current_tuple_count = 0
#25 standard_ExecutorRun (queryDesc=0x5604ee812090, direction=<optimized out>, count=0, execute_once=<optimized out>)
    at ./build/../src/backend/executor/execMain.c:363
        estate = 0x5604ee8db9a0
        operation = CMD_SELECT
        dest = 0x5604ee7ea3e8
        sendTuples = <optimized out>
        __func__ = "standard_ExecutorRun"
#26 0x00005604ed02de06 in PortalRunSelect (portal=portal@entry=0x5604ee81b4b0, forward=forward@entry=1 '\001', 
    count=0, count@entry=9223372036854775807, dest=dest@entry=0x5604ee7ea3e8)
    at ./build/../src/backend/tcop/pquery.c:932
        queryDesc = 0x5604ee812090
---Type <return> to continue, or q <return> to quit---
        direction = <optimized out>
        nprocessed = <optimized out>
        __func__ = "PortalRunSelect"
#27 0x00005604ed02f670 in PortalRun (portal=portal@entry=0x5604ee81b4b0, count=count@entry=9223372036854775807, 
    isTopLevel=isTopLevel@entry=1 '\001', run_once=run_once@entry=1 '\001', dest=dest@entry=0x5604ee7ea3e8, 
    altdest=altdest@entry=0x5604ee7ea3e8, completionTag=0x7ffc515e8f80 "")
    at ./build/../src/backend/tcop/pquery.c:773
        save_exception_stack = 0x7ffc515e91b0
        save_context_stack = 0x0
        local_sigjmp_buf = {{__jmpbuf = {0, -8888394033120437328, 94579181335728, 140721673637760, 94579181335728, 
              94579181764056, -8888394033030259792, -2929754281857803344}, __mask_was_saved = 0, __saved_mask = {
              __val = {94575179857920, 1, 0, 140723125634669, 2, 2, 140721673637758, 1, 88, 94579181335728, 2, 
                94579181134768, 94579181764056, 140721673637632, 94579157601210, 2}}}}
        result = <optimized out>
        nprocessed = <optimized out>
        saveTopTransactionResourceOwner = 0x5604ee8344c0
        saveTopTransactionContext = 0x5604ee834770
        saveActivePortal = 0x0
        saveResourceOwner = 0x5604ee8344c0
        savePortalContext = 0x0
        saveMemoryContext = 0x5604ee834770
        __func__ = "PortalRun"
#28 0x00005604ed02ad40 in exec_simple_query (query_string=0x5604ee8830c0 "select test_param_where();")
    at ./build/../src/backend/tcop/postgres.c:1099
        portal = 0x5604ee81b4b0
        snapshot_set = <optimized out>
        commandTag = <optimized out>
        completionTag = "\000\000\000\000\002\000\000\000\300\217^Q\374\177\000\000V\335^Q\374\177\000\000\000\000\000\000\000\000\000\000Џ^Q\001\000\000\000\300\060\210\356\004V\000\000\300\060\210\356\004V\000\000@\317|\356\004V\000"
        querytree_list = <optimized out>
        plantree_list = <optimized out>
        receiver = 0x5604ee7ea3e8
        format = 0
        dest = DestRemote
        parsetree_list = 0x5604ee883e00
        parsetree_item = 0x5604ee883dd8
        save_log_statement_stats = 0 '\000'
        was_logged = 0 '\000'
        isTopLevel = 1 '\001'
        msec_str = "\000\000\000\000\002\000\000\000\300\217^Q\374\177\000\000V\335^Q\374\177\000\000\000\000\000\000\000\000\000"
        __func__ = "exec_simple_query"
#29 0x00005604ed02ccdf in PostgresMain (argc=<optimized out>, argv=argv@entry=0x5604ee819428, 
    dbname=<optimized out>, username=<optimized out>) at ./build/../src/backend/tcop/postgres.c:4090
        query_string = 0x5604ee8830c0 "select test_param_where();"
        input_message = {data = 0x5604ee8830c0 "select test_param_where();", len = 27, maxlen = 1024, cursor = 27}
        local_sigjmp_buf = {{__jmpbuf = {140721673638224, -8888394034049475664, 1, 94579181014848, 1, 
              94579162582144, -8888394033959298128, -2929754284042904656}, __mask_was_saved = 1, __saved_mask = {
              __val = {0, 0, 7195975550947321344, 94579181139896, 94579159187134, 140721673638752, 140721673639152, 
                140721673640192, 0, 0, 139868369590792, 80, 206158430256, 140721673638728, 140721673638512, 
                94579181327120}}}}
        send_ready_for_query = 0 '\000'
        disable_idle_in_transaction_timeout = 0 '\000'
        __func__ = "PostgresMain"
#30 0x00005604ecd17a59 in BackendRun (port=0x5604ee817030) at ./build/../src/backend/postmaster/postmaster.c:4357
        ac = 1
        secs = 558443505
        usecs = 971112
        i = 1
        av = 0x5604ee819428
        maxac = <optimized out>
#31 BackendStartup (port=0x5604ee817030) at ./build/../src/backend/postmaster/postmaster.c:4029
        bn = <optimized out>
        pid = <optimized out>
#32 ServerLoop () at ./build/../src/backend/postmaster/postmaster.c:1753
        i = <optimized out>
        rmask = {fds_bits = {8, 0 <repeats 15 times>}}
        selres = <optimized out>
        now = <optimized out>
---Type <return> to continue, or q <return> to quit---
        readmask = {fds_bits = {72, 0 <repeats 15 times>}}
        last_lockfile_recheck_time = 1505128249
        last_touch_time = 1505125547
        __func__ = "ServerLoop"
#33 0x00005604ecfadb18 in PostmasterMain (argc=5, argv=0x5604ee7cad80)
    at ./build/../src/backend/postmaster/postmaster.c:1361
        opt = <optimized out>
        status = <optimized out>
        userDoption = <optimized out>
        listen_addr_saved = <optimized out>
        i = <optimized out>
        output_config_variable = <optimized out>
        __func__ = "PostmasterMain"
#34 0x00005604ecd19934 in main (argc=5, argv=0x5604ee7cad80) at ./build/../src/backend/main/main.c:228
No locals.
(gdb) f 0
#0  ExecInitExprRec (node=node@entry=0x5604ee910660, parent=parent@entry=0x5604ee8d7388, 
    state=state@entry=0x5604ee8d8fd0, resv=resv@entry=0x5604ee8d8fd8, resnull=resnull@entry=0x5604ee8d8fd5 "")
    at ./build/../src/backend/executor/execExpr.c:2030
2030    in ./build/../src/backend/executor/execExpr.c
(gdb) p pprint(targetList)
No symbol "targetList" in current context.
(gdb) p pprint(state->expr)
$1 = void

(
   {PARAM 
   :paramkind 0 
   :paramid 3 
   :paramtype 23 
   :paramtypmod -1 
   :paramcollid 0 
   :location 37
   }
)

Quoting Andres:

<andres> Myon: bug in mysql_fdw
<andres> ExecInitExpr() should never get toplevel lists anymore.
anarazel commented 6 years ago

Andres being @anarazel over here.

df7cb commented 6 years ago

This is blocking PostgreSQL 10 in Debian and Ubuntu: https://bugs.debian.org/cgi-bin/bugreport.cgi?bug=881498

ziermach commented 5 years ago

Hello, I had the same problem.

The pull request #161 from 6 Apr works for me.

df7cb commented 5 years ago

Closed via a7d22fa.