@@ -3452,7 +3452,6 @@ ExecModifyTable(PlanState *pstate)
3452
3452
ResultRelInfo * resultRelInfo ;
3453
3453
PlanState * subplanstate ;
3454
3454
TupleTableSlot * slot ;
3455
- TupleTableSlot * planSlot ;
3456
3455
TupleTableSlot * oldSlot ;
3457
3456
ItemPointerData tuple_ctid ;
3458
3457
HeapTupleData oldtupdata ;
@@ -3525,10 +3524,10 @@ ExecModifyTable(PlanState *pstate)
3525
3524
if (pstate -> ps_ExprContext )
3526
3525
ResetExprContext (pstate -> ps_ExprContext );
3527
3526
3528
- planSlot = ExecProcNode (subplanstate );
3527
+ context . planSlot = ExecProcNode (subplanstate );
3529
3528
3530
3529
/* No more tuples to process? */
3531
- if (TupIsNull (planSlot ))
3530
+ if (TupIsNull (context . planSlot ))
3532
3531
break ;
3533
3532
3534
3533
/*
@@ -3542,7 +3541,7 @@ ExecModifyTable(PlanState *pstate)
3542
3541
bool isNull ;
3543
3542
Oid resultoid ;
3544
3543
3545
- datum = ExecGetJunkAttribute (planSlot , node -> mt_resultOidAttno ,
3544
+ datum = ExecGetJunkAttribute (context . planSlot , node -> mt_resultOidAttno ,
3546
3545
& isNull );
3547
3546
if (isNull )
3548
3547
{
@@ -3556,9 +3555,8 @@ ExecModifyTable(PlanState *pstate)
3556
3555
*/
3557
3556
if (operation == CMD_MERGE )
3558
3557
{
3559
- EvalPlanQualSetSlot (& node -> mt_epqstate , planSlot );
3558
+ EvalPlanQualSetSlot (& node -> mt_epqstate , context . planSlot );
3560
3559
3561
- context .planSlot = planSlot ;
3562
3560
context .lockmode = 0 ;
3563
3561
3564
3562
ExecMerge (& context , node -> resultRelInfo , NULL , node -> canSetTag );
@@ -3589,13 +3587,13 @@ ExecModifyTable(PlanState *pstate)
3589
3587
* ExecProcessReturning by IterateDirectModify, so no need to
3590
3588
* provide it here.
3591
3589
*/
3592
- slot = ExecProcessReturning (resultRelInfo , NULL , planSlot );
3590
+ slot = ExecProcessReturning (resultRelInfo , NULL , context . planSlot );
3593
3591
3594
3592
return slot ;
3595
3593
}
3596
3594
3597
- EvalPlanQualSetSlot (& node -> mt_epqstate , planSlot );
3598
- slot = planSlot ;
3595
+ EvalPlanQualSetSlot (& node -> mt_epqstate , context . planSlot );
3596
+ slot = context . planSlot ;
3599
3597
3600
3598
tupleid = NULL ;
3601
3599
oldtuple = NULL ;
@@ -3637,9 +3635,8 @@ ExecModifyTable(PlanState *pstate)
3637
3635
{
3638
3636
if (operation == CMD_MERGE )
3639
3637
{
3640
- EvalPlanQualSetSlot (& node -> mt_epqstate , planSlot );
3638
+ EvalPlanQualSetSlot (& node -> mt_epqstate , context . planSlot );
3641
3639
3642
- context .planSlot = planSlot ;
3643
3640
context .lockmode = 0 ;
3644
3641
3645
3642
ExecMerge (& context , node -> resultRelInfo , NULL , node -> canSetTag );
@@ -3698,7 +3695,6 @@ ExecModifyTable(PlanState *pstate)
3698
3695
}
3699
3696
3700
3697
/* complete context setup */
3701
- context .planSlot = planSlot ;
3702
3698
context .lockmode = 0 ;
3703
3699
3704
3700
switch (operation )
@@ -3707,7 +3703,7 @@ ExecModifyTable(PlanState *pstate)
3707
3703
/* Initialize projection info if first time for this table */
3708
3704
if (unlikely (!resultRelInfo -> ri_projectNewInfoValid ))
3709
3705
ExecInitInsertProjection (node , resultRelInfo );
3710
- slot = ExecGetInsertNewTuple (resultRelInfo , planSlot );
3706
+ slot = ExecGetInsertNewTuple (resultRelInfo , context . planSlot );
3711
3707
slot = ExecInsert (& context , resultRelInfo , slot ,
3712
3708
node -> canSetTag , NULL , NULL );
3713
3709
break ;
@@ -3737,7 +3733,7 @@ ExecModifyTable(PlanState *pstate)
3737
3733
oldSlot ))
3738
3734
elog (ERROR , "failed to fetch tuple being updated" );
3739
3735
}
3740
- slot = internalGetUpdateNewTuple (resultRelInfo , planSlot ,
3736
+ slot = internalGetUpdateNewTuple (resultRelInfo , context . planSlot ,
3741
3737
oldSlot , NULL );
3742
3738
context .GetUpdateNewTuple = internalGetUpdateNewTuple ;
3743
3739
context .relaction = NULL ;
0 commit comments