Skip to content

Commit 8f152b6

Browse files
committed
Code simplification
Initialize TriggerData to 0 for the whole struct together, instead of each field separately. Reviewed-by: Daniel Gustafsson <daniel@yesql.se> Discussion: https://www.postgresql.org/message-id/flat/11c5f156-67a9-0fb5-8200-2a8018eb2e0c@2ndquadrant.com
1 parent ef34ab4 commit 8f152b6

File tree

2 files changed

+12
-70
lines changed

2 files changed

+12
-70
lines changed

src/backend/commands/tablecmds.c

Lines changed: 1 addition & 3 deletions
Original file line numberDiff line numberDiff line change
@@ -10264,7 +10264,7 @@ validateForeignKeyConstraint(char *conname,
1026410264
while (table_scan_getnextslot(scan, ForwardScanDirection, slot))
1026510265
{
1026610266
LOCAL_FCINFO(fcinfo, 0);
10267-
TriggerData trigdata;
10267+
TriggerData trigdata = {0};
1026810268

1026910269
CHECK_FOR_INTERRUPTS();
1027010270

@@ -10283,8 +10283,6 @@ validateForeignKeyConstraint(char *conname,
1028310283
trigdata.tg_relation = rel;
1028410284
trigdata.tg_trigtuple = ExecFetchSlotHeapTuple(slot, false, NULL);
1028510285
trigdata.tg_trigslot = slot;
10286-
trigdata.tg_newtuple = NULL;
10287-
trigdata.tg_newslot = NULL;
1028810286
trigdata.tg_trigger = &trig;
1028910287

1029010288
fcinfo->context = (Node *) &trigdata;

src/backend/commands/trigger.c

Lines changed: 11 additions & 67 deletions
Original file line numberDiff line numberDiff line change
@@ -2140,7 +2140,7 @@ ExecBSInsertTriggers(EState *estate, ResultRelInfo *relinfo)
21402140
{
21412141
TriggerDesc *trigdesc;
21422142
int i;
2143-
TriggerData LocTriggerData;
2143+
TriggerData LocTriggerData = {0};
21442144

21452145
trigdesc = relinfo->ri_TrigDesc;
21462146

@@ -2158,12 +2158,6 @@ ExecBSInsertTriggers(EState *estate, ResultRelInfo *relinfo)
21582158
LocTriggerData.tg_event = TRIGGER_EVENT_INSERT |
21592159
TRIGGER_EVENT_BEFORE;
21602160
LocTriggerData.tg_relation = relinfo->ri_RelationDesc;
2161-
LocTriggerData.tg_trigtuple = NULL;
2162-
LocTriggerData.tg_newtuple = NULL;
2163-
LocTriggerData.tg_trigslot = NULL;
2164-
LocTriggerData.tg_newslot = NULL;
2165-
LocTriggerData.tg_oldtable = NULL;
2166-
LocTriggerData.tg_newtable = NULL;
21672161
for (i = 0; i < trigdesc->numtriggers; i++)
21682162
{
21692163
Trigger *trigger = &trigdesc->triggers[i];
@@ -2210,20 +2204,14 @@ ExecBRInsertTriggers(EState *estate, ResultRelInfo *relinfo,
22102204
TriggerDesc *trigdesc = relinfo->ri_TrigDesc;
22112205
HeapTuple newtuple = NULL;
22122206
bool should_free;
2213-
TriggerData LocTriggerData;
2207+
TriggerData LocTriggerData = {0};
22142208
int i;
22152209

22162210
LocTriggerData.type = T_TriggerData;
22172211
LocTriggerData.tg_event = TRIGGER_EVENT_INSERT |
22182212
TRIGGER_EVENT_ROW |
22192213
TRIGGER_EVENT_BEFORE;
22202214
LocTriggerData.tg_relation = relinfo->ri_RelationDesc;
2221-
LocTriggerData.tg_trigtuple = NULL;
2222-
LocTriggerData.tg_newtuple = NULL;
2223-
LocTriggerData.tg_trigslot = NULL;
2224-
LocTriggerData.tg_newslot = NULL;
2225-
LocTriggerData.tg_oldtable = NULL;
2226-
LocTriggerData.tg_newtable = NULL;
22272215
for (i = 0; i < trigdesc->numtriggers; i++)
22282216
{
22292217
Trigger *trigger = &trigdesc->triggers[i];
@@ -2292,20 +2280,14 @@ ExecIRInsertTriggers(EState *estate, ResultRelInfo *relinfo,
22922280
TriggerDesc *trigdesc = relinfo->ri_TrigDesc;
22932281
HeapTuple newtuple = NULL;
22942282
bool should_free;
2295-
TriggerData LocTriggerData;
2283+
TriggerData LocTriggerData = {0};
22962284
int i;
22972285

22982286
LocTriggerData.type = T_TriggerData;
22992287
LocTriggerData.tg_event = TRIGGER_EVENT_INSERT |
23002288
TRIGGER_EVENT_ROW |
23012289
TRIGGER_EVENT_INSTEAD;
23022290
LocTriggerData.tg_relation = relinfo->ri_RelationDesc;
2303-
LocTriggerData.tg_trigtuple = NULL;
2304-
LocTriggerData.tg_newtuple = NULL;
2305-
LocTriggerData.tg_trigslot = NULL;
2306-
LocTriggerData.tg_newslot = NULL;
2307-
LocTriggerData.tg_oldtable = NULL;
2308-
LocTriggerData.tg_newtable = NULL;
23092291
for (i = 0; i < trigdesc->numtriggers; i++)
23102292
{
23112293
Trigger *trigger = &trigdesc->triggers[i];
@@ -2357,7 +2339,7 @@ ExecBSDeleteTriggers(EState *estate, ResultRelInfo *relinfo)
23572339
{
23582340
TriggerDesc *trigdesc;
23592341
int i;
2360-
TriggerData LocTriggerData;
2342+
TriggerData LocTriggerData = {0};
23612343

23622344
trigdesc = relinfo->ri_TrigDesc;
23632345

@@ -2375,12 +2357,6 @@ ExecBSDeleteTriggers(EState *estate, ResultRelInfo *relinfo)
23752357
LocTriggerData.tg_event = TRIGGER_EVENT_DELETE |
23762358
TRIGGER_EVENT_BEFORE;
23772359
LocTriggerData.tg_relation = relinfo->ri_RelationDesc;
2378-
LocTriggerData.tg_trigtuple = NULL;
2379-
LocTriggerData.tg_newtuple = NULL;
2380-
LocTriggerData.tg_trigslot = NULL;
2381-
LocTriggerData.tg_newslot = NULL;
2382-
LocTriggerData.tg_oldtable = NULL;
2383-
LocTriggerData.tg_newtable = NULL;
23842360
for (i = 0; i < trigdesc->numtriggers; i++)
23852361
{
23862362
Trigger *trigger = &trigdesc->triggers[i];
@@ -2437,7 +2413,7 @@ ExecBRDeleteTriggers(EState *estate, EPQState *epqstate,
24372413
TupleTableSlot *slot = ExecGetTriggerOldSlot(estate, relinfo);
24382414
TriggerDesc *trigdesc = relinfo->ri_TrigDesc;
24392415
bool result = true;
2440-
TriggerData LocTriggerData;
2416+
TriggerData LocTriggerData = {0};
24412417
HeapTuple trigtuple;
24422418
bool should_free = false;
24432419
int i;
@@ -2476,12 +2452,6 @@ ExecBRDeleteTriggers(EState *estate, EPQState *epqstate,
24762452
TRIGGER_EVENT_ROW |
24772453
TRIGGER_EVENT_BEFORE;
24782454
LocTriggerData.tg_relation = relinfo->ri_RelationDesc;
2479-
LocTriggerData.tg_trigtuple = NULL;
2480-
LocTriggerData.tg_newtuple = NULL;
2481-
LocTriggerData.tg_trigslot = NULL;
2482-
LocTriggerData.tg_newslot = NULL;
2483-
LocTriggerData.tg_oldtable = NULL;
2484-
LocTriggerData.tg_newtable = NULL;
24852455
for (i = 0; i < trigdesc->numtriggers; i++)
24862456
{
24872457
HeapTuple newtuple;
@@ -2554,20 +2524,14 @@ ExecIRDeleteTriggers(EState *estate, ResultRelInfo *relinfo,
25542524
{
25552525
TriggerDesc *trigdesc = relinfo->ri_TrigDesc;
25562526
TupleTableSlot *slot = ExecGetTriggerOldSlot(estate, relinfo);
2557-
TriggerData LocTriggerData;
2527+
TriggerData LocTriggerData = {0};
25582528
int i;
25592529

25602530
LocTriggerData.type = T_TriggerData;
25612531
LocTriggerData.tg_event = TRIGGER_EVENT_DELETE |
25622532
TRIGGER_EVENT_ROW |
25632533
TRIGGER_EVENT_INSTEAD;
25642534
LocTriggerData.tg_relation = relinfo->ri_RelationDesc;
2565-
LocTriggerData.tg_trigtuple = NULL;
2566-
LocTriggerData.tg_newtuple = NULL;
2567-
LocTriggerData.tg_trigslot = NULL;
2568-
LocTriggerData.tg_newslot = NULL;
2569-
LocTriggerData.tg_oldtable = NULL;
2570-
LocTriggerData.tg_newtable = NULL;
25712535

25722536
ExecForceStoreHeapTuple(trigtuple, slot, false);
25732537

@@ -2606,7 +2570,7 @@ ExecBSUpdateTriggers(EState *estate, ResultRelInfo *relinfo)
26062570
{
26072571
TriggerDesc *trigdesc;
26082572
int i;
2609-
TriggerData LocTriggerData;
2573+
TriggerData LocTriggerData = {0};
26102574
Bitmapset *updatedCols;
26112575

26122576
trigdesc = relinfo->ri_TrigDesc;
@@ -2627,12 +2591,6 @@ ExecBSUpdateTriggers(EState *estate, ResultRelInfo *relinfo)
26272591
LocTriggerData.tg_event = TRIGGER_EVENT_UPDATE |
26282592
TRIGGER_EVENT_BEFORE;
26292593
LocTriggerData.tg_relation = relinfo->ri_RelationDesc;
2630-
LocTriggerData.tg_trigtuple = NULL;
2631-
LocTriggerData.tg_newtuple = NULL;
2632-
LocTriggerData.tg_trigslot = NULL;
2633-
LocTriggerData.tg_newslot = NULL;
2634-
LocTriggerData.tg_oldtable = NULL;
2635-
LocTriggerData.tg_newtable = NULL;
26362594
for (i = 0; i < trigdesc->numtriggers; i++)
26372595
{
26382596
Trigger *trigger = &trigdesc->triggers[i];
@@ -2687,7 +2645,7 @@ ExecBRUpdateTriggers(EState *estate, EPQState *epqstate,
26872645
HeapTuple trigtuple;
26882646
bool should_free_trig = false;
26892647
bool should_free_new = false;
2690-
TriggerData LocTriggerData;
2648+
TriggerData LocTriggerData = {0};
26912649
int i;
26922650
Bitmapset *updatedCols;
26932651
LockTupleMode lockmode;
@@ -2740,8 +2698,6 @@ ExecBRUpdateTriggers(EState *estate, EPQState *epqstate,
27402698
TRIGGER_EVENT_ROW |
27412699
TRIGGER_EVENT_BEFORE;
27422700
LocTriggerData.tg_relation = relinfo->ri_RelationDesc;
2743-
LocTriggerData.tg_oldtable = NULL;
2744-
LocTriggerData.tg_newtable = NULL;
27452701
updatedCols = GetAllUpdatedColumns(relinfo, estate);
27462702
for (i = 0; i < trigdesc->numtriggers; i++)
27472703
{
@@ -2855,16 +2811,14 @@ ExecIRUpdateTriggers(EState *estate, ResultRelInfo *relinfo,
28552811
TupleTableSlot *oldslot = ExecGetTriggerOldSlot(estate, relinfo);
28562812
HeapTuple newtuple = NULL;
28572813
bool should_free;
2858-
TriggerData LocTriggerData;
2814+
TriggerData LocTriggerData = {0};
28592815
int i;
28602816

28612817
LocTriggerData.type = T_TriggerData;
28622818
LocTriggerData.tg_event = TRIGGER_EVENT_UPDATE |
28632819
TRIGGER_EVENT_ROW |
28642820
TRIGGER_EVENT_INSTEAD;
28652821
LocTriggerData.tg_relation = relinfo->ri_RelationDesc;
2866-
LocTriggerData.tg_oldtable = NULL;
2867-
LocTriggerData.tg_newtable = NULL;
28682822

28692823
ExecForceStoreHeapTuple(trigtuple, oldslot, false);
28702824

@@ -2920,7 +2874,7 @@ ExecBSTruncateTriggers(EState *estate, ResultRelInfo *relinfo)
29202874
{
29212875
TriggerDesc *trigdesc;
29222876
int i;
2923-
TriggerData LocTriggerData;
2877+
TriggerData LocTriggerData = {0};
29242878

29252879
trigdesc = relinfo->ri_TrigDesc;
29262880

@@ -2933,12 +2887,6 @@ ExecBSTruncateTriggers(EState *estate, ResultRelInfo *relinfo)
29332887
LocTriggerData.tg_event = TRIGGER_EVENT_TRUNCATE |
29342888
TRIGGER_EVENT_BEFORE;
29352889
LocTriggerData.tg_relation = relinfo->ri_RelationDesc;
2936-
LocTriggerData.tg_trigtuple = NULL;
2937-
LocTriggerData.tg_newtuple = NULL;
2938-
LocTriggerData.tg_trigslot = NULL;
2939-
LocTriggerData.tg_newslot = NULL;
2940-
LocTriggerData.tg_oldtable = NULL;
2941-
LocTriggerData.tg_newtable = NULL;
29422890

29432891
for (i = 0; i < trigdesc->numtriggers; i++)
29442892
{
@@ -3864,7 +3812,7 @@ AfterTriggerExecute(EState *estate,
38643812
Relation rel = relInfo->ri_RelationDesc;
38653813
AfterTriggerShared evtshared = GetTriggerSharedData(event);
38663814
Oid tgoid = evtshared->ats_tgoid;
3867-
TriggerData LocTriggerData;
3815+
TriggerData LocTriggerData = {0};
38683816
HeapTuple rettuple;
38693817
int tgindx;
38703818
bool should_free_trig = false;
@@ -3873,10 +3821,6 @@ AfterTriggerExecute(EState *estate,
38733821
/*
38743822
* Locate trigger in trigdesc.
38753823
*/
3876-
LocTriggerData.tg_trigger = NULL;
3877-
LocTriggerData.tg_trigslot = NULL;
3878-
LocTriggerData.tg_newslot = NULL;
3879-
38803824
for (tgindx = 0; tgindx < trigdesc->numtriggers; tgindx++)
38813825
{
38823826
if (trigdesc->triggers[tgindx].tgoid == tgoid)

0 commit comments

Comments
 (0)
pFad - Phonifier reborn

Pfad - The Proxy pFad of © 2024 Garber Painting. All rights reserved.

Note: This service is not intended for secure transactions such as banking, social media, email, or purchasing. Use at your own risk. We assume no liability whatsoever for broken pages.


Alternative Proxies:

Alternative Proxy

pFad Proxy

pFad v3 Proxy

pFad v4 Proxy