Re: BUG #14463: refcursor cann't used with array or variadic parameter?
Tom Lane <tgl@sss.pgh.pa.us>
From: Tom Lane <tgl@sss.pgh.pa.us>
To: Pavel Stehule <pavel.stehule@gmail.com>
Cc: 德哥 <digoal@126.com>, "pgsql-bugs@postgresql.org" <pgsql-bugs@postgresql.org>
Date: 2016-12-13T21:37:38Z
Lists: pgsql-bugs
I wrote: > Pavel Stehule <pavel.stehule@gmail.com> writes: >> It is not a bug - it is feature. PLpgSQL statements doesn't expect a >> expression on some places. > Well, it's not unreasonable to expect that a subscripted datum could > be used. It looks to me like this is a grammar omission and the > executor code would work fine. Well, not so much. I was thinking in terms of unifying both getdiag_target and cursor_variable with the assign_var production, but actually pl_exec.c is only on board with doing that for getdiag_target. However, we can get it to throw a more sensible error by seeing whether the next token is '['. I'm not that concerned about whether you can use an array element in OPEN, but the current error message certainly looks like a bug rather than an omitted feature. I've pushed a patch that fixes the error message and also allows the case for GET DIAGNOSTICS. regards, tom lane
Commits
-
Improve handling of array elements as getdiag_targets and cursor_variables.
- 55caaaeba877 10.0 landed