diff options
author | Simon Riggs <simon@2ndQuadrant.com> | 2015-04-05 11:37:08 -0400 |
---|---|---|
committer | Simon Riggs <simon@2ndQuadrant.com> | 2015-04-05 11:37:08 -0400 |
commit | 0ef0396ae1687bf738d4703773d55467c36b2bcd (patch) | |
tree | 451d674fdb2860511bb3f006bba2176263245c3f /src/backend/commands/trigger.c | |
parent | ca6805338fba010cc3f8b842905d7a62e280b7ab (diff) | |
download | postgresql-0ef0396ae1687bf738d4703773d55467c36b2bcd.tar.gz postgresql-0ef0396ae1687bf738d4703773d55467c36b2bcd.zip |
Reduce lock levels of some trigger DDL and add FKs
Reduce lock levels to ShareRowExclusive for the following SQL
CREATE TRIGGER (but not DROP or ALTER)
ALTER TABLE ENABLE TRIGGER
ALTER TABLE DISABLE TRIGGER
ALTER TABLE … ADD CONSTRAINT FOREIGN KEY
Original work by Simon Riggs, extracted and refreshed by Andreas Karlsson
New test cases added by Andreas Karlsson
Reviewed by Noah Misch, Andres Freund, Michael Paquier and Simon Riggs
Diffstat (limited to 'src/backend/commands/trigger.c')
-rw-r--r-- | src/backend/commands/trigger.c | 4 |
1 files changed, 2 insertions, 2 deletions
diff --git a/src/backend/commands/trigger.c b/src/backend/commands/trigger.c index e491c5ba772..098893f4944 100644 --- a/src/backend/commands/trigger.c +++ b/src/backend/commands/trigger.c @@ -165,9 +165,9 @@ CreateTrigger(CreateTrigStmt *stmt, const char *queryString, referenced; if (OidIsValid(relOid)) - rel = heap_open(relOid, AccessExclusiveLock); + rel = heap_open(relOid, ShareRowExclusiveLock); else - rel = heap_openrv(stmt->relation, AccessExclusiveLock); + rel = heap_openrv(stmt->relation, ShareRowExclusiveLock); /* * Triggers must be on tables or views, and there are additional |