diff --git a/src/backend/catalog/index.c b/src/backend/catalog/index.c index 756f6d918b00d8ec909229ae2e8b4a8cc210e2ff..d2d91c1b786e3247ba3b289830e19896e4ea6a64 100644 --- a/src/backend/catalog/index.c +++ b/src/backend/catalog/index.c @@ -1475,6 +1475,8 @@ index_drop(Oid indexId, bool concurrent) * conflicts with existing predicate locks, so now is the time to move * them to the heap relation. */ + userHeapRelation = heap_open(heapId, ShareUpdateExclusiveLock); + userIndexRelation = index_open(indexId, ShareUpdateExclusiveLock); TransferPredicateLocksToHeapRelation(userIndexRelation); /* @@ -1484,9 +1486,6 @@ index_drop(Oid indexId, bool concurrent) */ indexRelation = heap_open(IndexRelationId, RowExclusiveLock); - userHeapRelation = heap_open(heapId, ShareUpdateExclusiveLock); - userIndexRelation = index_open(indexId, ShareUpdateExclusiveLock); - tuple = SearchSysCacheCopy1(INDEXRELID, ObjectIdGetDatum(indexId)); if (!HeapTupleIsValid(tuple))