pgsql: Extend ExecMakeFunctionResult() to support set-returning

Started by Tom Laneover 17 years ago1 messagescomitters
Jump to latest
#1Tom Lane
tgl@sss.pgh.pa.us

Log Message:
-----------
Extend ExecMakeFunctionResult() to support set-returning functions that return
via a tuplestore instead of value-per-call. Refactor a few things to reduce
ensuing code duplication with nodeFunctionscan.c. This represents the
reasonably noncontroversial part of my proposed patch to switch SQL functions
over to returning tuplestores. For the moment, SQL functions still do things
the old way. However, this change enables PL SRFs to be called in targetlists
(observe changes in plperl regression results).

Modified Files:
--------------
pgsql/contrib/tablefunc:
tablefunc.c (r1.53 -> r1.54)
(http://anoncvs.postgresql.org/cvsweb.cgi/pgsql/contrib/tablefunc/tablefunc.c?r1=1.53&r2=1.54)
pgsql/doc/src/sgml:
plpgsql.sgml (r1.134 -> r1.135)
(http://anoncvs.postgresql.org/cvsweb.cgi/pgsql/doc/src/sgml/plpgsql.sgml?r1=1.134&r2=1.135)
pgsql/src/backend/executor:
execQual.c (r1.233 -> r1.234)
(http://anoncvs.postgresql.org/cvsweb.cgi/pgsql/src/backend/executor/execQual.c?r1=1.233&r2=1.234)
execTuples.c (r1.102 -> r1.103)
(http://anoncvs.postgresql.org/cvsweb.cgi/pgsql/src/backend/executor/execTuples.c?r1=1.102&r2=1.103)
nodeFunctionscan.c (r1.47 -> r1.48)
(http://anoncvs.postgresql.org/cvsweb.cgi/pgsql/src/backend/executor/nodeFunctionscan.c?r1=1.47&r2=1.48)
pgsql/src/backend/utils/fmgr:
README (r1.13 -> r1.14)
(http://anoncvs.postgresql.org/cvsweb.cgi/pgsql/src/backend/utils/fmgr/README?r1=1.13&r2=1.14)
pgsql/src/include/executor:
executor.h (r1.149 -> r1.150)
(http://anoncvs.postgresql.org/cvsweb.cgi/pgsql/src/include/executor/executor.h?r1=1.149&r2=1.150)
tuptable.h (r1.38 -> r1.39)
(http://anoncvs.postgresql.org/cvsweb.cgi/pgsql/src/include/executor/tuptable.h?r1=1.38&r2=1.39)
pgsql/src/include/nodes:
execnodes.h (r1.191 -> r1.192)
(http://anoncvs.postgresql.org/cvsweb.cgi/pgsql/src/include/nodes/execnodes.h?r1=1.191&r2=1.192)
pgsql/src/pl/plperl/expected:
plperl.out (r1.13 -> r1.14)
(http://anoncvs.postgresql.org/cvsweb.cgi/pgsql/src/pl/plperl/expected/plperl.out?r1=1.13&r2=1.14)