1
0
mirror of https://github.com/postgres/postgres.git synced 2025-05-03 22:24:49 +03:00

Don't try to use a unopened relation

Commit 4c9d0901 mistakenly introduced a call to
TransferPredicateLocksToHeapRelation() on an index relation that had
been closed a few lines above.  Moving up an index_open() call that's
below is enough to fix the problem.

Discovered by me while testing an unrelated patch.
This commit is contained in:
Alvaro Herrera 2012-11-07 16:23:39 -03:00
parent 663c68f0e9
commit 9eb80f2ca7

View File

@ -1464,6 +1464,8 @@ index_drop(Oid indexId, bool concurrent)
* conflicts with existing predicate locks, so now is the time to move * conflicts with existing predicate locks, so now is the time to move
* them to the heap relation. * them to the heap relation.
*/ */
userHeapRelation = heap_open(heapId, ShareUpdateExclusiveLock);
userIndexRelation = index_open(indexId, ShareUpdateExclusiveLock);
TransferPredicateLocksToHeapRelation(userIndexRelation); TransferPredicateLocksToHeapRelation(userIndexRelation);
/* /*
@ -1473,9 +1475,6 @@ index_drop(Oid indexId, bool concurrent)
*/ */
indexRelation = heap_open(IndexRelationId, RowExclusiveLock); indexRelation = heap_open(IndexRelationId, RowExclusiveLock);
userHeapRelation = heap_open(heapId, ShareUpdateExclusiveLock);
userIndexRelation = index_open(indexId, ShareUpdateExclusiveLock);
tuple = SearchSysCacheCopy1(INDEXRELID, tuple = SearchSysCacheCopy1(INDEXRELID,
ObjectIdGetDatum(indexId)); ObjectIdGetDatum(indexId));
if (!HeapTupleIsValid(tuple)) if (!HeapTupleIsValid(tuple))