From 8f152b6c50c764d4c300e73a535da88cd1b18fa5 Mon Sep 17 00:00:00 2001 From: Peter Eisentraut Date: Mon, 24 Feb 2020 10:12:10 +0100 Subject: [PATCH] Code simplification Initialize TriggerData to 0 for the whole struct together, instead of each field separately. Reviewed-by: Daniel Gustafsson Discussion: https://www.postgresql.org/message-id/flat/11c5f156-67a9-0fb5-8200-2a8018eb2e0c@2ndquadrant.com --- src/backend/commands/tablecmds.c | 4 +- src/backend/commands/trigger.c | 78 +++++--------------------------- 2 files changed, 12 insertions(+), 70 deletions(-) diff --git a/src/backend/commands/tablecmds.c b/src/backend/commands/tablecmds.c index 7a13b971649..3eb861bfbf9 100644 --- a/src/backend/commands/tablecmds.c +++ b/src/backend/commands/tablecmds.c @@ -10264,7 +10264,7 @@ validateForeignKeyConstraint(char *conname, while (table_scan_getnextslot(scan, ForwardScanDirection, slot)) { LOCAL_FCINFO(fcinfo, 0); - TriggerData trigdata; + TriggerData trigdata = {0}; CHECK_FOR_INTERRUPTS(); @@ -10283,8 +10283,6 @@ validateForeignKeyConstraint(char *conname, trigdata.tg_relation = rel; trigdata.tg_trigtuple = ExecFetchSlotHeapTuple(slot, false, NULL); trigdata.tg_trigslot = slot; - trigdata.tg_newtuple = NULL; - trigdata.tg_newslot = NULL; trigdata.tg_trigger = &trig; fcinfo->context = (Node *) &trigdata; diff --git a/src/backend/commands/trigger.c b/src/backend/commands/trigger.c index b408efb11ea..325228c4eb1 100644 --- a/src/backend/commands/trigger.c +++ b/src/backend/commands/trigger.c @@ -2140,7 +2140,7 @@ ExecBSInsertTriggers(EState *estate, ResultRelInfo *relinfo) { TriggerDesc *trigdesc; int i; - TriggerData LocTriggerData; + TriggerData LocTriggerData = {0}; trigdesc = relinfo->ri_TrigDesc; @@ -2158,12 +2158,6 @@ ExecBSInsertTriggers(EState *estate, ResultRelInfo *relinfo) LocTriggerData.tg_event = TRIGGER_EVENT_INSERT | TRIGGER_EVENT_BEFORE; LocTriggerData.tg_relation = relinfo->ri_RelationDesc; - LocTriggerData.tg_trigtuple = NULL; - LocTriggerData.tg_newtuple = NULL; - LocTriggerData.tg_trigslot = NULL; - LocTriggerData.tg_newslot = NULL; - LocTriggerData.tg_oldtable = NULL; - LocTriggerData.tg_newtable = NULL; for (i = 0; i < trigdesc->numtriggers; i++) { Trigger *trigger = &trigdesc->triggers[i]; @@ -2210,7 +2204,7 @@ ExecBRInsertTriggers(EState *estate, ResultRelInfo *relinfo, TriggerDesc *trigdesc = relinfo->ri_TrigDesc; HeapTuple newtuple = NULL; bool should_free; - TriggerData LocTriggerData; + TriggerData LocTriggerData = {0}; int i; LocTriggerData.type = T_TriggerData; @@ -2218,12 +2212,6 @@ ExecBRInsertTriggers(EState *estate, ResultRelInfo *relinfo, TRIGGER_EVENT_ROW | TRIGGER_EVENT_BEFORE; LocTriggerData.tg_relation = relinfo->ri_RelationDesc; - LocTriggerData.tg_trigtuple = NULL; - LocTriggerData.tg_newtuple = NULL; - LocTriggerData.tg_trigslot = NULL; - LocTriggerData.tg_newslot = NULL; - LocTriggerData.tg_oldtable = NULL; - LocTriggerData.tg_newtable = NULL; for (i = 0; i < trigdesc->numtriggers; i++) { Trigger *trigger = &trigdesc->triggers[i]; @@ -2292,7 +2280,7 @@ ExecIRInsertTriggers(EState *estate, ResultRelInfo *relinfo, TriggerDesc *trigdesc = relinfo->ri_TrigDesc; HeapTuple newtuple = NULL; bool should_free; - TriggerData LocTriggerData; + TriggerData LocTriggerData = {0}; int i; LocTriggerData.type = T_TriggerData; @@ -2300,12 +2288,6 @@ ExecIRInsertTriggers(EState *estate, ResultRelInfo *relinfo, TRIGGER_EVENT_ROW | TRIGGER_EVENT_INSTEAD; LocTriggerData.tg_relation = relinfo->ri_RelationDesc; - LocTriggerData.tg_trigtuple = NULL; - LocTriggerData.tg_newtuple = NULL; - LocTriggerData.tg_trigslot = NULL; - LocTriggerData.tg_newslot = NULL; - LocTriggerData.tg_oldtable = NULL; - LocTriggerData.tg_newtable = NULL; for (i = 0; i < trigdesc->numtriggers; i++) { Trigger *trigger = &trigdesc->triggers[i]; @@ -2357,7 +2339,7 @@ ExecBSDeleteTriggers(EState *estate, ResultRelInfo *relinfo) { TriggerDesc *trigdesc; int i; - TriggerData LocTriggerData; + TriggerData LocTriggerData = {0}; trigdesc = relinfo->ri_TrigDesc; @@ -2375,12 +2357,6 @@ ExecBSDeleteTriggers(EState *estate, ResultRelInfo *relinfo) LocTriggerData.tg_event = TRIGGER_EVENT_DELETE | TRIGGER_EVENT_BEFORE; LocTriggerData.tg_relation = relinfo->ri_RelationDesc; - LocTriggerData.tg_trigtuple = NULL; - LocTriggerData.tg_newtuple = NULL; - LocTriggerData.tg_trigslot = NULL; - LocTriggerData.tg_newslot = NULL; - LocTriggerData.tg_oldtable = NULL; - LocTriggerData.tg_newtable = NULL; for (i = 0; i < trigdesc->numtriggers; i++) { Trigger *trigger = &trigdesc->triggers[i]; @@ -2437,7 +2413,7 @@ ExecBRDeleteTriggers(EState *estate, EPQState *epqstate, TupleTableSlot *slot = ExecGetTriggerOldSlot(estate, relinfo); TriggerDesc *trigdesc = relinfo->ri_TrigDesc; bool result = true; - TriggerData LocTriggerData; + TriggerData LocTriggerData = {0}; HeapTuple trigtuple; bool should_free = false; int i; @@ -2476,12 +2452,6 @@ ExecBRDeleteTriggers(EState *estate, EPQState *epqstate, TRIGGER_EVENT_ROW | TRIGGER_EVENT_BEFORE; LocTriggerData.tg_relation = relinfo->ri_RelationDesc; - LocTriggerData.tg_trigtuple = NULL; - LocTriggerData.tg_newtuple = NULL; - LocTriggerData.tg_trigslot = NULL; - LocTriggerData.tg_newslot = NULL; - LocTriggerData.tg_oldtable = NULL; - LocTriggerData.tg_newtable = NULL; for (i = 0; i < trigdesc->numtriggers; i++) { HeapTuple newtuple; @@ -2554,7 +2524,7 @@ ExecIRDeleteTriggers(EState *estate, ResultRelInfo *relinfo, { TriggerDesc *trigdesc = relinfo->ri_TrigDesc; TupleTableSlot *slot = ExecGetTriggerOldSlot(estate, relinfo); - TriggerData LocTriggerData; + TriggerData LocTriggerData = {0}; int i; LocTriggerData.type = T_TriggerData; @@ -2562,12 +2532,6 @@ ExecIRDeleteTriggers(EState *estate, ResultRelInfo *relinfo, TRIGGER_EVENT_ROW | TRIGGER_EVENT_INSTEAD; LocTriggerData.tg_relation = relinfo->ri_RelationDesc; - LocTriggerData.tg_trigtuple = NULL; - LocTriggerData.tg_newtuple = NULL; - LocTriggerData.tg_trigslot = NULL; - LocTriggerData.tg_newslot = NULL; - LocTriggerData.tg_oldtable = NULL; - LocTriggerData.tg_newtable = NULL; ExecForceStoreHeapTuple(trigtuple, slot, false); @@ -2606,7 +2570,7 @@ ExecBSUpdateTriggers(EState *estate, ResultRelInfo *relinfo) { TriggerDesc *trigdesc; int i; - TriggerData LocTriggerData; + TriggerData LocTriggerData = {0}; Bitmapset *updatedCols; trigdesc = relinfo->ri_TrigDesc; @@ -2627,12 +2591,6 @@ ExecBSUpdateTriggers(EState *estate, ResultRelInfo *relinfo) LocTriggerData.tg_event = TRIGGER_EVENT_UPDATE | TRIGGER_EVENT_BEFORE; LocTriggerData.tg_relation = relinfo->ri_RelationDesc; - LocTriggerData.tg_trigtuple = NULL; - LocTriggerData.tg_newtuple = NULL; - LocTriggerData.tg_trigslot = NULL; - LocTriggerData.tg_newslot = NULL; - LocTriggerData.tg_oldtable = NULL; - LocTriggerData.tg_newtable = NULL; for (i = 0; i < trigdesc->numtriggers; i++) { Trigger *trigger = &trigdesc->triggers[i]; @@ -2687,7 +2645,7 @@ ExecBRUpdateTriggers(EState *estate, EPQState *epqstate, HeapTuple trigtuple; bool should_free_trig = false; bool should_free_new = false; - TriggerData LocTriggerData; + TriggerData LocTriggerData = {0}; int i; Bitmapset *updatedCols; LockTupleMode lockmode; @@ -2740,8 +2698,6 @@ ExecBRUpdateTriggers(EState *estate, EPQState *epqstate, TRIGGER_EVENT_ROW | TRIGGER_EVENT_BEFORE; LocTriggerData.tg_relation = relinfo->ri_RelationDesc; - LocTriggerData.tg_oldtable = NULL; - LocTriggerData.tg_newtable = NULL; updatedCols = GetAllUpdatedColumns(relinfo, estate); for (i = 0; i < trigdesc->numtriggers; i++) { @@ -2855,7 +2811,7 @@ ExecIRUpdateTriggers(EState *estate, ResultRelInfo *relinfo, TupleTableSlot *oldslot = ExecGetTriggerOldSlot(estate, relinfo); HeapTuple newtuple = NULL; bool should_free; - TriggerData LocTriggerData; + TriggerData LocTriggerData = {0}; int i; LocTriggerData.type = T_TriggerData; @@ -2863,8 +2819,6 @@ ExecIRUpdateTriggers(EState *estate, ResultRelInfo *relinfo, TRIGGER_EVENT_ROW | TRIGGER_EVENT_INSTEAD; LocTriggerData.tg_relation = relinfo->ri_RelationDesc; - LocTriggerData.tg_oldtable = NULL; - LocTriggerData.tg_newtable = NULL; ExecForceStoreHeapTuple(trigtuple, oldslot, false); @@ -2920,7 +2874,7 @@ ExecBSTruncateTriggers(EState *estate, ResultRelInfo *relinfo) { TriggerDesc *trigdesc; int i; - TriggerData LocTriggerData; + TriggerData LocTriggerData = {0}; trigdesc = relinfo->ri_TrigDesc; @@ -2933,12 +2887,6 @@ ExecBSTruncateTriggers(EState *estate, ResultRelInfo *relinfo) LocTriggerData.tg_event = TRIGGER_EVENT_TRUNCATE | TRIGGER_EVENT_BEFORE; LocTriggerData.tg_relation = relinfo->ri_RelationDesc; - LocTriggerData.tg_trigtuple = NULL; - LocTriggerData.tg_newtuple = NULL; - LocTriggerData.tg_trigslot = NULL; - LocTriggerData.tg_newslot = NULL; - LocTriggerData.tg_oldtable = NULL; - LocTriggerData.tg_newtable = NULL; for (i = 0; i < trigdesc->numtriggers; i++) { @@ -3864,7 +3812,7 @@ AfterTriggerExecute(EState *estate, Relation rel = relInfo->ri_RelationDesc; AfterTriggerShared evtshared = GetTriggerSharedData(event); Oid tgoid = evtshared->ats_tgoid; - TriggerData LocTriggerData; + TriggerData LocTriggerData = {0}; HeapTuple rettuple; int tgindx; bool should_free_trig = false; @@ -3873,10 +3821,6 @@ AfterTriggerExecute(EState *estate, /* * Locate trigger in trigdesc. */ - LocTriggerData.tg_trigger = NULL; - LocTriggerData.tg_trigslot = NULL; - LocTriggerData.tg_newslot = NULL; - for (tgindx = 0; tgindx < trigdesc->numtriggers; tgindx++) { if (trigdesc->triggers[tgindx].tgoid == tgoid)