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

Michael Paquier <michael.paquier@gmail.com>

From: Michael Paquier <michael.paquier@gmail.com>
To: Pavel Stehule <pavel.stehule@gmail.com>
Cc: PostgreSQL Hackers <pgsql-hackers@postgresql.org>
Date: 2018-02-02T07:01:13Z
Lists: pgsql-hackers
On Thu, Feb 01, 2018 at 05:33:54PM +0100, Pavel Stehule wrote:
> I am playing with procedures little bit
> 
> I found few bugs
> 
> create procedure test(a int)
> as $$
> begin
>   raise notice '>>>%<<<', a;
> end;
> $$ language plpgsql;
> 
> call test(10); -- ok
> 
> postgres=# call test((select 10));
> ERROR:  unrecognized node type: 113
> 
> postgres=# \sf test
> ERROR:  cache lookup failed for type 0

Peter, Andrew, this is missing some bits related to the conversion of
SubLink nodes to SubPlan nodes for procedures when used as argument of
a procedure as only the latter can be executed after the former is
processed by the latter (see SS_process_sublinks).
--
Michael

Commits

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

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