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 deaf416 Add MySQL show variables SQL parser. (#13895)
deaf416 is described below
commit deaf41650818cf28506bbbff64b23e40c1086b54
Author: Zonglei Dong <[email protected]>
AuthorDate: Thu Dec 2 12:58:58 2021 +0800
Add MySQL show variables SQL parser. (#13895)
* add ShowFilterSegment, refactor MySQL show open tables SQL parser.
* add ShowFilterSegment test case, refactor MySQL show open tables SQL
parser.
* Add MySQL show variables SQL parser.
* Add MySQL show variables SQL parser test case.
* Add MySQL show variables SQL parser test case.
---
.../impl/MySQLDALStatementSQLVisitor.java | 8 +++-
.../core/database/visitor/SQLVisitorRule.java | 2 +
.../mysql/dal/MySQLShowVariablesStatement.java | 46 +++++++++++++++++++
.../asserts/statement/dal/DALStatementAssert.java | 5 +++
.../dal/impl/ShowVariablesStatementAssert.java | 45 +++++++++++++++++++
.../jaxb/cases/domain/SQLParserTestCases.java | 5 +++
.../dal/ShowVariablesStatementTestCase.java | 36 +++++++++++++++
.../src/main/resources/case/dal/show.xml | 51 +++++++++++++++++++++-
.../src/main/resources/sql/supported/dal/show.xml | 6 +++
9 files changed, 202 insertions(+), 2 deletions(-)
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/MySQLDALStatementSQLVisitor.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/MySQLDALStatementSQLVisitor.java
index 9140b78..68ac3d9 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/MySQLDALStatementSQLVisitor.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/MySQLDALStatementSQLVisitor.java
@@ -182,6 +182,7 @@ import
org.apache.shardingsphere.sql.parser.sql.dialect.statement.mysql.dal.MySQ
import
org.apache.shardingsphere.sql.parser.sql.dialect.statement.mysql.dal.MySQLShowTableStatusStatement;
import
org.apache.shardingsphere.sql.parser.sql.dialect.statement.mysql.dal.MySQLShowTablesStatement;
import
org.apache.shardingsphere.sql.parser.sql.dialect.statement.mysql.dal.MySQLShowTriggersStatement;
+import
org.apache.shardingsphere.sql.parser.sql.dialect.statement.mysql.dal.MySQLShowVariablesStatement;
import
org.apache.shardingsphere.sql.parser.sql.dialect.statement.mysql.dal.MySQLShowWarningsStatement;
import
org.apache.shardingsphere.sql.parser.sql.dialect.statement.mysql.dal.MySQLShutdownStatement;
import
org.apache.shardingsphere.sql.parser.sql.dialect.statement.mysql.dal.MySQLUninstallComponentStatement;
@@ -727,7 +728,12 @@ public final class MySQLDALStatementSQLVisitor extends
MySQLStatementSQLVisitor
@Override
public ASTNode visitShowVariables(final ShowVariablesContext ctx) {
- return new MySQLShowOtherStatement();
+ MySQLShowVariablesStatement result = new MySQLShowVariablesStatement();
+ if (null != ctx.showFilter()) {
+ result.setFilter((ShowFilterSegment) visit(ctx.showFilter()));
+ }
+ result.setParameterCount(getCurrentParameterIndex());
+ return result;
}
@Override
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 6194742..22a5845 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
@@ -238,6 +238,8 @@ public enum SQLVisitorRule {
SHOW_COLLATION("ShowCollation", SQLStatementType.DAL),
+ SHOW_VARIABLES("ShowVariables", SQLStatementType.DAL),
+
SHOW_TABLE_STATUS("ShowTableStatus", SQLStatementType.DAL),
SHOW_COLUMNS("ShowColumns", SQLStatementType.DAL),
diff --git
a/shardingsphere-sql-parser/shardingsphere-sql-parser-statement/src/main/java/org/apache/shardingsphere/sql/parser/sql/dialect/statement/mysql/dal/MySQLShowVariablesStatement.java
b/shardingsphere-sql-parser/shardingsphere-sql-parser-statement/src/main/java/org/apache/shardingsphere/sql/parser/sql/dialect/statement/mysql/dal/MySQLShowVariablesStatement.java
new file mode 100644
index 0000000..89c6709
--- /dev/null
+++
b/shardingsphere-sql-parser/shardingsphere-sql-parser-statement/src/main/java/org/apache/shardingsphere/sql/parser/sql/dialect/statement/mysql/dal/MySQLShowVariablesStatement.java
@@ -0,0 +1,46 @@
+/*
+ * 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.dal;
+
+import lombok.Setter;
+import lombok.ToString;
+import
org.apache.shardingsphere.sql.parser.sql.common.segment.dal.ShowFilterSegment;
+import
org.apache.shardingsphere.sql.parser.sql.common.statement.AbstractSQLStatement;
+import
org.apache.shardingsphere.sql.parser.sql.common.statement.dal.DALStatement;
+import
org.apache.shardingsphere.sql.parser.sql.dialect.statement.mysql.MySQLStatement;
+
+import java.util.Optional;
+
+/**
+ * MySQL show variables statement.
+ */
+@Setter
+@ToString
+public final class MySQLShowVariablesStatement extends AbstractSQLStatement
implements DALStatement, MySQLStatement {
+
+ private ShowFilterSegment filter;
+
+ /**
+ * Get filter segment.
+ *
+ * @return filter segment
+ */
+ public Optional<ShowFilterSegment> getFilter() {
+ return Optional.ofNullable(filter);
+ }
+}
diff --git
a/shardingsphere-test/shardingsphere-parser-test/src/main/java/org/apache/shardingsphere/test/sql/parser/parameterized/asserts/statement/dal/DALStatementAssert.java
b/shardingsphere-test/shardingsphere-parser-test/src/main/java/org/apache/shardingsphere/test/sql/parser/parameterized/asserts/statement/dal/DALStatementAssert.java
index 4547af1..37b2fe3 100644
---
a/shardingsphere-test/shardingsphere-parser-test/src/main/java/org/apache/shardingsphere/test/sql/parser/parameterized/asserts/statement/dal/DALStatementAssert.java
+++
b/shardingsphere-test/shardingsphere-parser-test/src/main/java/org/apache/shardingsphere/test/sql/parser/parameterized/asserts/statement/dal/DALStatementAssert.java
@@ -62,6 +62,7 @@ import
org.apache.shardingsphere.sql.parser.sql.dialect.statement.mysql.dal.MySQ
import
org.apache.shardingsphere.sql.parser.sql.dialect.statement.mysql.dal.MySQLShowTableStatusStatement;
import
org.apache.shardingsphere.sql.parser.sql.dialect.statement.mysql.dal.MySQLShowTablesStatement;
import
org.apache.shardingsphere.sql.parser.sql.dialect.statement.mysql.dal.MySQLShowTriggersStatement;
+import
org.apache.shardingsphere.sql.parser.sql.dialect.statement.mysql.dal.MySQLShowVariablesStatement;
import
org.apache.shardingsphere.sql.parser.sql.dialect.statement.mysql.dal.MySQLShutdownStatement;
import
org.apache.shardingsphere.sql.parser.sql.dialect.statement.mysql.dal.MySQLUninstallComponentStatement;
import
org.apache.shardingsphere.sql.parser.sql.dialect.statement.mysql.dal.MySQLUninstallPluginStatement;
@@ -112,6 +113,7 @@ import
org.apache.shardingsphere.test.sql.parser.parameterized.asserts.statement
import
org.apache.shardingsphere.test.sql.parser.parameterized.asserts.statement.dal.impl.ShowTableStatusStatementAssert;
import
org.apache.shardingsphere.test.sql.parser.parameterized.asserts.statement.dal.impl.ShowTablesStatementAssert;
import
org.apache.shardingsphere.test.sql.parser.parameterized.asserts.statement.dal.impl.ShowTriggersStatementAssert;
+import
org.apache.shardingsphere.test.sql.parser.parameterized.asserts.statement.dal.impl.ShowVariablesStatementAssert;
import
org.apache.shardingsphere.test.sql.parser.parameterized.asserts.statement.dal.impl.ShutdownStatementAssert;
import
org.apache.shardingsphere.test.sql.parser.parameterized.asserts.statement.dal.impl.UninstallComponentStatementAssert;
import
org.apache.shardingsphere.test.sql.parser.parameterized.asserts.statement.dal.impl.UninstallPluginStatementAssert;
@@ -159,6 +161,7 @@ import
org.apache.shardingsphere.test.sql.parser.parameterized.jaxb.cases.domain
import
org.apache.shardingsphere.test.sql.parser.parameterized.jaxb.cases.domain.statement.dal.ShowTableStatusStatementTestCase;
import
org.apache.shardingsphere.test.sql.parser.parameterized.jaxb.cases.domain.statement.dal.ShowTablesStatementTestCase;
import
org.apache.shardingsphere.test.sql.parser.parameterized.jaxb.cases.domain.statement.dal.ShowTriggersStatementTestCase;
+import
org.apache.shardingsphere.test.sql.parser.parameterized.jaxb.cases.domain.statement.dal.ShowVariablesStatementTestCase;
import
org.apache.shardingsphere.test.sql.parser.parameterized.jaxb.cases.domain.statement.dal.ShutdownStatementTestCase;
import
org.apache.shardingsphere.test.sql.parser.parameterized.jaxb.cases.domain.statement.dal.UninstallComponentStatementTestCase;
import
org.apache.shardingsphere.test.sql.parser.parameterized.jaxb.cases.domain.statement.dal.UninstallPluginStatementTestCase;
@@ -272,6 +275,8 @@ public final class DALStatementAssert {
MySQLChecksumTableStatementAssert.assertIs(assertContext,
(MySQLChecksumTableStatement) actual, (ChecksumTableStatementTestCase)
expected);
} else if (actual instanceof MySQLShowCollationStatement) {
ShowCollationStatementAssert.assertIs(assertContext,
(MySQLShowCollationStatement) actual, (ShowCollationStatementTestCase)
expected);
+ } else if (actual instanceof MySQLShowVariablesStatement) {
+ ShowVariablesStatementAssert.assertIs(assertContext,
(MySQLShowVariablesStatement) actual, (ShowVariablesStatementTestCase)
expected);
}
}
}
diff --git
a/shardingsphere-test/shardingsphere-parser-test/src/main/java/org/apache/shardingsphere/test/sql/parser/parameterized/asserts/statement/dal/impl/ShowVariablesStatementAssert.java
b/shardingsphere-test/shardingsphere-parser-test/src/main/java/org/apache/shardingsphere/test/sql/parser/parameterized/asserts/statement/dal/impl/ShowVariablesStatementAssert.java
new file mode 100644
index 0000000..fba3a10
--- /dev/null
+++
b/shardingsphere-test/shardingsphere-parser-test/src/main/java/org/apache/shardingsphere/test/sql/parser/parameterized/asserts/statement/dal/impl/ShowVariablesStatementAssert.java
@@ -0,0 +1,45 @@
+/*
+ * 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.dal.impl;
+
+import lombok.AccessLevel;
+import lombok.NoArgsConstructor;
+import
org.apache.shardingsphere.sql.parser.sql.dialect.statement.mysql.dal.MySQLShowVariablesStatement;
+import
org.apache.shardingsphere.test.sql.parser.parameterized.asserts.SQLCaseAssertContext;
+import
org.apache.shardingsphere.test.sql.parser.parameterized.asserts.segment.show.ShowFilterAssert;
+import
org.apache.shardingsphere.test.sql.parser.parameterized.jaxb.cases.domain.statement.dal.ShowVariablesStatementTestCase;
+
+/**
+ * Show variables statement assert.
+ */
+@NoArgsConstructor(access = AccessLevel.PRIVATE)
+public final class ShowVariablesStatementAssert {
+
+ /**
+ * Assert show variables statement is correct with expected show variables
statement test case.
+ *
+ * @param assertContext assert context
+ * @param actual actual show variables statement
+ * @param expected expected show variables statement test case
+ */
+ public static void assertIs(final SQLCaseAssertContext assertContext,
final MySQLShowVariablesStatement actual, final ShowVariablesStatementTestCase
expected) {
+ if (actual.getFilter().isPresent()) {
+ ShowFilterAssert.assertIs(assertContext, actual.getFilter().get(),
expected.getFilter());
+ }
+ }
+}
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 efcb476..4d93834 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
@@ -64,6 +64,7 @@ import
org.apache.shardingsphere.test.sql.parser.parameterized.jaxb.cases.domain
import
org.apache.shardingsphere.test.sql.parser.parameterized.jaxb.cases.domain.statement.dal.ShowTableStatusStatementTestCase;
import
org.apache.shardingsphere.test.sql.parser.parameterized.jaxb.cases.domain.statement.dal.ShowTablesStatementTestCase;
import
org.apache.shardingsphere.test.sql.parser.parameterized.jaxb.cases.domain.statement.dal.ShowTriggersStatementTestCase;
+import
org.apache.shardingsphere.test.sql.parser.parameterized.jaxb.cases.domain.statement.dal.ShowVariablesStatementTestCase;
import
org.apache.shardingsphere.test.sql.parser.parameterized.jaxb.cases.domain.statement.dal.ShutdownStatementTestCase;
import
org.apache.shardingsphere.test.sql.parser.parameterized.jaxb.cases.domain.statement.dal.UninstallComponentStatementTestCase;
import
org.apache.shardingsphere.test.sql.parser.parameterized.jaxb.cases.domain.statement.dal.UninstallPluginStatementTestCase;
@@ -816,6 +817,9 @@ public final class SQLParserTestCases {
@XmlElement(name = "show-collation")
private final List<ShowCollationStatementTestCase>
showCollationStatementTestCases = new LinkedList<>();
+ @XmlElement(name = "show-variables")
+ private final List<ShowVariablesStatementTestCase>
showVariablesStatementTestCases = new LinkedList<>();
+
/**
* Get all SQL parser test cases.
*
@@ -1019,6 +1023,7 @@ public final class SQLParserTestCases {
putAll(showEventsStatementTestCases, result);
putAll(showCharacterSetStatementTestCases, result);
putAll(showCollationStatementTestCases, result);
+ putAll(showVariablesStatementTestCases, result);
return result;
}
// CHECKSTYLE:ON
diff --git
a/shardingsphere-test/shardingsphere-parser-test/src/main/java/org/apache/shardingsphere/test/sql/parser/parameterized/jaxb/cases/domain/statement/dal/ShowVariablesStatementTestCase.java
b/shardingsphere-test/shardingsphere-parser-test/src/main/java/org/apache/shardingsphere/test/sql/parser/parameterized/jaxb/cases/domain/statement/dal/ShowVariablesStatementTestCase.java
new file mode 100644
index 0000000..2e78115
--- /dev/null
+++
b/shardingsphere-test/shardingsphere-parser-test/src/main/java/org/apache/shardingsphere/test/sql/parser/parameterized/jaxb/cases/domain/statement/dal/ShowVariablesStatementTestCase.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.dal;
+
+import lombok.Getter;
+import lombok.Setter;
+import
org.apache.shardingsphere.test.sql.parser.parameterized.jaxb.cases.domain.segment.impl.show.ExpectedShowFilter;
+import
org.apache.shardingsphere.test.sql.parser.parameterized.jaxb.cases.domain.statement.SQLParserTestCase;
+
+import javax.xml.bind.annotation.XmlElement;
+
+/**
+ * MySQL show variables statement test case.
+ */
+@Getter
+@Setter
+public final class ShowVariablesStatementTestCase extends SQLParserTestCase {
+
+ @XmlElement
+ private ExpectedShowFilter filter;
+}
diff --git
a/shardingsphere-test/shardingsphere-parser-test/src/main/resources/case/dal/show.xml
b/shardingsphere-test/shardingsphere-parser-test/src/main/resources/case/dal/show.xml
index 9952da1..c1aa832 100644
---
a/shardingsphere-test/shardingsphere-parser-test/src/main/resources/case/dal/show.xml
+++
b/shardingsphere-test/shardingsphere-parser-test/src/main/resources/case/dal/show.xml
@@ -698,7 +698,7 @@
</where>
</filter>
</show-character-set>
-
+
<show-collation sql-case-id="show_collation" />
<show-collation sql-case-id="show_collation_with_like_pattern">
@@ -743,4 +743,53 @@
</where>
</filter>
</show-collation>
+
+ <show-variables sql-case-id="show_variables" />
+
+ <show-variables sql-case-id="show_global_variables" />
+
+ <show-variables sql-case-id="show_session_variables" />
+
+ <show-variables sql-case-id="show_variables_with_like_pattern">
+ <filter start-index="23" stop-index="35">
+ <like pattern="%size%" start-delimiter="'" end-delimiter="'"
start-index="23" stop-index="35"/>
+ </filter>
+ </show-variables>
+
+ <show-variables sql-case-id="show_variables_with_where_expr"
parameters="'max_join_size'">
+ <filter start-index="22" stop-index="44" literal-start-index="22"
literal-stop-index="58">
+ <where start-index="22" stop-index="44" literal-start-index="22"
literal-stop-index="58">
+ <expr>
+ <binary-operation-expression start-index="28"
stop-index="44" literal-start-index="28" literal-stop-index="58">
+ <left>
+ <column name="variable_name" start-index="28"
stop-index="40" />
+ </left>
+ <operator>=</operator>
+ <right>
+ <literal-expression value="max_join_size"
start-index="44" stop-index="58" />
+ <parameter-marker-expression value="0"
start-index="44" stop-index="44" />
+ </right>
+ </binary-operation-expression>
+ </expr>
+ </where>
+ </filter>
+ </show-variables>
+
+ <show-variables sql-case-id="show_variables_with_where_expr_no_parameter">
+ <filter start-index="15" stop-index="51">
+ <where start-index="15" stop-index="51">
+ <expr>
+ <binary-operation-expression start-index="21"
stop-index="51">
+ <left>
+ <column name="variable_name" start-index="21"
stop-index="33" />
+ </left>
+ <operator>=</operator>
+ <right>
+ <literal-expression value="max_join_size"
start-index="37" stop-index="51" />
+ </right>
+ </binary-operation-expression>
+ </expr>
+ </where>
+ </filter>
+ </show-variables>
</sql-parser-test-cases>
diff --git
a/shardingsphere-test/shardingsphere-parser-test/src/main/resources/sql/supported/dal/show.xml
b/shardingsphere-test/shardingsphere-parser-test/src/main/resources/sql/supported/dal/show.xml
index 36523c2..c13c8d7 100644
---
a/shardingsphere-test/shardingsphere-parser-test/src/main/resources/sql/supported/dal/show.xml
+++
b/shardingsphere-test/shardingsphere-parser-test/src/main/resources/sql/supported/dal/show.xml
@@ -102,4 +102,10 @@
<sql-case id="show_collation_with_like_pattern" value="SHOW COLLATION LIKE
'latin%'" db-types="MySQL" />
<sql-case id="show_collation_with_where_expr" value="SHOW COLLATION WHERE
Charset = ?" db-types="MySQL" />
<sql-case id="show_collation_with_where_expr_no_parameter" value="SHOW
COLLATION WHERE Charset = 'latin1'" db-types="MySQL" />
+ <sql-case id="show_variables" value="SHOW VARIABLES" db-types="MySQL" />
+ <sql-case id="show_global_variables" value="SHOW GLOBAL VARIABLES"
db-types="MySQL" />
+ <sql-case id="show_session_variables" value="SHOW SESSION VARIABLES"
db-types="MySQL" />
+ <sql-case id="show_variables_with_like_pattern" value="SHOW SESSION
VARIABLES LIKE '%size%'" db-types="MySQL" />
+ <sql-case id="show_variables_with_where_expr" value="SHOW GLOBAL VARIABLES
WHERE variable_name = ?" db-types="MySQL" />
+ <sql-case id="show_variables_with_where_expr_no_parameter" value="SHOW
VARIABLES WHERE variable_name = 'max_join_size'" db-types="MySQL" />
</sql-cases>