Skip to content

Commit 1c14261

Browse files
committed
Fix lock level used for partition when detaching it
For probably bogus reasons, we acquire only AccessShareLock on the partition when we try to detach it from its parent partitioned table. This can cause ugly things to happen if another transaction is doing any sort of DDL to the partition concurrently. Upgrade that lock to ShareUpdateExclusiveLock, which per discussion seems to be the minimum needed. Reported by Robert Haas. Discussion: https://postgr.es/m/CA+TgmoYruJQ+2qnFLtF1xQtr71pdwgfxy3Ziy-TxV28M6pEmyA@mail.gmail.com
1 parent 164d439 commit 1c14261

File tree

1 file changed

+1
-1
lines changed

1 file changed

+1
-1
lines changed

src/backend/commands/tablecmds.c

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -13865,7 +13865,7 @@ ATExecDetachPartition(Relation rel, RangeVar *name)
1386513865
new_repl[Natts_pg_class];
1386613866
ObjectAddress address;
1386713867

13868-
partRel = heap_openrv(name, AccessShareLock);
13868+
partRel = heap_openrv(name, ShareUpdateExclusiveLock);
1386913869

1387013870
/* All inheritance related checks are performed within the function */
1387113871
RemoveInheritance(partRel, rel);

0 commit comments

Comments
 (0)