pgsql: Add infrastructure for storing a VARIADIC ANY function's VARIADI

From: Tom Lane <tgl(at)sss(dot)pgh(dot)pa(dot)us>
To: pgsql-committers(at)postgresql(dot)org
Subject: pgsql: Add infrastructure for storing a VARIADIC ANY function's VARIADI
Date: 2013-01-22 01:26:36
Message-ID: E1TxSdI-0004wL-BJ@gemulon.postgresql.org
Views: Raw Message | Whole Thread | Download mbox | Resend email
Thread:
Lists: pgsql-committers

Add infrastructure for storing a VARIADIC ANY function's VARIADIC flag.

Originally we didn't bother to mark FuncExprs with any indication whether
VARIADIC had been given in the source text, because there didn't seem to be
any need for it at runtime. However, because we cannot fold a VARIADIC ANY
function's arguments into an array (since they're not necessarily all the
same type), we do actually need that information at runtime if VARIADIC ANY
functions are to respond unsurprisingly to use of the VARIADIC keyword.
Add the missing field, and also fix ruleutils.c so that VARIADIC ANY
function calls are dumped properly.

Extracted from a larger patch that also fixes concat() and format() (the
only two extant VARIADIC ANY functions) to behave properly when VARIADIC is
specified. This portion seems appropriate to review and commit separately.

Pavel Stehule

Branch
------
master

Details
-------
http://git.postgresql.org/pg/commitdiff/75b39e79099fb1da43542e12698df717d1bd120f

Modified Files
--------------
src/backend/nodes/copyfuncs.c | 1 +
src/backend/nodes/equalfuncs.c | 1 +
src/backend/nodes/makefuncs.c | 1 +
src/backend/nodes/outfuncs.c | 1 +
src/backend/nodes/readfuncs.c | 1 +
src/backend/optimizer/util/clauses.c | 22 +++++++--
src/backend/parser/parse_func.c | 1 +
src/backend/utils/adt/ruleutils.c | 87 +++++++++++++++++++++++----------
src/backend/utils/fmgr/fmgr.c | 26 ++++++++++
src/include/catalog/catversion.h | 2 +-
src/include/fmgr.h | 1 +
src/include/nodes/primnodes.h | 1 +
12 files changed, 113 insertions(+), 32 deletions(-)

Browse pgsql-committers by date

  From Date Subject
Next Message Robert Haas 2013-01-22 03:35:55 pgsql: Typo fixes.
Previous Message Thom Brown 2013-01-21 23:08:01 Re: pgsql: Add ddl_command_end support for event triggers.