From a71786ee1c01aaf45e3521b32741e10895fc6443 Mon Sep 17 00:00:00 2001 From: WangXiuqiang Date: Thu, 23 Feb 2023 15:59:18 +0800 Subject: [PATCH] =?UTF-8?q?=E6=94=AF=E6=8C=81lock=20tables=E9=83=A8?= =?UTF-8?q?=E5=88=86=E5=8A=9F=E8=83=BD=EF=BC=88server=E4=BE=A7=EF=BC=89?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- src/gausskernel/optimizer/commands/lockcmds.cpp | 4 ++++ src/include/nodes/parsenodes.h | 3 ++- 2 files changed, 6 insertions(+), 1 deletion(-) 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 3d227c9c0..d5ca7ec68 100755 --- a/src/include/nodes/parsenodes.h +++ b/src/include/nodes/parsenodes.h @@ -1111,7 +1111,7 @@ typedef struct CreateRoleStmt { RoleStmtType stmt_type; /* ROLE/USER/GROUP */ char* role; /* role name */ List* options; /* List of DefElem nodes */ - bool missing_ok; /* skip error if a role is exists */ + bool missing_ok; /* skip error if a role is exists */ } CreateRoleStmt; /* ---------------------- @@ -2157,6 +2157,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; /* ----------------------