You are viewing a plain text version of this content. The canonical link for it is here.
Posted to notifications@shardingsphere.apache.org by zh...@apache.org on 2023/06/01 03:44:25 UTC
[shardingsphere] branch master updated: Split single rule related DistSQL into shardingsphere-single module (#25966)
This is an automated email from the ASF dual-hosted git repository.
zhaojinchao 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 2568122ea84 Split single rule related DistSQL into shardingsphere-single module (#25966)
2568122ea84 is described below
commit 2568122ea84ece56a2a24be3356cf7b639b19fa0
Author: Raigor <ra...@gmail.com>
AuthorDate: Thu Jun 1 11:44:17 2023 +0800
Split single rule related DistSQL into shardingsphere-single module (#25966)
* Split single rule related DistSQL into shardingsphere-single module
* revert yaml config.
* fix visit DatabaseName
---
.../infra/util/regular}/RegularUtils.java | 2 +-
.../infra/util/regular}/RegularUtilsTest.java | 2 +-
kernel/single/distsql/handler/pom.xml | 59 ++++++++++++++
.../handler/query}/CountSingleTableExecutor.java | 4 +-
.../ShowDefaultSingleTableStorageUnitExecutor.java | 4 +-
.../handler/query}/ShowSingleTableExecutor.java | 6 +-
...aultSingleTableStorageUnitStatementUpdater.java | 8 +-
...hardingsphere.distsql.handler.query.RQLExecutor | 4 +-
...re.distsql.handler.update.RuleDefinitionUpdater | 2 +-
.../query}/CountSingleTableExecutorTest.java | 4 +-
...wDefaultSingleTableStorageUnitExecutorTest.java | 4 +-
.../query}/ShowSingleTableExecutorTest.java | 21 +----
...SingleTableStorageUnitStatementUpdaterTest.java | 4 +-
kernel/single/distsql/parser/pom.xml | 91 ++++++++++++++++++++++
.../src/main/antlr4/imports/single/Alphabet.g4 | 41 +++++++---
.../src/main/antlr4/imports/single/Keyword.g4 | 65 +++++++++++++---
.../src/main/antlr4/imports/single/Literals.g4 | 27 ++++---
.../src/main/antlr4/imports/single/RDLStatement.g4 | 21 +++--
.../main/antlr4/imports/single}/RQLStatement.g4 | 22 ++----
.../src/main/antlr4/imports/single/Symbol.g4 | 62 +++++++++++++++
.../parser/autogen/SingleDistSQLStatement.g4 | 21 +++--
.../distsql/parser/core/SingleDistSQLLexer.java | 16 ++--
.../distsql/parser/core/SingleDistSQLParser.java | 32 ++++----
.../parser/core/SingleDistSQLStatementVisitor.java | 70 +++++++++++++++++
.../facade/SingleDistSQLStatementParserFacade.java | 53 +++++++++++++
...engine.spi.FeaturedDistSQLStatementParserFacade | 2 +-
kernel/single/{ => distsql}/pom.xml | 9 ++-
kernel/single/{ => distsql/statement}/pom.xml | 16 ++--
.../SetDefaultSingleTableStorageUnitStatement.java | 3 +-
.../statement/rql}/CountSingleTableStatement.java | 3 +-
...ShowDefaultSingleTableStorageUnitStatement.java | 3 +-
.../statement/rql}/ShowSingleTableStatement.java | 3 +-
kernel/single/pom.xml | 1 +
.../engine/src/main/antlr4/imports/Keyword.g4 | 12 ---
.../engine/src/main/antlr4/imports/RDLStatement.g4 | 4 -
.../engine/src/main/antlr4/imports/RQLStatement.g4 | 12 ---
.../parser/autogen/KernelDistSQLStatement.g4 | 4 -
.../core/kernel/KernelDistSQLStatementVisitor.java | 29 -------
proxy/backend/core/pom.xml | 5 ++
.../ral/queryable/ShowDistVariablesExecutor.java | 2 +-
.../distsql/rql/rule/ShowLogicalTableExecutor.java | 2 +-
...hardingsphere.distsql.handler.query.RQLExecutor | 3 -
.../handler/admin/executor/ShowTablesExecutor.java | 2 +-
test/it/parser/pom.xml | 5 ++
.../rdl/create/CreateRuleStatementAssert.java | 2 +-
...faultSingleTableStorageUnitStatementAssert.java | 2 +-
.../rql/impl/ShowTablesStatementAssert.java | 2 +-
.../table/ShowSingleTablesStatementAssert.java | 2 +-
48 files changed, 545 insertions(+), 228 deletions(-)
diff --git a/proxy/backend/core/src/main/java/org/apache/shardingsphere/proxy/backend/util/RegularUtils.java b/infra/util/src/main/java/org/apache/shardingsphere/infra/util/regular/RegularUtils.java
similarity index 96%
rename from proxy/backend/core/src/main/java/org/apache/shardingsphere/proxy/backend/util/RegularUtils.java
rename to infra/util/src/main/java/org/apache/shardingsphere/infra/util/regular/RegularUtils.java
index db4de1987f0..2d673654107 100644
--- a/proxy/backend/core/src/main/java/org/apache/shardingsphere/proxy/backend/util/RegularUtils.java
+++ b/infra/util/src/main/java/org/apache/shardingsphere/infra/util/regular/RegularUtils.java
@@ -15,7 +15,7 @@
* limitations under the License.
*/
-package org.apache.shardingsphere.proxy.backend.util;
+package org.apache.shardingsphere.infra.util.regular;
import lombok.AccessLevel;
import lombok.NoArgsConstructor;
diff --git a/proxy/backend/core/src/test/java/org/apache/shardingsphere/proxy/backend/util/RegularUtilsTest.java b/infra/util/src/test/java/org/apache/shardingsphere/infra/util/regular/RegularUtilsTest.java
similarity index 96%
rename from proxy/backend/core/src/test/java/org/apache/shardingsphere/proxy/backend/util/RegularUtilsTest.java
rename to infra/util/src/test/java/org/apache/shardingsphere/infra/util/regular/RegularUtilsTest.java
index c34c310608c..5f68c57f518 100644
--- a/proxy/backend/core/src/test/java/org/apache/shardingsphere/proxy/backend/util/RegularUtilsTest.java
+++ b/infra/util/src/test/java/org/apache/shardingsphere/infra/util/regular/RegularUtilsTest.java
@@ -15,7 +15,7 @@
* limitations under the License.
*/
-package org.apache.shardingsphere.proxy.backend.util;
+package org.apache.shardingsphere.infra.util.regular;
import org.junit.jupiter.api.Test;
diff --git a/kernel/single/distsql/handler/pom.xml b/kernel/single/distsql/handler/pom.xml
new file mode 100644
index 00000000000..d76e2a9fe6f
--- /dev/null
+++ b/kernel/single/distsql/handler/pom.xml
@@ -0,0 +1,59 @@
+<?xml version="1.0" encoding="UTF-8"?>
+<!--
+ ~ Licensed to the Apache Software Foundation (ASF) under one or more
+ ~ contributor license agreements. See the NOTICE file distributed with
+ ~ this work for additional information regarding copyright ownership.
+ ~ The ASF licenses this file to You under the Apache License, Version 2.0
+ ~ (the "License"); you may not use this file except in compliance with
+ ~ the License. You may obtain a copy of the License at
+ ~
+ ~ http://www.apache.org/licenses/LICENSE-2.0
+ ~
+ ~ Unless required by applicable law or agreed to in writing, software
+ ~ distributed under the License is distributed on an "AS IS" BASIS,
+ ~ WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
+ ~ See the License for the specific language governing permissions and
+ ~ limitations under the License.
+ -->
+
+<project xmlns="http://maven.apache.org/POM/4.0.0" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"
+ xsi:schemaLocation="http://maven.apache.org/POM/4.0.0 http://maven.apache.org/xsd/maven-4.0.0.xsd">
+ <modelVersion>4.0.0</modelVersion>
+ <parent>
+ <groupId>org.apache.shardingsphere</groupId>
+ <artifactId>shardingsphere-single-distsql</artifactId>
+ <version>5.3.3-SNAPSHOT</version>
+ </parent>
+ <artifactId>shardingsphere-single-distsql-handler</artifactId>
+ <name>${project.artifactId}</name>
+
+ <dependencies>
+ <dependency>
+ <groupId>org.apache.shardingsphere</groupId>
+ <artifactId>shardingsphere-distsql-handler</artifactId>
+ <version>${project.version}</version>
+ </dependency>
+ <dependency>
+ <groupId>org.apache.shardingsphere</groupId>
+ <artifactId>shardingsphere-single-core</artifactId>
+ <version>${project.version}</version>
+ </dependency>
+ <dependency>
+ <groupId>org.apache.shardingsphere</groupId>
+ <artifactId>shardingsphere-single-distsql-statement</artifactId>
+ <version>${project.version}</version>
+ </dependency>
+ <dependency>
+ <groupId>org.apache.shardingsphere</groupId>
+ <artifactId>shardingsphere-single-distsql-parser</artifactId>
+ <version>${project.version}</version>
+ </dependency>
+
+ <dependency>
+ <groupId>org.apache.shardingsphere</groupId>
+ <artifactId>shardingsphere-test-util</artifactId>
+ <version>${project.version}</version>
+ <scope>test</scope>
+ </dependency>
+ </dependencies>
+</project>
diff --git a/proxy/backend/core/src/main/java/org/apache/shardingsphere/proxy/backend/handler/distsql/rql/rule/CountSingleTableExecutor.java b/kernel/single/distsql/handler/src/main/java/org/apache/shardingsphere/single/distsql/handler/query/CountSingleTableExecutor.java
similarity index 91%
rename from proxy/backend/core/src/main/java/org/apache/shardingsphere/proxy/backend/handler/distsql/rql/rule/CountSingleTableExecutor.java
rename to kernel/single/distsql/handler/src/main/java/org/apache/shardingsphere/single/distsql/handler/query/CountSingleTableExecutor.java
index 05e7160403c..f0db8687c17 100644
--- a/proxy/backend/core/src/main/java/org/apache/shardingsphere/proxy/backend/handler/distsql/rql/rule/CountSingleTableExecutor.java
+++ b/kernel/single/distsql/handler/src/main/java/org/apache/shardingsphere/single/distsql/handler/query/CountSingleTableExecutor.java
@@ -15,12 +15,12 @@
* limitations under the License.
*/
-package org.apache.shardingsphere.proxy.backend.handler.distsql.rql.rule;
+package org.apache.shardingsphere.single.distsql.handler.query;
import org.apache.shardingsphere.distsql.handler.query.RQLExecutor;
-import org.apache.shardingsphere.distsql.parser.statement.rql.show.CountSingleTableStatement;
import org.apache.shardingsphere.infra.merge.result.impl.local.LocalDataQueryResultRow;
import org.apache.shardingsphere.infra.metadata.database.ShardingSphereDatabase;
+import org.apache.shardingsphere.single.distsql.statement.rql.CountSingleTableStatement;
import org.apache.shardingsphere.single.rule.SingleRule;
import java.util.Arrays;
diff --git a/proxy/backend/core/src/main/java/org/apache/shardingsphere/proxy/backend/handler/distsql/rql/rule/ShowDefaultSingleTableStorageUnitExecutor.java b/kernel/single/distsql/handler/src/main/java/org/apache/shardingsphere/single/distsql/handler/query/ShowDefaultSingleTableStorageUnitExecutor.java
similarity index 92%
rename from proxy/backend/core/src/main/java/org/apache/shardingsphere/proxy/backend/handler/distsql/rql/rule/ShowDefaultSingleTableStorageUnitExecutor.java
rename to kernel/single/distsql/handler/src/main/java/org/apache/shardingsphere/single/distsql/handler/query/ShowDefaultSingleTableStorageUnitExecutor.java
index 78d53c930f5..70102556d83 100644
--- a/proxy/backend/core/src/main/java/org/apache/shardingsphere/proxy/backend/handler/distsql/rql/rule/ShowDefaultSingleTableStorageUnitExecutor.java
+++ b/kernel/single/distsql/handler/src/main/java/org/apache/shardingsphere/single/distsql/handler/query/ShowDefaultSingleTableStorageUnitExecutor.java
@@ -15,12 +15,12 @@
* limitations under the License.
*/
-package org.apache.shardingsphere.proxy.backend.handler.distsql.rql.rule;
+package org.apache.shardingsphere.single.distsql.handler.query;
import org.apache.shardingsphere.distsql.handler.query.RQLExecutor;
-import org.apache.shardingsphere.distsql.parser.statement.rql.show.ShowDefaultSingleTableStorageUnitStatement;
import org.apache.shardingsphere.infra.merge.result.impl.local.LocalDataQueryResultRow;
import org.apache.shardingsphere.infra.metadata.database.ShardingSphereDatabase;
+import org.apache.shardingsphere.single.distsql.statement.rql.ShowDefaultSingleTableStorageUnitStatement;
import org.apache.shardingsphere.single.rule.SingleRule;
import java.util.Collection;
diff --git a/proxy/backend/core/src/main/java/org/apache/shardingsphere/proxy/backend/handler/distsql/rql/rule/ShowSingleTableExecutor.java b/kernel/single/distsql/handler/src/main/java/org/apache/shardingsphere/single/distsql/handler/query/ShowSingleTableExecutor.java
similarity index 93%
rename from proxy/backend/core/src/main/java/org/apache/shardingsphere/proxy/backend/handler/distsql/rql/rule/ShowSingleTableExecutor.java
rename to kernel/single/distsql/handler/src/main/java/org/apache/shardingsphere/single/distsql/handler/query/ShowSingleTableExecutor.java
index 58104ba9621..a4315413bad 100644
--- a/proxy/backend/core/src/main/java/org/apache/shardingsphere/proxy/backend/handler/distsql/rql/rule/ShowSingleTableExecutor.java
+++ b/kernel/single/distsql/handler/src/main/java/org/apache/shardingsphere/single/distsql/handler/query/ShowSingleTableExecutor.java
@@ -15,14 +15,14 @@
* limitations under the License.
*/
-package org.apache.shardingsphere.proxy.backend.handler.distsql.rql.rule;
+package org.apache.shardingsphere.single.distsql.handler.query;
import org.apache.shardingsphere.distsql.handler.query.RQLExecutor;
-import org.apache.shardingsphere.distsql.parser.statement.rql.show.ShowSingleTableStatement;
import org.apache.shardingsphere.infra.datanode.DataNode;
import org.apache.shardingsphere.infra.merge.result.impl.local.LocalDataQueryResultRow;
import org.apache.shardingsphere.infra.metadata.database.ShardingSphereDatabase;
-import org.apache.shardingsphere.proxy.backend.util.RegularUtils;
+import org.apache.shardingsphere.infra.util.regular.RegularUtils;
+import org.apache.shardingsphere.single.distsql.statement.rql.ShowSingleTableStatement;
import org.apache.shardingsphere.single.rule.SingleRule;
import org.apache.shardingsphere.sql.parser.sql.common.util.SQLUtils;
diff --git a/proxy/backend/core/src/main/java/org/apache/shardingsphere/proxy/backend/handler/distsql/rdl/rule/SetDefaultSingleTableStorageUnitStatementUpdater.java b/kernel/single/distsql/handler/src/main/java/org/apache/shardingsphere/single/distsql/handler/update/SetDefaultSingleTableStorageUnitStatementUpdater.java
similarity index 91%
rename from proxy/backend/core/src/main/java/org/apache/shardingsphere/proxy/backend/handler/distsql/rdl/rule/SetDefaultSingleTableStorageUnitStatementUpdater.java
rename to kernel/single/distsql/handler/src/main/java/org/apache/shardingsphere/single/distsql/handler/update/SetDefaultSingleTableStorageUnitStatementUpdater.java
index cebdb18c7a7..78dcf33ca79 100644
--- a/proxy/backend/core/src/main/java/org/apache/shardingsphere/proxy/backend/handler/distsql/rdl/rule/SetDefaultSingleTableStorageUnitStatementUpdater.java
+++ b/kernel/single/distsql/handler/src/main/java/org/apache/shardingsphere/single/distsql/handler/update/SetDefaultSingleTableStorageUnitStatementUpdater.java
@@ -15,15 +15,15 @@
* limitations under the License.
*/
-package org.apache.shardingsphere.proxy.backend.handler.distsql.rdl.rule;
+package org.apache.shardingsphere.single.distsql.handler.update;
-import org.apache.commons.lang3.StringUtils;
+import com.google.common.base.Strings;
import org.apache.shardingsphere.distsql.handler.exception.storageunit.MissingRequiredStorageUnitsException;
import org.apache.shardingsphere.distsql.handler.update.RuleDefinitionCreateUpdater;
-import org.apache.shardingsphere.distsql.parser.statement.rdl.create.SetDefaultSingleTableStorageUnitStatement;
import org.apache.shardingsphere.infra.metadata.database.ShardingSphereDatabase;
import org.apache.shardingsphere.infra.util.exception.ShardingSpherePreconditions;
import org.apache.shardingsphere.single.api.config.SingleRuleConfiguration;
+import org.apache.shardingsphere.single.distsql.statement.rdl.SetDefaultSingleTableStorageUnitStatement;
import java.util.Collection;
import java.util.Collections;
@@ -39,7 +39,7 @@ public final class SetDefaultSingleTableStorageUnitStatementUpdater implements R
}
private void checkStorageUnitExist(final ShardingSphereDatabase database, final SetDefaultSingleTableStorageUnitStatement sqlStatement) {
- if (StringUtils.isNotBlank(sqlStatement.getDefaultStorageUnit())) {
+ if (!Strings.isNullOrEmpty(sqlStatement.getDefaultStorageUnit())) {
Collection<String> storageUnitNames = database.getResourceMetaData().getDataSources().keySet();
ShardingSpherePreconditions.checkState(storageUnitNames.contains(sqlStatement.getDefaultStorageUnit()),
() -> new MissingRequiredStorageUnitsException(database.getName(), Collections.singleton(sqlStatement.getDefaultStorageUnit())));
diff --git a/proxy/backend/core/src/main/resources/META-INF/services/org.apache.shardingsphere.distsql.handler.update.RuleDefinitionUpdater b/kernel/single/distsql/handler/src/main/resources/META-INF/services/org.apache.shardingsphere.distsql.handler.query.RQLExecutor
similarity index 75%
copy from proxy/backend/core/src/main/resources/META-INF/services/org.apache.shardingsphere.distsql.handler.update.RuleDefinitionUpdater
copy to kernel/single/distsql/handler/src/main/resources/META-INF/services/org.apache.shardingsphere.distsql.handler.query.RQLExecutor
index 3310f24b6b3..28f9b11ee6b 100644
--- a/proxy/backend/core/src/main/resources/META-INF/services/org.apache.shardingsphere.distsql.handler.update.RuleDefinitionUpdater
+++ b/kernel/single/distsql/handler/src/main/resources/META-INF/services/org.apache.shardingsphere.distsql.handler.query.RQLExecutor
@@ -15,4 +15,6 @@
# limitations under the License.
#
-org.apache.shardingsphere.proxy.backend.handler.distsql.rdl.rule.SetDefaultSingleTableStorageUnitStatementUpdater
+org.apache.shardingsphere.single.distsql.handler.query.ShowSingleTableExecutor
+org.apache.shardingsphere.single.distsql.handler.query.ShowDefaultSingleTableStorageUnitExecutor
+org.apache.shardingsphere.single.distsql.handler.query.CountSingleTableExecutor
diff --git a/proxy/backend/core/src/main/resources/META-INF/services/org.apache.shardingsphere.distsql.handler.update.RuleDefinitionUpdater b/kernel/single/distsql/handler/src/main/resources/META-INF/services/org.apache.shardingsphere.distsql.handler.update.RuleDefinitionUpdater
similarity index 87%
copy from proxy/backend/core/src/main/resources/META-INF/services/org.apache.shardingsphere.distsql.handler.update.RuleDefinitionUpdater
copy to kernel/single/distsql/handler/src/main/resources/META-INF/services/org.apache.shardingsphere.distsql.handler.update.RuleDefinitionUpdater
index 3310f24b6b3..fbdde28c1d7 100644
--- a/proxy/backend/core/src/main/resources/META-INF/services/org.apache.shardingsphere.distsql.handler.update.RuleDefinitionUpdater
+++ b/kernel/single/distsql/handler/src/main/resources/META-INF/services/org.apache.shardingsphere.distsql.handler.update.RuleDefinitionUpdater
@@ -15,4 +15,4 @@
# limitations under the License.
#
-org.apache.shardingsphere.proxy.backend.handler.distsql.rdl.rule.SetDefaultSingleTableStorageUnitStatementUpdater
+org.apache.shardingsphere.single.distsql.handler.update.SetDefaultSingleTableStorageUnitStatementUpdater
diff --git a/proxy/backend/core/src/test/java/org/apache/shardingsphere/proxy/backend/handler/distsql/rql/rule/CountSingleTableExecutorTest.java b/kernel/single/distsql/handler/src/test/java/org/apache/shardingsphere/single/distsql/handler/query/CountSingleTableExecutorTest.java
similarity index 94%
rename from proxy/backend/core/src/test/java/org/apache/shardingsphere/proxy/backend/handler/distsql/rql/rule/CountSingleTableExecutorTest.java
rename to kernel/single/distsql/handler/src/test/java/org/apache/shardingsphere/single/distsql/handler/query/CountSingleTableExecutorTest.java
index 4b74029094d..a0903781299 100644
--- a/proxy/backend/core/src/test/java/org/apache/shardingsphere/proxy/backend/handler/distsql/rql/rule/CountSingleTableExecutorTest.java
+++ b/kernel/single/distsql/handler/src/test/java/org/apache/shardingsphere/single/distsql/handler/query/CountSingleTableExecutorTest.java
@@ -15,12 +15,12 @@
* limitations under the License.
*/
-package org.apache.shardingsphere.proxy.backend.handler.distsql.rql.rule;
+package org.apache.shardingsphere.single.distsql.handler.query;
-import org.apache.shardingsphere.distsql.parser.statement.rql.show.CountSingleTableStatement;
import org.apache.shardingsphere.infra.merge.result.impl.local.LocalDataQueryResultRow;
import org.apache.shardingsphere.infra.metadata.database.ShardingSphereDatabase;
import org.apache.shardingsphere.infra.metadata.database.rule.ShardingSphereRuleMetaData;
+import org.apache.shardingsphere.single.distsql.statement.rql.CountSingleTableStatement;
import org.apache.shardingsphere.single.rule.SingleRule;
import org.junit.jupiter.api.Test;
diff --git a/proxy/backend/core/src/test/java/org/apache/shardingsphere/proxy/backend/handler/distsql/rql/rule/ShowDefaultSingleTableStorageUnitExecutorTest.java b/kernel/single/distsql/handler/src/test/java/org/apache/shardingsphere/single/distsql/handler/query/ShowDefaultSingleTableStorageUnitExecutorTest.java
similarity index 94%
rename from proxy/backend/core/src/test/java/org/apache/shardingsphere/proxy/backend/handler/distsql/rql/rule/ShowDefaultSingleTableStorageUnitExecutorTest.java
rename to kernel/single/distsql/handler/src/test/java/org/apache/shardingsphere/single/distsql/handler/query/ShowDefaultSingleTableStorageUnitExecutorTest.java
index 4ced66e6733..01c057e7a15 100644
--- a/proxy/backend/core/src/test/java/org/apache/shardingsphere/proxy/backend/handler/distsql/rql/rule/ShowDefaultSingleTableStorageUnitExecutorTest.java
+++ b/kernel/single/distsql/handler/src/test/java/org/apache/shardingsphere/single/distsql/handler/query/ShowDefaultSingleTableStorageUnitExecutorTest.java
@@ -15,14 +15,14 @@
* limitations under the License.
*/
-package org.apache.shardingsphere.proxy.backend.handler.distsql.rql.rule;
+package org.apache.shardingsphere.single.distsql.handler.query;
import org.apache.shardingsphere.distsql.handler.query.RQLExecutor;
-import org.apache.shardingsphere.distsql.parser.statement.rql.show.ShowDefaultSingleTableStorageUnitStatement;
import org.apache.shardingsphere.infra.merge.result.impl.local.LocalDataQueryResultRow;
import org.apache.shardingsphere.infra.metadata.database.ShardingSphereDatabase;
import org.apache.shardingsphere.infra.metadata.database.rule.ShardingSphereRuleMetaData;
import org.apache.shardingsphere.single.api.config.SingleRuleConfiguration;
+import org.apache.shardingsphere.single.distsql.statement.rql.ShowDefaultSingleTableStorageUnitStatement;
import org.apache.shardingsphere.single.rule.SingleRule;
import org.junit.jupiter.api.Test;
diff --git a/proxy/backend/core/src/test/java/org/apache/shardingsphere/proxy/backend/handler/distsql/rql/rule/ShowSingleTableExecutorTest.java b/kernel/single/distsql/handler/src/test/java/org/apache/shardingsphere/single/distsql/handler/query/ShowSingleTableExecutorTest.java
similarity index 85%
rename from proxy/backend/core/src/test/java/org/apache/shardingsphere/proxy/backend/handler/distsql/rql/rule/ShowSingleTableExecutorTest.java
rename to kernel/single/distsql/handler/src/test/java/org/apache/shardingsphere/single/distsql/handler/query/ShowSingleTableExecutorTest.java
index c5ecc00fd52..0f99e2858b3 100644
--- a/proxy/backend/core/src/test/java/org/apache/shardingsphere/proxy/backend/handler/distsql/rql/rule/ShowSingleTableExecutorTest.java
+++ b/kernel/single/distsql/handler/src/test/java/org/apache/shardingsphere/single/distsql/handler/query/ShowSingleTableExecutorTest.java
@@ -15,17 +15,15 @@
* limitations under the License.
*/
-package org.apache.shardingsphere.proxy.backend.handler.distsql.rql.rule;
+package org.apache.shardingsphere.single.distsql.handler.query;
import org.apache.shardingsphere.distsql.handler.query.RQLExecutor;
-import org.apache.shardingsphere.distsql.parser.statement.rql.show.ShowSingleTableStatement;
import org.apache.shardingsphere.infra.datanode.DataNode;
import org.apache.shardingsphere.infra.merge.result.impl.local.LocalDataQueryResultRow;
import org.apache.shardingsphere.infra.metadata.database.ShardingSphereDatabase;
import org.apache.shardingsphere.infra.metadata.database.rule.ShardingSphereRuleMetaData;
import org.apache.shardingsphere.infra.rule.ShardingSphereRule;
-import org.apache.shardingsphere.shadow.api.config.ShadowRuleConfiguration;
-import org.apache.shardingsphere.shadow.rule.ShadowRule;
+import org.apache.shardingsphere.single.distsql.statement.rql.ShowSingleTableStatement;
import org.apache.shardingsphere.single.rule.SingleRule;
import org.junit.jupiter.api.BeforeEach;
import org.junit.jupiter.api.Test;
@@ -102,21 +100,6 @@ class ShowSingleTableExecutorTest {
assertThat(fourthRow.getCell(2), is("ds_1_multiple"));
}
- @Test
- void assertGetRowDataWithOtherRules() {
- addShardingSphereRule(new ShadowRule(mock(ShadowRuleConfiguration.class)));
- RQLExecutor<ShowSingleTableStatement> executor = new ShowSingleTableExecutor();
- Collection<LocalDataQueryResultRow> actual = executor.getRows(database, mock(ShowSingleTableStatement.class));
- assertThat(actual.size(), is(2));
- Iterator<LocalDataQueryResultRow> rowData = actual.iterator();
- LocalDataQueryResultRow firstRow = rowData.next();
- assertThat(firstRow.getCell(1), is("t_order"));
- assertThat(firstRow.getCell(2), is("ds_1"));
- LocalDataQueryResultRow secondRow = rowData.next();
- assertThat(secondRow.getCell(1), is("t_order_item"));
- assertThat(secondRow.getCell(2), is("ds_2"));
- }
-
@Test
void assertGetSingleTableWithLikeLiteral() {
RQLExecutor<ShowSingleTableStatement> executor = new ShowSingleTableExecutor();
diff --git a/proxy/backend/core/src/test/java/org/apache/shardingsphere/proxy/backend/handler/distsql/rdl/rule/SetDefaultSingleTableStorageUnitStatementUpdaterTest.java b/kernel/single/distsql/handler/src/test/java/org/apache/shardingsphere/single/distsql/handler/update/SetDefaultSingleTableStorageUnitStatementUpdaterTest.java
similarity index 94%
rename from proxy/backend/core/src/test/java/org/apache/shardingsphere/proxy/backend/handler/distsql/rdl/rule/SetDefaultSingleTableStorageUnitStatementUpdaterTest.java
rename to kernel/single/distsql/handler/src/test/java/org/apache/shardingsphere/single/distsql/handler/update/SetDefaultSingleTableStorageUnitStatementUpdaterTest.java
index e3827949c35..cf85828f426 100644
--- a/proxy/backend/core/src/test/java/org/apache/shardingsphere/proxy/backend/handler/distsql/rdl/rule/SetDefaultSingleTableStorageUnitStatementUpdaterTest.java
+++ b/kernel/single/distsql/handler/src/test/java/org/apache/shardingsphere/single/distsql/handler/update/SetDefaultSingleTableStorageUnitStatementUpdaterTest.java
@@ -15,12 +15,12 @@
* limitations under the License.
*/
-package org.apache.shardingsphere.proxy.backend.handler.distsql.rdl.rule;
+package org.apache.shardingsphere.single.distsql.handler.update;
import org.apache.shardingsphere.distsql.handler.exception.storageunit.MissingRequiredStorageUnitsException;
-import org.apache.shardingsphere.distsql.parser.statement.rdl.create.SetDefaultSingleTableStorageUnitStatement;
import org.apache.shardingsphere.infra.metadata.database.ShardingSphereDatabase;
import org.apache.shardingsphere.single.api.config.SingleRuleConfiguration;
+import org.apache.shardingsphere.single.distsql.statement.rdl.SetDefaultSingleTableStorageUnitStatement;
import org.junit.jupiter.api.Test;
import org.junit.jupiter.api.extension.ExtendWith;
import org.mockito.junit.jupiter.MockitoExtension;
diff --git a/kernel/single/distsql/parser/pom.xml b/kernel/single/distsql/parser/pom.xml
new file mode 100644
index 00000000000..44033e09ae3
--- /dev/null
+++ b/kernel/single/distsql/parser/pom.xml
@@ -0,0 +1,91 @@
+<?xml version="1.0" encoding="UTF-8"?>
+<!--
+ ~ Licensed to the Apache Software Foundation (ASF) under one or more
+ ~ contributor license agreements. See the NOTICE file distributed with
+ ~ this work for additional information regarding copyright ownership.
+ ~ The ASF licenses this file to You under the Apache License, Version 2.0
+ ~ (the "License"); you may not use this file except in compliance with
+ ~ the License. You may obtain a copy of the License at
+ ~
+ ~ http://www.apache.org/licenses/LICENSE-2.0
+ ~
+ ~ Unless required by applicable law or agreed to in writing, software
+ ~ distributed under the License is distributed on an "AS IS" BASIS,
+ ~ WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
+ ~ See the License for the specific language governing permissions and
+ ~ limitations under the License.
+ -->
+
+<project xmlns="http://maven.apache.org/POM/4.0.0" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"
+ xsi:schemaLocation="http://maven.apache.org/POM/4.0.0 http://maven.apache.org/xsd/maven-4.0.0.xsd">
+ <modelVersion>4.0.0</modelVersion>
+ <parent>
+ <groupId>org.apache.shardingsphere</groupId>
+ <artifactId>shardingsphere-single-distsql</artifactId>
+ <version>5.3.3-SNAPSHOT</version>
+ </parent>
+ <artifactId>shardingsphere-single-distsql-parser</artifactId>
+ <name>${project.artifactId}</name>
+
+ <dependencies>
+ <dependency>
+ <groupId>org.apache.shardingsphere</groupId>
+ <artifactId>shardingsphere-parser-sql-spi</artifactId>
+ <version>${project.version}</version>
+ </dependency>
+ <dependency>
+ <groupId>org.apache.shardingsphere</groupId>
+ <artifactId>shardingsphere-parser-distsql-engine</artifactId>
+ <version>${project.version}</version>
+ </dependency>
+ <dependency>
+ <groupId>org.apache.shardingsphere</groupId>
+ <artifactId>shardingsphere-single-distsql-statement</artifactId>
+ <version>${project.version}</version>
+ </dependency>
+ </dependencies>
+
+ <profiles>
+ <profile>
+ <id>jdk8</id>
+ <activation>
+ <jdk>1.8</jdk>
+ </activation>
+ <build>
+ <plugins>
+ <plugin>
+ <groupId>org.codehaus.mojo</groupId>
+ <artifactId>build-helper-maven-plugin</artifactId>
+ </plugin>
+ </plugins>
+ </build>
+ </profile>
+ <profile>
+ <id>jdk11+</id>
+ <activation>
+ <jdk>[11,)</jdk>
+ </activation>
+ <build>
+ <plugins>
+ <plugin>
+ <groupId>org.antlr</groupId>
+ <artifactId>antlr4-maven-plugin</artifactId>
+ <executions>
+ <execution>
+ <id>antlr</id>
+ <goals>
+ <goal>antlr4</goal>
+ </goals>
+ <configuration>
+ <libDirectory>src/main/antlr4/imports/single/</libDirectory>
+ <listener>false</listener>
+ <visitor>true</visitor>
+ </configuration>
+ </execution>
+ </executions>
+ </plugin>
+ </plugins>
+ </build>
+ </profile>
+ </profiles>
+</project>
diff --git a/parser/distsql/statement/src/main/java/org/apache/shardingsphere/distsql/parser/statement/rdl/create/SetDefaultSingleTableStorageUnitStatement.java b/kernel/single/distsql/parser/src/main/antlr4/imports/single/Alphabet.g4
similarity index 56%
copy from parser/distsql/statement/src/main/java/org/apache/shardingsphere/distsql/parser/statement/rdl/create/SetDefaultSingleTableStorageUnitStatement.java
copy to kernel/single/distsql/parser/src/main/antlr4/imports/single/Alphabet.g4
index 3d006651f05..f7603cc7e63 100644
--- a/parser/distsql/statement/src/main/java/org/apache/shardingsphere/distsql/parser/statement/rdl/create/SetDefaultSingleTableStorageUnitStatement.java
+++ b/kernel/single/distsql/parser/src/main/antlr4/imports/single/Alphabet.g4
@@ -15,17 +15,34 @@
* limitations under the License.
*/
-package org.apache.shardingsphere.distsql.parser.statement.rdl.create;
+lexer grammar Alphabet;
-import lombok.Getter;
-import lombok.RequiredArgsConstructor;
+FOR_GENERATOR: 'DO NOT MATCH ANY THING, JUST FOR GENERATOR';
-/**
- * Set default single table storage unit statement.
- */
-@RequiredArgsConstructor
-@Getter
-public final class SetDefaultSingleTableStorageUnitStatement extends CreateRuleStatement {
-
- private final String defaultStorageUnit;
-}
+fragment A: [Aa];
+fragment B: [Bb];
+fragment C: [Cc];
+fragment D: [Dd];
+fragment E: [Ee];
+fragment F: [Ff];
+fragment G: [Gg];
+fragment H: [Hh];
+fragment I: [Ii];
+fragment J: [Jj];
+fragment K: [Kk];
+fragment L: [Ll];
+fragment M: [Mm];
+fragment N: [Nn];
+fragment O: [Oo];
+fragment P: [Pp];
+fragment Q: [Qq];
+fragment R: [Rr];
+fragment S: [Ss];
+fragment T: [Tt];
+fragment U: [Uu];
+fragment V: [Vv];
+fragment W: [Ww];
+fragment X: [Xx];
+fragment Y: [Yy];
+fragment Z: [Zz];
+fragment UL_: '_';
diff --git a/parser/distsql/statement/src/main/java/org/apache/shardingsphere/distsql/parser/statement/rdl/create/SetDefaultSingleTableStorageUnitStatement.java b/kernel/single/distsql/parser/src/main/antlr4/imports/single/Keyword.g4
similarity index 65%
copy from parser/distsql/statement/src/main/java/org/apache/shardingsphere/distsql/parser/statement/rdl/create/SetDefaultSingleTableStorageUnitStatement.java
copy to kernel/single/distsql/parser/src/main/antlr4/imports/single/Keyword.g4
index 3d006651f05..38b2ff61786 100644
--- a/parser/distsql/statement/src/main/java/org/apache/shardingsphere/distsql/parser/statement/rdl/create/SetDefaultSingleTableStorageUnitStatement.java
+++ b/kernel/single/distsql/parser/src/main/antlr4/imports/single/Keyword.g4
@@ -15,17 +15,58 @@
* limitations under the License.
*/
-package org.apache.shardingsphere.distsql.parser.statement.rdl.create;
+lexer grammar Keyword;
-import lombok.Getter;
-import lombok.RequiredArgsConstructor;
+import Alphabet;
-/**
- * Set default single table storage unit statement.
- */
-@RequiredArgsConstructor
-@Getter
-public final class SetDefaultSingleTableStorageUnitStatement extends CreateRuleStatement {
-
- private final String defaultStorageUnit;
-}
+WS
+ : [ \t\r\n] + ->skip
+ ;
+
+SHOW
+ : S H O W
+ ;
+
+SET
+ : S E T
+ ;
+
+DEFAULT
+ : D E F A U L T
+ ;
+
+SINGLE
+ : S I N G L E
+ ;
+
+TABLE
+ : T A B L E
+ ;
+
+TABLES
+ : T A B L E S
+ ;
+
+STORAGE
+ : S T O R A G E
+ ;
+
+UNIT
+ : U N I T
+ ;
+
+RANDOM
+ : R A N D O M
+ ;
+
+FROM
+ : F R O M
+ ;
+
+COUNT
+ : C O U N T
+ ;
+
+LIKE
+ : L I K E
+ ;
diff --git a/parser/distsql/statement/src/main/java/org/apache/shardingsphere/distsql/parser/statement/rdl/create/SetDefaultSingleTableStorageUnitStatement.java b/kernel/single/distsql/parser/src/main/antlr4/imports/single/Literals.g4
similarity index 68%
copy from parser/distsql/statement/src/main/java/org/apache/shardingsphere/distsql/parser/statement/rdl/create/SetDefaultSingleTableStorageUnitStatement.java
copy to kernel/single/distsql/parser/src/main/antlr4/imports/single/Literals.g4
index 3d006651f05..68f6a1b07ed 100644
--- a/parser/distsql/statement/src/main/java/org/apache/shardingsphere/distsql/parser/statement/rdl/create/SetDefaultSingleTableStorageUnitStatement.java
+++ b/kernel/single/distsql/parser/src/main/antlr4/imports/single/Literals.g4
@@ -15,17 +15,20 @@
* limitations under the License.
*/
-package org.apache.shardingsphere.distsql.parser.statement.rdl.create;
+lexer grammar Literals;
-import lombok.Getter;
-import lombok.RequiredArgsConstructor;
+import Alphabet, Symbol;
-/**
- * Set default single table storage unit statement.
- */
-@RequiredArgsConstructor
-@Getter
-public final class SetDefaultSingleTableStorageUnitStatement extends CreateRuleStatement {
-
- private final String defaultStorageUnit;
-}
+IDENTIFIER_
+ : [A-Za-z_$0-9]*?[A-Za-z_$]+?[A-Za-z_$0-9]*
+ | BQ_ ~'`'+ BQ_
+ ;
+
+STRING_
+ : (DQ_ ('\\'. | '""' | ~('"' | '\\'))* DQ_)
+ | (SQ_ ('\\'. | '\'\'' | ~('\'' | '\\'))* SQ_)
+ ;
+
+INT_
+ : [0-9]+
+ ;
diff --git a/parser/distsql/statement/src/main/java/org/apache/shardingsphere/distsql/parser/statement/rdl/create/SetDefaultSingleTableStorageUnitStatement.java b/kernel/single/distsql/parser/src/main/antlr4/imports/single/RDLStatement.g4
similarity index 68%
copy from parser/distsql/statement/src/main/java/org/apache/shardingsphere/distsql/parser/statement/rdl/create/SetDefaultSingleTableStorageUnitStatement.java
copy to kernel/single/distsql/parser/src/main/antlr4/imports/single/RDLStatement.g4
index 3d006651f05..9d79c7eb2bf 100644
--- a/parser/distsql/statement/src/main/java/org/apache/shardingsphere/distsql/parser/statement/rdl/create/SetDefaultSingleTableStorageUnitStatement.java
+++ b/kernel/single/distsql/parser/src/main/antlr4/imports/single/RDLStatement.g4
@@ -15,17 +15,14 @@
* limitations under the License.
*/
-package org.apache.shardingsphere.distsql.parser.statement.rdl.create;
+grammar RDLStatement;
-import lombok.Getter;
-import lombok.RequiredArgsConstructor;
+import Symbol, Keyword, Literals;
-/**
- * Set default single table storage unit statement.
- */
-@RequiredArgsConstructor
-@Getter
-public final class SetDefaultSingleTableStorageUnitStatement extends CreateRuleStatement {
-
- private final String defaultStorageUnit;
-}
+setDefaultSingleTableStorageUnit
+ : SET DEFAULT SINGLE TABLE STORAGE UNIT EQ_ (storageUnitName | RANDOM)
+ ;
+
+storageUnitName
+ : IDENTIFIER_
+ ;
diff --git a/parser/distsql/engine/src/main/antlr4/imports/RQLStatement.g4 b/kernel/single/distsql/parser/src/main/antlr4/imports/single/RQLStatement.g4
similarity index 78%
copy from parser/distsql/engine/src/main/antlr4/imports/RQLStatement.g4
copy to kernel/single/distsql/parser/src/main/antlr4/imports/single/RQLStatement.g4
index d38cd8755e6..fb2ca92cca4 100644
--- a/parser/distsql/engine/src/main/antlr4/imports/RQLStatement.g4
+++ b/kernel/single/distsql/parser/src/main/antlr4/imports/single/RQLStatement.g4
@@ -17,19 +17,7 @@
grammar RQLStatement;
-import BaseRule;
-
-showStorageUnits
- : SHOW STORAGE UNITS (FROM databaseName)? (WHERE USAGE_COUNT EQ_ usageCount)?
- ;
-
-showRulesUsedStorageUnit
- : SHOW RULES USED STORAGE UNIT storageUnitName (FROM databaseName)?
- ;
-
-showLogicalTables
- : SHOW LOGICAL TABLES showLike? (FROM databaseName)?
- ;
+import Symbol, Keyword, Literals;
showDefaultSingleTableStorageUnit
: SHOW DEFAULT SINGLE TABLE STORAGE UNIT (FROM databaseName)?
@@ -43,8 +31,12 @@ countSingleTable
: COUNT SINGLE TABLE (FROM databaseName)?
;
-usageCount
- : INT_
+databaseName
+ : IDENTIFIER_
+ ;
+
+tableName
+ : IDENTIFIER_
;
showLike
diff --git a/kernel/single/distsql/parser/src/main/antlr4/imports/single/Symbol.g4 b/kernel/single/distsql/parser/src/main/antlr4/imports/single/Symbol.g4
new file mode 100644
index 00000000000..61031e590dd
--- /dev/null
+++ b/kernel/single/distsql/parser/src/main/antlr4/imports/single/Symbol.g4
@@ -0,0 +1,62 @@
+/*
+ * 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.
+ */
+
+lexer grammar Symbol;
+
+AND_: '&&';
+OR_: '||';
+NOT_: '!';
+TILDE_: '~';
+VERTICALBAR_: '|';
+AMPERSAND_: '&';
+SIGNEDLEFTSHIFT_: '<<';
+SIGNEDRIGHTSHIFT_: '>>';
+CARET_: '^';
+MOD_: '%';
+COLON_: ':';
+PLUS_: '+';
+MINUS_: '-';
+ASTERISK_: '*';
+SLASH_: '/';
+BACKSLASH_: '\\';
+DOT_: '.';
+DOTASTERISK_: '.*';
+SAFEEQ_: '<=>';
+DEQ_: '==';
+EQ_: '=';
+NEQ_: '<>' | '!=';
+GT_: '>';
+GTE_: '>=';
+LT_: '<';
+LTE_: '<=';
+POUND_: '#';
+LP_: '(';
+RP_: ')';
+LBE_: '{';
+RBE_: '}';
+LBT_: '[';
+RBT_: ']';
+COMMA_: ',';
+DQ_: '"';
+SQ_: '\'';
+BQ_: '`';
+QUESTION_: '?';
+AT_: '@';
+SEMI_: ';';
+JSONSEPARATOR_: '->>';
+UL_: '_';
+DL_: '$';
diff --git a/parser/distsql/statement/src/main/java/org/apache/shardingsphere/distsql/parser/statement/rdl/create/SetDefaultSingleTableStorageUnitStatement.java b/kernel/single/distsql/parser/src/main/antlr4/org/apache/shardingsphere/distsql/parser/autogen/SingleDistSQLStatement.g4
similarity index 68%
copy from parser/distsql/statement/src/main/java/org/apache/shardingsphere/distsql/parser/statement/rdl/create/SetDefaultSingleTableStorageUnitStatement.java
copy to kernel/single/distsql/parser/src/main/antlr4/org/apache/shardingsphere/distsql/parser/autogen/SingleDistSQLStatement.g4
index 3d006651f05..4e6f7df90dd 100644
--- a/parser/distsql/statement/src/main/java/org/apache/shardingsphere/distsql/parser/statement/rdl/create/SetDefaultSingleTableStorageUnitStatement.java
+++ b/kernel/single/distsql/parser/src/main/antlr4/org/apache/shardingsphere/distsql/parser/autogen/SingleDistSQLStatement.g4
@@ -15,17 +15,14 @@
* limitations under the License.
*/
-package org.apache.shardingsphere.distsql.parser.statement.rdl.create;
+grammar SingleDistSQLStatement;
-import lombok.Getter;
-import lombok.RequiredArgsConstructor;
+import Symbol, RDLStatement, RQLStatement;
-/**
- * Set default single table storage unit statement.
- */
-@RequiredArgsConstructor
-@Getter
-public final class SetDefaultSingleTableStorageUnitStatement extends CreateRuleStatement {
-
- private final String defaultStorageUnit;
-}
+execute
+ : (setDefaultSingleTableStorageUnit
+ | showDefaultSingleTableStorageUnit
+ | showSingleTable
+ | countSingleTable
+ ) SEMI_? EOF
+ ;
diff --git a/parser/distsql/statement/src/main/java/org/apache/shardingsphere/distsql/parser/statement/rql/show/ShowDefaultSingleTableStorageUnitStatement.java b/kernel/single/distsql/parser/src/main/java/org/apache/shardingsphere/single/distsql/parser/core/SingleDistSQLLexer.java
similarity index 64%
copy from parser/distsql/statement/src/main/java/org/apache/shardingsphere/distsql/parser/statement/rql/show/ShowDefaultSingleTableStorageUnitStatement.java
copy to kernel/single/distsql/parser/src/main/java/org/apache/shardingsphere/single/distsql/parser/core/SingleDistSQLLexer.java
index 27f4e50d23d..fdf8c6b01a7 100644
--- a/parser/distsql/statement/src/main/java/org/apache/shardingsphere/distsql/parser/statement/rql/show/ShowDefaultSingleTableStorageUnitStatement.java
+++ b/kernel/single/distsql/parser/src/main/java/org/apache/shardingsphere/single/distsql/parser/core/SingleDistSQLLexer.java
@@ -15,18 +15,18 @@
* limitations under the License.
*/
-package org.apache.shardingsphere.distsql.parser.statement.rql.show;
+package org.apache.shardingsphere.single.distsql.parser.core;
-import lombok.Getter;
-import org.apache.shardingsphere.sql.parser.sql.common.segment.generic.DatabaseSegment;
+import org.antlr.v4.runtime.CharStream;
+import org.apache.shardingsphere.distsql.parser.autogen.SingleDistSQLStatementLexer;
+import org.apache.shardingsphere.sql.parser.api.parser.SQLLexer;
/**
- * Show default single table storage unit statement.
+ * SQL lexer for single DistSQL.
*/
-@Getter
-public final class ShowDefaultSingleTableStorageUnitStatement extends ShowRulesStatement {
+public final class SingleDistSQLLexer extends SingleDistSQLStatementLexer implements SQLLexer {
- public ShowDefaultSingleTableStorageUnitStatement(final DatabaseSegment database) {
- super(database);
+ public SingleDistSQLLexer(final CharStream input) {
+ super(input);
}
}
diff --git a/parser/distsql/statement/src/main/java/org/apache/shardingsphere/distsql/parser/statement/rql/show/ShowSingleTableStatement.java b/kernel/single/distsql/parser/src/main/java/org/apache/shardingsphere/single/distsql/parser/core/SingleDistSQLParser.java
similarity index 52%
copy from parser/distsql/statement/src/main/java/org/apache/shardingsphere/distsql/parser/statement/rql/show/ShowSingleTableStatement.java
copy to kernel/single/distsql/parser/src/main/java/org/apache/shardingsphere/single/distsql/parser/core/SingleDistSQLParser.java
index d39372b2a60..60fcdfa4381 100644
--- a/parser/distsql/statement/src/main/java/org/apache/shardingsphere/distsql/parser/statement/rql/show/ShowSingleTableStatement.java
+++ b/kernel/single/distsql/parser/src/main/java/org/apache/shardingsphere/single/distsql/parser/core/SingleDistSQLParser.java
@@ -15,30 +15,26 @@
* limitations under the License.
*/
-package org.apache.shardingsphere.distsql.parser.statement.rql.show;
+package org.apache.shardingsphere.single.distsql.parser.core;
-import org.apache.shardingsphere.sql.parser.sql.common.segment.generic.DatabaseSegment;
-
-import java.util.Optional;
+import org.antlr.v4.runtime.CommonTokenStream;
+import org.antlr.v4.runtime.TokenStream;
+import org.apache.shardingsphere.distsql.parser.autogen.SingleDistSQLStatementParser;
+import org.apache.shardingsphere.sql.parser.api.parser.SQLParser;
+import org.apache.shardingsphere.sql.parser.api.ASTNode;
+import org.apache.shardingsphere.sql.parser.core.ParseASTNode;
/**
- * Show single table statement.
+ * SQL parser for single DistSQL.
*/
-public final class ShowSingleTableStatement extends ShowTablesStatement {
-
- private final String tableName;
+public final class SingleDistSQLParser extends SingleDistSQLStatementParser implements SQLParser {
- public ShowSingleTableStatement(final String tableName, final String likePattern, final DatabaseSegment database) {
- super(likePattern, database);
- this.tableName = tableName;
+ public SingleDistSQLParser(final TokenStream input) {
+ super(input);
}
- /**
- * Get table name.
- *
- * @return table name
- */
- public Optional<String> getTableName() {
- return Optional.ofNullable(tableName);
+ @Override
+ public ASTNode parse() {
+ return new ParseASTNode(execute(), (CommonTokenStream) getTokenStream());
}
}
diff --git a/kernel/single/distsql/parser/src/main/java/org/apache/shardingsphere/single/distsql/parser/core/SingleDistSQLStatementVisitor.java b/kernel/single/distsql/parser/src/main/java/org/apache/shardingsphere/single/distsql/parser/core/SingleDistSQLStatementVisitor.java
new file mode 100644
index 00000000000..397c60d7b39
--- /dev/null
+++ b/kernel/single/distsql/parser/src/main/java/org/apache/shardingsphere/single/distsql/parser/core/SingleDistSQLStatementVisitor.java
@@ -0,0 +1,70 @@
+/*
+ * 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.single.distsql.parser.core;
+
+import org.antlr.v4.runtime.tree.ParseTree;
+import org.apache.shardingsphere.distsql.parser.autogen.SingleDistSQLStatementBaseVisitor;
+import org.apache.shardingsphere.distsql.parser.autogen.SingleDistSQLStatementParser.CountSingleTableContext;
+import org.apache.shardingsphere.distsql.parser.autogen.SingleDistSQLStatementParser.DatabaseNameContext;
+import org.apache.shardingsphere.distsql.parser.autogen.SingleDistSQLStatementParser.SetDefaultSingleTableStorageUnitContext;
+import org.apache.shardingsphere.distsql.parser.autogen.SingleDistSQLStatementParser.ShowDefaultSingleTableStorageUnitContext;
+import org.apache.shardingsphere.distsql.parser.autogen.SingleDistSQLStatementParser.ShowSingleTableContext;
+import org.apache.shardingsphere.single.distsql.statement.rdl.SetDefaultSingleTableStorageUnitStatement;
+import org.apache.shardingsphere.single.distsql.statement.rql.CountSingleTableStatement;
+import org.apache.shardingsphere.single.distsql.statement.rql.ShowDefaultSingleTableStorageUnitStatement;
+import org.apache.shardingsphere.single.distsql.statement.rql.ShowSingleTableStatement;
+import org.apache.shardingsphere.sql.parser.api.ASTNode;
+import org.apache.shardingsphere.sql.parser.api.visitor.SQLVisitor;
+import org.apache.shardingsphere.sql.parser.sql.common.segment.generic.DatabaseSegment;
+import org.apache.shardingsphere.sql.parser.sql.common.value.identifier.IdentifierValue;
+
+/**
+ * SQL statement visitor for single DistSQL.
+ */
+public final class SingleDistSQLStatementVisitor extends SingleDistSQLStatementBaseVisitor<ASTNode> implements SQLVisitor<ASTNode> {
+
+ @Override
+ public ASTNode visitCountSingleTable(final CountSingleTableContext ctx) {
+ return new CountSingleTableStatement(null == ctx.databaseName() ? null : (DatabaseSegment) visit(ctx.databaseName()));
+ }
+
+ @Override
+ public ASTNode visitSetDefaultSingleTableStorageUnit(final SetDefaultSingleTableStorageUnitContext ctx) {
+ return new SetDefaultSingleTableStorageUnitStatement(null == ctx.storageUnitName() ? null : getIdentifierValue(ctx.storageUnitName()));
+ }
+
+ @Override
+ public ASTNode visitShowDefaultSingleTableStorageUnit(final ShowDefaultSingleTableStorageUnitContext ctx) {
+ return new ShowDefaultSingleTableStorageUnitStatement(null == ctx.databaseName() ? null : (DatabaseSegment) visit(ctx.databaseName()));
+ }
+
+ @Override
+ public ASTNode visitShowSingleTable(final ShowSingleTableContext ctx) {
+ return new ShowSingleTableStatement(null == ctx.TABLE() ? null : getIdentifierValue(ctx.tableName()), null == ctx.showLike() ? null : getIdentifierValue(ctx.showLike().likePattern()),
+ null == ctx.databaseName() ? null : (DatabaseSegment) visit(ctx.databaseName()));
+ }
+
+ @Override
+ public ASTNode visitDatabaseName(final DatabaseNameContext ctx) {
+ return new DatabaseSegment(ctx.getStart().getStartIndex(), ctx.getStop().getStopIndex(), new IdentifierValue(ctx.getText()));
+ }
+
+ private String getIdentifierValue(final ParseTree context) {
+ return null == context ? null : new IdentifierValue(context.getText()).getValue();
+ }
+}
diff --git a/kernel/single/distsql/parser/src/main/java/org/apache/shardingsphere/single/distsql/parser/facade/SingleDistSQLStatementParserFacade.java b/kernel/single/distsql/parser/src/main/java/org/apache/shardingsphere/single/distsql/parser/facade/SingleDistSQLStatementParserFacade.java
new file mode 100644
index 00000000000..556a9ad4672
--- /dev/null
+++ b/kernel/single/distsql/parser/src/main/java/org/apache/shardingsphere/single/distsql/parser/facade/SingleDistSQLStatementParserFacade.java
@@ -0,0 +1,53 @@
+/*
+ * 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.single.distsql.parser.facade;
+
+import org.apache.shardingsphere.distsql.parser.engine.spi.FeaturedDistSQLStatementParserFacade;
+import org.apache.shardingsphere.sql.parser.api.ASTNode;
+import org.apache.shardingsphere.sql.parser.api.parser.SQLLexer;
+import org.apache.shardingsphere.sql.parser.api.parser.SQLParser;
+import org.apache.shardingsphere.sql.parser.api.visitor.SQLVisitor;
+import org.apache.shardingsphere.single.distsql.parser.core.SingleDistSQLLexer;
+import org.apache.shardingsphere.single.distsql.parser.core.SingleDistSQLParser;
+import org.apache.shardingsphere.single.distsql.parser.core.SingleDistSQLStatementVisitor;
+
+/**
+ * SQL parser facade for single DistSQL statement.
+ */
+public final class SingleDistSQLStatementParserFacade implements FeaturedDistSQLStatementParserFacade {
+
+ @Override
+ public Class<? extends SQLLexer> getLexerClass() {
+ return SingleDistSQLLexer.class;
+ }
+
+ @Override
+ public Class<? extends SQLParser> getParserClass() {
+ return SingleDistSQLParser.class;
+ }
+
+ @Override
+ public Class<? extends SQLVisitor<ASTNode>> getVisitorClass() {
+ return SingleDistSQLStatementVisitor.class;
+ }
+
+ @Override
+ public String getType() {
+ return "single";
+ }
+}
diff --git a/proxy/backend/core/src/main/resources/META-INF/services/org.apache.shardingsphere.distsql.handler.update.RuleDefinitionUpdater b/kernel/single/distsql/parser/src/main/resources/META-INF/services/org.apache.shardingsphere.distsql.parser.engine.spi.FeaturedDistSQLStatementParserFacade
similarity index 87%
rename from proxy/backend/core/src/main/resources/META-INF/services/org.apache.shardingsphere.distsql.handler.update.RuleDefinitionUpdater
rename to kernel/single/distsql/parser/src/main/resources/META-INF/services/org.apache.shardingsphere.distsql.parser.engine.spi.FeaturedDistSQLStatementParserFacade
index 3310f24b6b3..eb114384dc1 100644
--- a/proxy/backend/core/src/main/resources/META-INF/services/org.apache.shardingsphere.distsql.handler.update.RuleDefinitionUpdater
+++ b/kernel/single/distsql/parser/src/main/resources/META-INF/services/org.apache.shardingsphere.distsql.parser.engine.spi.FeaturedDistSQLStatementParserFacade
@@ -15,4 +15,4 @@
# limitations under the License.
#
-org.apache.shardingsphere.proxy.backend.handler.distsql.rdl.rule.SetDefaultSingleTableStorageUnitStatementUpdater
+org.apache.shardingsphere.single.distsql.parser.facade.SingleDistSQLStatementParserFacade
diff --git a/kernel/single/pom.xml b/kernel/single/distsql/pom.xml
similarity index 86%
copy from kernel/single/pom.xml
copy to kernel/single/distsql/pom.xml
index 5c9f6767b68..85df81cfd69 100644
--- a/kernel/single/pom.xml
+++ b/kernel/single/distsql/pom.xml
@@ -21,15 +21,16 @@
<modelVersion>4.0.0</modelVersion>
<parent>
<groupId>org.apache.shardingsphere</groupId>
- <artifactId>shardingsphere-kernel</artifactId>
+ <artifactId>shardingsphere-single</artifactId>
<version>5.3.3-SNAPSHOT</version>
</parent>
- <artifactId>shardingsphere-single</artifactId>
+ <artifactId>shardingsphere-single-distsql</artifactId>
<packaging>pom</packaging>
<name>${project.artifactId}</name>
<modules>
- <module>api</module>
- <module>core</module>
+ <module>statement</module>
+ <module>parser</module>
+ <module>handler</module>
</modules>
</project>
diff --git a/kernel/single/pom.xml b/kernel/single/distsql/statement/pom.xml
similarity index 76%
copy from kernel/single/pom.xml
copy to kernel/single/distsql/statement/pom.xml
index 5c9f6767b68..b822d96130a 100644
--- a/kernel/single/pom.xml
+++ b/kernel/single/distsql/statement/pom.xml
@@ -21,15 +21,17 @@
<modelVersion>4.0.0</modelVersion>
<parent>
<groupId>org.apache.shardingsphere</groupId>
- <artifactId>shardingsphere-kernel</artifactId>
+ <artifactId>shardingsphere-single-distsql</artifactId>
<version>5.3.3-SNAPSHOT</version>
</parent>
- <artifactId>shardingsphere-single</artifactId>
- <packaging>pom</packaging>
+ <artifactId>shardingsphere-single-distsql-statement</artifactId>
<name>${project.artifactId}</name>
- <modules>
- <module>api</module>
- <module>core</module>
- </modules>
+ <dependencies>
+ <dependency>
+ <groupId>org.apache.shardingsphere</groupId>
+ <artifactId>shardingsphere-parser-distsql-statement</artifactId>
+ <version>${project.version}</version>
+ </dependency>
+ </dependencies>
</project>
diff --git a/parser/distsql/statement/src/main/java/org/apache/shardingsphere/distsql/parser/statement/rdl/create/SetDefaultSingleTableStorageUnitStatement.java b/kernel/single/distsql/statement/src/main/java/org/apache/shardingsphere/single/distsql/statement/rdl/SetDefaultSingleTableStorageUnitStatement.java
similarity index 87%
rename from parser/distsql/statement/src/main/java/org/apache/shardingsphere/distsql/parser/statement/rdl/create/SetDefaultSingleTableStorageUnitStatement.java
rename to kernel/single/distsql/statement/src/main/java/org/apache/shardingsphere/single/distsql/statement/rdl/SetDefaultSingleTableStorageUnitStatement.java
index 3d006651f05..df16c7c3904 100644
--- a/parser/distsql/statement/src/main/java/org/apache/shardingsphere/distsql/parser/statement/rdl/create/SetDefaultSingleTableStorageUnitStatement.java
+++ b/kernel/single/distsql/statement/src/main/java/org/apache/shardingsphere/single/distsql/statement/rdl/SetDefaultSingleTableStorageUnitStatement.java
@@ -15,10 +15,11 @@
* limitations under the License.
*/
-package org.apache.shardingsphere.distsql.parser.statement.rdl.create;
+package org.apache.shardingsphere.single.distsql.statement.rdl;
import lombok.Getter;
import lombok.RequiredArgsConstructor;
+import org.apache.shardingsphere.distsql.parser.statement.rdl.create.CreateRuleStatement;
/**
* Set default single table storage unit statement.
diff --git a/parser/distsql/statement/src/main/java/org/apache/shardingsphere/distsql/parser/statement/rql/show/CountSingleTableStatement.java b/kernel/single/distsql/statement/src/main/java/org/apache/shardingsphere/single/distsql/statement/rql/CountSingleTableStatement.java
similarity index 88%
rename from parser/distsql/statement/src/main/java/org/apache/shardingsphere/distsql/parser/statement/rql/show/CountSingleTableStatement.java
rename to kernel/single/distsql/statement/src/main/java/org/apache/shardingsphere/single/distsql/statement/rql/CountSingleTableStatement.java
index bade19dab9c..45ff04510fd 100644
--- a/parser/distsql/statement/src/main/java/org/apache/shardingsphere/distsql/parser/statement/rql/show/CountSingleTableStatement.java
+++ b/kernel/single/distsql/statement/src/main/java/org/apache/shardingsphere/single/distsql/statement/rql/CountSingleTableStatement.java
@@ -15,8 +15,9 @@
* limitations under the License.
*/
-package org.apache.shardingsphere.distsql.parser.statement.rql.show;
+package org.apache.shardingsphere.single.distsql.statement.rql;
+import org.apache.shardingsphere.distsql.parser.statement.rql.show.ShowRulesStatement;
import org.apache.shardingsphere.sql.parser.sql.common.segment.generic.DatabaseSegment;
/**
diff --git a/parser/distsql/statement/src/main/java/org/apache/shardingsphere/distsql/parser/statement/rql/show/ShowDefaultSingleTableStorageUnitStatement.java b/kernel/single/distsql/statement/src/main/java/org/apache/shardingsphere/single/distsql/statement/rql/ShowDefaultSingleTableStorageUnitStatement.java
similarity index 88%
rename from parser/distsql/statement/src/main/java/org/apache/shardingsphere/distsql/parser/statement/rql/show/ShowDefaultSingleTableStorageUnitStatement.java
rename to kernel/single/distsql/statement/src/main/java/org/apache/shardingsphere/single/distsql/statement/rql/ShowDefaultSingleTableStorageUnitStatement.java
index 27f4e50d23d..6ceab4cfe8f 100644
--- a/parser/distsql/statement/src/main/java/org/apache/shardingsphere/distsql/parser/statement/rql/show/ShowDefaultSingleTableStorageUnitStatement.java
+++ b/kernel/single/distsql/statement/src/main/java/org/apache/shardingsphere/single/distsql/statement/rql/ShowDefaultSingleTableStorageUnitStatement.java
@@ -15,9 +15,10 @@
* limitations under the License.
*/
-package org.apache.shardingsphere.distsql.parser.statement.rql.show;
+package org.apache.shardingsphere.single.distsql.statement.rql;
import lombok.Getter;
+import org.apache.shardingsphere.distsql.parser.statement.rql.show.ShowRulesStatement;
import org.apache.shardingsphere.sql.parser.sql.common.segment.generic.DatabaseSegment;
/**
diff --git a/parser/distsql/statement/src/main/java/org/apache/shardingsphere/distsql/parser/statement/rql/show/ShowSingleTableStatement.java b/kernel/single/distsql/statement/src/main/java/org/apache/shardingsphere/single/distsql/statement/rql/ShowSingleTableStatement.java
similarity index 90%
rename from parser/distsql/statement/src/main/java/org/apache/shardingsphere/distsql/parser/statement/rql/show/ShowSingleTableStatement.java
rename to kernel/single/distsql/statement/src/main/java/org/apache/shardingsphere/single/distsql/statement/rql/ShowSingleTableStatement.java
index d39372b2a60..eaa42c823c7 100644
--- a/parser/distsql/statement/src/main/java/org/apache/shardingsphere/distsql/parser/statement/rql/show/ShowSingleTableStatement.java
+++ b/kernel/single/distsql/statement/src/main/java/org/apache/shardingsphere/single/distsql/statement/rql/ShowSingleTableStatement.java
@@ -15,8 +15,9 @@
* limitations under the License.
*/
-package org.apache.shardingsphere.distsql.parser.statement.rql.show;
+package org.apache.shardingsphere.single.distsql.statement.rql;
+import org.apache.shardingsphere.distsql.parser.statement.rql.show.ShowTablesStatement;
import org.apache.shardingsphere.sql.parser.sql.common.segment.generic.DatabaseSegment;
import java.util.Optional;
diff --git a/kernel/single/pom.xml b/kernel/single/pom.xml
index 5c9f6767b68..1e8be90e062 100644
--- a/kernel/single/pom.xml
+++ b/kernel/single/pom.xml
@@ -31,5 +31,6 @@
<modules>
<module>api</module>
<module>core</module>
+ <module>distsql</module>
</modules>
</project>
diff --git a/parser/distsql/engine/src/main/antlr4/imports/Keyword.g4 b/parser/distsql/engine/src/main/antlr4/imports/Keyword.g4
index 5c2a8018b14..b81678cff3c 100644
--- a/parser/distsql/engine/src/main/antlr4/imports/Keyword.g4
+++ b/parser/distsql/engine/src/main/antlr4/imports/Keyword.g4
@@ -35,10 +35,6 @@ CREATE
: C R E A T E
;
-DEFAULT
- : D E F A U L T
- ;
-
ALTER
: A L T E R
;
@@ -187,10 +183,6 @@ MODE
: M O D E
;
-COUNT
- : C O U N T
- ;
-
LABEL
: L A B E L
;
@@ -287,10 +279,6 @@ UNITS
: U N I T S
;
-RANDOM
- : R A N D O M
- ;
-
DIST
: D I S T
;
diff --git a/parser/distsql/engine/src/main/antlr4/imports/RDLStatement.g4 b/parser/distsql/engine/src/main/antlr4/imports/RDLStatement.g4
index c520f29626d..7e4f56acde3 100644
--- a/parser/distsql/engine/src/main/antlr4/imports/RDLStatement.g4
+++ b/parser/distsql/engine/src/main/antlr4/imports/RDLStatement.g4
@@ -31,10 +31,6 @@ unregisterStorageUnit
: UNREGISTER STORAGE UNIT ifExists? storageUnitName (COMMA_ storageUnitName)* ignoreSingleTables?
;
-setDefaultSingleTableStorageUnit
- : SET DEFAULT SINGLE TABLE STORAGE UNIT EQ_ (storageUnitName | RANDOM)
- ;
-
storageUnitDefinition
: storageUnitName LP_ (simpleSource | urlSource) COMMA_ USER EQ_ user (COMMA_ PASSWORD EQ_ password)? (COMMA_ propertiesDefinition)? RP_
;
diff --git a/parser/distsql/engine/src/main/antlr4/imports/RQLStatement.g4 b/parser/distsql/engine/src/main/antlr4/imports/RQLStatement.g4
index d38cd8755e6..981be702b66 100644
--- a/parser/distsql/engine/src/main/antlr4/imports/RQLStatement.g4
+++ b/parser/distsql/engine/src/main/antlr4/imports/RQLStatement.g4
@@ -31,18 +31,6 @@ showLogicalTables
: SHOW LOGICAL TABLES showLike? (FROM databaseName)?
;
-showDefaultSingleTableStorageUnit
- : SHOW DEFAULT SINGLE TABLE STORAGE UNIT (FROM databaseName)?
- ;
-
-showSingleTable
- : SHOW SINGLE (TABLES showLike? | TABLE tableName) (FROM databaseName)?
- ;
-
-countSingleTable
- : COUNT SINGLE TABLE (FROM databaseName)?
- ;
-
usageCount
: INT_
;
diff --git a/parser/distsql/engine/src/main/antlr4/org/apache/shardingsphere/distsql/parser/autogen/KernelDistSQLStatement.g4 b/parser/distsql/engine/src/main/antlr4/org/apache/shardingsphere/distsql/parser/autogen/KernelDistSQLStatement.g4
index bdd731890a5..32076d44a6a 100644
--- a/parser/distsql/engine/src/main/antlr4/org/apache/shardingsphere/distsql/parser/autogen/KernelDistSQLStatement.g4
+++ b/parser/distsql/engine/src/main/antlr4/org/apache/shardingsphere/distsql/parser/autogen/KernelDistSQLStatement.g4
@@ -35,12 +35,8 @@ execute
| showComputeNodeMode
| labelComputeNode
| unlabelComputeNode
- | countSingleTable
| alterComputeNode
| showLogicalTables
- | showSingleTable
- | showDefaultSingleTableStorageUnit
- | setDefaultSingleTableStorageUnit
| refreshDatabaseMetadata
| refreshTableMetadata
| showTableMetadata
diff --git a/parser/distsql/engine/src/main/java/org/apache/shardingsphere/distsql/parser/core/kernel/KernelDistSQLStatementVisitor.java b/parser/distsql/engine/src/main/java/org/apache/shardingsphere/distsql/parser/core/kernel/KernelDistSQLStatementVisitor.java
index b22764c14d9..b1391d1c32b 100644
--- a/parser/distsql/engine/src/main/java/org/apache/shardingsphere/distsql/parser/core/kernel/KernelDistSQLStatementVisitor.java
+++ b/parser/distsql/engine/src/main/java/org/apache/shardingsphere/distsql/parser/core/kernel/KernelDistSQLStatementVisitor.java
@@ -25,7 +25,6 @@ import org.apache.shardingsphere.distsql.parser.autogen.KernelDistSQLStatementPa
import org.apache.shardingsphere.distsql.parser.autogen.KernelDistSQLStatementParser.AlterStorageUnitContext;
import org.apache.shardingsphere.distsql.parser.autogen.KernelDistSQLStatementParser.BatchSizeContext;
import org.apache.shardingsphere.distsql.parser.autogen.KernelDistSQLStatementParser.ConvertYamlConfigurationContext;
-import org.apache.shardingsphere.distsql.parser.autogen.KernelDistSQLStatementParser.CountSingleTableContext;
import org.apache.shardingsphere.distsql.parser.autogen.KernelDistSQLStatementParser.DatabaseNameContext;
import org.apache.shardingsphere.distsql.parser.autogen.KernelDistSQLStatementParser.DisableComputeNodeContext;
import org.apache.shardingsphere.distsql.parser.autogen.KernelDistSQLStatementParser.EnableComputeNodeContext;
@@ -47,19 +46,16 @@ import org.apache.shardingsphere.distsql.parser.autogen.KernelDistSQLStatementPa
import org.apache.shardingsphere.distsql.parser.autogen.KernelDistSQLStatementParser.RefreshDatabaseMetadataContext;
import org.apache.shardingsphere.distsql.parser.autogen.KernelDistSQLStatementParser.RefreshTableMetadataContext;
import org.apache.shardingsphere.distsql.parser.autogen.KernelDistSQLStatementParser.RegisterStorageUnitContext;
-import org.apache.shardingsphere.distsql.parser.autogen.KernelDistSQLStatementParser.SetDefaultSingleTableStorageUnitContext;
import org.apache.shardingsphere.distsql.parser.autogen.KernelDistSQLStatementParser.SetDistVariableContext;
import org.apache.shardingsphere.distsql.parser.autogen.KernelDistSQLStatementParser.ShardingSizeContext;
import org.apache.shardingsphere.distsql.parser.autogen.KernelDistSQLStatementParser.ShowComputeNodeInfoContext;
import org.apache.shardingsphere.distsql.parser.autogen.KernelDistSQLStatementParser.ShowComputeNodeModeContext;
import org.apache.shardingsphere.distsql.parser.autogen.KernelDistSQLStatementParser.ShowComputeNodesContext;
-import org.apache.shardingsphere.distsql.parser.autogen.KernelDistSQLStatementParser.ShowDefaultSingleTableStorageUnitContext;
import org.apache.shardingsphere.distsql.parser.autogen.KernelDistSQLStatementParser.ShowDistVariableContext;
import org.apache.shardingsphere.distsql.parser.autogen.KernelDistSQLStatementParser.ShowDistVariablesContext;
import org.apache.shardingsphere.distsql.parser.autogen.KernelDistSQLStatementParser.ShowLogicalTablesContext;
import org.apache.shardingsphere.distsql.parser.autogen.KernelDistSQLStatementParser.ShowMigrationRuleContext;
import org.apache.shardingsphere.distsql.parser.autogen.KernelDistSQLStatementParser.ShowRulesUsedStorageUnitContext;
-import org.apache.shardingsphere.distsql.parser.autogen.KernelDistSQLStatementParser.ShowSingleTableContext;
import org.apache.shardingsphere.distsql.parser.autogen.KernelDistSQLStatementParser.ShowStorageUnitsContext;
import org.apache.shardingsphere.distsql.parser.autogen.KernelDistSQLStatementParser.ShowTableMetadataContext;
import org.apache.shardingsphere.distsql.parser.autogen.KernelDistSQLStatementParser.StorageUnitDefinitionContext;
@@ -100,13 +96,9 @@ import org.apache.shardingsphere.distsql.parser.statement.ral.updatable.UnlabelC
import org.apache.shardingsphere.distsql.parser.statement.ral.updatable.UnlockClusterStatement;
import org.apache.shardingsphere.distsql.parser.statement.rdl.alter.AlterStorageUnitStatement;
import org.apache.shardingsphere.distsql.parser.statement.rdl.create.RegisterStorageUnitStatement;
-import org.apache.shardingsphere.distsql.parser.statement.rdl.create.SetDefaultSingleTableStorageUnitStatement;
import org.apache.shardingsphere.distsql.parser.statement.rdl.drop.UnregisterStorageUnitStatement;
-import org.apache.shardingsphere.distsql.parser.statement.rql.show.CountSingleTableStatement;
-import org.apache.shardingsphere.distsql.parser.statement.rql.show.ShowDefaultSingleTableStorageUnitStatement;
import org.apache.shardingsphere.distsql.parser.statement.rql.show.ShowLogicalTablesStatement;
import org.apache.shardingsphere.distsql.parser.statement.rql.show.ShowRulesUsedStorageUnitStatement;
-import org.apache.shardingsphere.distsql.parser.statement.rql.show.ShowSingleTableStatement;
import org.apache.shardingsphere.distsql.parser.statement.rql.show.ShowStorageUnitsStatement;
import org.apache.shardingsphere.sql.parser.api.ASTNode;
import org.apache.shardingsphere.sql.parser.api.visitor.SQLVisitor;
@@ -195,21 +187,11 @@ public final class KernelDistSQLStatementVisitor extends KernelDistSQLStatementB
return new SetInstanceStatusStatement(status, getIdentifierValue(instanceIdContext));
}
- @Override
- public ASTNode visitCountSingleTable(final CountSingleTableContext ctx) {
- return new CountSingleTableStatement(null == ctx.databaseName() ? null : (DatabaseSegment) visit(ctx.databaseName()));
- }
-
@Override
public ASTNode visitAlterComputeNode(final AlterComputeNodeContext ctx) {
return new AlterComputeNodeStatement(getIdentifierValue(ctx.instanceId()), getIdentifierValue(ctx.variableName()), getIdentifierValue(ctx.variableValues()));
}
- @Override
- public ASTNode visitSetDefaultSingleTableStorageUnit(final SetDefaultSingleTableStorageUnitContext ctx) {
- return new SetDefaultSingleTableStorageUnitStatement(null == ctx.storageUnitName() ? null : getIdentifierValue(ctx.storageUnitName()));
- }
-
private Properties getProperties(final PropertiesDefinitionContext ctx) {
Properties result = new Properties();
if (null == ctx || null == ctx.properties()) {
@@ -251,17 +233,6 @@ public final class KernelDistSQLStatementVisitor extends KernelDistSQLStatementB
null == ctx.databaseName() ? null : (DatabaseSegment) visit(ctx.databaseName()));
}
- @Override
- public ASTNode visitShowDefaultSingleTableStorageUnit(final ShowDefaultSingleTableStorageUnitContext ctx) {
- return new ShowDefaultSingleTableStorageUnitStatement(null == ctx.databaseName() ? null : (DatabaseSegment) visit(ctx.databaseName()));
- }
-
- @Override
- public ASTNode visitShowSingleTable(final ShowSingleTableContext ctx) {
- return new ShowSingleTableStatement(null == ctx.TABLE() ? null : getIdentifierValue(ctx.tableName()), null == ctx.showLike() ? null : getIdentifierValue(ctx.showLike().likePattern()),
- null == ctx.databaseName() ? null : (DatabaseSegment) visit(ctx.databaseName()));
- }
-
@Override
public ASTNode visitShowDistVariable(final ShowDistVariableContext ctx) {
return new ShowDistVariableStatement(Objects.requireNonNull(getIdentifierValue(ctx.variableName())).toUpperCase());
diff --git a/proxy/backend/core/pom.xml b/proxy/backend/core/pom.xml
index 2771b8b9b26..58c17a7eb0a 100644
--- a/proxy/backend/core/pom.xml
+++ b/proxy/backend/core/pom.xml
@@ -123,6 +123,11 @@
<artifactId>shardingsphere-transaction-distsql-handler</artifactId>
<version>${project.version}</version>
</dependency>
+ <dependency>
+ <groupId>org.apache.shardingsphere</groupId>
+ <artifactId>shardingsphere-single-distsql-handler</artifactId>
+ <version>${project.version}</version>
+ </dependency>
<dependency>
<groupId>org.apache.shardingsphere</groupId>
<artifactId>shardingsphere-sql-parser-distsql-handler</artifactId>
diff --git a/proxy/backend/core/src/main/java/org/apache/shardingsphere/proxy/backend/handler/distsql/ral/queryable/ShowDistVariablesExecutor.java b/proxy/backend/core/src/main/java/org/apache/shardingsphere/proxy/backend/handler/distsql/ral/queryable/ShowDistVariablesExecutor.java
index 2c31d603016..1fe54e2ce01 100644
--- a/proxy/backend/core/src/main/java/org/apache/shardingsphere/proxy/backend/handler/distsql/ral/queryable/ShowDistVariablesExecutor.java
+++ b/proxy/backend/core/src/main/java/org/apache/shardingsphere/proxy/backend/handler/distsql/ral/queryable/ShowDistVariablesExecutor.java
@@ -28,7 +28,7 @@ import org.apache.shardingsphere.logging.util.LoggingUtils;
import org.apache.shardingsphere.proxy.backend.handler.distsql.ral.common.enums.VariableEnum;
import org.apache.shardingsphere.proxy.backend.handler.distsql.ral.queryable.executor.ConnectionSessionRequiredQueryableRALExecutor;
import org.apache.shardingsphere.proxy.backend.session.ConnectionSession;
-import org.apache.shardingsphere.proxy.backend.util.RegularUtils;
+import org.apache.shardingsphere.infra.util.regular.RegularUtils;
import org.apache.shardingsphere.sql.parser.sql.common.util.SQLUtils;
import java.util.Arrays;
diff --git a/proxy/backend/core/src/main/java/org/apache/shardingsphere/proxy/backend/handler/distsql/rql/rule/ShowLogicalTableExecutor.java b/proxy/backend/core/src/main/java/org/apache/shardingsphere/proxy/backend/handler/distsql/rql/rule/ShowLogicalTableExecutor.java
index 60ee008556e..b5051b2e96f 100644
--- a/proxy/backend/core/src/main/java/org/apache/shardingsphere/proxy/backend/handler/distsql/rql/rule/ShowLogicalTableExecutor.java
+++ b/proxy/backend/core/src/main/java/org/apache/shardingsphere/proxy/backend/handler/distsql/rql/rule/ShowLogicalTableExecutor.java
@@ -22,7 +22,7 @@ import org.apache.shardingsphere.distsql.parser.statement.rql.show.ShowLogicalTa
import org.apache.shardingsphere.infra.database.type.SchemaSupportedDatabaseType;
import org.apache.shardingsphere.infra.merge.result.impl.local.LocalDataQueryResultRow;
import org.apache.shardingsphere.infra.metadata.database.ShardingSphereDatabase;
-import org.apache.shardingsphere.proxy.backend.util.RegularUtils;
+import org.apache.shardingsphere.infra.util.regular.RegularUtils;
import org.apache.shardingsphere.sql.parser.sql.common.util.SQLUtils;
import java.util.Collection;
diff --git a/proxy/backend/core/src/main/resources/META-INF/services/org.apache.shardingsphere.distsql.handler.query.RQLExecutor b/proxy/backend/core/src/main/resources/META-INF/services/org.apache.shardingsphere.distsql.handler.query.RQLExecutor
index 64ad1e2e869..4d82291c3cf 100644
--- a/proxy/backend/core/src/main/resources/META-INF/services/org.apache.shardingsphere.distsql.handler.query.RQLExecutor
+++ b/proxy/backend/core/src/main/resources/META-INF/services/org.apache.shardingsphere.distsql.handler.query.RQLExecutor
@@ -16,8 +16,5 @@
#
org.apache.shardingsphere.proxy.backend.handler.distsql.rql.storage.unit.ShowStorageUnitExecutor
-org.apache.shardingsphere.proxy.backend.handler.distsql.rql.rule.ShowSingleTableExecutor
org.apache.shardingsphere.proxy.backend.handler.distsql.rql.rule.ShowRulesUsedStorageUnitExecutor
-org.apache.shardingsphere.proxy.backend.handler.distsql.rql.rule.ShowDefaultSingleTableStorageUnitExecutor
-org.apache.shardingsphere.proxy.backend.handler.distsql.rql.rule.CountSingleTableExecutor
org.apache.shardingsphere.proxy.backend.handler.distsql.rql.rule.ShowLogicalTableExecutor
diff --git a/proxy/backend/type/mysql/src/main/java/org/apache/shardingsphere/proxy/backend/mysql/handler/admin/executor/ShowTablesExecutor.java b/proxy/backend/type/mysql/src/main/java/org/apache/shardingsphere/proxy/backend/mysql/handler/admin/executor/ShowTablesExecutor.java
index c58cbb4ee30..7a31eb86bbf 100644
--- a/proxy/backend/type/mysql/src/main/java/org/apache/shardingsphere/proxy/backend/mysql/handler/admin/executor/ShowTablesExecutor.java
+++ b/proxy/backend/type/mysql/src/main/java/org/apache/shardingsphere/proxy/backend/mysql/handler/admin/executor/ShowTablesExecutor.java
@@ -32,7 +32,7 @@ import org.apache.shardingsphere.infra.metadata.database.schema.model.ShardingSp
import org.apache.shardingsphere.proxy.backend.context.ProxyContext;
import org.apache.shardingsphere.proxy.backend.handler.admin.executor.DatabaseAdminQueryExecutor;
import org.apache.shardingsphere.proxy.backend.session.ConnectionSession;
-import org.apache.shardingsphere.proxy.backend.util.RegularUtils;
+import org.apache.shardingsphere.infra.util.regular.RegularUtils;
import org.apache.shardingsphere.sql.parser.sql.common.util.SQLUtils;
import org.apache.shardingsphere.sql.parser.sql.dialect.statement.mysql.dal.MySQLShowTablesStatement;
diff --git a/test/it/parser/pom.xml b/test/it/parser/pom.xml
index f96cb1a1979..566d9652de2 100644
--- a/test/it/parser/pom.xml
+++ b/test/it/parser/pom.xml
@@ -94,6 +94,11 @@
<artifactId>shardingsphere-transaction-distsql-parser</artifactId>
<version>${project.version}</version>
</dependency>
+ <dependency>
+ <groupId>org.apache.shardingsphere</groupId>
+ <artifactId>shardingsphere-single-distsql-parser</artifactId>
+ <version>${project.version}</version>
+ </dependency>
<dependency>
<groupId>org.apache.shardingsphere</groupId>
<artifactId>shardingsphere-sql-parser-distsql-parser</artifactId>
diff --git a/test/it/parser/src/main/java/org/apache/shardingsphere/test/it/sql/parser/internal/asserts/statement/rdl/create/CreateRuleStatementAssert.java b/test/it/parser/src/main/java/org/apache/shardingsphere/test/it/sql/parser/internal/asserts/statement/rdl/create/CreateRuleStatementAssert.java
index fcdfda1fddf..4443792cb4f 100644
--- a/test/it/parser/src/main/java/org/apache/shardingsphere/test/it/sql/parser/internal/asserts/statement/rdl/create/CreateRuleStatementAssert.java
+++ b/test/it/parser/src/main/java/org/apache/shardingsphere/test/it/sql/parser/internal/asserts/statement/rdl/create/CreateRuleStatementAssert.java
@@ -20,7 +20,6 @@ package org.apache.shardingsphere.test.it.sql.parser.internal.asserts.statement.
import lombok.AccessLevel;
import lombok.NoArgsConstructor;
import org.apache.shardingsphere.distsql.parser.statement.rdl.create.CreateRuleStatement;
-import org.apache.shardingsphere.distsql.parser.statement.rdl.create.SetDefaultSingleTableStorageUnitStatement;
import org.apache.shardingsphere.encrypt.distsql.parser.statement.CreateEncryptRuleStatement;
import org.apache.shardingsphere.mask.distsql.parser.statement.CreateMaskRuleStatement;
import org.apache.shardingsphere.readwritesplitting.distsql.parser.statement.CreateReadwriteSplittingRuleStatement;
@@ -30,6 +29,7 @@ import org.apache.shardingsphere.sharding.distsql.parser.statement.CreateBroadca
import org.apache.shardingsphere.sharding.distsql.parser.statement.CreateDefaultShardingStrategyStatement;
import org.apache.shardingsphere.sharding.distsql.parser.statement.CreateShardingTableReferenceRuleStatement;
import org.apache.shardingsphere.sharding.distsql.parser.statement.CreateShardingTableRuleStatement;
+import org.apache.shardingsphere.single.distsql.statement.rdl.SetDefaultSingleTableStorageUnitStatement;
import org.apache.shardingsphere.test.it.sql.parser.internal.asserts.SQLCaseAssertContext;
import org.apache.shardingsphere.test.it.sql.parser.internal.asserts.statement.rdl.create.impl.CreateBroadcastTableRuleStatementAssert;
import org.apache.shardingsphere.test.it.sql.parser.internal.asserts.statement.rdl.create.impl.CreateDefaultShadowAlgorithmStatementAssert;
diff --git a/test/it/parser/src/main/java/org/apache/shardingsphere/test/it/sql/parser/internal/asserts/statement/rdl/create/impl/SetDefaultSingleTableStorageUnitStatementAssert.java b/test/it/parser/src/main/java/org/apache/shardingsphere/test/it/sql/parser/internal/asserts/statement/rdl/create/impl/SetDefaultSingleTableStorageUnitStatementAssert.java
index 349bf131611..8bc76ffbc15 100644
--- a/test/it/parser/src/main/java/org/apache/shardingsphere/test/it/sql/parser/internal/asserts/statement/rdl/create/impl/SetDefaultSingleTableStorageUnitStatementAssert.java
+++ b/test/it/parser/src/main/java/org/apache/shardingsphere/test/it/sql/parser/internal/asserts/statement/rdl/create/impl/SetDefaultSingleTableStorageUnitStatementAssert.java
@@ -19,7 +19,7 @@ package org.apache.shardingsphere.test.it.sql.parser.internal.asserts.statement.
import lombok.AccessLevel;
import lombok.NoArgsConstructor;
-import org.apache.shardingsphere.distsql.parser.statement.rdl.create.SetDefaultSingleTableStorageUnitStatement;
+import org.apache.shardingsphere.single.distsql.statement.rdl.SetDefaultSingleTableStorageUnitStatement;
import org.apache.shardingsphere.test.it.sql.parser.internal.asserts.SQLCaseAssertContext;
import org.apache.shardingsphere.test.it.sql.parser.internal.asserts.statement.ExistingAssert;
import org.apache.shardingsphere.test.it.sql.parser.internal.cases.parser.jaxb.statement.rdl.rule.single.SetDefaultSingleTableStorageUnitStatementTestCase;
diff --git a/test/it/parser/src/main/java/org/apache/shardingsphere/test/it/sql/parser/internal/asserts/statement/rql/impl/ShowTablesStatementAssert.java b/test/it/parser/src/main/java/org/apache/shardingsphere/test/it/sql/parser/internal/asserts/statement/rql/impl/ShowTablesStatementAssert.java
index c35e3a621d8..85f9d1dcefa 100644
--- a/test/it/parser/src/main/java/org/apache/shardingsphere/test/it/sql/parser/internal/asserts/statement/rql/impl/ShowTablesStatementAssert.java
+++ b/test/it/parser/src/main/java/org/apache/shardingsphere/test/it/sql/parser/internal/asserts/statement/rql/impl/ShowTablesStatementAssert.java
@@ -19,8 +19,8 @@ package org.apache.shardingsphere.test.it.sql.parser.internal.asserts.statement.
import lombok.AccessLevel;
import lombok.NoArgsConstructor;
-import org.apache.shardingsphere.distsql.parser.statement.rql.show.ShowSingleTableStatement;
import org.apache.shardingsphere.distsql.parser.statement.rql.show.ShowTablesStatement;
+import org.apache.shardingsphere.single.distsql.statement.rql.ShowSingleTableStatement;
import org.apache.shardingsphere.test.it.sql.parser.internal.asserts.SQLCaseAssertContext;
import org.apache.shardingsphere.test.it.sql.parser.internal.asserts.segment.database.DatabaseAssert;
import org.apache.shardingsphere.test.it.sql.parser.internal.asserts.statement.rql.impl.table.ShowSingleTablesStatementAssert;
diff --git a/test/it/parser/src/main/java/org/apache/shardingsphere/test/it/sql/parser/internal/asserts/statement/rql/impl/table/ShowSingleTablesStatementAssert.java b/test/it/parser/src/main/java/org/apache/shardingsphere/test/it/sql/parser/internal/asserts/statement/rql/impl/table/ShowSingleTablesStatementAssert.java
index 9dc368e6d6a..9577082b142 100644
--- a/test/it/parser/src/main/java/org/apache/shardingsphere/test/it/sql/parser/internal/asserts/statement/rql/impl/table/ShowSingleTablesStatementAssert.java
+++ b/test/it/parser/src/main/java/org/apache/shardingsphere/test/it/sql/parser/internal/asserts/statement/rql/impl/table/ShowSingleTablesStatementAssert.java
@@ -19,7 +19,7 @@ package org.apache.shardingsphere.test.it.sql.parser.internal.asserts.statement.
import lombok.AccessLevel;
import lombok.NoArgsConstructor;
-import org.apache.shardingsphere.distsql.parser.statement.rql.show.ShowSingleTableStatement;
+import org.apache.shardingsphere.single.distsql.statement.rql.ShowSingleTableStatement;
import org.apache.shardingsphere.test.it.sql.parser.internal.asserts.SQLCaseAssertContext;
import org.apache.shardingsphere.test.it.sql.parser.internal.cases.parser.jaxb.SQLParserTestCase;
import org.apache.shardingsphere.test.it.sql.parser.internal.cases.parser.jaxb.statement.rql.table.ShowSingleTableStatementTestCase;