From: | Zhihong Yu <zyu(at)yugabyte(dot)com> |
---|---|
To: | PostgreSQL-development <pgsql-hackers(at)postgresql(dot)org> |
Subject: | closing heap relation |
Date: | 2021-07-13 22:13:57 |
Message-ID: | CALNJ-vT3V90Dk9XrTuDVsCgXKaoaBABKbfw9hhxzW717xpHz1Q@mail.gmail.com |
Views: | Raw Message | Whole Thread | Download mbox | Resend email |
Thread: | |
Lists: | pgsql-hackers |
Hi,
I was looking at index_drop() in PG 11 branch.
In if (concurrent)block, the heap and index relations are overwritten since
they were opened a few lines above the concurrent check.
Shouldn't the two relations be closed first ?
thanks
diff --git a/src/backend/catalog/index.c b/src/backend/catalog/index.c
index 9d8f873944..625b72ae85 100644
--- a/src/backend/catalog/index.c
+++ b/src/backend/catalog/index.c
@@ -1641,6 +1641,9 @@ index_drop(Oid indexId, bool concurrent)
* conflicts with existing predicate locks, so now is the
time to move
* them to the heap relation.
*/
+ heap_close(userHeapRelation, NoLock);
+ index_close(userIndexRelation, NoLock);
+
userHeapRelation = heap_open(heapId,
ShareUpdateExclusiveLock);
userIndexRelation = index_open(indexId,
ShareUpdateExclusiveLock);
TransferPredicateLocksToHeapRelation(userIndexRelation);
From | Date | Subject | |
---|---|---|---|
Next Message | Tom Lane | 2021-07-13 22:16:21 | Re: psql - factor out echo code |
Previous Message | Tomas Vondra | 2021-07-13 21:57:10 | Re: proposal: possibility to read dumped table's name from file |