diff options
Diffstat (limited to 'src/include')
-rw-r--r-- | src/include/access/tupconvert.h | 2 | ||||
-rw-r--r-- | src/include/executor/executor.h | 7 | ||||
-rw-r--r-- | src/include/nodes/execnodes.h | 9 |
3 files changed, 15 insertions, 3 deletions
diff --git a/src/include/access/tupconvert.h b/src/include/access/tupconvert.h index afd5801e6ab..08619609311 100644 --- a/src/include/access/tupconvert.h +++ b/src/include/access/tupconvert.h @@ -18,6 +18,7 @@ #include "access/htup.h" #include "access/tupdesc.h" #include "executor/tuptable.h" +#include "nodes/bitmapset.h" typedef struct TupleConversionMap @@ -43,6 +44,7 @@ extern HeapTuple execute_attr_map_tuple(HeapTuple tuple, TupleConversionMap *map extern TupleTableSlot *execute_attr_map_slot(AttrMap *attrMap, TupleTableSlot *in_slot, TupleTableSlot *out_slot); +extern Bitmapset *execute_attr_map_cols(AttrMap *attrMap, Bitmapset *inbitmap); extern void free_conversion_map(TupleConversionMap *map); diff --git a/src/include/executor/executor.h b/src/include/executor/executor.h index 238b77494f4..45f4fd63bce 100644 --- a/src/include/executor/executor.h +++ b/src/include/executor/executor.h @@ -191,7 +191,7 @@ extern void CheckValidResultRel(ResultRelInfo *resultRelInfo, CmdType operation) extern void InitResultRelInfo(ResultRelInfo *resultRelInfo, Relation resultRelationDesc, Index resultRelationIndex, - Relation partition_root, + ResultRelInfo *partition_root_rri, int instrument_options); extern ResultRelInfo *ExecGetTriggerResultRel(EState *estate, Oid relid); extern void ExecCleanUpTriggerState(EState *estate); @@ -571,6 +571,11 @@ extern TupleTableSlot *ExecGetTriggerOldSlot(EState *estate, ResultRelInfo *relI extern TupleTableSlot *ExecGetTriggerNewSlot(EState *estate, ResultRelInfo *relInfo); extern TupleTableSlot *ExecGetReturningSlot(EState *estate, ResultRelInfo *relInfo); +extern Bitmapset *ExecGetInsertedCols(ResultRelInfo *relinfo, EState *estate); +extern Bitmapset *ExecGetUpdatedCols(ResultRelInfo *relinfo, EState *estate); +extern Bitmapset *ExecGetExtraUpdatedCols(ResultRelInfo *relinfo, EState *estate); +extern Bitmapset *ExecGetAllUpdatedCols(ResultRelInfo *relinfo, EState *estate); + /* * prototypes from functions in execIndexing.c */ diff --git a/src/include/nodes/execnodes.h b/src/include/nodes/execnodes.h index 015bfc0cb53..8e5ccb37c50 100644 --- a/src/include/nodes/execnodes.h +++ b/src/include/nodes/execnodes.h @@ -483,8 +483,13 @@ typedef struct ResultRelInfo /* partition check expression state */ ExprState *ri_PartitionCheckExpr; - /* relation descriptor for root partitioned table */ - Relation ri_PartitionRoot; + /* + * RootResultRelInfo gives the target relation mentioned in the query, if + * it's a partitioned table. It is not set if the target relation + * mentioned in the query is an inherited table, nor when tuple routing is + * not needed. + */ + struct ResultRelInfo *ri_RootResultRelInfo; /* Additional information specific to partition tuple routing */ struct PartitionRoutingInfo *ri_PartitionInfo; |