diff options
Diffstat (limited to 'src/include')
-rw-r--r-- | src/include/access/xact.h | 15 | ||||
-rw-r--r-- | src/include/nodes/pathnodes.h | 2 | ||||
-rw-r--r-- | src/include/nodes/plannodes.h | 2 | ||||
-rw-r--r-- | src/include/optimizer/clauses.h | 3 |
4 files changed, 21 insertions, 1 deletions
diff --git a/src/include/access/xact.h b/src/include/access/xact.h index f49a57b35e1..34cfaf542c6 100644 --- a/src/include/access/xact.h +++ b/src/include/access/xact.h @@ -466,5 +466,20 @@ extern void ParsePrepareRecord(uint8 info, xl_xact_prepare *xlrec, xl_xact_parse extern void EnterParallelMode(void); extern void ExitParallelMode(void); extern bool IsInParallelMode(void); +extern void PrepareParallelModePlanExec(CmdType commandType); + +/* + * IsModifySupportedInParallelMode + * + * Indicates whether execution of the specified table-modification command + * (INSERT/UPDATE/DELETE) in parallel-mode is supported, subject to certain + * parallel-safety conditions. + */ +static inline bool +IsModifySupportedInParallelMode(CmdType commandType) +{ + /* Currently only INSERT is supported */ + return (commandType == CMD_INSERT); +} #endif /* XACT_H */ diff --git a/src/include/nodes/pathnodes.h b/src/include/nodes/pathnodes.h index b8a6e0fc9f4..86405a274ed 100644 --- a/src/include/nodes/pathnodes.h +++ b/src/include/nodes/pathnodes.h @@ -120,6 +120,8 @@ typedef struct PlannerGlobal List *relationOids; /* OIDs of relations the plan depends on */ + List *partitionOids; /* OIDs of partitions the plan depends on */ + List *invalItems; /* other dependencies, as PlanInvalItems */ List *paramExecTypes; /* type OIDs for PARAM_EXEC Params */ diff --git a/src/include/nodes/plannodes.h b/src/include/nodes/plannodes.h index 6e62104d0b7..95292d75735 100644 --- a/src/include/nodes/plannodes.h +++ b/src/include/nodes/plannodes.h @@ -79,6 +79,8 @@ typedef struct PlannedStmt List *relationOids; /* OIDs of relations the plan depends on */ + List *partitionOids; /* OIDs of partitions the plan depends on */ + List *invalItems; /* other dependencies, as PlanInvalItems */ List *paramExecTypes; /* type OIDs for PARAM_EXEC Params */ diff --git a/src/include/optimizer/clauses.h b/src/include/optimizer/clauses.h index 0673887a852..8d85b02514c 100644 --- a/src/include/optimizer/clauses.h +++ b/src/include/optimizer/clauses.h @@ -32,7 +32,7 @@ extern double expression_returns_set_rows(PlannerInfo *root, Node *clause); extern bool contain_subplans(Node *clause); -extern char max_parallel_hazard(Query *parse); +extern char max_parallel_hazard(Query *parse, PlannerGlobal *glob); extern bool is_parallel_safe(PlannerInfo *root, Node *node); extern bool contain_nonstrict_functions(Node *clause); extern bool contain_exec_param(Node *clause, List *param_ids); @@ -52,5 +52,6 @@ extern void CommuteOpExpr(OpExpr *clause); extern Query *inline_set_returning_function(PlannerInfo *root, RangeTblEntry *rte); +extern bool is_parallel_allowed_for_modify(Query *parse); #endif /* CLAUSES_H */ |