@@ -72,6 +72,9 @@ typedef struct EventTriggerQueryState
7272
7373static EventTriggerQueryState * currentEventTriggerState = NULL ;
7474
75+ /* GUC parameter */
76+ bool event_triggers = true;
77+
7578/* Support for dropped objects */
7679typedef struct SQLDropObject
7780{
@@ -657,8 +660,11 @@ EventTriggerDDLCommandStart(Node *parsetree)
657660 * wherein event triggers are disabled. (Or we could implement
658661 * heapscan-and-sort logic for that case, but having disaster recovery
659662 * scenarios depend on code that's otherwise untested isn't appetizing.)
663+ *
664+ * Additionally, event triggers can be disabled with a superuser-only GUC
665+ * to make fixing database easier as per 1 above.
660666 */
661- if (!IsUnderPostmaster )
667+ if (!IsUnderPostmaster || ! event_triggers )
662668 return ;
663669
664670 runlist = EventTriggerCommonSetup (parsetree ,
@@ -692,9 +698,9 @@ EventTriggerDDLCommandEnd(Node *parsetree)
692698
693699 /*
694700 * See EventTriggerDDLCommandStart for a discussion about why event
695- * triggers are disabled in single user mode.
701+ * triggers are disabled in single user mode or via GUC .
696702 */
697- if (!IsUnderPostmaster )
703+ if (!IsUnderPostmaster || ! event_triggers )
698704 return ;
699705
700706 /*
@@ -740,9 +746,9 @@ EventTriggerSQLDrop(Node *parsetree)
740746
741747 /*
742748 * See EventTriggerDDLCommandStart for a discussion about why event
743- * triggers are disabled in single user mode.
749+ * triggers are disabled in single user mode or via a GUC .
744750 */
745- if (!IsUnderPostmaster )
751+ if (!IsUnderPostmaster || ! event_triggers )
746752 return ;
747753
748754 /*
@@ -811,9 +817,9 @@ EventTriggerTableRewrite(Node *parsetree, Oid tableOid, int reason)
811817
812818 /*
813819 * See EventTriggerDDLCommandStart for a discussion about why event
814- * triggers are disabled in single user mode.
820+ * triggers are disabled in single user mode or via a GUC .
815821 */
816- if (!IsUnderPostmaster )
822+ if (!IsUnderPostmaster || ! event_triggers )
817823 return ;
818824
819825 /*
0 commit comments