diff --git a/src/gausskernel/optimizer/commands/lockcmds.cpp b/src/gausskernel/optimizer/commands/lockcmds.cpp index 19402c370..66e4e4681 100644 --- a/src/gausskernel/optimizer/commands/lockcmds.cpp +++ b/src/gausskernel/optimizer/commands/lockcmds.cpp @@ -38,6 +38,10 @@ static void RangeVarCallbackForLockTable( */ void LockTableCommand(LockStmt* lockstmt) { + if (DB_IS_CMPT(B_FORMAT) && lockstmt->isLockTables) { + TransactionState s = GetCurrentTransactionState(); + s->blockState = TBLOCK_INPROGRESS; + } ListCell* p = NULL; /* diff --git a/src/include/nodes/parsenodes.h b/src/include/nodes/parsenodes.h index 0ee1faf69..aab574e48 100755 --- a/src/include/nodes/parsenodes.h +++ b/src/include/nodes/parsenodes.h @@ -2160,6 +2160,7 @@ typedef struct LockStmt { bool nowait; /* no wait mode */ bool cancelable; /* send term to lock holder */ int waitSec; /* WAIT time Sec */ + bool isLockTables; /* lock tables flag */ } LockStmt; /* ----------------------