Skip to content

Commit f24fd54

Browse files
Rahul Parandeayushdsh
authored andcommitted
[MANFRED-32408] Fixes after community commit e7391bbf14d
cr: https://code.amazon.com/reviews/CR-252311618 (cherry picked from commit f1f344a1a294bf55de264a4fff1ff3688b84459c)
1 parent 27c1f58 commit f24fd54

1 file changed

Lines changed: 36 additions & 7 deletions

File tree

src/backend/commands/trigger.c

Lines changed: 36 additions & 7 deletions
Original file line numberDiff line numberDiff line change
@@ -6564,18 +6564,24 @@ InsteadofTriggerSaveEvent(EState *estate, ResultRelInfo *relinfo,
65646564

65656565
if(event == TRIGGER_EVENT_DELETE)
65666566
{
6567-
old_tuplestore = transition_capture->tcs_private->old_del_tuplestore;
6567+
old_tuplestore = transition_capture->tcs_delete_private->old_tuplestore;
65686568
}
65696569
else if (event == TRIGGER_EVENT_UPDATE)
65706570
{
6571-
old_tuplestore = transition_capture->tcs_private->old_upd_tuplestore;
6571+
old_tuplestore = transition_capture->tcs_update_private->old_tuplestore;
65726572
}
65736573

65746574
if (map != NULL)
65756575
{
6576-
AfterTriggersTableData *table = transition_capture->tcs_private;
6576+
AfterTriggersTableData *table;
65776577
TupleTableSlot *storeslot;
65786578

6579+
/* Use appropriate private based on event type */
6580+
if (event == TRIGGER_EVENT_DELETE)
6581+
table = transition_capture->tcs_delete_private;
6582+
else
6583+
table = transition_capture->tcs_update_private;
6584+
65796585
storeslot = GetAfterTriggersStoreSlot(table, map->outdesc);
65806586
execute_attr_map_slot(map->attrMap, oldslot, storeslot);
65816587
tuplestore_puttupleslot(old_tuplestore, storeslot);
@@ -6592,21 +6598,27 @@ InsteadofTriggerSaveEvent(EState *estate, ResultRelInfo *relinfo,
65926598

65936599
if(event == TRIGGER_EVENT_INSERT)
65946600
{
6595-
new_tuplestore = transition_capture->tcs_private->new_ins_tuplestore;
6601+
new_tuplestore = transition_capture->tcs_insert_private->new_tuplestore;
65966602
}
65976603
else if (event == TRIGGER_EVENT_UPDATE)
65986604
{
6599-
new_tuplestore = transition_capture->tcs_private->new_upd_tuplestore;
6605+
new_tuplestore = transition_capture->tcs_update_private->new_tuplestore;
66006606
}
66016607

66026608
if (original_insert_tuple != NULL)
66036609
tuplestore_puttupleslot(new_tuplestore,
66046610
original_insert_tuple);
66056611
else if (map != NULL)
66066612
{
6607-
AfterTriggersTableData *table = transition_capture->tcs_private;
6613+
AfterTriggersTableData *table;
66086614
TupleTableSlot *storeslot;
66096615

6616+
/* Use appropriate private based on event type */
6617+
if (event == TRIGGER_EVENT_INSERT)
6618+
table = transition_capture->tcs_insert_private;
6619+
else
6620+
table = transition_capture->tcs_update_private;
6621+
66106622
storeslot = GetAfterTriggersStoreSlot(table, map->outdesc);
66116623
execute_attr_map_slot(map->attrMap, newslot, storeslot);
66126624
tuplestore_puttupleslot(new_tuplestore, storeslot);
@@ -6688,7 +6700,24 @@ InsteadofTriggerSaveEvent(EState *estate, ResultRelInfo *relinfo,
66886700
new_shared.ats_firing_id = 0;
66896701
if ((trigger->tgoldtable || trigger->tgnewtable) &&
66906702
transition_capture != NULL)
6691-
new_shared.ats_table = transition_capture->tcs_private;
6703+
{
6704+
/* Use appropriate private based on event type */
6705+
switch (event)
6706+
{
6707+
case TRIGGER_EVENT_INSERT:
6708+
new_shared.ats_table = transition_capture->tcs_insert_private;
6709+
break;
6710+
case TRIGGER_EVENT_UPDATE:
6711+
new_shared.ats_table = transition_capture->tcs_update_private;
6712+
break;
6713+
case TRIGGER_EVENT_DELETE:
6714+
new_shared.ats_table = transition_capture->tcs_delete_private;
6715+
break;
6716+
default:
6717+
new_shared.ats_table = NULL;
6718+
break;
6719+
}
6720+
}
66926721
else
66936722
new_shared.ats_table = NULL;
66946723
new_shared.ats_modifiedcols = modifiedCols;

0 commit comments

Comments
 (0)