summaryrefslogtreecommitdiff
path: root/src/include/utils
diff options
context:
space:
mode:
authorRobert Haas2015-09-29 01:55:57 +0000
committerRobert Haas2015-09-29 01:55:57 +0000
commitd1b7c1ffe72e86932b5395f29e006c3f503bc53d (patch)
tree9758eda06ae19401beef3c74373ecb076e9f9238 /src/include/utils
parent0557dc276f1022965f72dc8bcfc820dfd83a7dc2 (diff)
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
Diffstat (limited to 'src/include/utils')
-rw-r--r--src/include/utils/datum.h10
1 files changed, 10 insertions, 0 deletions
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 */