pgsql: Fix oversight in CALL argument handling, and do some minor clean

From: Tom Lane <tgl(at)sss(dot)pgh(dot)pa(dot)us>
To: pgsql-committers(at)postgresql(dot)org
Subject: pgsql: Fix oversight in CALL argument handling, and do some minor clean
Date: 2018-02-10 18:05:19
Message-ID: E1ekZWZ-0001a1-Vz@gemulon.postgresql.org
Views: Raw Message | Whole Thread | Download mbox | Resend email
Thread:
Lists: pgsql-committers

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

CALL statements cannot support sub-SELECTs in the arguments of the called
procedure, since they just use ExecEvalExpr to evaluate such arguments.
Teach transformSubLink() to reject the case, as it already does for other
contexts in which subqueries are not supported.

In passing, s/EXPR_KIND_CALL/EXPR_KIND_CALL_ARGUMENT/ to make that enum
symbol line up more closely with the phrasing of the error messages it is
associated with. And fix someone's weak grasp of English grammar in the
preceding EXPR_KIND_PARTITION_EXPRESSION addition. Also update an
incorrect comment in resolve_unique_index_expr (possibly it was correct
when written, but nowadays transformExpr definitely does reject SRFs here).

Per report from Pavel Stehule --- but this resolves only one of the bugs
he mentions.

Discussion: https://postgr.es/m/CAFj8pRDxOwPPzpA8i+AQeDQFj7bhVw-dR2==rfWZ3zMGkm568Q@mail.gmail.com

Branch
------
master

Details
-------
https://git.postgresql.org/pg/commitdiff/65b1d767856d96c7d6f952f30890dd5b7d4b66bb

Modified Files
--------------
src/backend/commands/functioncmds.c | 2 +-
src/backend/parser/parse_agg.c | 10 +++++-----
src/backend/parser/parse_clause.c | 11 +++++------
src/backend/parser/parse_expr.c | 6 ++++--
src/backend/parser/parse_func.c | 2 +-
src/include/parser/parse_node.h | 2 +-
src/test/regress/expected/create_table.out | 4 ++--
7 files changed, 19 insertions(+), 18 deletions(-)

Browse pgsql-committers by date

  From Date Subject
Next Message Tom Lane 2018-02-10 18:37:17 pgsql: Avoid premature free of pass-by-reference CALL arguments.
Previous Message Amit Langote 2018-02-10 14:32:21 Re: pgsql: Local partitioned indexes