diff --git a/src/gausskernel/optimizer/commands/tablecmds.cpp b/src/gausskernel/optimizer/commands/tablecmds.cpp index e303a4d1b..a52496dc7 100644 --- a/src/gausskernel/optimizer/commands/tablecmds.cpp +++ b/src/gausskernel/optimizer/commands/tablecmds.cpp @@ -6993,7 +6993,7 @@ static LOCKMODE GetPartitionLockLevel(AlterTableType subType) case AT_DropSubPartition: case AT_ExchangePartition: case AT_TruncatePartition: - cmdLockMode = RowExclusiveLock; + cmdLockMode = ShareUpdateExclusiveLock; break; default: cmdLockMode = AccessExclusiveLock; diff --git a/src/gausskernel/optimizer/util/plancat.cpp b/src/gausskernel/optimizer/util/plancat.cpp index f04251166..1fe7d0151 100755 --- a/src/gausskernel/optimizer/util/plancat.cpp +++ b/src/gausskernel/optimizer/util/plancat.cpp @@ -316,7 +316,7 @@ static void acquireSamplesForPartitionedRelation( continue; } - part = partitionOpen(relation, partitionOid, lmode); + part = partitionOpen(relation, partitionOid, NoLock); currentPartPages = PartitionGetNumberOfBlocksInFork(relation, part, MAIN_FORKNUM, true); partitionClose(relation, part, lmode);