postgresql/src/include/nodes
Robert Haas 1efc7e5382 Fix problems with ParamListInfo serialization mechanism.
Commit d1b7c1ffe7 introduced a mechanism
for serializing a ParamListInfo structure to be passed to a parallel
worker.  However, this mechanism failed to handle external expanded
values, as pointed out by Noah Misch.  Repair.

Moreover, plpgsql_param_fetch requires adjustment because the
serialization mechanism needs it to skip evaluating unused parameters
just as we would do when it is called from copyParamList, but params
== estate->paramLI in that case.  To fix, make the bms_is_member test
in that function unconditional.

Finally, have setup_param_list set a new ParamListInfo field,
paramMask, to the parameters actually used in the expression, so that
we don't try to fetch those that are not needed when serializing a
parameter list.  This isn't necessary for correctness, but it makes
the performance of the parallel executor code comparable to what we
do for cases involving cursors.

Design suggestions and extensive review by Noah Misch.  Patch by me.
2015-11-02 18:11:29 -05:00
..
bitmapset.h Use FLEXIBLE_ARRAY_MEMBER in a bunch more places. 2015-02-20 00:11:42 -05:00
execnodes.h Make Gather node projection-capable. 2015-10-28 00:27:58 +01:00
lockoptions.h Improve representation of PlanRowMark. 2015-03-15 18:41:47 -04:00
makefuncs.h Support GROUPING SETS, CUBE and ROLLUP. 2015-05-16 03:46:31 +02:00
memnodes.h Limit the verbosity of memory context statistics dumps. 2015-08-25 13:09:48 -04:00
nodeFuncs.h Add new function planstate_tree_walker. 2015-09-17 11:27:06 -04:00
nodes.h Add a Gather executor node. 2015-09-30 19:23:36 -04:00
params.h Fix problems with ParamListInfo serialization mechanism. 2015-11-02 18:11:29 -05:00
parsenodes.h Do not write out WCOs in Query 2015-10-05 07:38:58 -04:00
pg_list.h Rely on inline functions even if that causes warnings in older compilers. 2015-08-05 18:19:52 +02:00
plannodes.h Fix incorrect comment in plannodes.h 2015-10-20 11:11:35 -04:00
primnodes.h pgindent run for 9.5 2015-05-23 21:35:49 -04:00
print.h Update copyright for 2015 2015-01-06 11:43:47 -05:00
readfuncs.h Update copyright for 2015 2015-01-06 11:43:47 -05:00
relation.h Add a Gather executor node. 2015-09-30 19:23:36 -04:00
replnodes.h Add ability to reserve WAL upon slot creation via replication protocol. 2015-09-06 13:30:57 +02:00
tidbitmap.h Use FLEXIBLE_ARRAY_MEMBER in a bunch more places. 2015-02-20 00:11:42 -05:00
value.h Update copyright for 2015 2015-01-06 11:43:47 -05:00