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/11/26 09:12:58 UTC

[shardingsphere] branch master updated: Add CaseTypedSQLBuilder (#22437)

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 6f9d1dcfaf2 Add CaseTypedSQLBuilder (#22437)
6f9d1dcfaf2 is described below

commit 6f9d1dcfaf214e2789b266d0c2d76903f898ddbc
Author: Liang Zhang <zh...@apache.org>
AuthorDate: Sat Nov 26 17:12:51 2022 +0800

    Add CaseTypedSQLBuilder (#22437)
---
 .../InternalMySQLParserParameterizedIT.java        |  2 +-
 ...ernalUnsupportedMySQLParserParameterizedIT.java |  2 +-
 .../InternalOpenGaussParserParameterizedIT.java    |  2 +-
 ...lUnsupportedOpenGaussParserParameterizedIT.java |  2 +-
 .../InternalOracleParserParameterizedIT.java       |  2 +-
 ...rnalUnsupportedOracleParserParameterizedIT.java |  2 +-
 .../InternalPostgreSQLParserParameterizedIT.java   |  2 +-
 ...UnsupportedPostgreSQLParserParameterizedIT.java |  2 +-
 .../sql92/InternalSQL92ParserParameterizedIT.java  |  2 +-
 ...ernalUnsupportedSQL92ParserParameterizedIT.java |  2 +-
 .../InternalSQLServerParserParameterizedIT.java    |  2 +-
 ...lUnsupportedSQLServerParserParameterizedIT.java |  2 +-
 .../SQLNodeConverterEngineParameterizedTest.java   |  2 +-
 .../internal/asserts/SQLCaseAssertContext.java     |  2 +-
 .../internal/asserts/segment/SQLSegmentAssert.java |  2 +-
 .../segment/expression/ExpressionAssert.java       |  2 +-
 .../asserts/segment/limit/LimitClauseAssert.java   |  2 +-
 .../segment/parameter/ParameterMarkerAssert.java   |  2 +-
 .../segment/projection/ProjectionAssert.java       |  2 +-
 .../sql/parser/internal/cases/sql/SQLCases.java    | 58 ++++------------------
 .../parser/internal/cases/sql/jaxb/SQLCase.java    |  3 ++
 .../CaseTypedSQLBuilder.java}                      | 17 +++++--
 .../sql/type/CaseTypedSQLBuilderFactory.java}      | 33 ++++++------
 .../internal/cases/sql/{ => type}/SQLCaseType.java |  4 +-
 .../impl/LiteralSQLBuilder.java}                   | 34 ++++++-------
 .../impl/PlaceholderSQLBuilder.java}               | 15 ++++--
 .../engine/InternalSQLParserParameterizedIT.java   |  2 +-
 ...nternalUnsupportedSQLParserParameterizedIT.java |  2 +-
 .../sql/supported/ddl/create-function.xml          |  6 +--
 .../main/resources/sql/supported/dml/select.xml    |  2 +-
 .../InternalDistSQLParserParameterizedIT.java      |  2 +-
 31 files changed, 96 insertions(+), 120 deletions(-)

diff --git a/sql-parser/dialect/mysql/src/test/java/org/apache/shardingsphere/sql/parser/mysql/internal/InternalMySQLParserParameterizedIT.java b/sql-parser/dialect/mysql/src/test/java/org/apache/shardingsphere/sql/parser/mysql/internal/InternalMySQLParserParameterizedIT.java
index 7f68169426c..3c2e6279789 100644
--- a/sql-parser/dialect/mysql/src/test/java/org/apache/shardingsphere/sql/parser/mysql/internal/InternalMySQLParserParameterizedIT.java
+++ b/sql-parser/dialect/mysql/src/test/java/org/apache/shardingsphere/sql/parser/mysql/internal/InternalMySQLParserParameterizedIT.java
@@ -19,7 +19,7 @@ package org.apache.shardingsphere.sql.parser.mysql.internal;
 
 import org.apache.shardingsphere.test.runner.ShardingSphereParallelTestParameterized;
 import org.apache.shardingsphere.test.sql.parser.internal.engine.InternalSQLParserParameterizedIT;
-import org.apache.shardingsphere.test.sql.parser.internal.cases.sql.SQLCaseType;
+import org.apache.shardingsphere.test.sql.parser.internal.cases.sql.type.SQLCaseType;
 import org.junit.runner.RunWith;
 import org.junit.runners.Parameterized.Parameters;
 
diff --git a/sql-parser/dialect/mysql/src/test/java/org/apache/shardingsphere/sql/parser/mysql/internal/InternalUnsupportedMySQLParserParameterizedIT.java b/sql-parser/dialect/mysql/src/test/java/org/apache/shardingsphere/sql/parser/mysql/internal/InternalUnsupportedMySQLParserParameterizedIT.java
index bc9f7f1ff50..5468372bd5e 100644
--- a/sql-parser/dialect/mysql/src/test/java/org/apache/shardingsphere/sql/parser/mysql/internal/InternalUnsupportedMySQLParserParameterizedIT.java
+++ b/sql-parser/dialect/mysql/src/test/java/org/apache/shardingsphere/sql/parser/mysql/internal/InternalUnsupportedMySQLParserParameterizedIT.java
@@ -19,7 +19,7 @@ package org.apache.shardingsphere.sql.parser.mysql.internal;
 
 import org.apache.shardingsphere.test.runner.ShardingSphereParallelTestParameterized;
 import org.apache.shardingsphere.test.sql.parser.internal.engine.InternalUnsupportedSQLParserParameterizedIT;
-import org.apache.shardingsphere.test.sql.parser.internal.cases.sql.SQLCaseType;
+import org.apache.shardingsphere.test.sql.parser.internal.cases.sql.type.SQLCaseType;
 import org.junit.runner.RunWith;
 import org.junit.runners.Parameterized.Parameters;
 
diff --git a/sql-parser/dialect/opengauss/src/test/java/org/apache/shardingsphere/sql/parser/opengauss/InternalOpenGaussParserParameterizedIT.java b/sql-parser/dialect/opengauss/src/test/java/org/apache/shardingsphere/sql/parser/opengauss/InternalOpenGaussParserParameterizedIT.java
index 9014e0a048f..180eb1276ee 100644
--- a/sql-parser/dialect/opengauss/src/test/java/org/apache/shardingsphere/sql/parser/opengauss/InternalOpenGaussParserParameterizedIT.java
+++ b/sql-parser/dialect/opengauss/src/test/java/org/apache/shardingsphere/sql/parser/opengauss/InternalOpenGaussParserParameterizedIT.java
@@ -19,7 +19,7 @@ package org.apache.shardingsphere.sql.parser.opengauss;
 
 import org.apache.shardingsphere.test.runner.ShardingSphereParallelTestParameterized;
 import org.apache.shardingsphere.test.sql.parser.internal.engine.InternalSQLParserParameterizedIT;
-import org.apache.shardingsphere.test.sql.parser.internal.cases.sql.SQLCaseType;
+import org.apache.shardingsphere.test.sql.parser.internal.cases.sql.type.SQLCaseType;
 import org.junit.runner.RunWith;
 import org.junit.runners.Parameterized.Parameters;
 
diff --git a/sql-parser/dialect/opengauss/src/test/java/org/apache/shardingsphere/sql/parser/opengauss/InternalUnsupportedOpenGaussParserParameterizedIT.java b/sql-parser/dialect/opengauss/src/test/java/org/apache/shardingsphere/sql/parser/opengauss/InternalUnsupportedOpenGaussParserParameterizedIT.java
index c05bf746fcd..5072ad45712 100644
--- a/sql-parser/dialect/opengauss/src/test/java/org/apache/shardingsphere/sql/parser/opengauss/InternalUnsupportedOpenGaussParserParameterizedIT.java
+++ b/sql-parser/dialect/opengauss/src/test/java/org/apache/shardingsphere/sql/parser/opengauss/InternalUnsupportedOpenGaussParserParameterizedIT.java
@@ -19,7 +19,7 @@ package org.apache.shardingsphere.sql.parser.opengauss;
 
 import org.apache.shardingsphere.test.runner.ShardingSphereParallelTestParameterized;
 import org.apache.shardingsphere.test.sql.parser.internal.engine.InternalUnsupportedSQLParserParameterizedIT;
-import org.apache.shardingsphere.test.sql.parser.internal.cases.sql.SQLCaseType;
+import org.apache.shardingsphere.test.sql.parser.internal.cases.sql.type.SQLCaseType;
 import org.junit.runner.RunWith;
 import org.junit.runners.Parameterized.Parameters;
 
diff --git a/sql-parser/dialect/oracle/src/test/java/org/apache/shardingsphere/sql/parser/oracle/InternalOracleParserParameterizedIT.java b/sql-parser/dialect/oracle/src/test/java/org/apache/shardingsphere/sql/parser/oracle/InternalOracleParserParameterizedIT.java
index 4d855f983b3..17724f462c5 100644
--- a/sql-parser/dialect/oracle/src/test/java/org/apache/shardingsphere/sql/parser/oracle/InternalOracleParserParameterizedIT.java
+++ b/sql-parser/dialect/oracle/src/test/java/org/apache/shardingsphere/sql/parser/oracle/InternalOracleParserParameterizedIT.java
@@ -19,7 +19,7 @@ package org.apache.shardingsphere.sql.parser.oracle;
 
 import org.apache.shardingsphere.test.runner.ShardingSphereParallelTestParameterized;
 import org.apache.shardingsphere.test.sql.parser.internal.engine.InternalSQLParserParameterizedIT;
-import org.apache.shardingsphere.test.sql.parser.internal.cases.sql.SQLCaseType;
+import org.apache.shardingsphere.test.sql.parser.internal.cases.sql.type.SQLCaseType;
 import org.junit.runner.RunWith;
 import org.junit.runners.Parameterized.Parameters;
 
diff --git a/sql-parser/dialect/oracle/src/test/java/org/apache/shardingsphere/sql/parser/oracle/InternalUnsupportedOracleParserParameterizedIT.java b/sql-parser/dialect/oracle/src/test/java/org/apache/shardingsphere/sql/parser/oracle/InternalUnsupportedOracleParserParameterizedIT.java
index 5ff19f6dc13..8e06777be69 100644
--- a/sql-parser/dialect/oracle/src/test/java/org/apache/shardingsphere/sql/parser/oracle/InternalUnsupportedOracleParserParameterizedIT.java
+++ b/sql-parser/dialect/oracle/src/test/java/org/apache/shardingsphere/sql/parser/oracle/InternalUnsupportedOracleParserParameterizedIT.java
@@ -19,7 +19,7 @@ package org.apache.shardingsphere.sql.parser.oracle;
 
 import org.apache.shardingsphere.test.runner.ShardingSphereParallelTestParameterized;
 import org.apache.shardingsphere.test.sql.parser.internal.engine.InternalUnsupportedSQLParserParameterizedIT;
-import org.apache.shardingsphere.test.sql.parser.internal.cases.sql.SQLCaseType;
+import org.apache.shardingsphere.test.sql.parser.internal.cases.sql.type.SQLCaseType;
 import org.junit.runner.RunWith;
 import org.junit.runners.Parameterized.Parameters;
 
diff --git a/sql-parser/dialect/postgresql/src/test/java/org/apache/shardingsphere/sql/parser/postgresql/internal/InternalPostgreSQLParserParameterizedIT.java b/sql-parser/dialect/postgresql/src/test/java/org/apache/shardingsphere/sql/parser/postgresql/internal/InternalPostgreSQLParserParameterizedIT.java
index 4762128d40c..88ba4a4065f 100644
--- a/sql-parser/dialect/postgresql/src/test/java/org/apache/shardingsphere/sql/parser/postgresql/internal/InternalPostgreSQLParserParameterizedIT.java
+++ b/sql-parser/dialect/postgresql/src/test/java/org/apache/shardingsphere/sql/parser/postgresql/internal/InternalPostgreSQLParserParameterizedIT.java
@@ -19,7 +19,7 @@ package org.apache.shardingsphere.sql.parser.postgresql.internal;
 
 import org.apache.shardingsphere.test.runner.ShardingSphereParallelTestParameterized;
 import org.apache.shardingsphere.test.sql.parser.internal.engine.InternalSQLParserParameterizedIT;
-import org.apache.shardingsphere.test.sql.parser.internal.cases.sql.SQLCaseType;
+import org.apache.shardingsphere.test.sql.parser.internal.cases.sql.type.SQLCaseType;
 import org.junit.runner.RunWith;
 import org.junit.runners.Parameterized.Parameters;
 
diff --git a/sql-parser/dialect/postgresql/src/test/java/org/apache/shardingsphere/sql/parser/postgresql/internal/InternalUnsupportedPostgreSQLParserParameterizedIT.java b/sql-parser/dialect/postgresql/src/test/java/org/apache/shardingsphere/sql/parser/postgresql/internal/InternalUnsupportedPostgreSQLParserParameterizedIT.java
index f038f52c407..53a5314d4de 100644
--- a/sql-parser/dialect/postgresql/src/test/java/org/apache/shardingsphere/sql/parser/postgresql/internal/InternalUnsupportedPostgreSQLParserParameterizedIT.java
+++ b/sql-parser/dialect/postgresql/src/test/java/org/apache/shardingsphere/sql/parser/postgresql/internal/InternalUnsupportedPostgreSQLParserParameterizedIT.java
@@ -19,7 +19,7 @@ package org.apache.shardingsphere.sql.parser.postgresql.internal;
 
 import org.apache.shardingsphere.test.runner.ShardingSphereParallelTestParameterized;
 import org.apache.shardingsphere.test.sql.parser.internal.engine.InternalUnsupportedSQLParserParameterizedIT;
-import org.apache.shardingsphere.test.sql.parser.internal.cases.sql.SQLCaseType;
+import org.apache.shardingsphere.test.sql.parser.internal.cases.sql.type.SQLCaseType;
 import org.junit.runner.RunWith;
 import org.junit.runners.Parameterized.Parameters;
 
diff --git a/sql-parser/dialect/sql92/src/test/java/org/apache/shardingsphere/sql/parser/sql92/InternalSQL92ParserParameterizedIT.java b/sql-parser/dialect/sql92/src/test/java/org/apache/shardingsphere/sql/parser/sql92/InternalSQL92ParserParameterizedIT.java
index df805098b99..4427da0b185 100644
--- a/sql-parser/dialect/sql92/src/test/java/org/apache/shardingsphere/sql/parser/sql92/InternalSQL92ParserParameterizedIT.java
+++ b/sql-parser/dialect/sql92/src/test/java/org/apache/shardingsphere/sql/parser/sql92/InternalSQL92ParserParameterizedIT.java
@@ -19,7 +19,7 @@ package org.apache.shardingsphere.sql.parser.sql92;
 
 import org.apache.shardingsphere.test.runner.ShardingSphereParallelTestParameterized;
 import org.apache.shardingsphere.test.sql.parser.internal.engine.InternalSQLParserParameterizedIT;
-import org.apache.shardingsphere.test.sql.parser.internal.cases.sql.SQLCaseType;
+import org.apache.shardingsphere.test.sql.parser.internal.cases.sql.type.SQLCaseType;
 import org.junit.runner.RunWith;
 import org.junit.runners.Parameterized.Parameters;
 
diff --git a/sql-parser/dialect/sql92/src/test/java/org/apache/shardingsphere/sql/parser/sql92/InternalUnsupportedSQL92ParserParameterizedIT.java b/sql-parser/dialect/sql92/src/test/java/org/apache/shardingsphere/sql/parser/sql92/InternalUnsupportedSQL92ParserParameterizedIT.java
index bf0ca735a1e..ef95f6f3833 100644
--- a/sql-parser/dialect/sql92/src/test/java/org/apache/shardingsphere/sql/parser/sql92/InternalUnsupportedSQL92ParserParameterizedIT.java
+++ b/sql-parser/dialect/sql92/src/test/java/org/apache/shardingsphere/sql/parser/sql92/InternalUnsupportedSQL92ParserParameterizedIT.java
@@ -19,7 +19,7 @@ package org.apache.shardingsphere.sql.parser.sql92;
 
 import org.apache.shardingsphere.test.runner.ShardingSphereParallelTestParameterized;
 import org.apache.shardingsphere.test.sql.parser.internal.engine.InternalUnsupportedSQLParserParameterizedIT;
-import org.apache.shardingsphere.test.sql.parser.internal.cases.sql.SQLCaseType;
+import org.apache.shardingsphere.test.sql.parser.internal.cases.sql.type.SQLCaseType;
 import org.junit.runner.RunWith;
 import org.junit.runners.Parameterized.Parameters;
 
diff --git a/sql-parser/dialect/sqlserver/src/test/java/org/apache/shardingsphere/sql/parser/sqlserver/InternalSQLServerParserParameterizedIT.java b/sql-parser/dialect/sqlserver/src/test/java/org/apache/shardingsphere/sql/parser/sqlserver/InternalSQLServerParserParameterizedIT.java
index 771677c6079..53cb9befece 100644
--- a/sql-parser/dialect/sqlserver/src/test/java/org/apache/shardingsphere/sql/parser/sqlserver/InternalSQLServerParserParameterizedIT.java
+++ b/sql-parser/dialect/sqlserver/src/test/java/org/apache/shardingsphere/sql/parser/sqlserver/InternalSQLServerParserParameterizedIT.java
@@ -19,7 +19,7 @@ package org.apache.shardingsphere.sql.parser.sqlserver;
 
 import org.apache.shardingsphere.test.runner.ShardingSphereParallelTestParameterized;
 import org.apache.shardingsphere.test.sql.parser.internal.engine.InternalSQLParserParameterizedIT;
-import org.apache.shardingsphere.test.sql.parser.internal.cases.sql.SQLCaseType;
+import org.apache.shardingsphere.test.sql.parser.internal.cases.sql.type.SQLCaseType;
 import org.junit.runner.RunWith;
 import org.junit.runners.Parameterized.Parameters;
 
diff --git a/sql-parser/dialect/sqlserver/src/test/java/org/apache/shardingsphere/sql/parser/sqlserver/InternalUnsupportedSQLServerParserParameterizedIT.java b/sql-parser/dialect/sqlserver/src/test/java/org/apache/shardingsphere/sql/parser/sqlserver/InternalUnsupportedSQLServerParserParameterizedIT.java
index 78de1f4cd57..81160cd1a38 100644
--- a/sql-parser/dialect/sqlserver/src/test/java/org/apache/shardingsphere/sql/parser/sqlserver/InternalUnsupportedSQLServerParserParameterizedIT.java
+++ b/sql-parser/dialect/sqlserver/src/test/java/org/apache/shardingsphere/sql/parser/sqlserver/InternalUnsupportedSQLServerParserParameterizedIT.java
@@ -19,7 +19,7 @@ package org.apache.shardingsphere.sql.parser.sqlserver;
 
 import org.apache.shardingsphere.test.runner.ShardingSphereParallelTestParameterized;
 import org.apache.shardingsphere.test.sql.parser.internal.engine.InternalUnsupportedSQLParserParameterizedIT;
-import org.apache.shardingsphere.test.sql.parser.internal.cases.sql.SQLCaseType;
+import org.apache.shardingsphere.test.sql.parser.internal.cases.sql.type.SQLCaseType;
 import org.junit.runner.RunWith;
 import org.junit.runners.Parameterized.Parameters;
 
diff --git a/test/optimize/src/test/java/org/apache/shardingsphere/infra/federation/converter/parameterized/engine/SQLNodeConverterEngineParameterizedTest.java b/test/optimize/src/test/java/org/apache/shardingsphere/infra/federation/converter/parameterized/engine/SQLNodeConverterEngineParameterizedTest.java
index 455a7d12efd..dbafd517c34 100644
--- a/test/optimize/src/test/java/org/apache/shardingsphere/infra/federation/converter/parameterized/engine/SQLNodeConverterEngineParameterizedTest.java
+++ b/test/optimize/src/test/java/org/apache/shardingsphere/infra/federation/converter/parameterized/engine/SQLNodeConverterEngineParameterizedTest.java
@@ -39,7 +39,7 @@ import org.apache.shardingsphere.sqlfederation.optimizer.context.parser.dialect.
 import org.apache.shardingsphere.sqlfederation.optimizer.converter.SQLNodeConverterEngine;
 import org.apache.shardingsphere.test.sql.parser.internal.cases.parser.SQLParserTestCases;
 import org.apache.shardingsphere.test.sql.parser.internal.cases.parser.registry.SQLParserTestCasesRegistry;
-import org.apache.shardingsphere.test.sql.parser.internal.cases.sql.SQLCaseType;
+import org.apache.shardingsphere.test.sql.parser.internal.cases.sql.type.SQLCaseType;
 import org.apache.shardingsphere.test.sql.parser.internal.cases.sql.SQLCases;
 import org.apache.shardingsphere.test.sql.parser.internal.cases.sql.registry.SQLCasesRegistry;
 import org.junit.Test;
diff --git a/test/parser/src/main/java/org/apache/shardingsphere/test/sql/parser/internal/asserts/SQLCaseAssertContext.java b/test/parser/src/main/java/org/apache/shardingsphere/test/sql/parser/internal/asserts/SQLCaseAssertContext.java
index ddc8712a4e9..d6583986877 100644
--- a/test/parser/src/main/java/org/apache/shardingsphere/test/sql/parser/internal/asserts/SQLCaseAssertContext.java
+++ b/test/parser/src/main/java/org/apache/shardingsphere/test/sql/parser/internal/asserts/SQLCaseAssertContext.java
@@ -19,7 +19,7 @@ package org.apache.shardingsphere.test.sql.parser.internal.asserts;
 
 import lombok.Getter;
 import lombok.RequiredArgsConstructor;
-import org.apache.shardingsphere.test.sql.parser.internal.cases.sql.SQLCaseType;
+import org.apache.shardingsphere.test.sql.parser.internal.cases.sql.type.SQLCaseType;
 
 import java.util.List;
 
diff --git a/test/parser/src/main/java/org/apache/shardingsphere/test/sql/parser/internal/asserts/segment/SQLSegmentAssert.java b/test/parser/src/main/java/org/apache/shardingsphere/test/sql/parser/internal/asserts/segment/SQLSegmentAssert.java
index fde378fddf9..4df290835e2 100644
--- a/test/parser/src/main/java/org/apache/shardingsphere/test/sql/parser/internal/asserts/segment/SQLSegmentAssert.java
+++ b/test/parser/src/main/java/org/apache/shardingsphere/test/sql/parser/internal/asserts/segment/SQLSegmentAssert.java
@@ -22,7 +22,7 @@ import lombok.NoArgsConstructor;
 import org.apache.shardingsphere.sql.parser.sql.common.segment.SQLSegment;
 import org.apache.shardingsphere.test.sql.parser.internal.asserts.SQLCaseAssertContext;
 import org.apache.shardingsphere.test.sql.parser.internal.cases.parser.jaxb.segment.ExpectedSQLSegment;
-import org.apache.shardingsphere.test.sql.parser.internal.cases.sql.SQLCaseType;
+import org.apache.shardingsphere.test.sql.parser.internal.cases.sql.type.SQLCaseType;
 
 import static org.hamcrest.CoreMatchers.is;
 import static org.hamcrest.MatcherAssert.assertThat;
diff --git a/test/parser/src/main/java/org/apache/shardingsphere/test/sql/parser/internal/asserts/segment/expression/ExpressionAssert.java b/test/parser/src/main/java/org/apache/shardingsphere/test/sql/parser/internal/asserts/segment/expression/ExpressionAssert.java
index e06e8c3f14a..b29f88d9828 100644
--- a/test/parser/src/main/java/org/apache/shardingsphere/test/sql/parser/internal/asserts/segment/expression/ExpressionAssert.java
+++ b/test/parser/src/main/java/org/apache/shardingsphere/test/sql/parser/internal/asserts/segment/expression/ExpressionAssert.java
@@ -46,7 +46,7 @@ import org.apache.shardingsphere.test.sql.parser.internal.asserts.segment.generi
 import org.apache.shardingsphere.test.sql.parser.internal.asserts.segment.owner.OwnerAssert;
 import org.apache.shardingsphere.test.sql.parser.internal.asserts.segment.projection.ProjectionAssert;
 import org.apache.shardingsphere.test.sql.parser.internal.asserts.statement.dml.impl.SelectStatementAssert;
-import org.apache.shardingsphere.test.sql.parser.internal.cases.sql.SQLCaseType;
+import org.apache.shardingsphere.test.sql.parser.internal.cases.sql.type.SQLCaseType;
 import org.apache.shardingsphere.test.sql.parser.internal.cases.parser.jaxb.segment.impl.expr.ExpectedBetweenExpression;
 import org.apache.shardingsphere.test.sql.parser.internal.cases.parser.jaxb.segment.impl.expr.ExpectedBinaryOperationExpression;
 import org.apache.shardingsphere.test.sql.parser.internal.cases.parser.jaxb.segment.impl.expr.ExpectedCaseWhenExpression;
diff --git a/test/parser/src/main/java/org/apache/shardingsphere/test/sql/parser/internal/asserts/segment/limit/LimitClauseAssert.java b/test/parser/src/main/java/org/apache/shardingsphere/test/sql/parser/internal/asserts/segment/limit/LimitClauseAssert.java
index b709d982ff3..f344df29002 100644
--- a/test/parser/src/main/java/org/apache/shardingsphere/test/sql/parser/internal/asserts/segment/limit/LimitClauseAssert.java
+++ b/test/parser/src/main/java/org/apache/shardingsphere/test/sql/parser/internal/asserts/segment/limit/LimitClauseAssert.java
@@ -25,7 +25,7 @@ import org.apache.shardingsphere.sql.parser.sql.common.segment.dml.pagination.Pa
 import org.apache.shardingsphere.test.sql.parser.internal.asserts.SQLCaseAssertContext;
 import org.apache.shardingsphere.test.sql.parser.internal.asserts.segment.SQLSegmentAssert;
 import org.apache.shardingsphere.test.sql.parser.internal.cases.parser.jaxb.segment.impl.limit.ExpectedPaginationValue;
-import org.apache.shardingsphere.test.sql.parser.internal.cases.sql.SQLCaseType;
+import org.apache.shardingsphere.test.sql.parser.internal.cases.sql.type.SQLCaseType;
 
 import static org.hamcrest.CoreMatchers.is;
 import static org.junit.Assert.assertNull;
diff --git a/test/parser/src/main/java/org/apache/shardingsphere/test/sql/parser/internal/asserts/segment/parameter/ParameterMarkerAssert.java b/test/parser/src/main/java/org/apache/shardingsphere/test/sql/parser/internal/asserts/segment/parameter/ParameterMarkerAssert.java
index 0573db2b621..39e73ee8968 100644
--- a/test/parser/src/main/java/org/apache/shardingsphere/test/sql/parser/internal/asserts/segment/parameter/ParameterMarkerAssert.java
+++ b/test/parser/src/main/java/org/apache/shardingsphere/test/sql/parser/internal/asserts/segment/parameter/ParameterMarkerAssert.java
@@ -20,7 +20,7 @@ package org.apache.shardingsphere.test.sql.parser.internal.asserts.segment.param
 import lombok.AccessLevel;
 import lombok.NoArgsConstructor;
 import org.apache.shardingsphere.test.sql.parser.internal.asserts.SQLCaseAssertContext;
-import org.apache.shardingsphere.test.sql.parser.internal.cases.sql.SQLCaseType;
+import org.apache.shardingsphere.test.sql.parser.internal.cases.sql.type.SQLCaseType;
 
 import static org.hamcrest.CoreMatchers.is;
 import static org.hamcrest.MatcherAssert.assertThat;
diff --git a/test/parser/src/main/java/org/apache/shardingsphere/test/sql/parser/internal/asserts/segment/projection/ProjectionAssert.java b/test/parser/src/main/java/org/apache/shardingsphere/test/sql/parser/internal/asserts/segment/projection/ProjectionAssert.java
index 032137a4a8f..83feab75f69 100644
--- a/test/parser/src/main/java/org/apache/shardingsphere/test/sql/parser/internal/asserts/segment/projection/ProjectionAssert.java
+++ b/test/parser/src/main/java/org/apache/shardingsphere/test/sql/parser/internal/asserts/segment/projection/ProjectionAssert.java
@@ -45,7 +45,7 @@ import org.apache.shardingsphere.test.sql.parser.internal.cases.parser.jaxb.segm
 import org.apache.shardingsphere.test.sql.parser.internal.cases.parser.jaxb.segment.impl.projection.impl.shorthand.ExpectedShorthandProjection;
 import org.apache.shardingsphere.test.sql.parser.internal.cases.parser.jaxb.segment.impl.projection.impl.subquery.ExpectedSubqueryProjection;
 import org.apache.shardingsphere.test.sql.parser.internal.cases.parser.jaxb.segment.impl.projection.impl.top.ExpectedTopProjection;
-import org.apache.shardingsphere.test.sql.parser.internal.cases.sql.SQLCaseType;
+import org.apache.shardingsphere.test.sql.parser.internal.cases.sql.type.SQLCaseType;
 
 import java.util.List;
 
diff --git a/test/parser/src/main/java/org/apache/shardingsphere/test/sql/parser/internal/cases/sql/SQLCases.java b/test/parser/src/main/java/org/apache/shardingsphere/test/sql/parser/internal/cases/sql/SQLCases.java
index 35473141e06..f39775214f0 100644
--- a/test/parser/src/main/java/org/apache/shardingsphere/test/sql/parser/internal/cases/sql/SQLCases.java
+++ b/test/parser/src/main/java/org/apache/shardingsphere/test/sql/parser/internal/cases/sql/SQLCases.java
@@ -19,18 +19,16 @@ package org.apache.shardingsphere.test.sql.parser.internal.cases.sql;
 
 import com.google.common.base.Preconditions;
 import com.google.common.base.Splitter;
-import com.google.common.base.Strings;
 import lombok.RequiredArgsConstructor;
-import org.apache.shardingsphere.sql.parser.sql.common.enums.ParameterMarkerType;
 import org.apache.shardingsphere.test.sql.parser.internal.cases.sql.jaxb.SQLCase;
+import org.apache.shardingsphere.test.sql.parser.internal.cases.sql.type.CaseTypedSQLBuilderFactory;
+import org.apache.shardingsphere.test.sql.parser.internal.cases.sql.type.SQLCaseType;
 
 import java.util.Arrays;
 import java.util.Collection;
 import java.util.LinkedList;
 import java.util.List;
 import java.util.Map;
-import java.util.regex.Matcher;
-import java.util.regex.Pattern;
 
 /**
  * SQL cases.
@@ -38,8 +36,6 @@ import java.util.regex.Pattern;
 @RequiredArgsConstructor
 public final class SQLCases {
     
-    private static final Pattern PARAMETER_MARKER = Pattern.compile("\\?|\\$[0-9]+");
-    
     private final Map<String, SQLCase> cases;
     
     /**
@@ -67,7 +63,7 @@ public final class SQLCases {
     private Collection<Object[]> generateTestParameters(final Collection<String> databaseTypes, final SQLCase sqlCase, final SQLCaseType caseType) {
         Collection<Object[]> result = new LinkedList<>();
         for (String each : getDatabaseTypes(sqlCase.getDatabaseTypes())) {
-            if (databaseTypes.contains(each)) {
+            if (databaseTypes.contains(each) && containsSQLCaseType(sqlCase, caseType)) {
                 Object[] params = new Object[3];
                 params[0] = sqlCase.getId();
                 params[1] = each;
@@ -79,13 +75,17 @@ public final class SQLCases {
     }
     
     private Collection<String> getDatabaseTypes(final String databaseTypes) {
-        return Strings.isNullOrEmpty(databaseTypes) ? getAllDatabaseTypes() : Splitter.on(',').trimResults().splitToList(databaseTypes);
+        return null == databaseTypes ? getAllDatabaseTypes() : Splitter.on(',').trimResults().splitToList(databaseTypes);
     }
     
     private Collection<String> getAllDatabaseTypes() {
         return Arrays.asList("H2", "MySQL", "PostgreSQL", "Oracle", "SQLServer", "SQL92", "openGauss");
     }
     
+    private boolean containsSQLCaseType(final SQLCase sqlCase, final SQLCaseType caseType) {
+        return null == sqlCase.getCaseTypes() || Splitter.on(',').trimResults().splitToList(sqlCase.getCaseTypes()).contains(caseType.name());
+    }
+    
     /**
      * Get SQL.
      * 
@@ -95,45 +95,7 @@ public final class SQLCases {
      * @return got SQL
      */
     public String getSQL(final String caseId, final SQLCaseType caseType, final List<?> params) {
-        Preconditions.checkState(cases.containsKey(caseId), "Can not find SQL of ID: %s", caseId);
-        String sql = cases.get(caseId).getValue();
-        switch (caseType) {
-            case Placeholder:
-                return getPlaceholderSQL(sql);
-            case Literal:
-                return getLiteralSQL(sql, params);
-            default:
-                throw new UnsupportedOperationException(caseType.name());
-        }
-    }
-    
-    private String getPlaceholderSQL(final String sql) {
-        return sql;
-    }
-    
-    private String getLiteralSQL(final String sql, final List<?> params) {
-        return params.isEmpty() ? sql : replace(sql, params);
-    }
-    
-    private String replace(final String sql, final List<?> params) {
-        Matcher matcher = PARAMETER_MARKER.matcher(sql);
-        int found = 0;
-        StringBuffer result = new StringBuffer();
-        while (matcher.find()) {
-            String group = matcher.group();
-            if (ParameterMarkerType.QUESTION.getMarker().equals(group)) {
-                appendReplacement(++found, params, matcher, result);
-            } else {
-                int dollarMarker = Integer.parseInt(group.replace(ParameterMarkerType.DOLLAR.getMarker(), ""));
-                appendReplacement(dollarMarker, params, matcher, result);
-            }
-        }
-        matcher.appendTail(result);
-        return result.toString();
-    }
-    
-    private void appendReplacement(final int markerIndex, final List<?> params, final Matcher matcher, final StringBuffer buffer) {
-        Preconditions.checkArgument(markerIndex <= params.size(), "Missing replacement for `%s` at index `%s`.", PARAMETER_MARKER.pattern(), markerIndex);
-        matcher.appendReplacement(buffer, Matcher.quoteReplacement(params.get(markerIndex - 1).toString()));
+        Preconditions.checkState(cases.containsKey(caseId), "Can not find SQL of ID: %s.", caseId);
+        return CaseTypedSQLBuilderFactory.newInstance(caseType).build(cases.get(caseId).getValue(), params);
     }
 }
diff --git a/test/parser/src/main/java/org/apache/shardingsphere/test/sql/parser/internal/cases/sql/jaxb/SQLCase.java b/test/parser/src/main/java/org/apache/shardingsphere/test/sql/parser/internal/cases/sql/jaxb/SQLCase.java
index 54eb337b9d7..883974e1d4e 100644
--- a/test/parser/src/main/java/org/apache/shardingsphere/test/sql/parser/internal/cases/sql/jaxb/SQLCase.java
+++ b/test/parser/src/main/java/org/apache/shardingsphere/test/sql/parser/internal/cases/sql/jaxb/SQLCase.java
@@ -40,4 +40,7 @@ public final class SQLCase {
     
     @XmlAttribute(name = "db-types")
     private String databaseTypes;
+    
+    @XmlAttribute(name = "case-types")
+    private String caseTypes;
 }
diff --git a/test/parser/src/main/java/org/apache/shardingsphere/test/sql/parser/internal/cases/sql/SQLCaseType.java b/test/parser/src/main/java/org/apache/shardingsphere/test/sql/parser/internal/cases/sql/type/CaseTypedSQLBuilder.java
similarity index 75%
copy from test/parser/src/main/java/org/apache/shardingsphere/test/sql/parser/internal/cases/sql/SQLCaseType.java
copy to test/parser/src/main/java/org/apache/shardingsphere/test/sql/parser/internal/cases/sql/type/CaseTypedSQLBuilder.java
index 1ea5b5c2a21..a7b53cf043d 100644
--- a/test/parser/src/main/java/org/apache/shardingsphere/test/sql/parser/internal/cases/sql/SQLCaseType.java
+++ b/test/parser/src/main/java/org/apache/shardingsphere/test/sql/parser/internal/cases/sql/type/CaseTypedSQLBuilder.java
@@ -15,12 +15,21 @@
  * limitations under the License.
  */
 
-package org.apache.shardingsphere.test.sql.parser.internal.cases.sql;
+package org.apache.shardingsphere.test.sql.parser.internal.cases.sql.type;
+
+import java.util.List;
 
 /**
- * SQL case type.
+ * Case typed SQL builder.
  */
-public enum SQLCaseType {
+public interface CaseTypedSQLBuilder {
     
-    Placeholder, Literal
+    /**
+     * Build SQL.
+     * 
+     * @param sql to be built SQL
+     * @param params SQL parameters
+     * @return built SQL
+     */
+    String build(String sql, List<?> params);
 }
diff --git a/test/parser/src/main/java/org/apache/shardingsphere/test/sql/parser/internal/asserts/segment/parameter/ParameterMarkerAssert.java b/test/parser/src/main/java/org/apache/shardingsphere/test/sql/parser/internal/cases/sql/type/CaseTypedSQLBuilderFactory.java
similarity index 51%
copy from test/parser/src/main/java/org/apache/shardingsphere/test/sql/parser/internal/asserts/segment/parameter/ParameterMarkerAssert.java
copy to test/parser/src/main/java/org/apache/shardingsphere/test/sql/parser/internal/cases/sql/type/CaseTypedSQLBuilderFactory.java
index 0573db2b621..7fb92f7757e 100644
--- a/test/parser/src/main/java/org/apache/shardingsphere/test/sql/parser/internal/asserts/segment/parameter/ParameterMarkerAssert.java
+++ b/test/parser/src/main/java/org/apache/shardingsphere/test/sql/parser/internal/cases/sql/type/CaseTypedSQLBuilderFactory.java
@@ -15,34 +15,33 @@
  * limitations under the License.
  */
 
-package org.apache.shardingsphere.test.sql.parser.internal.asserts.segment.parameter;
+package org.apache.shardingsphere.test.sql.parser.internal.cases.sql.type;
 
 import lombok.AccessLevel;
 import lombok.NoArgsConstructor;
-import org.apache.shardingsphere.test.sql.parser.internal.asserts.SQLCaseAssertContext;
-import org.apache.shardingsphere.test.sql.parser.internal.cases.sql.SQLCaseType;
-
-import static org.hamcrest.CoreMatchers.is;
-import static org.hamcrest.MatcherAssert.assertThat;
+import org.apache.shardingsphere.test.sql.parser.internal.cases.sql.type.impl.LiteralSQLBuilder;
+import org.apache.shardingsphere.test.sql.parser.internal.cases.sql.type.impl.PlaceholderSQLBuilder;
 
 /**
- * Parameter marker assert.
+ * Case typed SQL builder factory.
  */
 @NoArgsConstructor(access = AccessLevel.PRIVATE)
-public final class ParameterMarkerAssert {
+public final class CaseTypedSQLBuilderFactory {
     
     /**
-     * Assert parameter markers count.
+     * Create new instance of case typed SQL builder.
      * 
-     * @param assertContext assert context
-     * @param actual actual parameter markers count
-     * @param expected expected parameter markers count
+     * @param caseType SQL case type
+     * @return created instance
      */
-    public static void assertCount(final SQLCaseAssertContext assertContext, final int actual, final int expected) {
-        if (SQLCaseType.Placeholder == assertContext.getCaseType()) {
-            assertThat(assertContext.getText("Parameter markers count assertion error: "), actual, is(expected));
-        } else {
-            assertThat(assertContext.getText("Parameter markers count assertion error: "), actual, is(0));
+    public static CaseTypedSQLBuilder newInstance(final SQLCaseType caseType) {
+        switch (caseType) {
+            case Literal:
+                return new LiteralSQLBuilder();
+            case Placeholder:
+                return new PlaceholderSQLBuilder();
+            default:
+                throw new UnsupportedOperationException(caseType.name());
         }
     }
 }
diff --git a/test/parser/src/main/java/org/apache/shardingsphere/test/sql/parser/internal/cases/sql/SQLCaseType.java b/test/parser/src/main/java/org/apache/shardingsphere/test/sql/parser/internal/cases/sql/type/SQLCaseType.java
similarity index 96%
copy from test/parser/src/main/java/org/apache/shardingsphere/test/sql/parser/internal/cases/sql/SQLCaseType.java
copy to test/parser/src/main/java/org/apache/shardingsphere/test/sql/parser/internal/cases/sql/type/SQLCaseType.java
index 1ea5b5c2a21..ca234f9cb30 100644
--- a/test/parser/src/main/java/org/apache/shardingsphere/test/sql/parser/internal/cases/sql/SQLCaseType.java
+++ b/test/parser/src/main/java/org/apache/shardingsphere/test/sql/parser/internal/cases/sql/type/SQLCaseType.java
@@ -15,12 +15,12 @@
  * limitations under the License.
  */
 
-package org.apache.shardingsphere.test.sql.parser.internal.cases.sql;
+package org.apache.shardingsphere.test.sql.parser.internal.cases.sql.type;
 
 /**
  * SQL case type.
  */
 public enum SQLCaseType {
     
-    Placeholder, Literal
+    Literal, Placeholder
 }
diff --git a/test/parser/src/main/java/org/apache/shardingsphere/test/sql/parser/internal/cases/sql/jaxb/SQLCase.java b/test/parser/src/main/java/org/apache/shardingsphere/test/sql/parser/internal/cases/sql/type/impl/LiteralSQLBuilder.java
similarity index 58%
copy from test/parser/src/main/java/org/apache/shardingsphere/test/sql/parser/internal/cases/sql/jaxb/SQLCase.java
copy to test/parser/src/main/java/org/apache/shardingsphere/test/sql/parser/internal/cases/sql/type/impl/LiteralSQLBuilder.java
index 54eb337b9d7..7b32c1133b7 100644
--- a/test/parser/src/main/java/org/apache/shardingsphere/test/sql/parser/internal/cases/sql/jaxb/SQLCase.java
+++ b/test/parser/src/main/java/org/apache/shardingsphere/test/sql/parser/internal/cases/sql/type/impl/LiteralSQLBuilder.java
@@ -15,29 +15,25 @@
  * limitations under the License.
  */
 
-package org.apache.shardingsphere.test.sql.parser.internal.cases.sql.jaxb;
+package org.apache.shardingsphere.test.sql.parser.internal.cases.sql.type.impl;
 
-import lombok.Getter;
-import lombok.Setter;
+import org.apache.shardingsphere.test.sql.parser.internal.cases.sql.type.CaseTypedSQLBuilder;
 
-import javax.xml.bind.annotation.XmlAccessType;
-import javax.xml.bind.annotation.XmlAccessorType;
-import javax.xml.bind.annotation.XmlAttribute;
+import java.util.List;
 
 /**
- * SQL test case for xml tag.
+ * Literal SQL builder.
  */
-@XmlAccessorType(XmlAccessType.FIELD)
-@Getter
-@Setter
-public final class SQLCase {
+public final class LiteralSQLBuilder implements CaseTypedSQLBuilder {
     
-    @XmlAttribute
-    private String id;
-    
-    @XmlAttribute
-    private String value;
-    
-    @XmlAttribute(name = "db-types")
-    private String databaseTypes;
+    @Override
+    public String build(final String sql, final List<?> params) {
+        StringBuilder result = new StringBuilder(sql);
+        int currentCharIndex = 0;
+        for (Object each : params) {
+            currentCharIndex = result.indexOf("?", currentCharIndex);
+            result.replace(currentCharIndex, ++currentCharIndex, each.toString());
+        }
+        return result.toString();
+    }
 }
diff --git a/test/parser/src/main/java/org/apache/shardingsphere/test/sql/parser/internal/cases/sql/SQLCaseType.java b/test/parser/src/main/java/org/apache/shardingsphere/test/sql/parser/internal/cases/sql/type/impl/PlaceholderSQLBuilder.java
similarity index 72%
rename from test/parser/src/main/java/org/apache/shardingsphere/test/sql/parser/internal/cases/sql/SQLCaseType.java
rename to test/parser/src/main/java/org/apache/shardingsphere/test/sql/parser/internal/cases/sql/type/impl/PlaceholderSQLBuilder.java
index 1ea5b5c2a21..bb2119ad631 100644
--- a/test/parser/src/main/java/org/apache/shardingsphere/test/sql/parser/internal/cases/sql/SQLCaseType.java
+++ b/test/parser/src/main/java/org/apache/shardingsphere/test/sql/parser/internal/cases/sql/type/impl/PlaceholderSQLBuilder.java
@@ -15,12 +15,19 @@
  * limitations under the License.
  */
 
-package org.apache.shardingsphere.test.sql.parser.internal.cases.sql;
+package org.apache.shardingsphere.test.sql.parser.internal.cases.sql.type.impl;
+
+import org.apache.shardingsphere.test.sql.parser.internal.cases.sql.type.CaseTypedSQLBuilder;
+
+import java.util.List;
 
 /**
- * SQL case type.
+ * Placeholder SQL builder.
  */
-public enum SQLCaseType {
+public final class PlaceholderSQLBuilder implements CaseTypedSQLBuilder {
     
-    Placeholder, Literal
+    @Override
+    public String build(final String sql, final List<?> params) {
+        return sql;
+    }
 }
diff --git a/test/parser/src/main/java/org/apache/shardingsphere/test/sql/parser/internal/engine/InternalSQLParserParameterizedIT.java b/test/parser/src/main/java/org/apache/shardingsphere/test/sql/parser/internal/engine/InternalSQLParserParameterizedIT.java
index 2060670725f..bda62560b57 100644
--- a/test/parser/src/main/java/org/apache/shardingsphere/test/sql/parser/internal/engine/InternalSQLParserParameterizedIT.java
+++ b/test/parser/src/main/java/org/apache/shardingsphere/test/sql/parser/internal/engine/InternalSQLParserParameterizedIT.java
@@ -28,7 +28,7 @@ import org.apache.shardingsphere.test.sql.parser.internal.asserts.statement.SQLS
 import org.apache.shardingsphere.test.sql.parser.internal.cases.parser.SQLParserTestCases;
 import org.apache.shardingsphere.test.sql.parser.internal.cases.parser.jaxb.SQLParserTestCase;
 import org.apache.shardingsphere.test.sql.parser.internal.cases.parser.registry.SQLParserTestCasesRegistry;
-import org.apache.shardingsphere.test.sql.parser.internal.cases.sql.SQLCaseType;
+import org.apache.shardingsphere.test.sql.parser.internal.cases.sql.type.SQLCaseType;
 import org.apache.shardingsphere.test.sql.parser.internal.cases.sql.SQLCases;
 import org.apache.shardingsphere.test.sql.parser.internal.cases.sql.registry.SQLCasesRegistry;
 import org.junit.Test;
diff --git a/test/parser/src/main/java/org/apache/shardingsphere/test/sql/parser/internal/engine/InternalUnsupportedSQLParserParameterizedIT.java b/test/parser/src/main/java/org/apache/shardingsphere/test/sql/parser/internal/engine/InternalUnsupportedSQLParserParameterizedIT.java
index 4fdf0111b9c..9c25ba1f5b5 100644
--- a/test/parser/src/main/java/org/apache/shardingsphere/test/sql/parser/internal/engine/InternalUnsupportedSQLParserParameterizedIT.java
+++ b/test/parser/src/main/java/org/apache/shardingsphere/test/sql/parser/internal/engine/InternalUnsupportedSQLParserParameterizedIT.java
@@ -23,7 +23,7 @@ import org.apache.shardingsphere.sql.parser.api.SQLParserEngine;
 import org.apache.shardingsphere.sql.parser.api.SQLVisitorEngine;
 import org.apache.shardingsphere.sql.parser.core.ParseASTNode;
 import org.apache.shardingsphere.sql.parser.sql.common.statement.SQLStatement;
-import org.apache.shardingsphere.test.sql.parser.internal.cases.sql.SQLCaseType;
+import org.apache.shardingsphere.test.sql.parser.internal.cases.sql.type.SQLCaseType;
 import org.apache.shardingsphere.test.sql.parser.internal.cases.sql.registry.UnsupportedSQLCasesRegistry;
 import org.apache.shardingsphere.test.sql.parser.internal.cases.sql.SQLCases;
 import org.junit.Test;
diff --git a/test/parser/src/main/resources/sql/supported/ddl/create-function.xml b/test/parser/src/main/resources/sql/supported/ddl/create-function.xml
index 6868f5ed0d4..610d762b42d 100644
--- a/test/parser/src/main/resources/sql/supported/ddl/create-function.xml
+++ b/test/parser/src/main/resources/sql/supported/ddl/create-function.xml
@@ -21,7 +21,7 @@
         AS 'select $1 + $2;'
         LANGUAGE SQL
         IMMUTABLE
-        RETURNS NULL ON NULL INPUT" db-types="PostgreSQL,openGauss" />
+        RETURNS NULL ON NULL INPUT" db-types="PostgreSQL,openGauss" case-types="Placeholder" />
 <!--    TODO Fix me. -->
 <!--    <sql-case id="create_function_with_argname" value="CREATE OR REPLACE FUNCTION increment(i integer) RETURNS integer AS-->
 <!--        $$-->
@@ -31,10 +31,10 @@
 <!--        $$ LANGUAGE plpgsql" db-types="PostgreSQL,openGauss" />-->
 <!--    <sql-case id="create_function_with_multiple_output_parameters" value="CREATE FUNCTION dup(in int, out f1 int, out f2 text)-->
 <!--        AS $$ SELECT $1, CAST($1 AS text) || ' is text' $$-->
-<!--        LANGUAGE SQL" db-types="PostgreSQL,openGauss" />-->
+<!--        LANGUAGE SQL" db-types="PostgreSQL,openGauss" case-types="Placeholder" />-->
 <!--    <sql-case id="create_function_return_table" value="CREATE FUNCTION dup(int) RETURNS TABLE(f1 int, f2 text)-->
 <!--        AS $$ SELECT $1, CAST($1 AS text) || ' is text' $$-->
-<!--        LANGUAGE SQL" db-types="PostgreSQL,openGauss" />-->
+<!--        LANGUAGE SQL" db-types="PostgreSQL,openGauss" case-types="Placeholder" />-->
     <sql-case id="create_function_with_execute" value="CREATE FUNCTION dbo.ISOweek (@DATE datetime)
         RETURNS int WITH EXECUTE AS CALLER AS
         BEGIN
diff --git a/test/parser/src/main/resources/sql/supported/dml/select.xml b/test/parser/src/main/resources/sql/supported/dml/select.xml
index 8335fcafc03..d8c25246558 100644
--- a/test/parser/src/main/resources/sql/supported/dml/select.xml
+++ b/test/parser/src/main/resources/sql/supported/dml/select.xml
@@ -114,7 +114,7 @@
     <sql-case id="select_with_model_with_multi_column_for_loop" value="SELECT country, product, year, s FROM sales_view MODEL DIMENSION BY (country, product, year) MEASURES (sales s) IGNORE NAV RULES UPSERT (s[FOR (country, product, year) IN (SELECT DISTINCT 'new_country', product, year FROM sales_view WHERE country = 'Poland')] = s['Poland',CV(),CV()]) ORDER BY country, year, product" db-types="Oracle" />
     <sql-case id="select_with_comments" value="-- begin comments&#x000A;SELECT * FROM # middle comments&#x000A; t_order; -- end comments" db-types="MySQL" />
     <sql-case id="select_with_model_in" value="SELECT order_id_value,order_item_id_value FROM (select 1001 as order_id_value, 100001 as order_item_id_value from dual) MODEL RETURN UPDATED ROWS DIMENSION BY(order_item_id_value) MEASURES(order_id_value) RULES(order_id_value[1] = 10001)" db-types="Oracle" />
-    <sql-case id="select_with_dollar_parameter_for_postgresql" value="SELECT order_id FROM t_order WHERE user_id = $2 AND order_id = $1 OR user_id = $2" db-types="PostgreSQL,openGauss" />
+    <sql-case id="select_with_dollar_parameter_for_postgresql" value="SELECT order_id FROM t_order WHERE user_id = $2 AND order_id = $1 OR user_id = $2" db-types="PostgreSQL,openGauss" case-types="Placeholder" />
     <sql-case id="select_with_binary_keyword" value="select position(binary 'll' in 'hello'),position('a' in binary 'hello')" db-types="MySQL" />
     <sql-case id="select_with_schema_name_in_shorthand_projection" value="SELECT sharding_db.t_order.* FROM t_order WHERE user_id = ? AND order_id = ?" db-types="MySQL" />
     <sql-case id="select_with_schema_name_in_column_projection" value="SELECT sharding_db.t_order.order_id FROM t_order WHERE user_id = ? AND order_id = ?" db-types="MySQL" />
diff --git a/test/parser/src/test/java/org/apache/shardingsphere/test/sql/parser/internal/InternalDistSQLParserParameterizedIT.java b/test/parser/src/test/java/org/apache/shardingsphere/test/sql/parser/internal/InternalDistSQLParserParameterizedIT.java
index 609dceac7ba..8dee5a01f25 100644
--- a/test/parser/src/test/java/org/apache/shardingsphere/test/sql/parser/internal/InternalDistSQLParserParameterizedIT.java
+++ b/test/parser/src/test/java/org/apache/shardingsphere/test/sql/parser/internal/InternalDistSQLParserParameterizedIT.java
@@ -19,7 +19,7 @@ package org.apache.shardingsphere.test.sql.parser.internal;
 
 import org.apache.shardingsphere.test.runner.ShardingSphereParallelTestParameterized;
 import org.apache.shardingsphere.test.sql.parser.internal.engine.InternalSQLParserParameterizedIT;
-import org.apache.shardingsphere.test.sql.parser.internal.cases.sql.SQLCaseType;
+import org.apache.shardingsphere.test.sql.parser.internal.cases.sql.type.SQLCaseType;
 import org.junit.runner.RunWith;
 import org.junit.runners.Parameterized.Parameters;