From 0ef0396ae1687bf738d4703773d55467c36b2bcd Mon Sep 17 00:00:00 2001 From: Simon Riggs Date: Sun, 5 Apr 2015 11:37:08 -0400 Subject: Reduce lock levels of some trigger DDL and add FKs MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit 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 --- src/backend/commands/trigger.c | 4 ++-- 1 file changed, 2 insertions(+), 2 deletions(-) (limited to 'src/backend/commands/trigger.c') 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 -- cgit v1.2.3