You are viewing a plain text version of this content. The canonical link for it is here.
Posted to notifications@shardingsphere.apache.org by du...@apache.org on 2022/02/02 10:11:10 UTC

[shardingsphere] branch master updated: Add MySQL parse support for `LOCK` Statement (#15231)

This is an automated email from the ASF dual-hosted git repository.

duanzhengqiang pushed a commit to branch master
in repository https://gitbox.apache.org/repos/asf/shardingsphere.git


The following commit(s) were added to refs/heads/master by this push:
     new e26f9d2  Add MySQL parse support for `LOCK` Statement (#15231)
e26f9d2 is described below

commit e26f9d228bfb68bde503d7841178a0ab9eb56888
Author: Guocheng Tang <to...@qq.com>
AuthorDate: Wed Feb 2 18:09:48 2022 +0800

    Add MySQL parse support for `LOCK` Statement (#15231)
    
    * Add MySQL parse support for `LOCK` Statement
    
    * Add MySQL parse support for `LOCK` Statement
    
    * Update
    
    * update test case.
---
 .../src/main/antlr4/imports/mysql/TCLStatement.g4  |   2 +-
 .../impl/MySQLTCLStatementSQLVisitor.java          |  29 +
 .../core/database/visitor/SQLVisitorRule.java      |   2 +
 .../sql/common/statement/tcl/LockStatement.java    |  26 +
 .../statement/mysql/tcl/MySQLLockStatement.java    |  39 ++
 .../asserts/statement/tcl/TCLStatementAssert.java  |   5 +
 .../statement/tcl/impl/LockStatementAssert.java    |  60 +++
 .../jaxb/cases/domain/SQLParserTestCases.java      |   5 +
 .../statement/tcl/LockStatementTestCase.java       |  36 ++
 .../src/main/resources/case/tcl/lock.xml           |  49 ++
 .../src/main/resources/sql/supported/tcl/lock.xml  |  28 +
 .../main/resources/sql/unsupported/unsupported.xml | 589 ---------------------
 12 files changed, 280 insertions(+), 590 deletions(-)

diff --git a/shardingsphere-sql-parser/shardingsphere-sql-parser-dialect/shardingsphere-sql-parser-mysql/src/main/antlr4/imports/mysql/TCLStatement.g4 b/shardingsphere-sql-parser/shardingsphere-sql-parser-dialect/shardingsphere-sql-parser-mysql/src/main/antlr4/imports/mysql/TCLStatement.g4
index cee5136..b080f01 100644
--- a/shardingsphere-sql-parser/shardingsphere-sql-parser-dialect/shardingsphere-sql-parser-mysql/src/main/antlr4/imports/mysql/TCLStatement.g4
+++ b/shardingsphere-sql-parser/shardingsphere-sql-parser-dialect/shardingsphere-sql-parser-mysql/src/main/antlr4/imports/mysql/TCLStatement.g4
@@ -52,7 +52,7 @@ begin
     ;
 
 lock
-    : LOCK (INSTANCE FOR BACKUP | (TABLE | TABLES) tableLock (COMMA_ tableLock)* )
+    : LOCK (INSTANCE FOR BACKUP | (TABLES tableLock (COMMA_ tableLock)*))
     ;
 
 unlock
diff --git a/shardingsphere-sql-parser/shardingsphere-sql-parser-dialect/shardingsphere-sql-parser-mysql/src/main/java/org/apache/shardingsphere/sql/parser/mysql/visitor/statement/impl/MySQLTCLStatementSQLVisitor.java b/shardingsphere-sql-parser/shardingsphere-sql-parser-dialect/shardingsphere-sql-parser-mysql/src/main/java/org/apache/shardingsphere/sql/parser/mysql/visitor/statement/impl/MySQLTCLStatementSQLVisitor.java
index 8530079..3098380 100644
--- a/shardingsphere-sql-parser/shardingsphere-sql-parser-dialect/shardingsphere-sql-parser-mysql/src/main/java/org/apache/shardingsphere/sql/parser/mysql/visitor/statement/impl/MySQLTCLStatementSQLVisitor.java
+++ b/shardingsphere-sql-parser/shardingsphere-sql-parser-dialect/shardingsphere-sql-parser-mysql/src/main/java/org/apache/shardingsphere/sql/parser/mysql/visitor/statement/impl/MySQLTCLStatementSQLVisitor.java
@@ -22,6 +22,8 @@ import org.antlr.v4.runtime.Token;
 import org.apache.shardingsphere.sql.parser.api.visitor.ASTNode;
 import org.apache.shardingsphere.sql.parser.api.visitor.operation.SQLStatementVisitor;
 import org.apache.shardingsphere.sql.parser.api.visitor.type.TCLSQLVisitor;
+import org.apache.shardingsphere.sql.parser.autogen.MySQLStatementParser.TableLockContext;
+import org.apache.shardingsphere.sql.parser.autogen.MySQLStatementParser.LockContext;
 import org.apache.shardingsphere.sql.parser.autogen.MySQLStatementParser.UnlockContext;
 import org.apache.shardingsphere.sql.parser.autogen.MySQLStatementParser.BeginTransactionContext;
 import org.apache.shardingsphere.sql.parser.autogen.MySQLStatementParser.CommitContext;
@@ -33,10 +35,13 @@ import org.apache.shardingsphere.sql.parser.autogen.MySQLStatementParser.XaConte
 import org.apache.shardingsphere.sql.parser.sql.common.constant.OperationScope;
 import org.apache.shardingsphere.sql.parser.sql.common.constant.TransactionAccessType;
 import org.apache.shardingsphere.sql.parser.sql.common.constant.TransactionIsolationLevel;
+import org.apache.shardingsphere.sql.parser.sql.common.segment.generic.AliasSegment;
+import org.apache.shardingsphere.sql.parser.sql.common.segment.generic.table.SimpleTableSegment;
 import org.apache.shardingsphere.sql.parser.sql.common.segment.tcl.AutoCommitSegment;
 import org.apache.shardingsphere.sql.parser.sql.common.value.identifier.IdentifierValue;
 import org.apache.shardingsphere.sql.parser.sql.dialect.statement.mysql.tcl.MySQLBeginTransactionStatement;
 import org.apache.shardingsphere.sql.parser.sql.dialect.statement.mysql.tcl.MySQLCommitStatement;
+import org.apache.shardingsphere.sql.parser.sql.dialect.statement.mysql.tcl.MySQLLockStatement;
 import org.apache.shardingsphere.sql.parser.sql.dialect.statement.mysql.tcl.MySQLRollbackStatement;
 import org.apache.shardingsphere.sql.parser.sql.dialect.statement.mysql.tcl.MySQLSavepointStatement;
 import org.apache.shardingsphere.sql.parser.sql.dialect.statement.mysql.tcl.MySQLSetAutoCommitStatement;
@@ -44,6 +49,9 @@ import org.apache.shardingsphere.sql.parser.sql.dialect.statement.mysql.tcl.MySQ
 import org.apache.shardingsphere.sql.parser.sql.dialect.statement.mysql.tcl.MySQLUnlockStatement;
 import org.apache.shardingsphere.sql.parser.sql.dialect.statement.mysql.tcl.MySQLXAStatement;
 
+import java.util.Collection;
+import java.util.LinkedList;
+import java.util.List;
 import java.util.Properties;
 
 /**
@@ -142,6 +150,27 @@ public final class MySQLTCLStatementSQLVisitor extends MySQLStatementSQLVisitor
     }
     
     @Override
+    public ASTNode visitLock(final LockContext ctx) {
+        MySQLLockStatement result = new MySQLLockStatement();
+        if (null != ctx.tableLock()) {
+            result.setTables(getLockTables(ctx.tableLock()));
+        }
+        return result;
+    }
+    
+    private Collection<SimpleTableSegment> getLockTables(final List<TableLockContext> tableLockContexts) {
+        Collection<SimpleTableSegment> result = new LinkedList<>();
+        for (TableLockContext each : tableLockContexts) {
+            SimpleTableSegment simpleTableSegment = (SimpleTableSegment) visit(each.tableName());
+            if (null != each.alias()) {
+                simpleTableSegment.setAlias((AliasSegment) visit(each.alias()));
+            }
+            result.add(simpleTableSegment);
+        }
+        return result;
+    }
+    
+    @Override
     public ASTNode visitUnlock(final UnlockContext ctx) {
         return new MySQLUnlockStatement();
     }
diff --git a/shardingsphere-sql-parser/shardingsphere-sql-parser-engine/src/main/java/org/apache/shardingsphere/sql/parser/core/database/visitor/SQLVisitorRule.java b/shardingsphere-sql-parser/shardingsphere-sql-parser-engine/src/main/java/org/apache/shardingsphere/sql/parser/core/database/visitor/SQLVisitorRule.java
index e288763..08474a5 100644
--- a/shardingsphere-sql-parser/shardingsphere-sql-parser-engine/src/main/java/org/apache/shardingsphere/sql/parser/core/database/visitor/SQLVisitorRule.java
+++ b/shardingsphere-sql-parser/shardingsphere-sql-parser-engine/src/main/java/org/apache/shardingsphere/sql/parser/core/database/visitor/SQLVisitorRule.java
@@ -210,6 +210,8 @@ public enum SQLVisitorRule {
     
     ROLLBACK_TO_SAVEPOINT("RollbackToSavepoint", SQLStatementType.TCL),
     
+    LOCK("Lock", SQLStatementType.TCL),
+    
     UNLOCK("Unlock", SQLStatementType.TCL),
     
     GRANT("Grant", SQLStatementType.DCL),
diff --git a/shardingsphere-sql-parser/shardingsphere-sql-parser-statement/src/main/java/org/apache/shardingsphere/sql/parser/sql/common/statement/tcl/LockStatement.java b/shardingsphere-sql-parser/shardingsphere-sql-parser-statement/src/main/java/org/apache/shardingsphere/sql/parser/sql/common/statement/tcl/LockStatement.java
new file mode 100644
index 0000000..a949662
--- /dev/null
+++ b/shardingsphere-sql-parser/shardingsphere-sql-parser-statement/src/main/java/org/apache/shardingsphere/sql/parser/sql/common/statement/tcl/LockStatement.java
@@ -0,0 +1,26 @@
+/*
+ * Licensed to the Apache Software Foundation (ASF) under one or more
+ * contributor license agreements.  See the NOTICE file distributed with
+ * this work for additional information regarding copyright ownership.
+ * The ASF licenses this file to You under the Apache License, Version 2.0
+ * (the "License"); you may not use this file except in compliance with
+ * the License.  You may obtain a copy of the License at
+ *
+ *     http://www.apache.org/licenses/LICENSE-2.0
+ *
+ * Unless required by applicable law or agreed to in writing, software
+ * distributed under the License is distributed on an "AS IS" BASIS,
+ * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
+ * See the License for the specific language governing permissions and
+ * limitations under the License.
+ */
+
+package org.apache.shardingsphere.sql.parser.sql.common.statement.tcl;
+
+import org.apache.shardingsphere.sql.parser.sql.common.statement.AbstractSQLStatement;
+
+/**
+ * Lock statement.
+ */
+public abstract class LockStatement extends AbstractSQLStatement implements TCLStatement {
+}
diff --git a/shardingsphere-sql-parser/shardingsphere-sql-parser-statement/src/main/java/org/apache/shardingsphere/sql/parser/sql/dialect/statement/mysql/tcl/MySQLLockStatement.java b/shardingsphere-sql-parser/shardingsphere-sql-parser-statement/src/main/java/org/apache/shardingsphere/sql/parser/sql/dialect/statement/mysql/tcl/MySQLLockStatement.java
new file mode 100644
index 0000000..0eed398
--- /dev/null
+++ b/shardingsphere-sql-parser/shardingsphere-sql-parser-statement/src/main/java/org/apache/shardingsphere/sql/parser/sql/dialect/statement/mysql/tcl/MySQLLockStatement.java
@@ -0,0 +1,39 @@
+/*
+ * Licensed to the Apache Software Foundation (ASF) under one or more
+ * contributor license agreements.  See the NOTICE file distributed with
+ * this work for additional information regarding copyright ownership.
+ * The ASF licenses this file to You under the Apache License, Version 2.0
+ * (the "License"); you may not use this file except in compliance with
+ * the License.  You may obtain a copy of the License at
+ *
+ *     http://www.apache.org/licenses/LICENSE-2.0
+ *
+ * Unless required by applicable law or agreed to in writing, software
+ * distributed under the License is distributed on an "AS IS" BASIS,
+ * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
+ * See the License for the specific language governing permissions and
+ * limitations under the License.
+ */
+
+package org.apache.shardingsphere.sql.parser.sql.dialect.statement.mysql.tcl;
+
+import lombok.Getter;
+import lombok.Setter;
+import lombok.ToString;
+import org.apache.shardingsphere.sql.parser.sql.common.segment.generic.table.SimpleTableSegment;
+import org.apache.shardingsphere.sql.parser.sql.common.statement.tcl.LockStatement;
+import org.apache.shardingsphere.sql.parser.sql.dialect.statement.mysql.MySQLStatement;
+
+import java.util.Collection;
+import java.util.LinkedList;
+
+/**
+ * MySQL lock statement.
+ */
+@Getter
+@Setter
+@ToString
+public final class MySQLLockStatement extends LockStatement implements MySQLStatement {
+    
+    private Collection<SimpleTableSegment> tables = new LinkedList<>();
+}
diff --git a/shardingsphere-test/shardingsphere-parser-test/src/main/java/org/apache/shardingsphere/test/sql/parser/parameterized/asserts/statement/tcl/TCLStatementAssert.java b/shardingsphere-test/shardingsphere-parser-test/src/main/java/org/apache/shardingsphere/test/sql/parser/parameterized/asserts/statement/tcl/TCLStatementAssert.java
index 798f3f2..3756899 100644
--- a/shardingsphere-test/shardingsphere-parser-test/src/main/java/org/apache/shardingsphere/test/sql/parser/parameterized/asserts/statement/tcl/TCLStatementAssert.java
+++ b/shardingsphere-test/shardingsphere-parser-test/src/main/java/org/apache/shardingsphere/test/sql/parser/parameterized/asserts/statement/tcl/TCLStatementAssert.java
@@ -21,6 +21,7 @@ import lombok.AccessLevel;
 import lombok.NoArgsConstructor;
 import org.apache.shardingsphere.sql.parser.sql.common.statement.tcl.BeginTransactionStatement;
 import org.apache.shardingsphere.sql.parser.sql.common.statement.tcl.CommitStatement;
+import org.apache.shardingsphere.sql.parser.sql.common.statement.tcl.LockStatement;
 import org.apache.shardingsphere.sql.parser.sql.common.statement.tcl.RollbackStatement;
 import org.apache.shardingsphere.sql.parser.sql.common.statement.tcl.SavepointStatement;
 import org.apache.shardingsphere.sql.parser.sql.common.statement.tcl.SetAutoCommitStatement;
@@ -31,6 +32,7 @@ import org.apache.shardingsphere.sql.parser.sql.common.statement.tcl.UnlockState
 import org.apache.shardingsphere.test.sql.parser.parameterized.asserts.SQLCaseAssertContext;
 import org.apache.shardingsphere.test.sql.parser.parameterized.asserts.statement.tcl.impl.BeginTransactionStatementAssert;
 import org.apache.shardingsphere.test.sql.parser.parameterized.asserts.statement.tcl.impl.CommitStatementAssert;
+import org.apache.shardingsphere.test.sql.parser.parameterized.asserts.statement.tcl.impl.LockStatementAssert;
 import org.apache.shardingsphere.test.sql.parser.parameterized.asserts.statement.tcl.impl.RollbackStatementAssert;
 import org.apache.shardingsphere.test.sql.parser.parameterized.asserts.statement.tcl.impl.SavepointStatementAssert;
 import org.apache.shardingsphere.test.sql.parser.parameterized.asserts.statement.tcl.impl.SetAutoCommitStatementAssert;
@@ -40,6 +42,7 @@ import org.apache.shardingsphere.test.sql.parser.parameterized.asserts.statement
 import org.apache.shardingsphere.test.sql.parser.parameterized.jaxb.cases.domain.statement.SQLParserTestCase;
 import org.apache.shardingsphere.test.sql.parser.parameterized.jaxb.cases.domain.statement.tcl.BeginTransactionStatementTestCase;
 import org.apache.shardingsphere.test.sql.parser.parameterized.jaxb.cases.domain.statement.tcl.CommitStatementTestCase;
+import org.apache.shardingsphere.test.sql.parser.parameterized.jaxb.cases.domain.statement.tcl.LockStatementTestCase;
 import org.apache.shardingsphere.test.sql.parser.parameterized.jaxb.cases.domain.statement.tcl.RollbackStatementTestCase;
 import org.apache.shardingsphere.test.sql.parser.parameterized.jaxb.cases.domain.statement.tcl.SavepointStatementTestCase;
 import org.apache.shardingsphere.test.sql.parser.parameterized.jaxb.cases.domain.statement.tcl.SetAutoCommitStatementTestCase;
@@ -77,6 +80,8 @@ public final class TCLStatementAssert {
             SetConstraintsStatementAssert.assertIs(assertContext, (SetConstraintsStatement) actual, (SetConstraintsStatementTestCase) expected);
         } else if (actual instanceof UnlockStatement) {
             UnlockStatementAssert.assertIs(assertContext, (UnlockStatement) actual, (UnlockStatementTestCase) expected);
+        } else if (actual instanceof LockStatement) {
+            LockStatementAssert.assertIs(assertContext, (LockStatement) actual, (LockStatementTestCase) expected);
         }
     }
 }
diff --git a/shardingsphere-test/shardingsphere-parser-test/src/main/java/org/apache/shardingsphere/test/sql/parser/parameterized/asserts/statement/tcl/impl/LockStatementAssert.java b/shardingsphere-test/shardingsphere-parser-test/src/main/java/org/apache/shardingsphere/test/sql/parser/parameterized/asserts/statement/tcl/impl/LockStatementAssert.java
new file mode 100644
index 0000000..98a8569
--- /dev/null
+++ b/shardingsphere-test/shardingsphere-parser-test/src/main/java/org/apache/shardingsphere/test/sql/parser/parameterized/asserts/statement/tcl/impl/LockStatementAssert.java
@@ -0,0 +1,60 @@
+/*
+ * Licensed to the Apache Software Foundation (ASF) under one or more
+ * contributor license agreements.  See the NOTICE file distributed with
+ * this work for additional information regarding copyright ownership.
+ * The ASF licenses this file to You under the Apache License, Version 2.0
+ * (the "License"); you may not use this file except in compliance with
+ * the License.  You may obtain a copy of the License at
+ *
+ *     http://www.apache.org/licenses/LICENSE-2.0
+ *
+ * Unless required by applicable law or agreed to in writing, software
+ * distributed under the License is distributed on an "AS IS" BASIS,
+ * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
+ * See the License for the specific language governing permissions and
+ * limitations under the License.
+ */
+
+package org.apache.shardingsphere.test.sql.parser.parameterized.asserts.statement.tcl.impl;
+
+import lombok.AccessLevel;
+import lombok.NoArgsConstructor;
+import org.apache.shardingsphere.sql.parser.sql.common.segment.generic.table.SimpleTableSegment;
+import org.apache.shardingsphere.sql.parser.sql.common.statement.tcl.LockStatement;
+import org.apache.shardingsphere.sql.parser.sql.dialect.statement.mysql.tcl.MySQLLockStatement;
+import org.apache.shardingsphere.test.sql.parser.parameterized.asserts.SQLCaseAssertContext;
+import org.apache.shardingsphere.test.sql.parser.parameterized.asserts.segment.table.TableAssert;
+import org.apache.shardingsphere.test.sql.parser.parameterized.jaxb.cases.domain.statement.tcl.LockStatementTestCase;
+
+import static org.junit.Assert.assertFalse;
+import static org.junit.Assert.assertTrue;
+
+/**
+ * Lock statement assert.
+ */
+@NoArgsConstructor(access = AccessLevel.PRIVATE)
+public final class LockStatementAssert {
+    
+    /**
+     * Assert lock statement is correct with expected parser result.
+     * 
+     * @param assertContext assert context
+     * @param actual actual lock statement
+     * @param expected expected lock statement test case
+     */
+    public static void assertIs(final SQLCaseAssertContext assertContext, final LockStatement actual, final LockStatementTestCase expected) {
+        if (actual instanceof MySQLLockStatement) {
+            MySQLLockStatement lockStatement = (MySQLLockStatement) actual;
+            if (null != expected.getTables() && expected.getTables().size() > 0) {
+                assertTrue(assertContext.getText("Actual lock statement should exist."), lockStatement.getTables().size() > 0);
+                int count = 0;
+                for (SimpleTableSegment each : lockStatement.getTables()) {
+                    TableAssert.assertIs(assertContext, each, expected.getTables().get(count));
+                    count++;
+                }
+            } else {
+                assertFalse(assertContext.getText("Actual lock statement should not exist."), lockStatement.getTables().size() > 0);
+            }
+        }
+    }
+}
diff --git a/shardingsphere-test/shardingsphere-parser-test/src/main/java/org/apache/shardingsphere/test/sql/parser/parameterized/jaxb/cases/domain/SQLParserTestCases.java b/shardingsphere-test/shardingsphere-parser-test/src/main/java/org/apache/shardingsphere/test/sql/parser/parameterized/jaxb/cases/domain/SQLParserTestCases.java
index ff7ccfe..159c965 100644
--- a/shardingsphere-test/shardingsphere-parser-test/src/main/java/org/apache/shardingsphere/test/sql/parser/parameterized/jaxb/cases/domain/SQLParserTestCases.java
+++ b/shardingsphere-test/shardingsphere-parser-test/src/main/java/org/apache/shardingsphere/test/sql/parser/parameterized/jaxb/cases/domain/SQLParserTestCases.java
@@ -272,6 +272,7 @@ import org.apache.shardingsphere.test.sql.parser.parameterized.jaxb.cases.domain
 import org.apache.shardingsphere.test.sql.parser.parameterized.jaxb.cases.domain.statement.dml.UpdateStatementTestCase;
 import org.apache.shardingsphere.test.sql.parser.parameterized.jaxb.cases.domain.statement.tcl.BeginTransactionStatementTestCase;
 import org.apache.shardingsphere.test.sql.parser.parameterized.jaxb.cases.domain.statement.tcl.CommitStatementTestCase;
+import org.apache.shardingsphere.test.sql.parser.parameterized.jaxb.cases.domain.statement.tcl.LockStatementTestCase;
 import org.apache.shardingsphere.test.sql.parser.parameterized.jaxb.cases.domain.statement.tcl.RollbackStatementTestCase;
 import org.apache.shardingsphere.test.sql.parser.parameterized.jaxb.cases.domain.statement.tcl.SavepointStatementTestCase;
 import org.apache.shardingsphere.test.sql.parser.parameterized.jaxb.cases.domain.statement.tcl.SetAutoCommitStatementTestCase;
@@ -1070,6 +1071,9 @@ public final class SQLParserTestCases {
     @XmlElement(name = "show-binlog-events")
     private final List<ShowBinlogEventsStatementTestCase> showBinlogEventsStatementTestCases = new LinkedList<>();
     
+    @XmlElement(name = "lock")
+    private final List<LockStatementTestCase> lockStatementTestCases = new LinkedList<>();
+    
     @XmlElement(name = "unlock")
     private final List<UnlockStatementTestCase> unlockStatementTestCases = new LinkedList<>();
     
@@ -1342,6 +1346,7 @@ public final class SQLParserTestCases {
         putAll(countSchemaRulesStatementTestCases, result);
         putAll(alterExtensionStatementTestCase, result);
         putAll(dropExtensionStatementTestCase, result);
+        putAll(lockStatementTestCases, result);
         putAll(unlockStatementTestCases, result);
         putAll(exportSchemaStatementTestCases, result);
         return result;
diff --git a/shardingsphere-test/shardingsphere-parser-test/src/main/java/org/apache/shardingsphere/test/sql/parser/parameterized/jaxb/cases/domain/statement/tcl/LockStatementTestCase.java b/shardingsphere-test/shardingsphere-parser-test/src/main/java/org/apache/shardingsphere/test/sql/parser/parameterized/jaxb/cases/domain/statement/tcl/LockStatementTestCase.java
new file mode 100644
index 0000000..e50e443
--- /dev/null
+++ b/shardingsphere-test/shardingsphere-parser-test/src/main/java/org/apache/shardingsphere/test/sql/parser/parameterized/jaxb/cases/domain/statement/tcl/LockStatementTestCase.java
@@ -0,0 +1,36 @@
+/*
+ * Licensed to the Apache Software Foundation (ASF) under one or more
+ * contributor license agreements.  See the NOTICE file distributed with
+ * this work for additional information regarding copyright ownership.
+ * The ASF licenses this file to You under the Apache License, Version 2.0
+ * (the "License"); you may not use this file except in compliance with
+ * the License.  You may obtain a copy of the License at
+ *
+ *     http://www.apache.org/licenses/LICENSE-2.0
+ *
+ * Unless required by applicable law or agreed to in writing, software
+ * distributed under the License is distributed on an "AS IS" BASIS,
+ * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
+ * See the License for the specific language governing permissions and
+ * limitations under the License.
+ */
+
+package org.apache.shardingsphere.test.sql.parser.parameterized.jaxb.cases.domain.statement.tcl;
+
+import lombok.Getter;
+import org.apache.shardingsphere.test.sql.parser.parameterized.jaxb.cases.domain.segment.impl.table.ExpectedSimpleTable;
+import org.apache.shardingsphere.test.sql.parser.parameterized.jaxb.cases.domain.statement.SQLParserTestCase;
+
+import javax.xml.bind.annotation.XmlElement;
+import java.util.LinkedList;
+import java.util.List;
+
+/**
+ * Lock statement test case.
+ */
+@Getter
+public final class LockStatementTestCase extends SQLParserTestCase {
+    
+    @XmlElement(name = "table")
+    private final List<ExpectedSimpleTable> tables = new LinkedList<>();
+}
diff --git a/shardingsphere-test/shardingsphere-parser-test/src/main/resources/case/tcl/lock.xml b/shardingsphere-test/shardingsphere-parser-test/src/main/resources/case/tcl/lock.xml
new file mode 100644
index 0000000..fd9e4db
--- /dev/null
+++ b/shardingsphere-test/shardingsphere-parser-test/src/main/resources/case/tcl/lock.xml
@@ -0,0 +1,49 @@
+<?xml version="1.0" encoding="UTF-8"?>
+<!--
+  ~ Licensed to the Apache Software Foundation (ASF) under one or more
+  ~ contributor license agreements.  See the NOTICE file distributed with
+  ~ this work for additional information regarding copyright ownership.
+  ~ The ASF licenses this file to You under the Apache License, Version 2.0
+  ~ (the "License"); you may not use this file except in compliance with
+  ~ the License.  You may obtain a copy of the License at
+  ~
+  ~     http://www.apache.org/licenses/LICENSE-2.0
+  ~
+  ~ Unless required by applicable law or agreed to in writing, software
+  ~ distributed under the License is distributed on an "AS IS" BASIS,
+  ~ WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
+  ~ See the License for the specific language governing permissions and
+  ~ limitations under the License.
+  -->
+
+<sql-parser-test-cases>
+    <lock sql-case-id="lock_table_with_table_owner_read">
+        <table name="general_log" start-index="12" stop-index="28">
+            <owner name="mysql" start-index="12" stop-index="16" />
+        </table>
+    </lock>
+    <lock sql-case-id="lock_table_with_alias_table_write">
+        <table name="general_log" start-index="12" stop-index="28">
+            <owner name="mysql" start-index="12" stop-index="16" />
+        </table>
+    </lock>
+    <lock sql-case-id="lock_table_with_read">
+        <table name="t1" start-index="12" stop-index="13" />
+    </lock>
+    <lock sql-case-id="lock_table_with_write">
+        <table name="t1" start-index="12" stop-index="13" />
+    </lock>
+    <lock sql-case-id="lock_table_with_multi_table">
+        <table name="t1" start-index="12" stop-index="13" />
+        <table name="t1" alias="a" start-index="22" stop-index="28" />
+        <table name="t1" alias="b" start-index="36" stop-index="42" />
+    </lock>
+    <lock sql-case-id="lock_instance_for_backup" />
+    <lock sql-case-id="lock_table_with_read_local">
+        <table name="t1" start-index="12" stop-index="13" />
+    </lock>
+    <lock sql-case-id="lock_table_with_alias">
+        <table name="t1" start-index="12" stop-index="13" />
+        <table name="t1" alias="TableAlias" start-index="21" stop-index="36" />
+    </lock>
+</sql-parser-test-cases>
diff --git a/shardingsphere-test/shardingsphere-parser-test/src/main/resources/sql/supported/tcl/lock.xml b/shardingsphere-test/shardingsphere-parser-test/src/main/resources/sql/supported/tcl/lock.xml
new file mode 100644
index 0000000..d0c45f5
--- /dev/null
+++ b/shardingsphere-test/shardingsphere-parser-test/src/main/resources/sql/supported/tcl/lock.xml
@@ -0,0 +1,28 @@
+<?xml version="1.0" encoding="UTF-8"?>
+<!--
+  ~ Licensed to the Apache Software Foundation (ASF) under one or more
+  ~ contributor license agreements.  See the NOTICE file distributed with
+  ~ this work for additional information regarding copyright ownership.
+  ~ The ASF licenses this file to You under the Apache License, Version 2.0
+  ~ (the "License"); you may not use this file except in compliance with
+  ~ the License.  You may obtain a copy of the License at
+  ~
+  ~     http://www.apache.org/licenses/LICENSE-2.0
+  ~
+  ~ Unless required by applicable law or agreed to in writing, software
+  ~ distributed under the License is distributed on an "AS IS" BASIS,
+  ~ WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
+  ~ See the License for the specific language governing permissions and
+  ~ limitations under the License.
+  -->
+
+<sql-cases>
+    <sql-case id="lock_table_with_table_owner_read" value="lock tables mysql.general_log READ" db-types="MySQL"/>
+    <sql-case id="lock_table_with_alias_table_write" value="lock tables mysql.general_log WRITE" db-types="MySQL"/>
+    <sql-case id="lock_table_with_read" value="lock tables t1 READ" db-types="MySQL"/>
+    <sql-case id="lock_table_with_write" value="lock tables t1 WRITE" db-types="MySQL"/>
+    <sql-case id="lock_table_with_multi_table" value="lock tables t1 write, t1 as a read, t1 as b read" db-types="MySQL"/>
+    <sql-case id="lock_instance_for_backup" value="LOCK INSTANCE FOR BACKUP" db-types="MySQL"/>
+    <sql-case id="lock_table_with_read_local" value="LOCK TABLES t1 READ LOCAL" db-types="MySQL"/>
+    <sql-case id="lock_table_with_alias" value="LOCK TABLES t1 READ, t1 as TableAlias READ" db-types="MySQL"/>
+</sql-cases>
diff --git a/shardingsphere-test/shardingsphere-parser-test/src/main/resources/sql/unsupported/unsupported.xml b/shardingsphere-test/shardingsphere-parser-test/src/main/resources/sql/unsupported/unsupported.xml
index d192ea2..2c025ad 100644
--- a/shardingsphere-test/shardingsphere-parser-test/src/main/resources/sql/unsupported/unsupported.xml
+++ b/shardingsphere-test/shardingsphere-parser-test/src/main/resources/sql/unsupported/unsupported.xml
@@ -4662,401 +4662,6 @@
     <sql-case id="load_by_mysql_source_test_case52" value="LOAD XML INFILE &apos;../../std_data/bug30753708.dat&apos; INTO TABLE t1 ROWS IDENTIFIED BY &apos;&lt;address&gt;&apos;" db-types="MySQL"/>
     <sql-case id="load_by_mysql_source_test_case53" value="LOAD XML INFILE &apos;../../std_data/bug30753708.dat&apos; INTO TABLE t1 ROWS IDENTIFIED BY &apos;&lt;address&gt;&apos;" db-types="MySQL"/>
     <sql-case id="load_by_mysql_source_test_case54" value="LOAD XML INFILE &apos;../../std_data/loadxml.dat&apos; INTO TABLE t1 ROWS IDENTIFIED BY &apos;&lt;row&gt;&apos; (a,@b) SET b=concat(&apos;!&apos;,@b)" db-types="MySQL"/>
-    <sql-case id="lock_by_mysql_source_test_case1" value="LOCK INSTANCE FOR BACKUP" db-types="MySQL"/>
-    <sql-case id="lock_by_mysql_source_test_case2" value="LOCK INSTANCE FOR BACKUP" db-types="MySQL"/>
-    <sql-case id="lock_by_mysql_source_test_case3" value="LOCK INSTANCE FOR BACKUP" db-types="MySQL"/>
-    <sql-case id="lock_by_mysql_source_test_case4" value="LOCK INSTANCE FOR BACKUP" db-types="MySQL"/>
-    <sql-case id="lock_by_mysql_source_test_case5" value="LOCK INSTANCE FOR BACKUP" db-types="MySQL"/>
-    <sql-case id="lock_by_mysql_source_test_case6" value="LOCK INSTANCE FOR BACKUP" db-types="MySQL"/>
-    <sql-case id="lock_by_mysql_source_test_case7" value="LOCK INSTANCE FOR BACKUP" db-types="MySQL"/>
-    <sql-case id="lock_by_mysql_source_test_case8" value="LOCK INSTANCE FOR BACKUP" db-types="MySQL"/>
-    <sql-case id="lock_by_mysql_source_test_case9" value="LOCK INSTANCE FOR BACKUP" db-types="MySQL"/>
-    <sql-case id="lock_by_mysql_source_test_case10" value="LOCK INSTANCE FOR BACKUP" db-types="MySQL"/>
-    <sql-case id="lock_by_mysql_source_test_case11" value="LOCK INSTANCE FOR BACKUP" db-types="MySQL"/>
-    <sql-case id="lock_by_mysql_source_test_case12" value="LOCK INSTANCE FOR BACKUP" db-types="MySQL"/>
-    <sql-case id="lock_by_mysql_source_test_case13" value="LOCK INSTANCE FOR BACKUP" db-types="MySQL"/>
-    <sql-case id="lock_by_mysql_source_test_case14" value="LOCK INSTANCE FOR BACKUP" db-types="MySQL"/>
-    <sql-case id="lock_by_mysql_source_test_case15" value="LOCK INSTANCE FOR BACKUP" db-types="MySQL"/>
-    <sql-case id="lock_by_mysql_source_test_case16" value="LOCK INSTANCE FOR BACKUP" db-types="MySQL"/>
-    <sql-case id="lock_by_mysql_source_test_case17" value="LOCK INSTANCE FOR BACKUP" db-types="MySQL"/>
-    <sql-case id="lock_by_mysql_source_test_case18" value="LOCK INSTANCE FOR BACKUP" db-types="MySQL"/>
-    <sql-case id="lock_by_mysql_source_test_case19" value="LOCK INSTANCE FOR BACKUP" db-types="MySQL"/>
-    <sql-case id="lock_by_mysql_source_test_case20" value="LOCK INSTANCE FOR BACKUP" db-types="MySQL"/>
-    <sql-case id="lock_by_mysql_source_test_case21" value="LOCK INSTANCE FOR BACKUP" db-types="MySQL"/>
-    <sql-case id="lock_by_mysql_source_test_case22" value="LOCK INSTANCE FOR BACKUP" db-types="MySQL"/>
-    <sql-case id="lock_by_mysql_source_test_case23" value="LOCK INSTANCE FOR BACKUP" db-types="MySQL"/>
-    <sql-case id="lock_by_mysql_source_test_case24" value="LOCK TABLE T2 WRITE" db-types="MySQL"/>
-    <sql-case id="lock_by_mysql_source_test_case25" value="LOCK TABLE T2 WRITE" db-types="MySQL"/>
-    <sql-case id="lock_by_mysql_source_test_case26" value="LOCK TABLE m1 READ" db-types="MySQL"/>
-    <sql-case id="lock_by_mysql_source_test_case27" value="LOCK TABLE m1 WRITE" db-types="MySQL"/>
-    <sql-case id="lock_by_mysql_source_test_case28" value="LOCK TABLE m1 WRITE" db-types="MySQL"/>
-    <sql-case id="lock_by_mysql_source_test_case29" value="LOCK TABLE m1 WRITE" db-types="MySQL"/>
-    <sql-case id="lock_by_mysql_source_test_case30" value="LOCK TABLE m1 WRITE" db-types="MySQL"/>
-    <sql-case id="lock_by_mysql_source_test_case31" value="LOCK TABLE m1 WRITE, m2 WRITE" db-types="MySQL"/>
-    <sql-case id="lock_by_mysql_source_test_case32" value="LOCK TABLE m1 WRITE, m2 WRITE" db-types="MySQL"/>
-    <sql-case id="lock_by_mysql_source_test_case33" value="LOCK TABLE m1 WRITE, m2 WRITE" db-types="MySQL"/>
-    <sql-case id="lock_by_mysql_source_test_case34" value="LOCK TABLE m1 WRITE, m2 WRITE" db-types="MySQL"/>
-    <sql-case id="lock_by_mysql_source_test_case35" value="LOCK TABLE m1 WRITE, m2 WRITE" db-types="MySQL"/>
-    <sql-case id="lock_by_mysql_source_test_case36" value="LOCK TABLE m1 WRITE, m2 WRITE" db-types="MySQL"/>
-    <sql-case id="lock_by_mysql_source_test_case37" value="LOCK TABLE m1 WRITE, m2 WRITE" db-types="MySQL"/>
-    <sql-case id="lock_by_mysql_source_test_case38" value="LOCK TABLE m1 WRITE, m2 WRITE" db-types="MySQL"/>
-    <sql-case id="lock_by_mysql_source_test_case39" value="LOCK TABLE m1 WRITE, t1 WRITE" db-types="MySQL"/>
-    <sql-case id="lock_by_mysql_source_test_case40" value="LOCK TABLE m1 WRITE, t1 WRITE, t2 WRITE" db-types="MySQL"/>
-    <sql-case id="lock_by_mysql_source_test_case41" value="LOCK TABLE mysql.user READ" db-types="MySQL"/>
-    <sql-case id="lock_by_mysql_source_test_case42" value="LOCK TABLE parent WRITE" db-types="MySQL"/>
-    <sql-case id="lock_by_mysql_source_test_case43" value="LOCK TABLE parent WRITE" db-types="MySQL"/>
-    <sql-case id="lock_by_mysql_source_test_case44" value="LOCK TABLE parent WRITE" db-types="MySQL"/>
-    <sql-case id="lock_by_mysql_source_test_case45" value="LOCK TABLE parent WRITE" db-types="MySQL"/>
-    <sql-case id="lock_by_mysql_source_test_case46" value="LOCK TABLE parent WRITE" db-types="MySQL"/>
-    <sql-case id="lock_by_mysql_source_test_case47" value="LOCK TABLE parent WRITE" db-types="MySQL"/>
-    <sql-case id="lock_by_mysql_source_test_case48" value="LOCK TABLE parent WRITE" db-types="MySQL"/>
-    <sql-case id="lock_by_mysql_source_test_case49" value="LOCK TABLE parent WRITE" db-types="MySQL"/>
-    <sql-case id="lock_by_mysql_source_test_case50" value="LOCK TABLE parent WRITE" db-types="MySQL"/>
-    <sql-case id="lock_by_mysql_source_test_case51" value="LOCK TABLE parent WRITE" db-types="MySQL"/>
-    <sql-case id="lock_by_mysql_source_test_case52" value="LOCK TABLE parent WRITE" db-types="MySQL"/>
-    <sql-case id="lock_by_mysql_source_test_case53" value="LOCK TABLE parent WRITE" db-types="MySQL"/>
-    <sql-case id="lock_by_mysql_source_test_case54" value="LOCK TABLE parent WRITE" db-types="MySQL"/>
-    <sql-case id="lock_by_mysql_source_test_case55" value="LOCK TABLE parent WRITE" db-types="MySQL"/>
-    <sql-case id="lock_by_mysql_source_test_case56" value="LOCK TABLE parent WRITE" db-types="MySQL"/>
-    <sql-case id="lock_by_mysql_source_test_case57" value="LOCK TABLE parent WRITE" db-types="MySQL"/>
-    <sql-case id="lock_by_mysql_source_test_case58" value="LOCK TABLE parent WRITE" db-types="MySQL"/>
-    <sql-case id="lock_by_mysql_source_test_case59" value="LOCK TABLE parent WRITE, child READ" db-types="MySQL"/>
-    <sql-case id="lock_by_mysql_source_test_case60" value="LOCK TABLE parent WRITE, child WRITE" db-types="MySQL"/>
-    <sql-case id="lock_by_mysql_source_test_case61" value="LOCK TABLE parent2 WRITE" db-types="MySQL"/>
-    <sql-case id="lock_by_mysql_source_test_case62" value="LOCK TABLE s1.v1 WRITE" db-types="MySQL"/>
-    <sql-case id="lock_by_mysql_source_test_case63" value="LOCK TABLE s1.v1 WRITE" db-types="MySQL"/>
-    <sql-case id="lock_by_mysql_source_test_case64" value="LOCK TABLE schema1.t1 WRITE" db-types="MySQL"/>
-    <sql-case id="lock_by_mysql_source_test_case65" value="LOCK TABLE t1 READ" db-types="MySQL"/>
-    <sql-case id="lock_by_mysql_source_test_case66" value="LOCK TABLE t1 READ" db-types="MySQL"/>
-    <sql-case id="lock_by_mysql_source_test_case67" value="LOCK TABLE t1 READ" db-types="MySQL"/>
-    <sql-case id="lock_by_mysql_source_test_case68" value="LOCK TABLE t1 READ" db-types="MySQL"/>
-    <sql-case id="lock_by_mysql_source_test_case69" value="LOCK TABLE t1 READ" db-types="MySQL"/>
-    <sql-case id="lock_by_mysql_source_test_case70" value="LOCK TABLE t1 READ" db-types="MySQL"/>
-    <sql-case id="lock_by_mysql_source_test_case71" value="LOCK TABLE t1 READ" db-types="MySQL"/>
-    <sql-case id="lock_by_mysql_source_test_case72" value="LOCK TABLE t1 READ" db-types="MySQL"/>
-    <sql-case id="lock_by_mysql_source_test_case73" value="LOCK TABLE t1 READ" db-types="MySQL"/>
-    <sql-case id="lock_by_mysql_source_test_case74" value="LOCK TABLE t1 READ" db-types="MySQL"/>
-    <sql-case id="lock_by_mysql_source_test_case75" value="LOCK TABLE t1 READ" db-types="MySQL"/>
-    <sql-case id="lock_by_mysql_source_test_case76" value="LOCK TABLE t1 READ" db-types="MySQL"/>
-    <sql-case id="lock_by_mysql_source_test_case77" value="LOCK TABLE t1 READ" db-types="MySQL"/>
-    <sql-case id="lock_by_mysql_source_test_case78" value="LOCK TABLE t1 READ" db-types="MySQL"/>
-    <sql-case id="lock_by_mysql_source_test_case79" value="LOCK TABLE t1 READ LOCAL" db-types="MySQL"/>
-    <sql-case id="lock_by_mysql_source_test_case80" value="LOCK TABLE t1 READ, performance_schema.threads READ" db-types="MySQL"/>
-    <sql-case id="lock_by_mysql_source_test_case81" value="LOCK TABLE t1 READ, t1 as TableAlias READ" db-types="MySQL"/>
-    <sql-case id="lock_by_mysql_source_test_case82" value="LOCK TABLE t1 READ, t2 READ" db-types="MySQL"/>
-    <sql-case id="lock_by_mysql_source_test_case83" value="LOCK TABLE t1 READ, t2 READ" db-types="MySQL"/>
-    <sql-case id="lock_by_mysql_source_test_case84" value="LOCK TABLE t1 READ, v1 READ" db-types="MySQL"/>
-    <sql-case id="lock_by_mysql_source_test_case85" value="LOCK TABLE t1 WRITE" db-types="MySQL"/>
-    <sql-case id="lock_by_mysql_source_test_case86" value="LOCK TABLE t1 WRITE" db-types="MySQL"/>
-    <sql-case id="lock_by_mysql_source_test_case87" value="LOCK TABLE t1 WRITE" db-types="MySQL"/>
-    <sql-case id="lock_by_mysql_source_test_case88" value="LOCK TABLE t1 WRITE" db-types="MySQL"/>
-    <sql-case id="lock_by_mysql_source_test_case89" value="LOCK TABLE t1 WRITE" db-types="MySQL"/>
-    <sql-case id="lock_by_mysql_source_test_case90" value="LOCK TABLE t1 WRITE" db-types="MySQL"/>
-    <sql-case id="lock_by_mysql_source_test_case91" value="LOCK TABLE t1 WRITE" db-types="MySQL"/>
-    <sql-case id="lock_by_mysql_source_test_case92" value="LOCK TABLE t1 WRITE" db-types="MySQL"/>
-    <sql-case id="lock_by_mysql_source_test_case93" value="LOCK TABLE t1 WRITE" db-types="MySQL"/>
-    <sql-case id="lock_by_mysql_source_test_case94" value="LOCK TABLE t1 WRITE" db-types="MySQL"/>
-    <sql-case id="lock_by_mysql_source_test_case95" value="LOCK TABLE t1 WRITE" db-types="MySQL"/>
-    <sql-case id="lock_by_mysql_source_test_case96" value="LOCK TABLE t1 WRITE" db-types="MySQL"/>
-    <sql-case id="lock_by_mysql_source_test_case97" value="LOCK TABLE t1 WRITE" db-types="MySQL"/>
-    <sql-case id="lock_by_mysql_source_test_case98" value="LOCK TABLE t1 WRITE" db-types="MySQL"/>
-    <sql-case id="lock_by_mysql_source_test_case99" value="LOCK TABLE t1 WRITE" db-types="MySQL"/>
-    <sql-case id="lock_by_mysql_source_test_case100" value="LOCK TABLE t1 WRITE" db-types="MySQL"/>
-    <sql-case id="lock_by_mysql_source_test_case101" value="LOCK TABLE t1 WRITE" db-types="MySQL"/>
-    <sql-case id="lock_by_mysql_source_test_case102" value="LOCK TABLE t1 WRITE" db-types="MySQL"/>
-    <sql-case id="lock_by_mysql_source_test_case103" value="LOCK TABLE t1 WRITE" db-types="MySQL"/>
-    <sql-case id="lock_by_mysql_source_test_case104" value="LOCK TABLE t1 WRITE" db-types="MySQL"/>
-    <sql-case id="lock_by_mysql_source_test_case105" value="LOCK TABLE t1 WRITE" db-types="MySQL"/>
-    <sql-case id="lock_by_mysql_source_test_case106" value="LOCK TABLE t1 WRITE" db-types="MySQL"/>
-    <sql-case id="lock_by_mysql_source_test_case107" value="LOCK TABLE t1 WRITE" db-types="MySQL"/>
-    <sql-case id="lock_by_mysql_source_test_case108" value="LOCK TABLE t1 WRITE" db-types="MySQL"/>
-    <sql-case id="lock_by_mysql_source_test_case109" value="LOCK TABLE t1 WRITE" db-types="MySQL"/>
-    <sql-case id="lock_by_mysql_source_test_case110" value="LOCK TABLE t1 WRITE" db-types="MySQL"/>
-    <sql-case id="lock_by_mysql_source_test_case111" value="LOCK TABLE t1 WRITE" db-types="MySQL"/>
-    <sql-case id="lock_by_mysql_source_test_case112" value="LOCK TABLE t1 WRITE" db-types="MySQL"/>
-    <sql-case id="lock_by_mysql_source_test_case113" value="LOCK TABLE t1 WRITE" db-types="MySQL"/>
-    <sql-case id="lock_by_mysql_source_test_case114" value="LOCK TABLE t1 WRITE" db-types="MySQL"/>
-    <sql-case id="lock_by_mysql_source_test_case115" value="LOCK TABLE t1 WRITE" db-types="MySQL"/>
-    <sql-case id="lock_by_mysql_source_test_case116" value="LOCK TABLE t1 WRITE" db-types="MySQL"/>
-    <sql-case id="lock_by_mysql_source_test_case117" value="LOCK TABLE t1 WRITE" db-types="MySQL"/>
-    <sql-case id="lock_by_mysql_source_test_case118" value="LOCK TABLE t1 WRITE" db-types="MySQL"/>
-    <sql-case id="lock_by_mysql_source_test_case119" value="LOCK TABLE t1 WRITE" db-types="MySQL"/>
-    <sql-case id="lock_by_mysql_source_test_case120" value="LOCK TABLE t1 WRITE" db-types="MySQL"/>
-    <sql-case id="lock_by_mysql_source_test_case121" value="LOCK TABLE t1 WRITE" db-types="MySQL"/>
-    <sql-case id="lock_by_mysql_source_test_case122" value="LOCK TABLE t1 WRITE" db-types="MySQL"/>
-    <sql-case id="lock_by_mysql_source_test_case123" value="LOCK TABLE t1 WRITE" db-types="MySQL"/>
-    <sql-case id="lock_by_mysql_source_test_case124" value="LOCK TABLE t1 WRITE" db-types="MySQL"/>
-    <sql-case id="lock_by_mysql_source_test_case125" value="LOCK TABLE t1 WRITE" db-types="MySQL"/>
-    <sql-case id="lock_by_mysql_source_test_case126" value="LOCK TABLE t1 WRITE, m1 WRITE" db-types="MySQL"/>
-    <sql-case id="lock_by_mysql_source_test_case127" value="LOCK TABLE t1 WRITE, t1 as X READ, t3 READ" db-types="MySQL"/>
-    <sql-case id="lock_by_mysql_source_test_case128" value="LOCK TABLE t1 WRITE, t2 WRITE" db-types="MySQL"/>
-    <sql-case id="lock_by_mysql_source_test_case129" value="LOCK TABLE t1 WRITE, t2 WRITE" db-types="MySQL"/>
-    <sql-case id="lock_by_mysql_source_test_case130" value="LOCK TABLE t1 WRITE, t2 WRITE" db-types="MySQL"/>
-    <sql-case id="lock_by_mysql_source_test_case131" value="LOCK TABLE t1 WRITE, t2 WRITE" db-types="MySQL"/>
-    <sql-case id="lock_by_mysql_source_test_case132" value="LOCK TABLE t1 WRITE, t2 WRITE" db-types="MySQL"/>
-    <sql-case id="lock_by_mysql_source_test_case133" value="LOCK TABLE t1 WRITE, t2 WRITE" db-types="MySQL"/>
-    <sql-case id="lock_by_mysql_source_test_case134" value="LOCK TABLE t1 WRITE, t2 WRITE, t3 WRITE" db-types="MySQL"/>
-    <sql-case id="lock_by_mysql_source_test_case135" value="LOCK TABLE t1 WRITE, t2 WRITE, t3 WRITE" db-types="MySQL"/>
-    <sql-case id="lock_by_mysql_source_test_case136" value="LOCK TABLE t1 WRITE, t2 WRITE, v1 WRITE" db-types="MySQL"/>
-    <sql-case id="lock_by_mysql_source_test_case137" value="LOCK TABLE t1 WRITE, tm1 WRITE" db-types="MySQL"/>
-    <sql-case id="lock_by_mysql_source_test_case138" value="LOCK TABLE t1 WRITE, tm1 WRITE" db-types="MySQL"/>
-    <sql-case id="lock_by_mysql_source_test_case139" value="LOCK TABLE t1 WRITE,t2 write" db-types="MySQL"/>
-    <sql-case id="lock_by_mysql_source_test_case140" value="LOCK TABLE t1 read" db-types="MySQL"/>
-    <sql-case id="lock_by_mysql_source_test_case141" value="LOCK TABLE t1 write" db-types="MySQL"/>
-    <sql-case id="lock_by_mysql_source_test_case142" value="LOCK TABLE t1 write" db-types="MySQL"/>
-    <sql-case id="lock_by_mysql_source_test_case143" value="LOCK TABLE t2 READ LOCAL" db-types="MySQL"/>
-    <sql-case id="lock_by_mysql_source_test_case144" value="LOCK TABLE t2 READ LOCAL" db-types="MySQL"/>
-    <sql-case id="lock_by_mysql_source_test_case145" value="LOCK TABLE t2 WRITE" db-types="MySQL"/>
-    <sql-case id="lock_by_mysql_source_test_case146" value="LOCK TABLE t2 WRITE" db-types="MySQL"/>
-    <sql-case id="lock_by_mysql_source_test_case147" value="LOCK TABLE t2 WRITE" db-types="MySQL"/>
-    <sql-case id="lock_by_mysql_source_test_case148" value="LOCK TABLE t2 WRITE" db-types="MySQL"/>
-    <sql-case id="lock_by_mysql_source_test_case149" value="LOCK TABLE t2 WRITE" db-types="MySQL"/>
-    <sql-case id="lock_by_mysql_source_test_case150" value="LOCK TABLE t2 WRITE" db-types="MySQL"/>
-    <sql-case id="lock_by_mysql_source_test_case151" value="LOCK TABLE t2 WRITE" db-types="MySQL"/>
-    <sql-case id="lock_by_mysql_source_test_case152" value="LOCK TABLE t2 WRITE" db-types="MySQL"/>
-    <sql-case id="lock_by_mysql_source_test_case153" value="LOCK TABLE t2 WRITE" db-types="MySQL"/>
-    <sql-case id="lock_by_mysql_source_test_case154" value="LOCK TABLE t2 WRITE" db-types="MySQL"/>
-    <sql-case id="lock_by_mysql_source_test_case155" value="LOCK TABLE t2 WRITE" db-types="MySQL"/>
-    <sql-case id="lock_by_mysql_source_test_case156" value="LOCK TABLE t2 read" db-types="MySQL"/>
-    <sql-case id="lock_by_mysql_source_test_case157" value="LOCK TABLE t3 READ" db-types="MySQL"/>
-    <sql-case id="lock_by_mysql_source_test_case158" value="LOCK TABLE t4 WRITE" db-types="MySQL"/>
-    <sql-case id="lock_by_mysql_source_test_case159" value="LOCK TABLE t4 WRITE" db-types="MySQL"/>
-    <sql-case id="lock_by_mysql_source_test_case160" value="LOCK TABLE t7 WRITE" db-types="MySQL"/>
-    <sql-case id="lock_by_mysql_source_test_case161" value="LOCK TABLE t7 WRITE, t8 WRITE" db-types="MySQL"/>
-    <sql-case id="lock_by_mysql_source_test_case162" value="LOCK TABLE t8 WRITE" db-types="MySQL"/>
-    <sql-case id="lock_by_mysql_source_test_case163" value="LOCK TABLE t9 WRITE" db-types="MySQL"/>
-    <sql-case id="lock_by_mysql_source_test_case164" value="LOCK TABLE t9 WRITE" db-types="MySQL"/>
-    <sql-case id="lock_by_mysql_source_test_case165" value="LOCK TABLE tbl_with_partitions READ" db-types="MySQL"/>
-    <sql-case id="lock_by_mysql_source_test_case166" value="LOCK TABLE tm1 WRITE" db-types="MySQL"/>
-    <sql-case id="lock_by_mysql_source_test_case167" value="LOCK TABLE tm1 WRITE" db-types="MySQL"/>
-    <sql-case id="lock_by_mysql_source_test_case168" value="LOCK TABLE tm1 WRITE, t1 WRITE" db-types="MySQL"/>
-    <sql-case id="lock_by_mysql_source_test_case169" value="LOCK TABLE tm1 WRITE, t1 WRITE" db-types="MySQL"/>
-    <sql-case id="lock_by_mysql_source_test_case170" value="LOCK TABLE tm1 WRITE, t1 WRITE, t2 WRITE, t3 WRITE, t4 WRITE, t5 WRITE" db-types="MySQL"/>
-    <sql-case id="lock_by_mysql_source_test_case171" value="LOCK TABLE v1 READ" db-types="MySQL"/>
-    <sql-case id="lock_by_mysql_source_test_case172" value="LOCK TABLE v1 READ" db-types="MySQL"/>
-    <sql-case id="lock_by_mysql_source_test_case173" value="LOCK TABLE v1 READ LOCAL" db-types="MySQL"/>
-    <sql-case id="lock_by_mysql_source_test_case174" value="LOCK TABLE v1 READ, v2 READ" db-types="MySQL"/>
-    <sql-case id="lock_by_mysql_source_test_case175" value="LOCK TABLE v1 READ, v2 READ" db-types="MySQL"/>
-    <sql-case id="lock_by_mysql_source_test_case176" value="LOCK TABLE v1 WRITE" db-types="MySQL"/>
-    <sql-case id="lock_by_mysql_source_test_case177" value="LOCK TABLE v1 WRITE" db-types="MySQL"/>
-    <sql-case id="lock_by_mysql_source_test_case178" value="LOCK TABLE v1 WRITE, v2 WRITE" db-types="MySQL"/>
-    <sql-case id="lock_by_mysql_source_test_case179" value="LOCK TABLE v2 READ LOCAL" db-types="MySQL"/>
-    <sql-case id="lock_by_mysql_source_test_case180" value="LOCK TABLE v2 READ LOCAL" db-types="MySQL"/>
-    <sql-case id="lock_by_mysql_source_test_case181" value="LOCK TABLE v2 WRITE" db-types="MySQL"/>
-    <sql-case id="lock_by_mysql_source_test_case182" value="LOCK TABLE v3 READ LOCAL" db-types="MySQL"/>
-    <sql-case id="lock_by_mysql_source_test_case183" value="LOCK TABLE v3 READ LOCAL" db-types="MySQL"/>
-    <sql-case id="lock_by_mysql_source_test_case184" value="LOCK TABLES child READ, parent WRITE" db-types="MySQL"/>
-    <sql-case id="lock_by_mysql_source_test_case185" value="LOCK TABLES child WRITE" db-types="MySQL"/>
-    <sql-case id="lock_by_mysql_source_test_case186" value="LOCK TABLES child WRITE" db-types="MySQL"/>
-    <sql-case id="lock_by_mysql_source_test_case187" value="LOCK TABLES child WRITE, parent READ" db-types="MySQL"/>
-    <sql-case id="lock_by_mysql_source_test_case188" value="LOCK TABLES child WRITE, parent WRITE" db-types="MySQL"/>
-    <sql-case id="lock_by_mysql_source_test_case189" value="LOCK TABLES child WRITE, parent WRITE" db-types="MySQL"/>
-    <sql-case id="lock_by_mysql_source_test_case190" value="LOCK TABLES child WRITE, parent WRITE" db-types="MySQL"/>
-    <sql-case id="lock_by_mysql_source_test_case191" value="LOCK TABLES child WRITE, parent1 WRITE" db-types="MySQL"/>
-    <sql-case id="lock_by_mysql_source_test_case192" value="LOCK TABLES child1 WRITE, parent1 WRITE" db-types="MySQL"/>
-    <sql-case id="lock_by_mysql_source_test_case193" value="LOCK TABLES columns_priv WRITE, db WRITE, user WRITE" db-types="MySQL"/>
-    <sql-case id="lock_by_mysql_source_test_case194" value="LOCK TABLES dst.dst_t2 WRITE" db-types="MySQL"/>
-    <sql-case id="lock_by_mysql_source_test_case195" value="LOCK TABLES dst_t1 WRITE" db-types="MySQL"/>
-    <sql-case id="lock_by_mysql_source_test_case196" value="LOCK TABLES dst_t2 WRITE" db-types="MySQL"/>
-    <sql-case id="lock_by_mysql_source_test_case197" value="LOCK TABLES m1 WRITE" db-types="MySQL"/>
-    <sql-case id="lock_by_mysql_source_test_case198" value="LOCK TABLES m1 WRITE, t1 WRITE" db-types="MySQL"/>
-    <sql-case id="lock_by_mysql_source_test_case199" value="LOCK TABLES mysql.time_zone READ, mysql.time_zone_name READ" db-types="MySQL"/>
-    <sql-case id="lock_by_mysql_source_test_case200" value="LOCK TABLES mysql.time_zone READ, mysql.time_zone_name READ, t1 READ" db-types="MySQL"/>
-    <sql-case id="lock_by_mysql_source_test_case201" value="LOCK TABLES mysql.time_zone READ, mysql.time_zone_name READ, t1 WRITE" db-types="MySQL"/>
-    <sql-case id="lock_by_mysql_source_test_case202" value="LOCK TABLES mysql.time_zone READ, mysql.time_zone_name WRITE" db-types="MySQL"/>
-    <sql-case id="lock_by_mysql_source_test_case203" value="LOCK TABLES mysql.time_zone READ, mysql.time_zone_name WRITE, t1 READ" db-types="MySQL"/>
-    <sql-case id="lock_by_mysql_source_test_case204" value="LOCK TABLES mysql.time_zone WRITE, mysql.time_zone_name WRITE" db-types="MySQL"/>
-    <sql-case id="lock_by_mysql_source_test_case205" value="LOCK TABLES mysql.time_zone WRITE, mysql.time_zone_name WRITE, t1 READ" db-types="MySQL"/>
-    <sql-case id="lock_by_mysql_source_test_case206" value="LOCK TABLES mysql.time_zone WRITE, mysql.time_zone_name WRITE, t1 WRITE" db-types="MySQL"/>
-    <sql-case id="lock_by_mysql_source_test_case207" value="LOCK TABLES parent WRITE" db-types="MySQL"/>
-    <sql-case id="lock_by_mysql_source_test_case208" value="LOCK TABLES parent WRITE" db-types="MySQL"/>
-    <sql-case id="lock_by_mysql_source_test_case209" value="LOCK TABLES parent WRITE" db-types="MySQL"/>
-    <sql-case id="lock_by_mysql_source_test_case210" value="LOCK TABLES parent WRITE" db-types="MySQL"/>
-    <sql-case id="lock_by_mysql_source_test_case211" value="LOCK TABLES part1 WRITE" db-types="MySQL"/>
-    <sql-case id="lock_by_mysql_source_test_case212" value="LOCK TABLES t0 WRITE" db-types="MySQL"/>
-    <sql-case id="lock_by_mysql_source_test_case213" value="LOCK TABLES t0 WRITE" db-types="MySQL"/>
-    <sql-case id="lock_by_mysql_source_test_case214" value="LOCK TABLES t0 WRITE, t1 WRITE" db-types="MySQL"/>
-    <sql-case id="lock_by_mysql_source_test_case215" value="LOCK TABLES t0 WRITE, t1 WRITE" db-types="MySQL"/>
-    <sql-case id="lock_by_mysql_source_test_case216" value="LOCK TABLES t1 LOW_PRIORITY WRITE" db-types="MySQL"/>
-    <sql-case id="lock_by_mysql_source_test_case217" value="LOCK TABLES t1 READ" db-types="MySQL"/>
-    <sql-case id="lock_by_mysql_source_test_case218" value="LOCK TABLES t1 READ" db-types="MySQL"/>
-    <sql-case id="lock_by_mysql_source_test_case219" value="LOCK TABLES t1 READ" db-types="MySQL"/>
-    <sql-case id="lock_by_mysql_source_test_case220" value="LOCK TABLES t1 READ" db-types="MySQL"/>
-    <sql-case id="lock_by_mysql_source_test_case221" value="LOCK TABLES t1 READ" db-types="MySQL"/>
-    <sql-case id="lock_by_mysql_source_test_case222" value="LOCK TABLES t1 READ" db-types="MySQL"/>
-    <sql-case id="lock_by_mysql_source_test_case223" value="LOCK TABLES t1 READ" db-types="MySQL"/>
-    <sql-case id="lock_by_mysql_source_test_case224" value="LOCK TABLES t1 READ" db-types="MySQL"/>
-    <sql-case id="lock_by_mysql_source_test_case225" value="LOCK TABLES t1 READ LOCAL, t2 READ LOCAL" db-types="MySQL"/>
-    <sql-case id="lock_by_mysql_source_test_case226" value="LOCK TABLES t1 READ, information_schema.processlist READ" db-types="MySQL"/>
-    <sql-case id="lock_by_mysql_source_test_case227" value="LOCK TABLES t1 READ, m1 WRITE" db-types="MySQL"/>
-    <sql-case id="lock_by_mysql_source_test_case228" value="LOCK TABLES t1 READ, t0 WRITE" db-types="MySQL"/>
-    <sql-case id="lock_by_mysql_source_test_case229" value="LOCK TABLES t1 READ, t2 READ" db-types="MySQL"/>
-    <sql-case id="lock_by_mysql_source_test_case230" value="LOCK TABLES t1 READ, t2 READ" db-types="MySQL"/>
-    <sql-case id="lock_by_mysql_source_test_case231" value="LOCK TABLES t1 READ, t2 READ" db-types="MySQL"/>
-    <sql-case id="lock_by_mysql_source_test_case232" value="LOCK TABLES t1 READ, t2 READ" db-types="MySQL"/>
-    <sql-case id="lock_by_mysql_source_test_case233" value="LOCK TABLES t1 READ, t2 READ" db-types="MySQL"/>
-    <sql-case id="lock_by_mysql_source_test_case234" value="LOCK TABLES t1 READ, t2 READ" db-types="MySQL"/>
-    <sql-case id="lock_by_mysql_source_test_case235" value="LOCK TABLES t1 READ, t2 READ" db-types="MySQL"/>
-    <sql-case id="lock_by_mysql_source_test_case236" value="LOCK TABLES t1 READ, t2 READ" db-types="MySQL"/>
-    <sql-case id="lock_by_mysql_source_test_case237" value="LOCK TABLES t1 READ, t2 READ" db-types="MySQL"/>
-    <sql-case id="lock_by_mysql_source_test_case238" value="LOCK TABLES t1 READ, t2 WRITE" db-types="MySQL"/>
-    <sql-case id="lock_by_mysql_source_test_case239" value="LOCK TABLES t1 READ, t2 WRITE" db-types="MySQL"/>
-    <sql-case id="lock_by_mysql_source_test_case240" value="LOCK TABLES t1 READ, t2 WRITE" db-types="MySQL"/>
-    <sql-case id="lock_by_mysql_source_test_case241" value="LOCK TABLES t1 READ, t3 WRITE, t3 AS a WRITE, t3 AS b READ" db-types="MySQL"/>
-    <sql-case id="lock_by_mysql_source_test_case242" value="LOCK TABLES t1 READ, t3 WRITE, t3 AS a WRITE, t3 AS b READ" db-types="MySQL"/>
-    <sql-case id="lock_by_mysql_source_test_case243" value="LOCK TABLES t1 READ, t3 WRITE, t3 AS a WRITE, t3 AS b READ" db-types="MySQL"/>
-    <sql-case id="lock_by_mysql_source_test_case244" value="LOCK TABLES t1 READ, temp WRITE" db-types="MySQL"/>
-    <sql-case id="lock_by_mysql_source_test_case245" value="LOCK TABLES t1 WRITE" db-types="MySQL"/>
-    <sql-case id="lock_by_mysql_source_test_case246" value="LOCK TABLES t1 WRITE" db-types="MySQL"/>
-    <sql-case id="lock_by_mysql_source_test_case247" value="LOCK TABLES t1 WRITE" db-types="MySQL"/>
-    <sql-case id="lock_by_mysql_source_test_case248" value="LOCK TABLES t1 WRITE" db-types="MySQL"/>
-    <sql-case id="lock_by_mysql_source_test_case249" value="LOCK TABLES t1 WRITE" db-types="MySQL"/>
-    <sql-case id="lock_by_mysql_source_test_case250" value="LOCK TABLES t1 WRITE" db-types="MySQL"/>
-    <sql-case id="lock_by_mysql_source_test_case251" value="LOCK TABLES t1 WRITE" db-types="MySQL"/>
-    <sql-case id="lock_by_mysql_source_test_case252" value="LOCK TABLES t1 WRITE" db-types="MySQL"/>
-    <sql-case id="lock_by_mysql_source_test_case253" value="LOCK TABLES t1 WRITE" db-types="MySQL"/>
-    <sql-case id="lock_by_mysql_source_test_case254" value="LOCK TABLES t1 WRITE" db-types="MySQL"/>
-    <sql-case id="lock_by_mysql_source_test_case255" value="LOCK TABLES t1 WRITE" db-types="MySQL"/>
-    <sql-case id="lock_by_mysql_source_test_case256" value="LOCK TABLES t1 WRITE" db-types="MySQL"/>
-    <sql-case id="lock_by_mysql_source_test_case257" value="LOCK TABLES t1 WRITE" db-types="MySQL"/>
-    <sql-case id="lock_by_mysql_source_test_case258" value="LOCK TABLES t1 WRITE" db-types="MySQL"/>
-    <sql-case id="lock_by_mysql_source_test_case259" value="LOCK TABLES t1 WRITE" db-types="MySQL"/>
-    <sql-case id="lock_by_mysql_source_test_case260" value="LOCK TABLES t1 WRITE" db-types="MySQL"/>
-    <sql-case id="lock_by_mysql_source_test_case261" value="LOCK TABLES t1 WRITE" db-types="MySQL"/>
-    <sql-case id="lock_by_mysql_source_test_case262" value="LOCK TABLES t1 WRITE" db-types="MySQL"/>
-    <sql-case id="lock_by_mysql_source_test_case263" value="LOCK TABLES t1 WRITE" db-types="MySQL"/>
-    <sql-case id="lock_by_mysql_source_test_case264" value="LOCK TABLES t1 WRITE" db-types="MySQL"/>
-    <sql-case id="lock_by_mysql_source_test_case265" value="LOCK TABLES t1 WRITE" db-types="MySQL"/>
-    <sql-case id="lock_by_mysql_source_test_case266" value="LOCK TABLES t1 WRITE" db-types="MySQL"/>
-    <sql-case id="lock_by_mysql_source_test_case267" value="LOCK TABLES t1 WRITE" db-types="MySQL"/>
-    <sql-case id="lock_by_mysql_source_test_case268" value="LOCK TABLES t1 WRITE" db-types="MySQL"/>
-    <sql-case id="lock_by_mysql_source_test_case269" value="LOCK TABLES t1 WRITE" db-types="MySQL"/>
-    <sql-case id="lock_by_mysql_source_test_case270" value="LOCK TABLES t1 WRITE" db-types="MySQL"/>
-    <sql-case id="lock_by_mysql_source_test_case271" value="LOCK TABLES t1 WRITE" db-types="MySQL"/>
-    <sql-case id="lock_by_mysql_source_test_case272" value="LOCK TABLES t1 WRITE" db-types="MySQL"/>
-    <sql-case id="lock_by_mysql_source_test_case273" value="LOCK TABLES t1 WRITE" db-types="MySQL"/>
-    <sql-case id="lock_by_mysql_source_test_case274" value="LOCK TABLES t1 WRITE" db-types="MySQL"/>
-    <sql-case id="lock_by_mysql_source_test_case275" value="LOCK TABLES t1 WRITE" db-types="MySQL"/>
-    <sql-case id="lock_by_mysql_source_test_case276" value="LOCK TABLES t1 WRITE" db-types="MySQL"/>
-    <sql-case id="lock_by_mysql_source_test_case277" value="LOCK TABLES t1 WRITE" db-types="MySQL"/>
-    <sql-case id="lock_by_mysql_source_test_case278" value="LOCK TABLES t1 WRITE" db-types="MySQL"/>
-    <sql-case id="lock_by_mysql_source_test_case279" value="LOCK TABLES t1 WRITE" db-types="MySQL"/>
-    <sql-case id="lock_by_mysql_source_test_case280" value="LOCK TABLES t1 WRITE" db-types="MySQL"/>
-    <sql-case id="lock_by_mysql_source_test_case281" value="LOCK TABLES t1 WRITE" db-types="MySQL"/>
-    <sql-case id="lock_by_mysql_source_test_case282" value="LOCK TABLES t1 WRITE" db-types="MySQL"/>
-    <sql-case id="lock_by_mysql_source_test_case283" value="LOCK TABLES t1 WRITE" db-types="MySQL"/>
-    <sql-case id="lock_by_mysql_source_test_case284" value="LOCK TABLES t1 WRITE" db-types="MySQL"/>
-    <sql-case id="lock_by_mysql_source_test_case285" value="LOCK TABLES t1 WRITE, m1 WRITE" db-types="MySQL"/>
-    <sql-case id="lock_by_mysql_source_test_case286" value="LOCK TABLES t1 WRITE, t0 WRITE" db-types="MySQL"/>
-    <sql-case id="lock_by_mysql_source_test_case287" value="LOCK TABLES t1 WRITE, t1 b READ" db-types="MySQL"/>
-    <sql-case id="lock_by_mysql_source_test_case288" value="LOCK TABLES t1 WRITE, t1 b READ" db-types="MySQL"/>
-    <sql-case id="lock_by_mysql_source_test_case289" value="LOCK TABLES t1 WRITE, t1 b READ" db-types="MySQL"/>
-    <sql-case id="lock_by_mysql_source_test_case290" value="LOCK TABLES t1 WRITE, t2 READ" db-types="MySQL"/>
-    <sql-case id="lock_by_mysql_source_test_case291" value="LOCK TABLES t1 WRITE, t2 WRITE" db-types="MySQL"/>
-    <sql-case id="lock_by_mysql_source_test_case292" value="LOCK TABLES t1 WRITE, t2 WRITE" db-types="MySQL"/>
-    <sql-case id="lock_by_mysql_source_test_case293" value="LOCK TABLES t1 WRITE, t2 WRITE" db-types="MySQL"/>
-    <sql-case id="lock_by_mysql_source_test_case294" value="LOCK TABLES t1 WRITE, t2 WRITE" db-types="MySQL"/>
-    <sql-case id="lock_by_mysql_source_test_case295" value="LOCK TABLES t1 WRITE, t2 WRITE" db-types="MySQL"/>
-    <sql-case id="lock_by_mysql_source_test_case296" value="LOCK TABLES t1 WRITE, t2 WRITE" db-types="MySQL"/>
-    <sql-case id="lock_by_mysql_source_test_case297" value="LOCK TABLES t1 WRITE, t2 WRITE, t0 WRITE" db-types="MySQL"/>
-    <sql-case id="lock_by_mysql_source_test_case298" value="LOCK TABLES t1 WRITE, t2 WRITE, t3 WRITE" db-types="MySQL"/>
-    <sql-case id="lock_by_mysql_source_test_case299" value="LOCK TABLES t1 WRITE, t2 WRITE, t3 WRITE" db-types="MySQL"/>
-    <sql-case id="lock_by_mysql_source_test_case300" value="LOCK TABLES t1 WRITE, t2 WRITE, t3 WRITE" db-types="MySQL"/>
-    <sql-case id="lock_by_mysql_source_test_case301" value="LOCK TABLES t1 WRITE, t2 WRITE, t3 WRITE" db-types="MySQL"/>
-    <sql-case id="lock_by_mysql_source_test_case302" value="LOCK TABLES t1 WRITE, t2 WRITE, t3 WRITE, t0 WRITE" db-types="MySQL"/>
-    <sql-case id="lock_by_mysql_source_test_case303" value="LOCK TABLES t1 WRITE, t2 WRITE, t3 WRITE, t4 WRITE" db-types="MySQL"/>
-    <sql-case id="lock_by_mysql_source_test_case304" value="LOCK TABLES t1 WRITE, t2 WRITE, t3 WRITE, t4 WRITE" db-types="MySQL"/>
-    <sql-case id="lock_by_mysql_source_test_case305" value="LOCK TABLES t1 WRITE, t2 WRITE, t3 WRITE, t4 WRITE" db-types="MySQL"/>
-    <sql-case id="lock_by_mysql_source_test_case306" value="LOCK TABLES t1 WRITE, t2 WRITE, t3 WRITE, t4 WRITE" db-types="MySQL"/>
-    <sql-case id="lock_by_mysql_source_test_case307" value="LOCK TABLES t1 WRITE, t3 WRITE" db-types="MySQL"/>
-    <sql-case id="lock_by_mysql_source_test_case308" value="LOCK TABLES t1 WRITE, t3 WRITE" db-types="MySQL"/>
-    <sql-case id="lock_by_mysql_source_test_case309" value="LOCK TABLES t1 WRITE, v1 READ" db-types="MySQL"/>
-    <sql-case id="lock_by_mysql_source_test_case310" value="LOCK TABLES t1 write, t2 read" db-types="MySQL"/>
-    <sql-case id="lock_by_mysql_source_test_case311" value="LOCK TABLES t1 write, t2 write" db-types="MySQL"/>
-    <sql-case id="lock_by_mysql_source_test_case312" value="LOCK TABLES t2 READ" db-types="MySQL"/>
-    <sql-case id="lock_by_mysql_source_test_case313" value="LOCK TABLES t2 READ" db-types="MySQL"/>
-    <sql-case id="lock_by_mysql_source_test_case314" value="LOCK TABLES t2 READ" db-types="MySQL"/>
-    <sql-case id="lock_by_mysql_source_test_case315" value="LOCK TABLES t2 READ" db-types="MySQL"/>
-    <sql-case id="lock_by_mysql_source_test_case316" value="LOCK TABLES t2 READ" db-types="MySQL"/>
-    <sql-case id="lock_by_mysql_source_test_case317" value="LOCK TABLES t2 READ" db-types="MySQL"/>
-    <sql-case id="lock_by_mysql_source_test_case318" value="LOCK TABLES t2 READ, t4 WRITE" db-types="MySQL"/>
-    <sql-case id="lock_by_mysql_source_test_case319" value="LOCK TABLES t2 READ, t5 WRITE, t5 AS a WRITE, t5 AS b READ" db-types="MySQL"/>
-    <sql-case id="lock_by_mysql_source_test_case320" value="LOCK TABLES t2 WRITE" db-types="MySQL"/>
-    <sql-case id="lock_by_mysql_source_test_case321" value="LOCK TABLES t2 WRITE" db-types="MySQL"/>
-    <sql-case id="lock_by_mysql_source_test_case322" value="LOCK TABLES t2 WRITE" db-types="MySQL"/>
-    <sql-case id="lock_by_mysql_source_test_case323" value="LOCK TABLES t2 WRITE" db-types="MySQL"/>
-    <sql-case id="lock_by_mysql_source_test_case324" value="LOCK TABLES t2 WRITE" db-types="MySQL"/>
-    <sql-case id="lock_by_mysql_source_test_case325" value="LOCK TABLES t2 WRITE" db-types="MySQL"/>
-    <sql-case id="lock_by_mysql_source_test_case326" value="LOCK TABLES t2 WRITE" db-types="MySQL"/>
-    <sql-case id="lock_by_mysql_source_test_case327" value="LOCK TABLES t2 WRITE" db-types="MySQL"/>
-    <sql-case id="lock_by_mysql_source_test_case328" value="LOCK TABLES t2 WRITE" db-types="MySQL"/>
-    <sql-case id="lock_by_mysql_source_test_case329" value="LOCK TABLES t2 WRITE" db-types="MySQL"/>
-    <sql-case id="lock_by_mysql_source_test_case330" value="LOCK TABLES t2 WRITE, t1 WRITE" db-types="MySQL"/>
-    <sql-case id="lock_by_mysql_source_test_case331" value="LOCK TABLES t2 WRITE, t1 WRITE" db-types="MySQL"/>
-    <sql-case id="lock_by_mysql_source_test_case332" value="LOCK TABLES t2 WRITE, t1 WRITE" db-types="MySQL"/>
-    <sql-case id="lock_by_mysql_source_test_case333" value="LOCK TABLES t2 WRITE, t4 WRITE" db-types="MySQL"/>
-    <sql-case id="lock_by_mysql_source_test_case334" value="LOCK TABLES t3 READ" db-types="MySQL"/>
-    <sql-case id="lock_by_mysql_source_test_case335" value="LOCK TABLES t3 WRITE" db-types="MySQL"/>
-    <sql-case id="lock_by_mysql_source_test_case336" value="LOCK TABLES t3 WRITE" db-types="MySQL"/>
-    <sql-case id="lock_by_mysql_source_test_case337" value="LOCK TABLES t3 WRITE, t2 WRITE, t1 WRITE" db-types="MySQL"/>
-    <sql-case id="lock_by_mysql_source_test_case338" value="LOCK TABLES t3 WRITE, t2 WRITE, t4 WRITE, t1 WRITE" db-types="MySQL"/>
-    <sql-case id="lock_by_mysql_source_test_case339" value="LOCK TABLES t3 WRITE, t2 WRITE, t4 WRITE, t1 WRITE" db-types="MySQL"/>
-    <sql-case id="lock_by_mysql_source_test_case340" value="LOCK TABLES t3 WRITE, t2 WRITE, t4 WRITE, t1 WRITE" db-types="MySQL"/>
-    <sql-case id="lock_by_mysql_source_test_case341" value="LOCK TABLES t3 WRITE, t2 WRITE, t4 WRITE, t1 WRITE" db-types="MySQL"/>
-    <sql-case id="lock_by_mysql_source_test_case342" value="LOCK TABLES t3 WRITE, t2 WRITE, t4 WRITE, t1 WRITE" db-types="MySQL"/>
-    <sql-case id="lock_by_mysql_source_test_case343" value="LOCK TABLES t3 WRITE, t2 WRITE, t4 WRITE, t1 WRITE" db-types="MySQL"/>
-    <sql-case id="lock_by_mysql_source_test_case344" value="LOCK TABLES t3 WRITE, t2 WRITE, t4 WRITE, t1 WRITE" db-types="MySQL"/>
-    <sql-case id="lock_by_mysql_source_test_case345" value="LOCK TABLES t3 WRITE, t2 WRITE, t4 WRITE, t1 WRITE" db-types="MySQL"/>
-    <sql-case id="lock_by_mysql_source_test_case346" value="LOCK TABLES t3 WRITE, t2 WRITE, t4 WRITE, t1 WRITE" db-types="MySQL"/>
-    <sql-case id="lock_by_mysql_source_test_case347" value="LOCK TABLES t4 WRITE" db-types="MySQL"/>
-    <sql-case id="lock_by_mysql_source_test_case348" value="LOCK TABLES t4 WRITE, t1 WRITE" db-types="MySQL"/>
-    <sql-case id="lock_by_mysql_source_test_case349" value="LOCK TABLES t4 WRITE, t3 WRITE, t2 WRITE" db-types="MySQL"/>
-    <sql-case id="lock_by_mysql_source_test_case350" value="LOCK TABLES t4 WRITE, t3 WRITE, t2 WRITE, t1 WRITE" db-types="MySQL"/>
-    <sql-case id="lock_by_mysql_source_test_case351" value="LOCK TABLES t4 WRITE, t3 WRITE, t2 WRITE, t1 WRITE" db-types="MySQL"/>
-    <sql-case id="lock_by_mysql_source_test_case352" value="LOCK TABLES t4 WRITE, t3 WRITE, t2 WRITE, t1 WRITE" db-types="MySQL"/>
-    <sql-case id="lock_by_mysql_source_test_case353" value="LOCK TABLES t4 WRITE, t5 WRITE, t6 WRITE" db-types="MySQL"/>
-    <sql-case id="lock_by_mysql_source_test_case354" value="LOCK TABLES t5 WRITE" db-types="MySQL"/>
-    <sql-case id="lock_by_mysql_source_test_case355" value="LOCK TABLES t5 WRITE" db-types="MySQL"/>
-    <sql-case id="lock_by_mysql_source_test_case356" value="LOCK TABLES t5 WRITE" db-types="MySQL"/>
-    <sql-case id="lock_by_mysql_source_test_case357" value="LOCK TABLES t5 WRITE, t6 WRITE" db-types="MySQL"/>
-    <sql-case id="lock_by_mysql_source_test_case358" value="LOCK TABLES t5 WRITE, t6 WRITE" db-types="MySQL"/>
-    <sql-case id="lock_by_mysql_source_test_case359" value="LOCK TABLES t5 WRITE, t6 WRITE" db-types="MySQL"/>
-    <sql-case id="lock_by_mysql_source_test_case360" value="LOCK TABLES t6 WRITE" db-types="MySQL"/>
-    <sql-case id="lock_by_mysql_source_test_case361" value="LOCK TABLES t6 WRITE" db-types="MySQL"/>
-    <sql-case id="lock_by_mysql_source_test_case362" value="LOCK TABLES t7 WRITE" db-types="MySQL"/>
-    <sql-case id="lock_by_mysql_source_test_case363" value="LOCK TABLES t8 WRITE" db-types="MySQL"/>
-    <sql-case id="lock_by_mysql_source_test_case364" value="LOCK TABLES test.t1 READ" db-types="MySQL"/>
-    <sql-case id="lock_by_mysql_source_test_case365" value="LOCK TABLES test.t1 READ" db-types="MySQL"/>
-    <sql-case id="lock_by_mysql_source_test_case366" value="LOCK TABLES test.t1 WRITE" db-types="MySQL"/>
-    <sql-case id="lock_by_mysql_source_test_case367" value="LOCK TABLES test.t1 WRITE" db-types="MySQL"/>
-    <sql-case id="lock_by_mysql_source_test_case368" value="LOCK TABLES test1 WRITE" db-types="MySQL"/>
-    <sql-case id="lock_by_mysql_source_test_case369" value="LOCK TABLES test_concurrent_insert READ LOCAL" db-types="MySQL"/>
-    <sql-case id="lock_by_mysql_source_test_case370" value="LOCK TABLES test_concurrent_insert WRITE" db-types="MySQL"/>
-    <sql-case id="lock_by_mysql_source_test_case371" value="LOCK TABLES v1 READ" db-types="MySQL"/>
-    <sql-case id="lock_by_mysql_source_test_case372" value="LOCK TABLES v1 READ" db-types="MySQL"/>
-    <sql-case id="lock_by_mysql_source_test_case373" value="LOCK TABLES v1 READ" db-types="MySQL"/>
-    <sql-case id="lock_by_mysql_source_test_case374" value="LOCK TABLES v1 READ" db-types="MySQL"/>
-    <sql-case id="lock_by_mysql_source_test_case375" value="LOCK TABLES v1 READ" db-types="MySQL"/>
-    <sql-case id="lock_by_mysql_source_test_case376" value="LOCK TABLES v1 READ, v2 READ" db-types="MySQL"/>
-    <sql-case id="lock_by_mysql_source_test_case377" value="LOCK TABLES v1 READ, v2 READ" db-types="MySQL"/>
-    <sql-case id="lock_by_mysql_source_test_case378" value="LOCK TABLES v1 WRITE" db-types="MySQL"/>
-    <sql-case id="lock_by_mysql_source_test_case379" value="LOCK TABLES v1 WRITE" db-types="MySQL"/>
-    <sql-case id="lock_by_mysql_source_test_case380" value="LOCK TABLES v1 WRITE" db-types="MySQL"/>
-    <sql-case id="lock_by_mysql_source_test_case381" value="LOCK TABLES v1 WRITE" db-types="MySQL"/>
-    <sql-case id="lock_by_mysql_source_test_case382" value="LOCK TABLES v1 WRITE, t1 READ" db-types="MySQL"/>
-    <sql-case id="lock_by_mysql_source_test_case383" value="LOCK TABLES v2 READ" db-types="MySQL"/>
-    <sql-case id="lock_by_mysql_source_test_case384" value="LOCK TABLES v2 READ" db-types="MySQL"/>
-    <sql-case id="lock_by_mysql_source_test_case385" value="LOCK TABLES v2 WRITE" db-types="MySQL"/>
-    <sql-case id="lock_by_mysql_source_test_case386" value="LOCK TABLES v2 WRITE, v3 WRITE" db-types="MySQL"/>
-    <sql-case id="lock_by_mysql_source_test_case387" value="LOCK TABLES v3 WRITE" db-types="MySQL"/>
-    <sql-case id="lock_by_mysql_source_test_case388" value="LOCK TABLES v3 WRITE" db-types="MySQL"/>
-    <sql-case id="lock_by_mysql_source_test_case389" value="LOCK TABLES v3 WRITE, t6 WRITE" db-types="MySQL"/>
-    <sql-case id="lock_by_mysql_source_test_case390" value="LOCK TABLES v3 WRITE, v4 WRITE" db-types="MySQL"/>
-    <sql-case id="lock_by_mysql_source_test_case391" value="LOCK TABLES v3 WRITE, v4 WRITE" db-types="MySQL"/>
-    <sql-case id="lock_by_mysql_source_test_case392" value="LOCK TABLES v3 WRITE, v4 WRITE" db-types="MySQL"/>
-    <sql-case id="lock_by_mysql_source_test_case393" value="LOCK TABLES v3 WRITE, v4 WRITE" db-types="MySQL"/>
-    <sql-case id="lock_by_mysql_source_test_case394" value="LOCK TABLES v4 WRITE" db-types="MySQL"/>
-    <sql-case id="lock_by_mysql_source_test_case395" value="LOCK TABLES v4 WRITE" db-types="MySQL"/>
     <sql-case id="open_by_mysql_source_test_case1" value="OPEN cur1" db-types="MySQL"/>
     <sql-case id="prepare_by_mysql_source_test_case1" value="PREPARE STMT FROM &apos;SELECT t, next_seq_value() r FROM t1 FORCE INDEX(t) GROUP BY t HAVING (SELECT 1 FROM t1 WHERE r = 1 LIMIT 1) ORDER BY t1.u&apos;" db-types="MySQL"/>
     <sql-case id="prepare_by_mysql_source_test_case2" value="PREPARE X FROM &apos;CREATE VIEW bug22108567_v1 AS SELECT 1 FROM (SELECT 1) AS D1&apos;" db-types="MySQL"/>
@@ -6741,200 +6346,6 @@
     <sql-case id="low_load_by_mysql_source_test_case49" value="load xml infile &apos;../../std_data/loadxml.dat&apos; into table t1 rows identified by &apos;&lt;row&gt;&apos;" db-types="MySQL"/>
     <sql-case id="low_load_by_mysql_source_test_case50" value="load xml infile &apos;../../std_data/loadxml.dat&apos; into table t1 rows identified by &apos;&lt;row&gt;&apos; ignore 4 rows" db-types="MySQL"/>
     <sql-case id="low_load_by_mysql_source_test_case51" value="load xml infile &apos;../../std_data/loadxml2.dat&apos; into table t1" db-types="MySQL"/>
-    <sql-case id="low_lock_by_mysql_source_test_case1" value="lock table mysql.user write" db-types="MySQL"/>
-    <sql-case id="low_lock_by_mysql_source_test_case2" value="lock table mysql.user write" db-types="MySQL"/>
-    <sql-case id="low_lock_by_mysql_source_test_case3" value="lock table no_such_table read" db-types="MySQL"/>
-    <sql-case id="low_lock_by_mysql_source_test_case4" value="lock table no_such_table read" db-types="MySQL"/>
-    <sql-case id="low_lock_by_mysql_source_test_case5" value="lock table t1 read" db-types="MySQL"/>
-    <sql-case id="low_lock_by_mysql_source_test_case6" value="lock table t1 read" db-types="MySQL"/>
-    <sql-case id="low_lock_by_mysql_source_test_case7" value="lock table t1 read" db-types="MySQL"/>
-    <sql-case id="low_lock_by_mysql_source_test_case8" value="lock table t1 read" db-types="MySQL"/>
-    <sql-case id="low_lock_by_mysql_source_test_case9" value="lock table t1 read" db-types="MySQL"/>
-    <sql-case id="low_lock_by_mysql_source_test_case10" value="lock table t1 read" db-types="MySQL"/>
-    <sql-case id="low_lock_by_mysql_source_test_case11" value="lock table t1 read" db-types="MySQL"/>
-    <sql-case id="low_lock_by_mysql_source_test_case12" value="lock table t1 read" db-types="MySQL"/>
-    <sql-case id="low_lock_by_mysql_source_test_case13" value="lock table t1 read" db-types="MySQL"/>
-    <sql-case id="low_lock_by_mysql_source_test_case14" value="lock table t1 read" db-types="MySQL"/>
-    <sql-case id="low_lock_by_mysql_source_test_case15" value="lock table t1 read" db-types="MySQL"/>
-    <sql-case id="low_lock_by_mysql_source_test_case16" value="lock table t1 read" db-types="MySQL"/>
-    <sql-case id="low_lock_by_mysql_source_test_case17" value="lock table t1 read" db-types="MySQL"/>
-    <sql-case id="low_lock_by_mysql_source_test_case18" value="lock table t1 read" db-types="MySQL"/>
-    <sql-case id="low_lock_by_mysql_source_test_case19" value="lock table t1 read" db-types="MySQL"/>
-    <sql-case id="low_lock_by_mysql_source_test_case20" value="lock table t1 read" db-types="MySQL"/>
-    <sql-case id="low_lock_by_mysql_source_test_case21" value="lock table t1 read" db-types="MySQL"/>
-    <sql-case id="low_lock_by_mysql_source_test_case22" value="lock table t1 read" db-types="MySQL"/>
-    <sql-case id="low_lock_by_mysql_source_test_case23" value="lock table t1 read" db-types="MySQL"/>
-    <sql-case id="low_lock_by_mysql_source_test_case24" value="lock table t1 read" db-types="MySQL"/>
-    <sql-case id="low_lock_by_mysql_source_test_case25" value="lock table t1 read" db-types="MySQL"/>
-    <sql-case id="low_lock_by_mysql_source_test_case26" value="lock table t1 read" db-types="MySQL"/>
-    <sql-case id="low_lock_by_mysql_source_test_case27" value="lock table t1 read" db-types="MySQL"/>
-    <sql-case id="low_lock_by_mysql_source_test_case28" value="lock table t1 read" db-types="MySQL"/>
-    <sql-case id="low_lock_by_mysql_source_test_case29" value="lock table t1 read" db-types="MySQL"/>
-    <sql-case id="low_lock_by_mysql_source_test_case30" value="lock table t1 read" db-types="MySQL"/>
-    <sql-case id="low_lock_by_mysql_source_test_case31" value="lock table t1 read" db-types="MySQL"/>
-    <sql-case id="low_lock_by_mysql_source_test_case32" value="lock table t1 read" db-types="MySQL"/>
-    <sql-case id="low_lock_by_mysql_source_test_case33" value="lock table t1 read" db-types="MySQL"/>
-    <sql-case id="low_lock_by_mysql_source_test_case34" value="lock table t1 read local" db-types="MySQL"/>
-    <sql-case id="low_lock_by_mysql_source_test_case35" value="lock table t1 read local" db-types="MySQL"/>
-    <sql-case id="low_lock_by_mysql_source_test_case36" value="lock table t1 read local" db-types="MySQL"/>
-    <sql-case id="low_lock_by_mysql_source_test_case37" value="lock table t1 read local" db-types="MySQL"/>
-    <sql-case id="low_lock_by_mysql_source_test_case38" value="lock table t1 read, t2 read" db-types="MySQL"/>
-    <sql-case id="low_lock_by_mysql_source_test_case39" value="lock table t1 read, t2 read" db-types="MySQL"/>
-    <sql-case id="low_lock_by_mysql_source_test_case40" value="lock table t1 read, t2 read" db-types="MySQL"/>
-    <sql-case id="low_lock_by_mysql_source_test_case41" value="lock table t1 read, t2 read, t3 read" db-types="MySQL"/>
-    <sql-case id="low_lock_by_mysql_source_test_case42" value="lock table t1 read, t2 read, t3 write" db-types="MySQL"/>
-    <sql-case id="low_lock_by_mysql_source_test_case43" value="lock table t1 read, t2 write" db-types="MySQL"/>
-    <sql-case id="low_lock_by_mysql_source_test_case44" value="lock table t1 write" db-types="MySQL"/>
-    <sql-case id="low_lock_by_mysql_source_test_case45" value="lock table t1 write" db-types="MySQL"/>
-    <sql-case id="low_lock_by_mysql_source_test_case46" value="lock table t1 write" db-types="MySQL"/>
-    <sql-case id="low_lock_by_mysql_source_test_case47" value="lock table t1 write" db-types="MySQL"/>
-    <sql-case id="low_lock_by_mysql_source_test_case48" value="lock table t1 write" db-types="MySQL"/>
-    <sql-case id="low_lock_by_mysql_source_test_case49" value="lock table t1 write" db-types="MySQL"/>
-    <sql-case id="low_lock_by_mysql_source_test_case50" value="lock table t1 write" db-types="MySQL"/>
-    <sql-case id="low_lock_by_mysql_source_test_case51" value="lock table t1 write" db-types="MySQL"/>
-    <sql-case id="low_lock_by_mysql_source_test_case52" value="lock table t1 write" db-types="MySQL"/>
-    <sql-case id="low_lock_by_mysql_source_test_case53" value="lock table t1 write" db-types="MySQL"/>
-    <sql-case id="low_lock_by_mysql_source_test_case54" value="lock table t1 write" db-types="MySQL"/>
-    <sql-case id="low_lock_by_mysql_source_test_case55" value="lock table t1 write" db-types="MySQL"/>
-    <sql-case id="low_lock_by_mysql_source_test_case56" value="lock table t1 write" db-types="MySQL"/>
-    <sql-case id="low_lock_by_mysql_source_test_case57" value="lock table t1 write" db-types="MySQL"/>
-    <sql-case id="low_lock_by_mysql_source_test_case58" value="lock table t1 write" db-types="MySQL"/>
-    <sql-case id="low_lock_by_mysql_source_test_case59" value="lock table t1 write" db-types="MySQL"/>
-    <sql-case id="low_lock_by_mysql_source_test_case60" value="lock table t1 write" db-types="MySQL"/>
-    <sql-case id="low_lock_by_mysql_source_test_case61" value="lock table t1 write" db-types="MySQL"/>
-    <sql-case id="low_lock_by_mysql_source_test_case62" value="lock table t1 write" db-types="MySQL"/>
-    <sql-case id="low_lock_by_mysql_source_test_case63" value="lock table t1 write" db-types="MySQL"/>
-    <sql-case id="low_lock_by_mysql_source_test_case64" value="lock table t1 write" db-types="MySQL"/>
-    <sql-case id="low_lock_by_mysql_source_test_case65" value="lock table t1 write" db-types="MySQL"/>
-    <sql-case id="low_lock_by_mysql_source_test_case66" value="lock table t1 write" db-types="MySQL"/>
-    <sql-case id="low_lock_by_mysql_source_test_case67" value="lock table t1 write" db-types="MySQL"/>
-    <sql-case id="low_lock_by_mysql_source_test_case68" value="lock table t1 write" db-types="MySQL"/>
-    <sql-case id="low_lock_by_mysql_source_test_case69" value="lock table t1 write" db-types="MySQL"/>
-    <sql-case id="low_lock_by_mysql_source_test_case70" value="lock table t1 write" db-types="MySQL"/>
-    <sql-case id="low_lock_by_mysql_source_test_case71" value="lock table t1 write" db-types="MySQL"/>
-    <sql-case id="low_lock_by_mysql_source_test_case72" value="lock table t1 write" db-types="MySQL"/>
-    <sql-case id="low_lock_by_mysql_source_test_case73" value="lock table t1 write" db-types="MySQL"/>
-    <sql-case id="low_lock_by_mysql_source_test_case74" value="lock table t1 write" db-types="MySQL"/>
-    <sql-case id="low_lock_by_mysql_source_test_case75" value="lock table t1 write" db-types="MySQL"/>
-    <sql-case id="low_lock_by_mysql_source_test_case76" value="lock table t1 write, t2 read" db-types="MySQL"/>
-    <sql-case id="low_lock_by_mysql_source_test_case77" value="lock table t1 write, t2 read local" db-types="MySQL"/>
-    <sql-case id="low_lock_by_mysql_source_test_case78" value="lock table t1 write, t2 read local" db-types="MySQL"/>
-    <sql-case id="low_lock_by_mysql_source_test_case79" value="lock table t1 write, t2 write" db-types="MySQL"/>
-    <sql-case id="low_lock_by_mysql_source_test_case80" value="lock table t1 write, t2 write" db-types="MySQL"/>
-    <sql-case id="low_lock_by_mysql_source_test_case81" value="lock table t1 write, t2 write" db-types="MySQL"/>
-    <sql-case id="low_lock_by_mysql_source_test_case82" value="lock table t1 write, t2 write" db-types="MySQL"/>
-    <sql-case id="low_lock_by_mysql_source_test_case83" value="lock table t1 write, t2 write, t1 as t1_2 write, t2 as t2_2 write" db-types="MySQL"/>
-    <sql-case id="low_lock_by_mysql_source_test_case84" value="lock table t2 read" db-types="MySQL"/>
-    <sql-case id="low_lock_by_mysql_source_test_case85" value="lock table t2 read" db-types="MySQL"/>
-    <sql-case id="low_lock_by_mysql_source_test_case86" value="lock table t2 read" db-types="MySQL"/>
-    <sql-case id="low_lock_by_mysql_source_test_case87" value="lock table t2 read" db-types="MySQL"/>
-    <sql-case id="low_lock_by_mysql_source_test_case88" value="lock table t2 write" db-types="MySQL"/>
-    <sql-case id="low_lock_by_mysql_source_test_case89" value="lock table t2 write" db-types="MySQL"/>
-    <sql-case id="low_lock_by_mysql_source_test_case90" value="lock table t2 write" db-types="MySQL"/>
-    <sql-case id="low_lock_by_mysql_source_test_case91" value="lock table t3 read" db-types="MySQL"/>
-    <sql-case id="low_lock_by_mysql_source_test_case92" value="lock table v1 read" db-types="MySQL"/>
-    <sql-case id="low_lock_by_mysql_source_test_case93" value="lock table v_bug5719 write" db-types="MySQL"/>
-    <sql-case id="low_lock_by_mysql_source_test_case94" value="lock tables mysql.general_log READ" db-types="MySQL"/>
-    <sql-case id="low_lock_by_mysql_source_test_case95" value="lock tables mysql.general_log WRITE" db-types="MySQL"/>
-    <sql-case id="low_lock_by_mysql_source_test_case96" value="lock tables mysql.slow_log READ" db-types="MySQL"/>
-    <sql-case id="low_lock_by_mysql_source_test_case97" value="lock tables mysql.slow_log WRITE" db-types="MySQL"/>
-    <sql-case id="low_lock_by_mysql_source_test_case98" value="lock tables t1 READ" db-types="MySQL"/>
-    <sql-case id="low_lock_by_mysql_source_test_case99" value="lock tables t1 WRITE" db-types="MySQL"/>
-    <sql-case id="low_lock_by_mysql_source_test_case100" value="lock tables t1 read" db-types="MySQL"/>
-    <sql-case id="low_lock_by_mysql_source_test_case101" value="lock tables t1 read" db-types="MySQL"/>
-    <sql-case id="low_lock_by_mysql_source_test_case102" value="lock tables t1 read" db-types="MySQL"/>
-    <sql-case id="low_lock_by_mysql_source_test_case103" value="lock tables t1 read" db-types="MySQL"/>
-    <sql-case id="low_lock_by_mysql_source_test_case104" value="lock tables t1 read" db-types="MySQL"/>
-    <sql-case id="low_lock_by_mysql_source_test_case105" value="lock tables t1 read" db-types="MySQL"/>
-    <sql-case id="low_lock_by_mysql_source_test_case106" value="lock tables t1 read" db-types="MySQL"/>
-    <sql-case id="low_lock_by_mysql_source_test_case107" value="lock tables t1 read" db-types="MySQL"/>
-    <sql-case id="low_lock_by_mysql_source_test_case108" value="lock tables t1 read" db-types="MySQL"/>
-    <sql-case id="low_lock_by_mysql_source_test_case109" value="lock tables t1 read" db-types="MySQL"/>
-    <sql-case id="low_lock_by_mysql_source_test_case110" value="lock tables t1 read" db-types="MySQL"/>
-    <sql-case id="low_lock_by_mysql_source_test_case111" value="lock tables t1 read" db-types="MySQL"/>
-    <sql-case id="low_lock_by_mysql_source_test_case112" value="lock tables t1 read" db-types="MySQL"/>
-    <sql-case id="low_lock_by_mysql_source_test_case113" value="lock tables t1 read" db-types="MySQL"/>
-    <sql-case id="low_lock_by_mysql_source_test_case114" value="lock tables t1 read" db-types="MySQL"/>
-    <sql-case id="low_lock_by_mysql_source_test_case115" value="lock tables t1 read" db-types="MySQL"/>
-    <sql-case id="low_lock_by_mysql_source_test_case116" value="lock tables t1 read" db-types="MySQL"/>
-    <sql-case id="low_lock_by_mysql_source_test_case117" value="lock tables t1 read" db-types="MySQL"/>
-    <sql-case id="low_lock_by_mysql_source_test_case118" value="lock tables t1 read local, t2 read local" db-types="MySQL"/>
-    <sql-case id="low_lock_by_mysql_source_test_case119" value="lock tables t1 read, t2 read" db-types="MySQL"/>
-    <sql-case id="low_lock_by_mysql_source_test_case120" value="lock tables t1 read, t2 read" db-types="MySQL"/>
-    <sql-case id="low_lock_by_mysql_source_test_case121" value="lock tables t1 read, t2 read" db-types="MySQL"/>
-    <sql-case id="low_lock_by_mysql_source_test_case122" value="lock tables t1 read, t2 write" db-types="MySQL"/>
-    <sql-case id="low_lock_by_mysql_source_test_case123" value="lock tables t1 read, t2 write" db-types="MySQL"/>
-    <sql-case id="low_lock_by_mysql_source_test_case124" value="lock tables t1 read, v1 read" db-types="MySQL"/>
-    <sql-case id="low_lock_by_mysql_source_test_case125" value="lock tables t1 read, v1 read" db-types="MySQL"/>
-    <sql-case id="low_lock_by_mysql_source_test_case126" value="lock tables t1 read, v1 read" db-types="MySQL"/>
-    <sql-case id="low_lock_by_mysql_source_test_case127" value="lock tables t1 read,t2 write" db-types="MySQL"/>
-    <sql-case id="low_lock_by_mysql_source_test_case128" value="lock tables t1 write" db-types="MySQL"/>
-    <sql-case id="low_lock_by_mysql_source_test_case129" value="lock tables t1 write" db-types="MySQL"/>
-    <sql-case id="low_lock_by_mysql_source_test_case130" value="lock tables t1 write" db-types="MySQL"/>
-    <sql-case id="low_lock_by_mysql_source_test_case131" value="lock tables t1 write" db-types="MySQL"/>
-    <sql-case id="low_lock_by_mysql_source_test_case132" value="lock tables t1 write" db-types="MySQL"/>
-    <sql-case id="low_lock_by_mysql_source_test_case133" value="lock tables t1 write" db-types="MySQL"/>
-    <sql-case id="low_lock_by_mysql_source_test_case134" value="lock tables t1 write" db-types="MySQL"/>
-    <sql-case id="low_lock_by_mysql_source_test_case135" value="lock tables t1 write" db-types="MySQL"/>
-    <sql-case id="low_lock_by_mysql_source_test_case136" value="lock tables t1 write" db-types="MySQL"/>
-    <sql-case id="low_lock_by_mysql_source_test_case137" value="lock tables t1 write" db-types="MySQL"/>
-    <sql-case id="low_lock_by_mysql_source_test_case138" value="lock tables t1 write" db-types="MySQL"/>
-    <sql-case id="low_lock_by_mysql_source_test_case139" value="lock tables t1 write" db-types="MySQL"/>
-    <sql-case id="low_lock_by_mysql_source_test_case140" value="lock tables t1 write" db-types="MySQL"/>
-    <sql-case id="low_lock_by_mysql_source_test_case141" value="lock tables t1 write" db-types="MySQL"/>
-    <sql-case id="low_lock_by_mysql_source_test_case142" value="lock tables t1 write" db-types="MySQL"/>
-    <sql-case id="low_lock_by_mysql_source_test_case143" value="lock tables t1 write" db-types="MySQL"/>
-    <sql-case id="low_lock_by_mysql_source_test_case144" value="lock tables t1 write" db-types="MySQL"/>
-    <sql-case id="low_lock_by_mysql_source_test_case145" value="lock tables t1 write" db-types="MySQL"/>
-    <sql-case id="low_lock_by_mysql_source_test_case146" value="lock tables t1 write, t1 as a read, t1 as b read" db-types="MySQL"/>
-    <sql-case id="low_lock_by_mysql_source_test_case147" value="lock tables t1 write, t1 as a read, t1 as b read" db-types="MySQL"/>
-    <sql-case id="low_lock_by_mysql_source_test_case148" value="lock tables t1 write, t1 as a read, t1 as b read" db-types="MySQL"/>
-    <sql-case id="low_lock_by_mysql_source_test_case149" value="lock tables t1 write, t1 as t0 read" db-types="MySQL"/>
-    <sql-case id="low_lock_by_mysql_source_test_case150" value="lock tables t1 write, t1 as t0 read, t1 as t2 read" db-types="MySQL"/>
-    <sql-case id="low_lock_by_mysql_source_test_case151" value="lock tables t1 write, t1 as t0 write, t1 as t2 read" db-types="MySQL"/>
-    <sql-case id="low_lock_by_mysql_source_test_case152" value="lock tables t1 write, t1 as t0 write, t1 as t2 read, t1 as t3 read" db-types="MySQL"/>
-    <sql-case id="low_lock_by_mysql_source_test_case153" value="lock tables t1 write, t1 as t0 write, t1 as t2 write" db-types="MySQL"/>
-    <sql-case id="low_lock_by_mysql_source_test_case154" value="lock tables t1 write, t1 as t1_alias read" db-types="MySQL"/>
-    <sql-case id="low_lock_by_mysql_source_test_case155" value="lock tables t1 write, t2 read" db-types="MySQL"/>
-    <sql-case id="low_lock_by_mysql_source_test_case156" value="lock tables t1 write, t2 read" db-types="MySQL"/>
-    <sql-case id="low_lock_by_mysql_source_test_case157" value="lock tables t1 write, t2 write, t3 write" db-types="MySQL"/>
-    <sql-case id="low_lock_by_mysql_source_test_case158" value="lock tables t1 write, t2 write, t3 write, t1 as t4 read" db-types="MySQL"/>
-    <sql-case id="low_lock_by_mysql_source_test_case159" value="lock tables t1 write, t3 read" db-types="MySQL"/>
-    <sql-case id="low_lock_by_mysql_source_test_case160" value="lock tables t1 write, v1 write" db-types="MySQL"/>
-    <sql-case id="low_lock_by_mysql_source_test_case161" value="lock tables t1 write, v1 write" db-types="MySQL"/>
-    <sql-case id="low_lock_by_mysql_source_test_case162" value="lock tables t1 write, v_bug5719 write" db-types="MySQL"/>
-    <sql-case id="low_lock_by_mysql_source_test_case163" value="lock tables t1 write,t1 as b write, t2 write, t2 as c read" db-types="MySQL"/>
-    <sql-case id="low_lock_by_mysql_source_test_case164" value="lock tables t1 write,t1 as b write, t2 write, t2 as c read" db-types="MySQL"/>
-    <sql-case id="low_lock_by_mysql_source_test_case165" value="lock tables t1_base read" db-types="MySQL"/>
-    <sql-case id="low_lock_by_mysql_source_test_case166" value="lock tables t1_base read" db-types="MySQL"/>
-    <sql-case id="low_lock_by_mysql_source_test_case167" value="lock tables t1_base write" db-types="MySQL"/>
-    <sql-case id="low_lock_by_mysql_source_test_case168" value="lock tables t1_temp write" db-types="MySQL"/>
-    <sql-case id="low_lock_by_mysql_source_test_case169" value="lock tables t1_temp write" db-types="MySQL"/>
-    <sql-case id="low_lock_by_mysql_source_test_case170" value="lock tables t2 read" db-types="MySQL"/>
-    <sql-case id="low_lock_by_mysql_source_test_case171" value="lock tables t2 read" db-types="MySQL"/>
-    <sql-case id="low_lock_by_mysql_source_test_case172" value="lock tables t2 read" db-types="MySQL"/>
-    <sql-case id="low_lock_by_mysql_source_test_case173" value="lock tables t2 read" db-types="MySQL"/>
-    <sql-case id="low_lock_by_mysql_source_test_case174" value="lock tables t2 read" db-types="MySQL"/>
-    <sql-case id="low_lock_by_mysql_source_test_case175" value="lock tables t2 read" db-types="MySQL"/>
-    <sql-case id="low_lock_by_mysql_source_test_case176" value="lock tables t2 read" db-types="MySQL"/>
-    <sql-case id="low_lock_by_mysql_source_test_case177" value="lock tables t2 read" db-types="MySQL"/>
-    <sql-case id="low_lock_by_mysql_source_test_case178" value="lock tables t2 read" db-types="MySQL"/>
-    <sql-case id="low_lock_by_mysql_source_test_case179" value="lock tables t2 read" db-types="MySQL"/>
-    <sql-case id="low_lock_by_mysql_source_test_case180" value="lock tables t2 read" db-types="MySQL"/>
-    <sql-case id="low_lock_by_mysql_source_test_case181" value="lock tables t2 read" db-types="MySQL"/>
-    <sql-case id="low_lock_by_mysql_source_test_case182" value="lock tables t2 read" db-types="MySQL"/>
-    <sql-case id="low_lock_by_mysql_source_test_case183" value="lock tables t2 read" db-types="MySQL"/>
-    <sql-case id="low_lock_by_mysql_source_test_case184" value="lock tables t2 write" db-types="MySQL"/>
-    <sql-case id="low_lock_by_mysql_source_test_case185" value="lock tables t2 write" db-types="MySQL"/>
-    <sql-case id="low_lock_by_mysql_source_test_case186" value="lock tables t2 write" db-types="MySQL"/>
-    <sql-case id="low_lock_by_mysql_source_test_case187" value="lock tables t2 write" db-types="MySQL"/>
-    <sql-case id="low_lock_by_mysql_source_test_case188" value="lock tables t2 write" db-types="MySQL"/>
-    <sql-case id="low_lock_by_mysql_source_test_case189" value="lock tables t2 write" db-types="MySQL"/>
-    <sql-case id="low_lock_by_mysql_source_test_case190" value="lock tables t2 write" db-types="MySQL"/>
-    <sql-case id="low_lock_by_mysql_source_test_case191" value="lock tables t3 write" db-types="MySQL"/>
-    <sql-case id="low_lock_by_mysql_source_test_case192" value="lock tables t4 read" db-types="MySQL"/>
-    <sql-case id="low_lock_by_mysql_source_test_case193" value="lock tables v1 read" db-types="MySQL"/>
-    <sql-case id="low_lock_by_mysql_source_test_case194" value="lock tables v_bug5719 write" db-types="MySQL"/>
     <sql-case id="low_optimize_by_mysql_source_test_case1" value="optimize table t1 extended" db-types="MySQL"/>
     <sql-case id="low_password_by_mysql_source_test_case1" value="password validate eval SET @@global.validate_password.dictionary_file=&quot;$MYSQLTEST_VARDIR/tmp/dictionary.txt&quot;" db-types="MySQL"/>
     <sql-case id="low_password_by_mysql_source_test_case2" value="password validate password validate monkey CREATE USER &apos;user1&apos;@&apos;localhost&apos; IDENTIFIED BY &apos;passWORD123#&apos;" db-types="MySQL"/>