From 7c55c41a8371de08fa38a7afadc46cd99db8c3a0 Mon Sep 17 00:00:00 2001 From: Sait Talha Nisanci Date: Mon, 16 Aug 2021 13:23:05 +0300 Subject: [PATCH] Get the table-level locks before the advisory lock --- src/backend/distributed/commands/table.c | 7 ++++++- 1 file changed, 6 insertions(+), 1 deletion(-) diff --git a/src/backend/distributed/commands/table.c b/src/backend/distributed/commands/table.c index aa4fc9494..aa05247f9 100644 --- a/src/backend/distributed/commands/table.c +++ b/src/backend/distributed/commands/table.c @@ -139,7 +139,12 @@ PreprocessDropTableStmt(Node *node, const char *queryString, continue; } - LockParentShardResourcesForShardsOfPartition(relationId); + if(PartitionTable(relationId)) { + Oid parentId = PartitionParentOid(relationId); + LockRelationOid(parentId, AccessExclusiveLock); + LockRelationOid(relationId, AccessExclusiveLock); + LockParentShardResourcesForShardsOfPartition(relationId); + } if (IsCitusTableType(relationId, REFERENCE_TABLE)) {