From d1b7c1ffe72e86932b5395f29e006c3f503bc53d Mon Sep 17 00:00:00 2001 From: Robert Haas Date: Mon, 28 Sep 2015 21:55:57 -0400 Subject: Parallel executor support. This code provides infrastructure for a parallel leader to start up parallel workers to execute subtrees of the plan tree being executed in the master. User-supplied parameters from ParamListInfo are passed down, but PARAM_EXEC parameters are not. Various other constructs, such as initplans, subplans, and CTEs, are also not currently shared. Nevertheless, there's enough here to support a basic implementation of parallel query, and we can lift some of the current restrictions as needed. Amit Kapila and Robert Haas --- src/include/utils/datum.h | 10 ++++++++++ 1 file changed, 10 insertions(+) (limited to 'src/include/utils') diff --git a/src/include/utils/datum.h b/src/include/utils/datum.h index c572f790a50..e9d4be5c4ba 100644 --- a/src/include/utils/datum.h +++ b/src/include/utils/datum.h @@ -46,4 +46,14 @@ extern Datum datumTransfer(Datum value, bool typByVal, int typLen); extern bool datumIsEqual(Datum value1, Datum value2, bool typByVal, int typLen); +/* + * Serialize and restore datums so that we can transfer them to parallel + * workers. + */ +extern Size datumEstimateSpace(Datum value, bool isnull, bool typByVal, + int typLen); +extern void datumSerialize(Datum value, bool isnull, bool typByVal, + int typLen, char **start_address); +extern Datum datumRestore(char **start_address, bool *isnull); + #endif /* DATUM_H */ -- cgit v1.2.3