teach-ExecInitPartitionInfo-to-use-correct-RT-index.patch
text/plain
Filename: teach-ExecInitPartitionInfo-to-use-correct-RT-index.patch
Type: text/plain
Part: 1
Patch
Format: unified
| File | + | − |
|---|---|---|
| src/backend/executor/execPartition.c | 2 | 4 |
diff --git a/src/backend/executor/execPartition.c b/src/backend/executor/execPartition.c
index f7418f64b1..a378650df0 100644
--- a/src/backend/executor/execPartition.c
+++ b/src/backend/executor/execPartition.c
@@ -309,6 +309,7 @@ ExecInitPartitionInfo(ModifyTableState *mtstate,
Relation rootrel = resultRelInfo->ri_RelationDesc,
partrel;
Relation firstResultRel = mtstate->resultRelInfo[0].ri_RelationDesc;
+ Index firstVarno = mtstate->resultRelInfo[0].ri_RangeTableIndex;
ResultRelInfo *leaf_part_rri;
MemoryContext oldContext;
AttrNumber *part_attnos = NULL;
@@ -329,7 +330,7 @@ ExecInitPartitionInfo(ModifyTableState *mtstate,
leaf_part_rri = makeNode(ResultRelInfo);
InitResultRelInfo(leaf_part_rri,
partrel,
- node ? node->nominalRelation : 1,
+ firstVarno,
rootrel,
estate->es_instrument);
@@ -372,7 +373,6 @@ ExecInitPartitionInfo(ModifyTableState *mtstate,
List *wcoList;
List *wcoExprs = NIL;
ListCell *ll;
- int firstVarno = mtstate->resultRelInfo[0].ri_RangeTableIndex;
/*
* In the case of INSERT on a partitioned table, there is only one
@@ -438,7 +438,6 @@ ExecInitPartitionInfo(ModifyTableState *mtstate,
TupleTableSlot *slot;
ExprContext *econtext;
List *returningList;
- int firstVarno = mtstate->resultRelInfo[0].ri_RangeTableIndex;
/* See the comment above for WCO lists. */
Assert((node->operation == CMD_INSERT &&
@@ -496,7 +495,6 @@ ExecInitPartitionInfo(ModifyTableState *mtstate,
if (node && node->onConflictAction != ONCONFLICT_NONE)
{
TupleConversionMap *map = proute->parent_child_tupconv_maps[partidx];
- int firstVarno = mtstate->resultRelInfo[0].ri_RangeTableIndex;
TupleDesc partrelDesc = RelationGetDescr(partrel);
ExprContext *econtext = mtstate->ps.ps_ExprContext;
ListCell *lc;