From b0389897658cc11b53eb845474aa9dffb6b14d8b Mon Sep 17 00:00:00 2001 From: Liang Zhang Date: Thu, 29 Oct 2020 17:26:05 +0800 Subject: [PATCH] Add shardingsphere-infra-parser module (#7963) --- pom.xml | 2 +- .../EncryptSQLRewriterParameterizedTest.java | 2 +- .../MixSQLRewriterParameterizedTest.java | 2 +- .../ShardingSQLRewriterParameterizedTest.java | 2 +- .../type/standard/AbstractSQLRouteTest.java | 2 +- shardingsphere-infra/pom.xml | 1 + .../shardingsphere-infra-binder/pom.xml | 6 +++ .../shardingsphere-infra-parser/pom.xml | 38 +++++++++++++++++++ .../parser}/SQLStatementParserEngine.java | 2 +- .../StandardSQLStatementParserEngine.java | 4 +- ...andardSQLStatementParserEngineFactory.java | 2 +- .../shardingsphere-rdl-parser-engine/pom.xml | 6 +++ ...hardingSphereSQLStatementParserEngine.java | 6 +-- .../engine/RDLSQLStatementParserEngine.java | 2 +- .../engine/SQLParserParameterizedTest.java | 4 +- ...UnsupportedSQLParserParameterizedTest.java | 4 +- 16 files changed, 68 insertions(+), 17 deletions(-) create mode 100644 shardingsphere-infra/shardingsphere-infra-parser/pom.xml rename {shardingsphere-sql-parser/shardingsphere-sql-parser-engine/src/main/java/org/apache/shardingsphere/sql/parser/statement => shardingsphere-infra/shardingsphere-infra-parser/src/main/java/org/apache/shardingsphere/infra/parser}/SQLStatementParserEngine.java (95%) rename {shardingsphere-sql-parser/shardingsphere-sql-parser-engine/src/main/java/org/apache/shardingsphere/sql/parser/statement => shardingsphere-infra/shardingsphere-infra-parser/src/main/java/org/apache/shardingsphere/infra/parser}/standard/StandardSQLStatementParserEngine.java (95%) rename {shardingsphere-sql-parser/shardingsphere-sql-parser-engine/src/main/java/org/apache/shardingsphere/sql/parser/statement => shardingsphere-infra/shardingsphere-infra-parser/src/main/java/org/apache/shardingsphere/infra/parser}/standard/StandardSQLStatementParserEngineFactory.java (96%) diff --git a/pom.xml b/pom.xml index 354e87707e..508cf47fb5 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 e0ab2b442f..c9567fd343 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 e622083107..96d86e8e0e 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 4e27a7c754..0c9276f127 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 af04c4373f..0fc3f3b015 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 a54bb1d712..eaab90ae8d 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 fc1784f16c..79b267a30a 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 0000000000..fdbc68642d --- /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 8e69c2ed91..ebc394588e 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 2a019c6c08..25a0484373 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 8c637a37df..2820b7ed97 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 f34ef37db4..b5ee0b83a1 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 955f7bd2f0..94a857b696 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 0ea2cfe3ef..0ccf8d07ea 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 fd57e1bbda..e4207038f8 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 d73b88921e..ff511fa4e2 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"); } } -- GitLab