Re: CALL stmt, ERROR: unrecognized node type: 113 bug

David G. Johnston <david.g.johnston@gmail.com>

From: "David G. Johnston" <david.g.johnston@gmail.com>
To: Tom Lane <tgl@sss.pgh.pa.us>
Cc: Michael Paquier <michael@paquier.xyz>, Pavel Stehule <pavel.stehule@gmail.com>, Postgres hackers <pgsql-hackers@postgresql.org>, Andrew Dunstan <andrew@dunslane.net>, Peter Eisentraut <peter.eisentraut@2ndquadrant.com>
Date: 2018-02-09T14:46:24Z
Lists: pgsql-hackers
On Fri, Feb 9, 2018 at 7:42 AM, Tom Lane <tgl@sss.pgh.pa.us> wrote:

> "David G. Johnston" <david.g.johnston@gmail.com> writes:
> > On Fri, Feb 9, 2018 at 6:23 AM, Michael Paquier <michael@paquier.xyz>
> wrote:
> >> On Fri, Feb 09, 2018 at 12:02:57PM +0100, Pavel Stehule wrote:
> >>> Blocking subqueries in CALL parameters is possible solution.
>
> > To me this feels like an interaction between two features that users are
> > going to expect to just work.
>
> Meh.  It doesn't look significantly different to me than the restriction
> that you can't have sub-selects in CHECK expressions, index expressions,
> etc.  Obviously we need a clean failure like you get for those cases.
> But otherwise it's an OK restriction that stems from exactly the same
> cause: we do not want to invoke the full planner in this context (and
> even if we did, we don't want to use the full executor to execute the
> result).
>

Does/Should:

CALL test(func(10)); --with or without an extra set of parentheses

work here too?

David J.

Commits

  1. Avoid premature free of pass-by-reference CALL arguments.

  2. Fix oversight in CALL argument handling, and do some minor cleanup.