Re: CALL stmt, ERROR: unrecognized node type: 113 bug
Michael Paquier <michael@paquier.xyz>
From: Michael Paquier <michael@paquier.xyz>
To: Tom Lane <tgl@sss.pgh.pa.us>
Cc: Peter Eisentraut <peter.eisentraut@2ndquadrant.com>, Pavel Stehule <pavel.stehule@gmail.com>, PostgreSQL Hackers <pgsql-hackers@postgresql.org>
Date: 2018-02-13T08:57:34Z
Lists: pgsql-hackers
On Mon, Feb 12, 2018 at 03:19:27PM -0500, Tom Lane wrote:
> I've not read in detail, but it looks reasonable offhand, modulo
> that I still don't like prorettype == 0 ;-).
>
> I did notice a tiny typo:
>
> - * with. Hence prefer "$function$", but extend if needed.
> + * with. Hence prefer "$function$"/"$procedure", but extend if needed.
>
> I think you want
>
> + * with. Hence prefer "$function$"/"$procedure$", but extend if needed.
0001 and 0002 are welcome. I have a small comment on top of Tom's for 0003.
+ appendStringInfoString(&buf, ")\n");
+ if (proc->prorettype)
+ {
+ appendStringInfoString(&buf, " RETURNS ");
+ print_function_rettype(&buf, proctup);
+ appendStringInfoChar(&buf, '\n');
+ }
Could you use a separate boolean variable which is set as
OidIsValid(prorettype), say called isfunction? The goal is to avoid the
check on prorettype in more than one place. If pg_proc's shape is
changed depending on the discussion, the current patch is a recipy to
forget updating all those places. A comment in pg_get_function_result
to mention that prorettype = InvalidOid is here to track that the call
involves a procedure would be nice.
Should the documentation of pg_function_is_visible also mention
procedures?
--
Michael
Commits
-
Avoid premature free of pass-by-reference CALL arguments.
- d02d4a6d4f27 11.0 landed
-
Fix oversight in CALL argument handling, and do some minor cleanup.
- 65b1d767856d 11.0 landed