Add readfuncs.c support for plan nodes.

For parallel query, we need to be able to pass a Plan to a worker, so
that it knows what it's supposed to do.  We could invent our own way
of serializing plans for that purpose, but piggybacking on the
existing node infrastructure seems like a much better idea.

Initially, we'll probably only support a limited number of nodes
within parallel workers, but this commit adds support for everything
in plannodes.h except CustomScan, because doing it all at once seems
easier than doing it piecemeal, and it makes testing this code easier,
too.  CustomScan is excluded because making that work requires a
larger rework of that facility.

Amit Kapila, reviewed and slightly revised by me.
This commit is contained in:
Robert Haas 2015-09-23 11:51:50 -04:00
parent 4fe6f72bda
commit a0d9f6e434
2 changed files with 1023 additions and 5 deletions

View File

@ -13,9 +13,11 @@
* NOTES * NOTES
* Every node type that can appear in stored rules' parsetrees *must* * Every node type that can appear in stored rules' parsetrees *must*
* have an output function defined here (as well as an input function * have an output function defined here (as well as an input function
* in readfuncs.c). For use in debugging, we also provide output * in readfuncs.c). In addition, plan nodes should have input and
* functions for nodes that appear in raw parsetrees, path, and plan trees. * output functions so that they can be sent to parallel workers.
* These nodes however need not have input functions. * For use in debugging, we also provide output functions for nodes
* that appear in raw parsetrees and path. These nodes however need
* not have input functions.
* *
*------------------------------------------------------------------------- *-------------------------------------------------------------------------
*/ */

File diff suppressed because it is too large Load Diff