aboutsummaryrefslogtreecommitdiff
diff options
context:
space:
mode:
-rw-r--r--src/backend/commands/indexcmds.c9
1 files changed, 5 insertions, 4 deletions
diff --git a/src/backend/commands/indexcmds.c b/src/backend/commands/indexcmds.c
index 943662f8f8b..d79e73f59d8 100644
--- a/src/backend/commands/indexcmds.c
+++ b/src/backend/commands/indexcmds.c
@@ -8,7 +8,7 @@
*
*
* IDENTIFICATION
- * $PostgreSQL: pgsql/src/backend/commands/indexcmds.c,v 1.161 2007/07/17 05:02:00 neilc Exp $
+ * $PostgreSQL: pgsql/src/backend/commands/indexcmds.c,v 1.162 2007/08/25 19:08:19 tgl Exp $
*
*-------------------------------------------------------------------------
*/
@@ -428,8 +428,6 @@ DefineIndex(RangeVar *heapRelation,
relationId, accessMethodName, accessMethodId,
amcanorder, isconstraint);
- heap_close(rel, NoLock);
-
/*
* Report index creation if appropriate (delay this till after most of the
* error checks)
@@ -441,6 +439,10 @@ DefineIndex(RangeVar *heapRelation,
primary ? "PRIMARY KEY" : "UNIQUE",
indexRelationName, RelationGetRelationName(rel))));
+ /* save lockrelid for below, then close rel */
+ heaprelid = rel->rd_lockInfo.lockRelId;
+ heap_close(rel, NoLock);
+
indexRelationId =
index_create(relationId, indexRelationName, indexRelationId,
indexInfo, accessMethodId, tablespaceId, classObjectId,
@@ -468,7 +470,6 @@ DefineIndex(RangeVar *heapRelation,
* because there are no operations that could change its state while we
* hold lock on the parent table. This might need to change later.
*/
- heaprelid = rel->rd_lockInfo.lockRelId;
LockRelationIdForSession(&heaprelid, ShareUpdateExclusiveLock);
CommitTransactionCommand();