diff --git a/pom.xml b/pom.xml
index 354e87707e05f6f2bb1c4aeb474edc7aa2a17252..508cf47fb5053cad52142927b6519370edad5564 100644
--- a/pom.xml
+++ b/pom.xml
@@ -43,7 +43,7 @@
shardingsphere-transaction
shardingsphere-governance
shardingsphere-observability
-
+
shardingsphere-test
shardingsphere-integration-test
shardingsphere-distribution
diff --git a/shardingsphere-features/shardingsphere-encrypt/shardingsphere-encrypt-rewrite/src/test/java/org/apache/shardingsphere/encrypt/rewrite/parameterized/EncryptSQLRewriterParameterizedTest.java b/shardingsphere-features/shardingsphere-encrypt/shardingsphere-encrypt-rewrite/src/test/java/org/apache/shardingsphere/encrypt/rewrite/parameterized/EncryptSQLRewriterParameterizedTest.java
index e0ab2b442febf37789c99e1cd5ffb148f5c6d53b..c9567fd343f2f70bf46678d8664a871776703acc 100644
--- a/shardingsphere-features/shardingsphere-encrypt/shardingsphere-encrypt-rewrite/src/test/java/org/apache/shardingsphere/encrypt/rewrite/parameterized/EncryptSQLRewriterParameterizedTest.java
+++ b/shardingsphere-features/shardingsphere-encrypt/shardingsphere-encrypt-rewrite/src/test/java/org/apache/shardingsphere/encrypt/rewrite/parameterized/EncryptSQLRewriterParameterizedTest.java
@@ -44,7 +44,7 @@ import org.apache.shardingsphere.infra.schema.ShardingSphereSchema;
import org.apache.shardingsphere.infra.yaml.config.YamlRootRuleConfigurations;
import org.apache.shardingsphere.infra.yaml.engine.YamlEngine;
import org.apache.shardingsphere.infra.yaml.swapper.YamlRuleConfigurationSwapperEngine;
-import org.apache.shardingsphere.sql.parser.statement.standard.StandardSQLStatementParserEngine;
+import org.apache.shardingsphere.infra.parser.standard.StandardSQLStatementParserEngine;
import org.junit.runners.Parameterized.Parameters;
import java.io.File;
diff --git a/shardingsphere-features/shardingsphere-sharding/shardingsphere-sharding-rewrite/src/test/java/org/apache/shardingsphere/sharding/rewrite/parameterized/MixSQLRewriterParameterizedTest.java b/shardingsphere-features/shardingsphere-sharding/shardingsphere-sharding-rewrite/src/test/java/org/apache/shardingsphere/sharding/rewrite/parameterized/MixSQLRewriterParameterizedTest.java
index e622083107f3bde65796c815d38a6c81a8886b8f..96d86e8e0ed968ca21c36e0697dd55df6987061d 100644
--- a/shardingsphere-features/shardingsphere-sharding/shardingsphere-sharding-rewrite/src/test/java/org/apache/shardingsphere/sharding/rewrite/parameterized/MixSQLRewriterParameterizedTest.java
+++ b/shardingsphere-features/shardingsphere-sharding/shardingsphere-sharding-rewrite/src/test/java/org/apache/shardingsphere/sharding/rewrite/parameterized/MixSQLRewriterParameterizedTest.java
@@ -47,7 +47,7 @@ import org.apache.shardingsphere.infra.schema.ShardingSphereSchema;
import org.apache.shardingsphere.infra.yaml.config.YamlRootRuleConfigurations;
import org.apache.shardingsphere.infra.yaml.engine.YamlEngine;
import org.apache.shardingsphere.infra.yaml.swapper.YamlRuleConfigurationSwapperEngine;
-import org.apache.shardingsphere.sql.parser.statement.standard.StandardSQLStatementParserEngine;
+import org.apache.shardingsphere.infra.parser.standard.StandardSQLStatementParserEngine;
import org.junit.runners.Parameterized.Parameters;
import java.io.File;
diff --git a/shardingsphere-features/shardingsphere-sharding/shardingsphere-sharding-rewrite/src/test/java/org/apache/shardingsphere/sharding/rewrite/parameterized/ShardingSQLRewriterParameterizedTest.java b/shardingsphere-features/shardingsphere-sharding/shardingsphere-sharding-rewrite/src/test/java/org/apache/shardingsphere/sharding/rewrite/parameterized/ShardingSQLRewriterParameterizedTest.java
index 4e27a7c7546178a5ea67e0d441cab9f2d0fe5099..0c9276f127416e8e6c975b0f0101504242e312a4 100644
--- a/shardingsphere-features/shardingsphere-sharding/shardingsphere-sharding-rewrite/src/test/java/org/apache/shardingsphere/sharding/rewrite/parameterized/ShardingSQLRewriterParameterizedTest.java
+++ b/shardingsphere-features/shardingsphere-sharding/shardingsphere-sharding-rewrite/src/test/java/org/apache/shardingsphere/sharding/rewrite/parameterized/ShardingSQLRewriterParameterizedTest.java
@@ -47,7 +47,7 @@ import org.apache.shardingsphere.infra.schema.ShardingSphereSchema;
import org.apache.shardingsphere.infra.yaml.config.YamlRootRuleConfigurations;
import org.apache.shardingsphere.infra.yaml.engine.YamlEngine;
import org.apache.shardingsphere.infra.yaml.swapper.YamlRuleConfigurationSwapperEngine;
-import org.apache.shardingsphere.sql.parser.statement.standard.StandardSQLStatementParserEngine;
+import org.apache.shardingsphere.infra.parser.standard.StandardSQLStatementParserEngine;
import org.junit.runners.Parameterized.Parameters;
import java.io.File;
diff --git a/shardingsphere-features/shardingsphere-sharding/shardingsphere-sharding-route/src/test/java/org/apache/shardingsphere/sharding/route/engine/type/standard/AbstractSQLRouteTest.java b/shardingsphere-features/shardingsphere-sharding/shardingsphere-sharding-route/src/test/java/org/apache/shardingsphere/sharding/route/engine/type/standard/AbstractSQLRouteTest.java
index af04c4373f0844e90e99090f5074a2410317185d..0fc3f3b015614873b9b5f19142d7504059b4f96a 100644
--- a/shardingsphere-features/shardingsphere-sharding/shardingsphere-sharding-route/src/test/java/org/apache/shardingsphere/sharding/route/engine/type/standard/AbstractSQLRouteTest.java
+++ b/shardingsphere-features/shardingsphere-sharding/shardingsphere-sharding-route/src/test/java/org/apache/shardingsphere/sharding/route/engine/type/standard/AbstractSQLRouteTest.java
@@ -36,7 +36,7 @@ import org.apache.shardingsphere.infra.route.engine.SQLRouteEngine;
import org.apache.shardingsphere.infra.schema.ShardingSphereSchema;
import org.apache.shardingsphere.sharding.route.engine.fixture.AbstractRoutingEngineTest;
import org.apache.shardingsphere.sharding.rule.ShardingRule;
-import org.apache.shardingsphere.sql.parser.statement.standard.StandardSQLStatementParserEngine;
+import org.apache.shardingsphere.infra.parser.standard.StandardSQLStatementParserEngine;
import java.sql.Types;
import java.util.Arrays;
diff --git a/shardingsphere-infra/pom.xml b/shardingsphere-infra/pom.xml
index a54bb1d712326569aa6e475ea67dfcdce87aadc5..eaab90ae8d0ddfef8e3bfc55ce714226402a4a9f 100644
--- a/shardingsphere-infra/pom.xml
+++ b/shardingsphere-infra/pom.xml
@@ -31,6 +31,7 @@
shardingsphere-infra-common
+ shardingsphere-infra-parser
shardingsphere-infra-binder
shardingsphere-infra-route
shardingsphere-infra-rewrite
diff --git a/shardingsphere-infra/shardingsphere-infra-binder/pom.xml b/shardingsphere-infra/shardingsphere-infra-binder/pom.xml
index fc1784f16c2213272f22c74aeda2482fde0f6b28..79b267a30a42e110d746a7cf542955bc46d4b468 100644
--- a/shardingsphere-infra/shardingsphere-infra-binder/pom.xml
+++ b/shardingsphere-infra/shardingsphere-infra-binder/pom.xml
@@ -32,6 +32,12 @@
shardingsphere-sql-parser-engine
${project.version}
+
+
+ org.apache.shardingsphere
+ shardingsphere-infra-parser
+ ${project.version}
+
org.apache.shardingsphere
shardingsphere-infra-common
diff --git a/shardingsphere-infra/shardingsphere-infra-parser/pom.xml b/shardingsphere-infra/shardingsphere-infra-parser/pom.xml
new file mode 100644
index 0000000000000000000000000000000000000000..fdbc68642d9979b6ef7dbbfe4c36da598b1a12c6
--- /dev/null
+++ b/shardingsphere-infra/shardingsphere-infra-parser/pom.xml
@@ -0,0 +1,38 @@
+
+
+
+
+ 4.0.0
+
+ org.apache.shardingsphere
+ shardingsphere-infra
+ 5.0.0-RC1-SNAPSHOT
+
+ shardingsphere-infra-parser
+ ${project.artifactId}
+
+
+
+ org.apache.shardingsphere
+ shardingsphere-sql-parser-engine
+ ${project.version}
+
+
+
diff --git a/shardingsphere-sql-parser/shardingsphere-sql-parser-engine/src/main/java/org/apache/shardingsphere/sql/parser/statement/SQLStatementParserEngine.java b/shardingsphere-infra/shardingsphere-infra-parser/src/main/java/org/apache/shardingsphere/infra/parser/SQLStatementParserEngine.java
similarity index 95%
rename from shardingsphere-sql-parser/shardingsphere-sql-parser-engine/src/main/java/org/apache/shardingsphere/sql/parser/statement/SQLStatementParserEngine.java
rename to shardingsphere-infra/shardingsphere-infra-parser/src/main/java/org/apache/shardingsphere/infra/parser/SQLStatementParserEngine.java
index 8e69c2ed910da7e4162309532c236530dcc916a8..ebc394588e5ed8d1a496e5d12f63c727cfa02c78 100644
--- a/shardingsphere-sql-parser/shardingsphere-sql-parser-engine/src/main/java/org/apache/shardingsphere/sql/parser/statement/SQLStatementParserEngine.java
+++ b/shardingsphere-infra/shardingsphere-infra-parser/src/main/java/org/apache/shardingsphere/infra/parser/SQLStatementParserEngine.java
@@ -15,7 +15,7 @@
* limitations under the License.
*/
-package org.apache.shardingsphere.sql.parser.statement;
+package org.apache.shardingsphere.infra.parser;
import org.apache.shardingsphere.sql.parser.sql.common.statement.SQLStatement;
diff --git a/shardingsphere-sql-parser/shardingsphere-sql-parser-engine/src/main/java/org/apache/shardingsphere/sql/parser/statement/standard/StandardSQLStatementParserEngine.java b/shardingsphere-infra/shardingsphere-infra-parser/src/main/java/org/apache/shardingsphere/infra/parser/standard/StandardSQLStatementParserEngine.java
similarity index 95%
rename from shardingsphere-sql-parser/shardingsphere-sql-parser-engine/src/main/java/org/apache/shardingsphere/sql/parser/statement/standard/StandardSQLStatementParserEngine.java
rename to shardingsphere-infra/shardingsphere-infra-parser/src/main/java/org/apache/shardingsphere/infra/parser/standard/StandardSQLStatementParserEngine.java
index 2a019c6c08dc5424aefb72df9a2613157798d7cc..25a0484373bf9913d9aaf0bd2bd40b2def3e240c 100644
--- a/shardingsphere-sql-parser/shardingsphere-sql-parser-engine/src/main/java/org/apache/shardingsphere/sql/parser/statement/standard/StandardSQLStatementParserEngine.java
+++ b/shardingsphere-infra/shardingsphere-infra-parser/src/main/java/org/apache/shardingsphere/infra/parser/standard/StandardSQLStatementParserEngine.java
@@ -15,14 +15,14 @@
* limitations under the License.
*/
-package org.apache.shardingsphere.sql.parser.statement.standard;
+package org.apache.shardingsphere.infra.parser.standard;
import lombok.RequiredArgsConstructor;
import org.apache.shardingsphere.sql.parser.api.SQLParserEngine;
import org.apache.shardingsphere.sql.parser.cache.SQLParsedResultCache;
import org.apache.shardingsphere.sql.parser.hook.ParsingHookRegistry;
import org.apache.shardingsphere.sql.parser.sql.common.statement.SQLStatement;
-import org.apache.shardingsphere.sql.parser.statement.SQLStatementParserEngine;
+import org.apache.shardingsphere.infra.parser.SQLStatementParserEngine;
import java.util.Optional;
diff --git a/shardingsphere-sql-parser/shardingsphere-sql-parser-engine/src/main/java/org/apache/shardingsphere/sql/parser/statement/standard/StandardSQLStatementParserEngineFactory.java b/shardingsphere-infra/shardingsphere-infra-parser/src/main/java/org/apache/shardingsphere/infra/parser/standard/StandardSQLStatementParserEngineFactory.java
similarity index 96%
rename from shardingsphere-sql-parser/shardingsphere-sql-parser-engine/src/main/java/org/apache/shardingsphere/sql/parser/statement/standard/StandardSQLStatementParserEngineFactory.java
rename to shardingsphere-infra/shardingsphere-infra-parser/src/main/java/org/apache/shardingsphere/infra/parser/standard/StandardSQLStatementParserEngineFactory.java
index 8c637a37dfb074deecb7eff3a7e69b0dafe3eb8f..2820b7ed97de0e0c20b17a9330aac46ba905f01c 100644
--- a/shardingsphere-sql-parser/shardingsphere-sql-parser-engine/src/main/java/org/apache/shardingsphere/sql/parser/statement/standard/StandardSQLStatementParserEngineFactory.java
+++ b/shardingsphere-infra/shardingsphere-infra-parser/src/main/java/org/apache/shardingsphere/infra/parser/standard/StandardSQLStatementParserEngineFactory.java
@@ -15,7 +15,7 @@
* limitations under the License.
*/
-package org.apache.shardingsphere.sql.parser.statement.standard;
+package org.apache.shardingsphere.infra.parser.standard;
import lombok.AccessLevel;
import lombok.NoArgsConstructor;
diff --git a/shardingsphere-rdl-parser/shardingsphere-rdl-parser-engine/pom.xml b/shardingsphere-rdl-parser/shardingsphere-rdl-parser-engine/pom.xml
index f34ef37db4dadb357f23649a118f82154a8bfcaf..b5ee0b83a1b2efb2cc451e1e230f1834fcbc5878 100644
--- a/shardingsphere-rdl-parser/shardingsphere-rdl-parser-engine/pom.xml
+++ b/shardingsphere-rdl-parser/shardingsphere-rdl-parser-engine/pom.xml
@@ -36,6 +36,12 @@
org.antlr
antlr4-runtime
+
+
+ org.apache.shardingsphere
+ shardingsphere-infra-parser
+ ${project.version}
+
org.apache.shardingsphere
shardingsphere-rdl-parser-sql
diff --git a/shardingsphere-rdl-parser/shardingsphere-rdl-parser-engine/src/main/java/org/apache/shardingsphere/rdl/parser/engine/ShardingSphereSQLStatementParserEngine.java b/shardingsphere-rdl-parser/shardingsphere-rdl-parser-engine/src/main/java/org/apache/shardingsphere/rdl/parser/engine/ShardingSphereSQLStatementParserEngine.java
index 955f7bd2f0b106267dcf982b7c99da14855e4070..94a857b696b13a2e52246791601e8f6240ca369d 100644
--- a/shardingsphere-rdl-parser/shardingsphere-rdl-parser-engine/src/main/java/org/apache/shardingsphere/rdl/parser/engine/ShardingSphereSQLStatementParserEngine.java
+++ b/shardingsphere-rdl-parser/shardingsphere-rdl-parser-engine/src/main/java/org/apache/shardingsphere/rdl/parser/engine/ShardingSphereSQLStatementParserEngine.java
@@ -17,11 +17,11 @@
package org.apache.shardingsphere.rdl.parser.engine;
+import org.apache.shardingsphere.infra.parser.SQLStatementParserEngine;
+import org.apache.shardingsphere.infra.parser.standard.StandardSQLStatementParserEngine;
+import org.apache.shardingsphere.infra.parser.standard.StandardSQLStatementParserEngineFactory;
import org.apache.shardingsphere.rdl.parser.engine.engine.RDLSQLStatementParserEngine;
-import org.apache.shardingsphere.sql.parser.statement.SQLStatementParserEngine;
-import org.apache.shardingsphere.sql.parser.statement.standard.StandardSQLStatementParserEngine;
import org.apache.shardingsphere.sql.parser.sql.common.statement.SQLStatement;
-import org.apache.shardingsphere.sql.parser.statement.standard.StandardSQLStatementParserEngineFactory;
/**
* ShardingSphere SQL statement parser engine.
diff --git a/shardingsphere-rdl-parser/shardingsphere-rdl-parser-engine/src/main/java/org/apache/shardingsphere/rdl/parser/engine/engine/RDLSQLStatementParserEngine.java b/shardingsphere-rdl-parser/shardingsphere-rdl-parser-engine/src/main/java/org/apache/shardingsphere/rdl/parser/engine/engine/RDLSQLStatementParserEngine.java
index 0ea2cfe3efaadde5def215fbf407117f640e594d..0ccf8d07eac075cb560dbdaa8febb6b7202fea1f 100644
--- a/shardingsphere-rdl-parser/shardingsphere-rdl-parser-engine/src/main/java/org/apache/shardingsphere/rdl/parser/engine/engine/RDLSQLStatementParserEngine.java
+++ b/shardingsphere-rdl-parser/shardingsphere-rdl-parser-engine/src/main/java/org/apache/shardingsphere/rdl/parser/engine/engine/RDLSQLStatementParserEngine.java
@@ -19,9 +19,9 @@ package org.apache.shardingsphere.rdl.parser.engine.engine;
import lombok.RequiredArgsConstructor;
import org.antlr.v4.runtime.tree.ParseTree;
+import org.apache.shardingsphere.infra.parser.SQLStatementParserEngine;
import org.apache.shardingsphere.rdl.parser.engine.executor.RDLSQLParserExecutor;
import org.apache.shardingsphere.rdl.parser.sql.visitor.ShardingSphereVisitor;
-import org.apache.shardingsphere.sql.parser.statement.SQLStatementParserEngine;
import org.apache.shardingsphere.sql.parser.hook.ParsingHookRegistry;
import org.apache.shardingsphere.sql.parser.sql.common.statement.SQLStatement;
diff --git a/shardingsphere-sql-parser/shardingsphere-sql-parser-test/src/main/java/org/apache/shardingsphere/test/sql/parser/parameterized/engine/SQLParserParameterizedTest.java b/shardingsphere-sql-parser/shardingsphere-sql-parser-test/src/main/java/org/apache/shardingsphere/test/sql/parser/parameterized/engine/SQLParserParameterizedTest.java
index fd57e1bbda99c7b2ad08899c569e3d721c214478..e4207038f8c8d09de1df60d569b468edefca26b6 100644
--- a/shardingsphere-sql-parser/shardingsphere-sql-parser-test/src/main/java/org/apache/shardingsphere/test/sql/parser/parameterized/engine/SQLParserParameterizedTest.java
+++ b/shardingsphere-sql-parser/shardingsphere-sql-parser-test/src/main/java/org/apache/shardingsphere/test/sql/parser/parameterized/engine/SQLParserParameterizedTest.java
@@ -18,8 +18,8 @@
package org.apache.shardingsphere.test.sql.parser.parameterized.engine;
import lombok.RequiredArgsConstructor;
+import org.apache.shardingsphere.sql.parser.api.SQLParserEngine;
import org.apache.shardingsphere.sql.parser.sql.common.statement.SQLStatement;
-import org.apache.shardingsphere.sql.parser.statement.standard.StandardSQLStatementParserEngineFactory;
import org.apache.shardingsphere.test.sql.parser.parameterized.asserts.SQLCaseAssertContext;
import org.apache.shardingsphere.test.sql.parser.parameterized.asserts.statement.SQLStatementAssert;
import org.apache.shardingsphere.test.sql.parser.parameterized.jaxb.cases.SQLParserTestCasesRegistry;
@@ -78,7 +78,7 @@ public abstract class SQLParserParameterizedTest {
SQLParserTestCase expected = SQL_PARSER_TEST_CASES_REGISTRY.get(sqlCaseId);
String databaseType = "H2".equals(this.databaseType) ? "MySQL" : this.databaseType;
String sql = SQL_CASES_LOADER.getSQL(sqlCaseId, sqlCaseType, SQL_PARSER_TEST_CASES_REGISTRY.get(sqlCaseId).getParameters());
- SQLStatement actual = StandardSQLStatementParserEngineFactory.getSQLStatementParserEngine(databaseType).parse(sql, false);
+ SQLStatement actual = SQLParserEngine.parse(databaseType, sql, false, "STATEMENT");
SQLStatementAssert.assertIs(new SQLCaseAssertContext(sqlCaseId, sqlCaseType), actual, expected);
}
}
diff --git a/shardingsphere-sql-parser/shardingsphere-sql-parser-test/src/main/java/org/apache/shardingsphere/test/sql/parser/parameterized/engine/UnsupportedSQLParserParameterizedTest.java b/shardingsphere-sql-parser/shardingsphere-sql-parser-test/src/main/java/org/apache/shardingsphere/test/sql/parser/parameterized/engine/UnsupportedSQLParserParameterizedTest.java
index d73b88921e6165e7046e8d8fc241745dc69073c5..ff511fa4e24be7b17e80adb808723daeab9c0722 100644
--- a/shardingsphere-sql-parser/shardingsphere-sql-parser-test/src/main/java/org/apache/shardingsphere/test/sql/parser/parameterized/engine/UnsupportedSQLParserParameterizedTest.java
+++ b/shardingsphere-sql-parser/shardingsphere-sql-parser-test/src/main/java/org/apache/shardingsphere/test/sql/parser/parameterized/engine/UnsupportedSQLParserParameterizedTest.java
@@ -18,8 +18,8 @@
package org.apache.shardingsphere.test.sql.parser.parameterized.engine;
import lombok.RequiredArgsConstructor;
+import org.apache.shardingsphere.sql.parser.api.SQLParserEngine;
import org.apache.shardingsphere.sql.parser.exception.SQLParsingException;
-import org.apache.shardingsphere.sql.parser.statement.standard.StandardSQLStatementParserEngineFactory;
import org.apache.shardingsphere.test.sql.parser.parameterized.jaxb.sql.SQLCaseType;
import org.apache.shardingsphere.test.sql.parser.parameterized.jaxb.sql.loader.SQLCasesLoader;
import org.apache.shardingsphere.test.sql.parser.parameterized.jaxb.sql.loader.UnsupportedSQLCasesRegistry;
@@ -47,6 +47,6 @@ public abstract class UnsupportedSQLParserParameterizedTest {
public final void assertUnsupportedSQL() {
String sql = SQL_CASES_LOADER.getSQL(sqlCaseId, sqlCaseType, Collections.emptyList());
String databaseType = "H2".equals(this.databaseType) ? "MySQL" : this.databaseType;
- StandardSQLStatementParserEngineFactory.getSQLStatementParserEngine(databaseType).parse(sql, false);
+ SQLParserEngine.parse(databaseType, sql, false, "STATEMENT");
}
}