aboutsummaryrefslogtreecommitdiff
path: root/src
diff options
context:
space:
mode:
Diffstat (limited to 'src')
-rw-r--r--src/backend/commands/tablecmds.c14
-rw-r--r--src/backend/commands/trigger.c11
2 files changed, 9 insertions, 16 deletions
diff --git a/src/backend/commands/tablecmds.c b/src/backend/commands/tablecmds.c
index 1a6c1f82625..7c19bcd3363 100644
--- a/src/backend/commands/tablecmds.c
+++ b/src/backend/commands/tablecmds.c
@@ -8,7 +8,7 @@
*
*
* IDENTIFICATION
- * $PostgreSQL: pgsql/src/backend/commands/tablecmds.c,v 1.149 2005/03/23 07:44:57 neilc Exp $
+ * $PostgreSQL: pgsql/src/backend/commands/tablecmds.c,v 1.150 2005/03/24 00:03:22 neilc Exp $
*
*-------------------------------------------------------------------------
*/
@@ -3829,13 +3829,13 @@ ATAddForeignKeyConstraint(AlteredTableInfo *tab, Relation rel,
Oid constrOid;
/*
- * Grab a lock on the pk table, so that someone doesn't delete
- * rows out from under us. We will eventually need to add triggers
- * to the table, at which point we'll need to an ExclusiveLock --
- * therefore we grab an ExclusiveLock now to prevent possible
- * deadlock.
+ * Grab an exclusive lock on the pk table, so that someone doesn't
+ * delete rows out from under us. (Although a lesser lock would do for
+ * that purpose, we'll need exclusive lock anyway to add triggers to
+ * the pk table; trying to start with a lesser lock will just create a
+ * risk of deadlock.)
*/
- pkrel = heap_openrv(fkconstraint->pktable, ExclusiveLock);
+ pkrel = heap_openrv(fkconstraint->pktable, AccessExclusiveLock);
/*
* Validity and permissions checks
diff --git a/src/backend/commands/trigger.c b/src/backend/commands/trigger.c
index 55333e1f4f1..54e0eac2688 100644
--- a/src/backend/commands/trigger.c
+++ b/src/backend/commands/trigger.c
@@ -7,7 +7,7 @@
* Portions Copyright (c) 1994, Regents of the University of California
*
* IDENTIFICATION
- * $PostgreSQL: pgsql/src/backend/commands/trigger.c,v 1.179 2005/03/23 07:44:57 neilc Exp $
+ * $PostgreSQL: pgsql/src/backend/commands/trigger.c,v 1.180 2005/03/24 00:03:26 neilc Exp $
*
*-------------------------------------------------------------------------
*/
@@ -87,14 +87,7 @@ CreateTrigger(CreateTrigStmt *stmt, bool forConstraint)
ObjectAddress myself,
referenced;
- /*
- * We need to prevent concurrent CREATE TRIGGER commands, as well
- * as concurrent table modifications (INSERT, DELETE, UPDATE), so
- * acquire an ExclusiveLock -- it should be fine to allow SELECTs
- * to proceed. We could perhaps acquire ShareRowExclusiveLock, but
- * there seems little gain in allowing SELECT FOR UPDATE.
- */
- rel = heap_openrv(stmt->relation, ExclusiveLock);
+ rel = heap_openrv(stmt->relation, AccessExclusiveLock);
if (stmt->constrrel != NULL)
constrrelid = RangeVarGetRelid(stmt->constrrel, false);