summaryrefslogtreecommitdiff
path: root/src/include
diff options
context:
space:
mode:
authorRobert Haas2017-08-18 17:01:05 +0000
committerRobert Haas2017-08-18 17:01:05 +0000
commitc4b841ba6aa9252ab9dacd59d317aba8cfa9b31a (patch)
treef04bad7b7d401e1639c2fad616242dced8609c52 /src/include
parenta20aac890a89e6f88e841dedbbfa8d9d5f7309fc (diff)
Fix interaction of triggers, partitioning, and EXPLAIN ANALYZE.
Add a new EState member es_leaf_result_relations, so that the trigger code knows about ResultRelInfos created by tuple routing. Also make sure ExplainPrintTriggers knows about partition-related ResultRelInfos. Etsuro Fujita, reviewed by Amit Langote Discussion: http://postgr.es/m/[email protected]
Diffstat (limited to 'src/include')
-rw-r--r--src/include/executor/executor.h1
-rw-r--r--src/include/nodes/execnodes.h3
2 files changed, 4 insertions, 0 deletions
diff --git a/src/include/executor/executor.h b/src/include/executor/executor.h
index 60326f9d037..eacbea3c365 100644
--- a/src/include/executor/executor.h
+++ b/src/include/executor/executor.h
@@ -208,6 +208,7 @@ extern void EvalPlanQualSetTuple(EPQState *epqstate, Index rti,
extern HeapTuple EvalPlanQualGetTuple(EPQState *epqstate, Index rti);
extern void ExecSetupPartitionTupleRouting(Relation rel,
Index resultRTindex,
+ EState *estate,
PartitionDispatch **pd,
ResultRelInfo **partitions,
TupleConversionMap ***tup_conv_maps,
diff --git a/src/include/nodes/execnodes.h b/src/include/nodes/execnodes.h
index 577499465d6..3272c4b3155 100644
--- a/src/include/nodes/execnodes.h
+++ b/src/include/nodes/execnodes.h
@@ -452,6 +452,9 @@ typedef struct EState
ResultRelInfo *es_root_result_relations; /* array of ResultRelInfos */
int es_num_root_result_relations; /* length of the array */
+ /* Info about leaf partitions of partitioned table(s) for insert queries: */
+ List *es_leaf_result_relations; /* List of ResultRelInfos */
+
/* Stuff used for firing triggers: */
List *es_trig_target_relations; /* trigger-only ResultRelInfos */
TupleTableSlot *es_trig_tuple_slot; /* for trigger output tuples */