aboutsummaryrefslogtreecommitdiff
path: root/src/include/commands/trigger.h
diff options
context:
space:
mode:
authorAlvaro Herrera <alvherre@alvh.no-ip.org>2021-07-16 13:01:43 -0400
committerAlvaro Herrera <alvherre@alvh.no-ip.org>2021-07-16 13:01:43 -0400
commiteef92de11e50837e4a0d02fc7269fdba7c97e583 (patch)
tree7b28bd852f029ad9e8d3892618877995f8016d5e /src/include/commands/trigger.h
parente5bcbb10707b844471c67d5e5fd8226d1891ee97 (diff)
downloadpostgresql-eef92de11e50837e4a0d02fc7269fdba7c97e583.tar.gz
postgresql-eef92de11e50837e4a0d02fc7269fdba7c97e583.zip
Preserve firing-on state when cloning row triggers to partitions
When triggers are cloned from partitioned tables to their partitions, the 'tgenabled' flag (origin/replica/always/disable) was not propagated. Make it so that the flag on the trigger on partition is initially set to the same value as on the partitioned table. Add a test case to verify the behavior. Backpatch to 11, where this appeared in commit 86f575948c77. Author: Álvaro Herrera <alvherre@alvh.no-ip.org> Reported-by: Justin Pryzby <pryzby@telsasoft.com> Discussion: https://postgr.es/m/20200930223450.GA14848@telsasoft.com
Diffstat (limited to 'src/include/commands/trigger.h')
-rw-r--r--src/include/commands/trigger.h5
1 files changed, 5 insertions, 0 deletions
diff --git a/src/include/commands/trigger.h b/src/include/commands/trigger.h
index 9e557cfbce3..9ef7f6d7685 100644
--- a/src/include/commands/trigger.h
+++ b/src/include/commands/trigger.h
@@ -154,6 +154,11 @@ extern ObjectAddress CreateTrigger(CreateTrigStmt *stmt, const char *queryString
Oid relOid, Oid refRelOid, Oid constraintOid, Oid indexOid,
Oid funcoid, Oid parentTriggerOid, Node *whenClause,
bool isInternal, bool in_partition);
+extern ObjectAddress CreateTriggerFiringOn(CreateTrigStmt *stmt, const char *queryString,
+ Oid relOid, Oid refRelOid, Oid constraintOid,
+ Oid indexOid, Oid funcoid, Oid parentTriggerOid,
+ Node *whenClause, bool isInternal, bool in_partition,
+ char trigger_fires_when);
extern void RemoveTriggerById(Oid trigOid);
extern Oid get_trigger_oid(Oid relid, const char *name, bool missing_ok);