You are viewing a plain text version of this content. The canonical link for it is here.
Posted to notifications@shardingsphere.apache.org by ji...@apache.org on 2022/04/07 03:52:25 UTC
[shardingsphere] branch master updated: DistSQL statement enhancements (#16611)
This is an automated email from the ASF dual-hosted git repository.
jianglongtao 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 07cfb65da56 DistSQL statement enhancements (#16611)
07cfb65da56 is described below
commit 07cfb65da56bcce89501ee38a4288cd8da6ec20e
Author: lanchengx <52...@users.noreply.github.com>
AuthorDate: Thu Apr 7 11:52:06 2022 +0800
DistSQL statement enhancements (#16611)
* The sharding statement implements the `subjectSupplier` interface
* The shadow statement implements the `subjectSupplier` interface
* The readwrite splitting statement implements the `subjectSupplier` interface
* The encrypt statement implements the `subjectSupplier` interface
* The database discovery statement implements the `subjectSupplier` interface
* The resource & single table rule statement implements the `subjectSupplier` interface
* The abstract statement implements the `subjectSupplier` interface
* Add subject & operation supplier interface
* Reformat
* Revert server.yaml
* Update java doc
* Update java doc
* Adjust the path.
* Update java doc
* Use operation.
---
.../DistSQLOperationSupplier.java} | 15 ++--
.../DistSQLOperationTypeEnum.java} | 33 +++++----
.../impl/AddOperationSupplier.java} | 16 ++---
.../impl/AlterOperationSupplier.java} | 16 ++---
.../impl/CreateOperationSupplier.java} | 16 ++---
.../impl/DropOperationSupplier.java} | 16 ++---
.../impl/RALOperationSupplier.java} | 16 ++---
.../impl/ShowOperationSupplier.java} | 16 ++---
.../distsql/parser/statement/DistSQLStatement.java | 11 ++-
.../parser/statement/DistSQLStatementType.java | 80 ++++++++++++++++++++++
.../distsql/parser/statement/ral/RALStatement.java | 21 +++++-
.../distsql/parser/statement/rdl/RDLStatement.java | 6 ++
.../statement/rdl/ResourceDefinitionStatement.java | 10 ++-
.../AlterDefaultSingleTableRuleStatement.java | 3 +-
.../rdl/alter/AlterResourceStatement.java | 4 +-
.../statement/rdl/alter/AlterRuleStatement.java | 6 ++
.../statement/rdl/create/AddResourceStatement.java | 9 ++-
.../CreateDefaultSingleTableRuleStatement.java | 3 +-
.../statement/rdl/create/CreateRuleStatement.java | 4 +-
.../drop/DropDefaultSingleTableRuleStatement.java | 3 +-
.../statement/rdl/drop/DropResourceStatement.java | 6 ++
.../statement/rdl/drop/DropRuleStatement.java | 6 ++
.../distsql/parser/statement/rql/RQLStatement.java | 12 ++++
.../rql/show/CountSchemaRulesStatement.java | 6 ++
.../statement/rql/show/ShowResourcesStatement.java | 3 +-
.../rql/show/ShowRulesUsedResourceStatement.java | 3 +-
.../rql/show/ShowSingleTableRulesStatement.java | 3 +-
.../rql/show/ShowSingleTableStatement.java | 3 +-
.../rql/show/ShowUnusedResourcesStatement.java | 3 +-
.../parser/subject/DistSQLSubjectSupplier.java | 29 +++++---
.../parser/subject/DistSQLSubjectTypeEnum.java | 40 ++++++-----
.../impl/DatabaseDiscoverySubjectSupplier.java} | 16 ++---
.../impl/EncryptSubjectSupplier.java} | 16 ++---
.../impl/ReadwriteSplittingSubjectSupplier.java} | 16 ++---
.../impl/ResourceSubjectSupplier.java} | 16 ++---
.../impl/ScalingSubjectSupplier.java} | 16 ++---
.../impl/ShadowSubjectSupplier.java} | 16 ++---
.../impl/ShardingSubjectSupplier.java} | 16 ++---
.../impl/SingleTableSubjectSupplier.java} | 16 ++---
.../AlterDatabaseDiscoveryHeartbeatStatement.java | 3 +-
.../AlterDatabaseDiscoveryRuleStatement.java | 3 +-
.../AlterDatabaseDiscoveryTypeStatement.java | 3 +-
.../CreateDatabaseDiscoveryHeartbeatStatement.java | 3 +-
.../CreateDatabaseDiscoveryRuleStatement.java | 3 +-
.../CreateDatabaseDiscoveryTypeStatement.java | 3 +-
.../DropDatabaseDiscoveryHeartbeatStatement.java | 3 +-
.../DropDatabaseDiscoveryRuleStatement.java | 3 +-
.../DropDatabaseDiscoveryTypeStatement.java | 3 +-
.../ShowDatabaseDiscoveryHeartbeatsStatement.java | 3 +-
.../ShowDatabaseDiscoveryRulesStatement.java | 3 +-
.../ShowDatabaseDiscoveryTypesStatement.java | 3 +-
.../statement/AlterEncryptRuleStatement.java | 9 ++-
.../statement/CreateEncryptRuleStatement.java | 11 ++-
.../parser/statement/DropEncryptRuleStatement.java | 8 ++-
.../statement/ShowEncryptRulesStatement.java | 11 ++-
.../AlterReadwriteSplittingRuleStatement.java | 3 +-
.../CreateReadwriteSplittingRuleStatement.java | 3 +-
.../DropReadwriteSplittingRuleStatement.java | 3 +-
...owReadwriteSplittingReadResourcesStatement.java | 3 +-
.../ShowReadwriteSplittingRulesStatement.java | 3 +-
.../hint/ClearReadwriteSplittingHintStatement.java | 3 +-
.../hint/SetReadwriteSplittingHintStatement.java | 3 +-
.../ShowReadwriteSplittingHintStatusStatement.java | 3 +-
.../SetReadwriteSplittingStatusStatement.java | 3 +-
.../statement/AlterShadowAlgorithmStatement.java | 3 +-
.../parser/statement/AlterShadowRuleStatement.java | 3 +-
.../CreateDefaultShadowAlgorithmStatement.java | 3 +-
.../statement/CreateShadowAlgorithmStatement.java | 3 +-
.../statement/CreateShadowRuleStatement.java | 3 +-
.../DropDefaultShadowAlgorithmStatement.java | 3 +-
.../statement/DropShadowAlgorithmStatement.java | 3 +-
.../parser/statement/DropShadowRuleStatement.java | 3 +-
.../statement/ShowShadowAlgorithmsStatement.java | 3 +-
.../parser/statement/ShowShadowRulesStatement.java | 3 +-
.../statement/ShowShadowTableRulesStatement.java | 3 +-
.../distsql/statement/ApplyScalingStatement.java | 3 +-
.../distsql/statement/CheckScalingStatement.java | 3 +-
.../CreateShardingScalingRuleStatement.java | 3 +-
.../DisableShardingScalingRuleStatement.java | 3 +-
.../distsql/statement/DropScalingStatement.java | 3 +-
.../DropShardingScalingRuleStatement.java | 3 +-
.../EnableShardingScalingRuleStatement.java | 3 +-
.../distsql/statement/ResetScalingStatement.java | 3 +-
.../RestoreScalingSourceWritingStatement.java | 3 +-
.../ShowScalingCheckAlgorithmsStatement.java | 3 +-
.../statement/ShowScalingListStatement.java | 3 +-
.../statement/ShowScalingStatusStatement.java | 3 +-
.../ShowShardingScalingRulesStatement.java | 3 +-
.../distsql/statement/StartScalingStatement.java | 3 +-
.../StopScalingSourceWritingStatement.java | 3 +-
.../distsql/statement/StopScalingStatement.java | 3 +-
.../AlterDefaultShardingStrategyStatement.java | 3 +-
.../statement/AlterShardingAlgorithmStatement.java | 3 +-
.../AlterShardingBindingTableRulesStatement.java | 8 ++-
.../AlterShardingBroadcastTableRulesStatement.java | 8 ++-
.../AlterShardingKeyGeneratorStatement.java | 3 +-
.../statement/AlterShardingTableRuleStatement.java | 9 ++-
.../CreateDefaultShardingStrategyStatement.java | 3 +-
.../CreateShardingAlgorithmStatement.java | 3 +-
.../CreateShardingBindingTableRulesStatement.java | 8 ++-
...CreateShardingBroadcastTableRulesStatement.java | 3 +-
.../CreateShardingKeyGeneratorStatement.java | 3 +-
.../CreateShardingTableRuleStatement.java | 9 ++-
.../DropDefaultShardingStrategyStatement.java | 3 +-
.../statement/DropShardingAlgorithmStatement.java | 3 +-
.../DropShardingBindingTableRulesStatement.java | 3 +-
.../DropShardingBroadcastTableRulesStatement.java | 8 ++-
.../DropShardingKeyGeneratorStatement.java | 3 +-
.../statement/DropShardingTableRuleStatement.java | 3 +-
.../ShowDefaultShardingStrategyStatement.java | 3 +-
.../statement/ShowShardingAlgorithmsStatement.java | 3 +-
.../ShowShardingBindingTableRulesStatement.java | 3 +-
.../ShowShardingBroadcastTableRulesStatement.java | 3 +-
.../ShowShardingKeyGeneratorsStatement.java | 3 +-
.../statement/ShowShardingTableNodesStatement.java | 11 ++-
.../statement/ShowShardingTableRulesStatement.java | 11 ++-
...owShardingTableRulesUsedAlgorithmStatement.java | 3 +-
...hardingTableRulesUsedKeyGeneratorStatement.java | 3 +-
.../ShowUnusedShardingAlgorithmsStatement.java | 3 +-
.../ShowUnusedShardingKeyGeneratorsStatement.java | 3 +-
.../fixture/CreateFixtureRuleStatement.java | 6 ++
121 files changed, 617 insertions(+), 253 deletions(-)
diff --git a/shardingsphere-distsql/shardingsphere-distsql-statement/src/main/java/org/apache/shardingsphere/distsql/parser/statement/DistSQLStatement.java b/shardingsphere-distsql/shardingsphere-distsql-statement/src/main/java/org/apache/shardingsphere/distsql/parser/operation/DistSQLOperationSupplier.java
similarity index 75%
copy from shardingsphere-distsql/shardingsphere-distsql-statement/src/main/java/org/apache/shardingsphere/distsql/parser/statement/DistSQLStatement.java
copy to shardingsphere-distsql/shardingsphere-distsql-statement/src/main/java/org/apache/shardingsphere/distsql/parser/operation/DistSQLOperationSupplier.java
index d0b132f26c4..ee76642de07 100644
--- a/shardingsphere-distsql/shardingsphere-distsql-statement/src/main/java/org/apache/shardingsphere/distsql/parser/statement/DistSQLStatement.java
+++ b/shardingsphere-distsql/shardingsphere-distsql-statement/src/main/java/org/apache/shardingsphere/distsql/parser/operation/DistSQLOperationSupplier.java
@@ -15,12 +15,17 @@
* limitations under the License.
*/
-package org.apache.shardingsphere.distsql.parser.statement;
-
-import org.apache.shardingsphere.sql.parser.sql.common.statement.AbstractSQLStatement;
+package org.apache.shardingsphere.distsql.parser.operation;
/**
- * Dist SQL Statement.
+ * Dist SQL operation supplier.
*/
-public abstract class DistSQLStatement extends AbstractSQLStatement {
+public interface DistSQLOperationSupplier {
+
+ /**
+ * Get operation type.
+ *
+ * @return operation type
+ */
+ DistSQLOperationTypeEnum getOperationType();
}
diff --git a/shardingsphere-distsql/shardingsphere-distsql-statement/src/main/java/org/apache/shardingsphere/distsql/parser/statement/rql/show/ShowSingleTableStatement.java b/shardingsphere-distsql/shardingsphere-distsql-statement/src/main/java/org/apache/shardingsphere/distsql/parser/operation/DistSQLOperationTypeEnum.java
similarity index 54%
copy from shardingsphere-distsql/shardingsphere-distsql-statement/src/main/java/org/apache/shardingsphere/distsql/parser/statement/rql/show/ShowSingleTableStatement.java
copy to shardingsphere-distsql/shardingsphere-distsql-statement/src/main/java/org/apache/shardingsphere/distsql/parser/operation/DistSQLOperationTypeEnum.java
index f0b80b1e686..87f6a7f09b7 100644
--- a/shardingsphere-distsql/shardingsphere-distsql-statement/src/main/java/org/apache/shardingsphere/distsql/parser/statement/rql/show/ShowSingleTableStatement.java
+++ b/shardingsphere-distsql/shardingsphere-distsql-statement/src/main/java/org/apache/shardingsphere/distsql/parser/operation/DistSQLOperationTypeEnum.java
@@ -15,21 +15,28 @@
* limitations under the License.
*/
-package org.apache.shardingsphere.distsql.parser.statement.rql.show;
+package org.apache.shardingsphere.distsql.parser.operation;
-import lombok.Getter;
-import org.apache.shardingsphere.sql.parser.sql.common.segment.generic.SchemaSegment;
-
-/**
- * Show single table statement.
- */
-@Getter
-public final class ShowSingleTableStatement extends ShowRulesStatement {
+public enum DistSQLOperationTypeEnum {
- private final String tableName;
+ RAL_OPERATION,
+ ADD,
+ CREATE,
+ ALTER,
+ DROP,
+ SHOW;
- public ShowSingleTableStatement(final String tableName, final SchemaSegment schema) {
- super(schema);
- this.tableName = tableName;
+ /**
+ * Returns the operation type of the specified operation type name.
+ *
+ * @param operationTypeName operation type name
+ * @return statement type constant
+ */
+ public static DistSQLOperationTypeEnum getValueOf(final String operationTypeName) {
+ try {
+ return valueOf(operationTypeName.toUpperCase());
+ } catch (IllegalArgumentException ex) {
+ throw new UnsupportedOperationException(String.format("Unsupported operation type `%s`", operationTypeName));
+ }
}
}
diff --git a/shardingsphere-distsql/shardingsphere-distsql-statement/src/main/java/org/apache/shardingsphere/distsql/parser/statement/rql/show/CountSchemaRulesStatement.java b/shardingsphere-distsql/shardingsphere-distsql-statement/src/main/java/org/apache/shardingsphere/distsql/parser/operation/impl/AddOperationSupplier.java
similarity index 64%
copy from shardingsphere-distsql/shardingsphere-distsql-statement/src/main/java/org/apache/shardingsphere/distsql/parser/statement/rql/show/CountSchemaRulesStatement.java
copy to shardingsphere-distsql/shardingsphere-distsql-statement/src/main/java/org/apache/shardingsphere/distsql/parser/operation/impl/AddOperationSupplier.java
index ab38b8a2d62..4feb6b9f5ff 100644
--- a/shardingsphere-distsql/shardingsphere-distsql-statement/src/main/java/org/apache/shardingsphere/distsql/parser/statement/rql/show/CountSchemaRulesStatement.java
+++ b/shardingsphere-distsql/shardingsphere-distsql-statement/src/main/java/org/apache/shardingsphere/distsql/parser/operation/impl/AddOperationSupplier.java
@@ -15,18 +15,18 @@
* limitations under the License.
*/
-package org.apache.shardingsphere.distsql.parser.statement.rql.show;
+package org.apache.shardingsphere.distsql.parser.operation.impl;
-import lombok.Getter;
-import org.apache.shardingsphere.sql.parser.sql.common.segment.generic.SchemaSegment;
+import org.apache.shardingsphere.distsql.parser.operation.DistSQLOperationSupplier;
+import org.apache.shardingsphere.distsql.parser.operation.DistSQLOperationTypeEnum;
/**
- * Count schema rules statement.
+ * Add operation supplier.
*/
-@Getter
-public final class CountSchemaRulesStatement extends ShowRulesStatement {
+public interface AddOperationSupplier extends DistSQLOperationSupplier {
- public CountSchemaRulesStatement(final SchemaSegment schema) {
- super(schema);
+ @Override
+ default DistSQLOperationTypeEnum getOperationType() {
+ return DistSQLOperationTypeEnum.ADD;
}
}
diff --git a/shardingsphere-distsql/shardingsphere-distsql-statement/src/main/java/org/apache/shardingsphere/distsql/parser/statement/rql/show/CountSchemaRulesStatement.java b/shardingsphere-distsql/shardingsphere-distsql-statement/src/main/java/org/apache/shardingsphere/distsql/parser/operation/impl/AlterOperationSupplier.java
similarity index 64%
copy from shardingsphere-distsql/shardingsphere-distsql-statement/src/main/java/org/apache/shardingsphere/distsql/parser/statement/rql/show/CountSchemaRulesStatement.java
copy to shardingsphere-distsql/shardingsphere-distsql-statement/src/main/java/org/apache/shardingsphere/distsql/parser/operation/impl/AlterOperationSupplier.java
index ab38b8a2d62..ba1f40ea65a 100644
--- a/shardingsphere-distsql/shardingsphere-distsql-statement/src/main/java/org/apache/shardingsphere/distsql/parser/statement/rql/show/CountSchemaRulesStatement.java
+++ b/shardingsphere-distsql/shardingsphere-distsql-statement/src/main/java/org/apache/shardingsphere/distsql/parser/operation/impl/AlterOperationSupplier.java
@@ -15,18 +15,18 @@
* limitations under the License.
*/
-package org.apache.shardingsphere.distsql.parser.statement.rql.show;
+package org.apache.shardingsphere.distsql.parser.operation.impl;
-import lombok.Getter;
-import org.apache.shardingsphere.sql.parser.sql.common.segment.generic.SchemaSegment;
+import org.apache.shardingsphere.distsql.parser.operation.DistSQLOperationSupplier;
+import org.apache.shardingsphere.distsql.parser.operation.DistSQLOperationTypeEnum;
/**
- * Count schema rules statement.
+ * Alter operation supplier.
*/
-@Getter
-public final class CountSchemaRulesStatement extends ShowRulesStatement {
+public interface AlterOperationSupplier extends DistSQLOperationSupplier {
- public CountSchemaRulesStatement(final SchemaSegment schema) {
- super(schema);
+ @Override
+ default DistSQLOperationTypeEnum getOperationType() {
+ return DistSQLOperationTypeEnum.ALTER;
}
}
diff --git a/shardingsphere-distsql/shardingsphere-distsql-statement/src/main/java/org/apache/shardingsphere/distsql/parser/statement/rql/show/CountSchemaRulesStatement.java b/shardingsphere-distsql/shardingsphere-distsql-statement/src/main/java/org/apache/shardingsphere/distsql/parser/operation/impl/CreateOperationSupplier.java
similarity index 64%
copy from shardingsphere-distsql/shardingsphere-distsql-statement/src/main/java/org/apache/shardingsphere/distsql/parser/statement/rql/show/CountSchemaRulesStatement.java
copy to shardingsphere-distsql/shardingsphere-distsql-statement/src/main/java/org/apache/shardingsphere/distsql/parser/operation/impl/CreateOperationSupplier.java
index ab38b8a2d62..2f168aaae9d 100644
--- a/shardingsphere-distsql/shardingsphere-distsql-statement/src/main/java/org/apache/shardingsphere/distsql/parser/statement/rql/show/CountSchemaRulesStatement.java
+++ b/shardingsphere-distsql/shardingsphere-distsql-statement/src/main/java/org/apache/shardingsphere/distsql/parser/operation/impl/CreateOperationSupplier.java
@@ -15,18 +15,18 @@
* limitations under the License.
*/
-package org.apache.shardingsphere.distsql.parser.statement.rql.show;
+package org.apache.shardingsphere.distsql.parser.operation.impl;
-import lombok.Getter;
-import org.apache.shardingsphere.sql.parser.sql.common.segment.generic.SchemaSegment;
+import org.apache.shardingsphere.distsql.parser.operation.DistSQLOperationSupplier;
+import org.apache.shardingsphere.distsql.parser.operation.DistSQLOperationTypeEnum;
/**
- * Count schema rules statement.
+ * Create operation supplier.
*/
-@Getter
-public final class CountSchemaRulesStatement extends ShowRulesStatement {
+public interface CreateOperationSupplier extends DistSQLOperationSupplier {
- public CountSchemaRulesStatement(final SchemaSegment schema) {
- super(schema);
+ @Override
+ default DistSQLOperationTypeEnum getOperationType() {
+ return DistSQLOperationTypeEnum.CREATE;
}
}
diff --git a/shardingsphere-distsql/shardingsphere-distsql-statement/src/main/java/org/apache/shardingsphere/distsql/parser/statement/rql/show/CountSchemaRulesStatement.java b/shardingsphere-distsql/shardingsphere-distsql-statement/src/main/java/org/apache/shardingsphere/distsql/parser/operation/impl/DropOperationSupplier.java
similarity index 64%
copy from shardingsphere-distsql/shardingsphere-distsql-statement/src/main/java/org/apache/shardingsphere/distsql/parser/statement/rql/show/CountSchemaRulesStatement.java
copy to shardingsphere-distsql/shardingsphere-distsql-statement/src/main/java/org/apache/shardingsphere/distsql/parser/operation/impl/DropOperationSupplier.java
index ab38b8a2d62..be62a0fedef 100644
--- a/shardingsphere-distsql/shardingsphere-distsql-statement/src/main/java/org/apache/shardingsphere/distsql/parser/statement/rql/show/CountSchemaRulesStatement.java
+++ b/shardingsphere-distsql/shardingsphere-distsql-statement/src/main/java/org/apache/shardingsphere/distsql/parser/operation/impl/DropOperationSupplier.java
@@ -15,18 +15,18 @@
* limitations under the License.
*/
-package org.apache.shardingsphere.distsql.parser.statement.rql.show;
+package org.apache.shardingsphere.distsql.parser.operation.impl;
-import lombok.Getter;
-import org.apache.shardingsphere.sql.parser.sql.common.segment.generic.SchemaSegment;
+import org.apache.shardingsphere.distsql.parser.operation.DistSQLOperationSupplier;
+import org.apache.shardingsphere.distsql.parser.operation.DistSQLOperationTypeEnum;
/**
- * Count schema rules statement.
+ * Drop operation supplier.
*/
-@Getter
-public final class CountSchemaRulesStatement extends ShowRulesStatement {
+public interface DropOperationSupplier extends DistSQLOperationSupplier {
- public CountSchemaRulesStatement(final SchemaSegment schema) {
- super(schema);
+ @Override
+ default DistSQLOperationTypeEnum getOperationType() {
+ return DistSQLOperationTypeEnum.DROP;
}
}
diff --git a/shardingsphere-distsql/shardingsphere-distsql-statement/src/main/java/org/apache/shardingsphere/distsql/parser/statement/rql/show/CountSchemaRulesStatement.java b/shardingsphere-distsql/shardingsphere-distsql-statement/src/main/java/org/apache/shardingsphere/distsql/parser/operation/impl/RALOperationSupplier.java
similarity index 64%
copy from shardingsphere-distsql/shardingsphere-distsql-statement/src/main/java/org/apache/shardingsphere/distsql/parser/statement/rql/show/CountSchemaRulesStatement.java
copy to shardingsphere-distsql/shardingsphere-distsql-statement/src/main/java/org/apache/shardingsphere/distsql/parser/operation/impl/RALOperationSupplier.java
index ab38b8a2d62..55a41531ccc 100644
--- a/shardingsphere-distsql/shardingsphere-distsql-statement/src/main/java/org/apache/shardingsphere/distsql/parser/statement/rql/show/CountSchemaRulesStatement.java
+++ b/shardingsphere-distsql/shardingsphere-distsql-statement/src/main/java/org/apache/shardingsphere/distsql/parser/operation/impl/RALOperationSupplier.java
@@ -15,18 +15,18 @@
* limitations under the License.
*/
-package org.apache.shardingsphere.distsql.parser.statement.rql.show;
+package org.apache.shardingsphere.distsql.parser.operation.impl;
-import lombok.Getter;
-import org.apache.shardingsphere.sql.parser.sql.common.segment.generic.SchemaSegment;
+import org.apache.shardingsphere.distsql.parser.operation.DistSQLOperationSupplier;
+import org.apache.shardingsphere.distsql.parser.operation.DistSQLOperationTypeEnum;
/**
- * Count schema rules statement.
+ * RAL operation supplier.
*/
-@Getter
-public final class CountSchemaRulesStatement extends ShowRulesStatement {
+public interface RALOperationSupplier extends DistSQLOperationSupplier {
- public CountSchemaRulesStatement(final SchemaSegment schema) {
- super(schema);
+ @Override
+ default DistSQLOperationTypeEnum getOperationType() {
+ return DistSQLOperationTypeEnum.RAL_OPERATION;
}
}
diff --git a/shardingsphere-distsql/shardingsphere-distsql-statement/src/main/java/org/apache/shardingsphere/distsql/parser/statement/rql/show/CountSchemaRulesStatement.java b/shardingsphere-distsql/shardingsphere-distsql-statement/src/main/java/org/apache/shardingsphere/distsql/parser/operation/impl/ShowOperationSupplier.java
similarity index 64%
copy from shardingsphere-distsql/shardingsphere-distsql-statement/src/main/java/org/apache/shardingsphere/distsql/parser/statement/rql/show/CountSchemaRulesStatement.java
copy to shardingsphere-distsql/shardingsphere-distsql-statement/src/main/java/org/apache/shardingsphere/distsql/parser/operation/impl/ShowOperationSupplier.java
index ab38b8a2d62..290f5ea6770 100644
--- a/shardingsphere-distsql/shardingsphere-distsql-statement/src/main/java/org/apache/shardingsphere/distsql/parser/statement/rql/show/CountSchemaRulesStatement.java
+++ b/shardingsphere-distsql/shardingsphere-distsql-statement/src/main/java/org/apache/shardingsphere/distsql/parser/operation/impl/ShowOperationSupplier.java
@@ -15,18 +15,18 @@
* limitations under the License.
*/
-package org.apache.shardingsphere.distsql.parser.statement.rql.show;
+package org.apache.shardingsphere.distsql.parser.operation.impl;
-import lombok.Getter;
-import org.apache.shardingsphere.sql.parser.sql.common.segment.generic.SchemaSegment;
+import org.apache.shardingsphere.distsql.parser.operation.DistSQLOperationSupplier;
+import org.apache.shardingsphere.distsql.parser.operation.DistSQLOperationTypeEnum;
/**
- * Count schema rules statement.
+ * Show operation supplier.
*/
-@Getter
-public final class CountSchemaRulesStatement extends ShowRulesStatement {
+public interface ShowOperationSupplier extends DistSQLOperationSupplier {
- public CountSchemaRulesStatement(final SchemaSegment schema) {
- super(schema);
+ @Override
+ default DistSQLOperationTypeEnum getOperationType() {
+ return DistSQLOperationTypeEnum.SHOW;
}
}
diff --git a/shardingsphere-distsql/shardingsphere-distsql-statement/src/main/java/org/apache/shardingsphere/distsql/parser/statement/DistSQLStatement.java b/shardingsphere-distsql/shardingsphere-distsql-statement/src/main/java/org/apache/shardingsphere/distsql/parser/statement/DistSQLStatement.java
index d0b132f26c4..d73da62536f 100644
--- a/shardingsphere-distsql/shardingsphere-distsql-statement/src/main/java/org/apache/shardingsphere/distsql/parser/statement/DistSQLStatement.java
+++ b/shardingsphere-distsql/shardingsphere-distsql-statement/src/main/java/org/apache/shardingsphere/distsql/parser/statement/DistSQLStatement.java
@@ -17,10 +17,19 @@
package org.apache.shardingsphere.distsql.parser.statement;
+import org.apache.shardingsphere.distsql.parser.operation.DistSQLOperationSupplier;
+import org.apache.shardingsphere.distsql.parser.subject.DistSQLSubjectSupplier;
import org.apache.shardingsphere.sql.parser.sql.common.statement.AbstractSQLStatement;
/**
* Dist SQL Statement.
*/
-public abstract class DistSQLStatement extends AbstractSQLStatement {
+public abstract class DistSQLStatement extends AbstractSQLStatement implements DistSQLOperationSupplier, DistSQLSubjectSupplier {
+
+ /**
+ * Get statement type.
+ *
+ * @return statement type
+ */
+ public abstract DistSQLStatementType getStatementType();
}
diff --git a/shardingsphere-distsql/shardingsphere-distsql-statement/src/main/java/org/apache/shardingsphere/distsql/parser/statement/DistSQLStatementType.java b/shardingsphere-distsql/shardingsphere-distsql-statement/src/main/java/org/apache/shardingsphere/distsql/parser/statement/DistSQLStatementType.java
new file mode 100644
index 00000000000..631d102df69
--- /dev/null
+++ b/shardingsphere-distsql/shardingsphere-distsql-statement/src/main/java/org/apache/shardingsphere/distsql/parser/statement/DistSQLStatementType.java
@@ -0,0 +1,80 @@
+/*
+ * 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.distsql.parser.statement;
+
+import org.apache.shardingsphere.distsql.parser.operation.DistSQLOperationTypeEnum;
+
+import java.util.Arrays;
+import java.util.Collection;
+import java.util.Collections;
+
+/**
+ * Dist SQL statement type.
+ */
+public enum DistSQLStatementType {
+
+ RQL {
+ /**
+ * Get operation types.
+ * @return operation types
+ */
+ public Collection<DistSQLOperationTypeEnum> getOperationTypes() {
+ return Collections.singletonList(DistSQLOperationTypeEnum.SHOW);
+ }
+ },
+ RDL {
+ /**
+ * Get operation types.
+ * @return operation types
+ */
+ @Override
+ public Collection<DistSQLOperationTypeEnum> getOperationTypes() {
+ return Arrays.asList(DistSQLOperationTypeEnum.ADD, DistSQLOperationTypeEnum.ALTER, DistSQLOperationTypeEnum.CREATE, DistSQLOperationTypeEnum.DROP);
+ }
+ },
+ RAL {
+ /**
+ * Get operation types.
+ * @return operation types
+ */
+ @Override
+ public Collection<DistSQLOperationTypeEnum> getOperationTypes() {
+ return Collections.singletonList(DistSQLOperationTypeEnum.RAL_OPERATION);
+ }
+ };
+
+ /**
+ * Get operation types.
+ * @return operation types
+ */
+ public abstract Collection<DistSQLOperationTypeEnum> getOperationTypes();
+
+ /**
+ * Returns the statement type of the specified variable name.
+ *
+ * @param statementTypeName statement type name
+ * @return statement type constant
+ */
+ public static DistSQLStatementType getValueOf(final String statementTypeName) {
+ try {
+ return valueOf(statementTypeName.toUpperCase());
+ } catch (IllegalArgumentException ex) {
+ throw new UnsupportedOperationException(String.format("Unsupported statement type `%s`", statementTypeName));
+ }
+ }
+}
diff --git a/shardingsphere-distsql/shardingsphere-distsql-statement/src/main/java/org/apache/shardingsphere/distsql/parser/statement/ral/RALStatement.java b/shardingsphere-distsql/shardingsphere-distsql-statement/src/main/java/org/apache/shardingsphere/distsql/parser/statement/ral/RALStatement.java
index 1bca62fc347..e4113098d06 100644
--- a/shardingsphere-distsql/shardingsphere-distsql-statement/src/main/java/org/apache/shardingsphere/distsql/parser/statement/ral/RALStatement.java
+++ b/shardingsphere-distsql/shardingsphere-distsql-statement/src/main/java/org/apache/shardingsphere/distsql/parser/statement/ral/RALStatement.java
@@ -17,10 +17,29 @@
package org.apache.shardingsphere.distsql.parser.statement.ral;
+import org.apache.shardingsphere.distsql.parser.subject.DistSQLSubjectSupplier;
+import org.apache.shardingsphere.distsql.parser.operation.DistSQLOperationTypeEnum;
+import org.apache.shardingsphere.distsql.parser.subject.DistSQLSubjectTypeEnum;
import org.apache.shardingsphere.distsql.parser.statement.DistSQLStatement;
+import org.apache.shardingsphere.distsql.parser.statement.DistSQLStatementType;
/**
* RAL statement.
*/
-public abstract class RALStatement extends DistSQLStatement {
+public abstract class RALStatement extends DistSQLStatement implements DistSQLSubjectSupplier {
+
+ @Override
+ public DistSQLStatementType getStatementType() {
+ return DistSQLStatementType.RAL;
+ }
+
+ @Override
+ public DistSQLOperationTypeEnum getOperationType() {
+ return DistSQLOperationTypeEnum.RAL_OPERATION;
+ }
+
+ @Override
+ public DistSQLSubjectTypeEnum getSubjectType() {
+ return DistSQLSubjectTypeEnum.DEFAULT;
+ }
}
diff --git a/shardingsphere-distsql/shardingsphere-distsql-statement/src/main/java/org/apache/shardingsphere/distsql/parser/statement/rdl/RDLStatement.java b/shardingsphere-distsql/shardingsphere-distsql-statement/src/main/java/org/apache/shardingsphere/distsql/parser/statement/rdl/RDLStatement.java
index 5e954998f16..73f166261df 100644
--- a/shardingsphere-distsql/shardingsphere-distsql-statement/src/main/java/org/apache/shardingsphere/distsql/parser/statement/rdl/RDLStatement.java
+++ b/shardingsphere-distsql/shardingsphere-distsql-statement/src/main/java/org/apache/shardingsphere/distsql/parser/statement/rdl/RDLStatement.java
@@ -18,9 +18,15 @@
package org.apache.shardingsphere.distsql.parser.statement.rdl;
import org.apache.shardingsphere.distsql.parser.statement.DistSQLStatement;
+import org.apache.shardingsphere.distsql.parser.statement.DistSQLStatementType;
/**
* RDL statement.
*/
public abstract class RDLStatement extends DistSQLStatement {
+
+ @Override
+ public DistSQLStatementType getStatementType() {
+ return DistSQLStatementType.RDL;
+ }
}
diff --git a/shardingsphere-distsql/shardingsphere-distsql-statement/src/main/java/org/apache/shardingsphere/distsql/parser/statement/rdl/ResourceDefinitionStatement.java b/shardingsphere-distsql/shardingsphere-distsql-statement/src/main/java/org/apache/shardingsphere/distsql/parser/statement/rdl/ResourceDefinitionStatement.java
index 5a33bdb74db..86f2caf5a51 100644
--- a/shardingsphere-distsql/shardingsphere-distsql-statement/src/main/java/org/apache/shardingsphere/distsql/parser/statement/rdl/ResourceDefinitionStatement.java
+++ b/shardingsphere-distsql/shardingsphere-distsql-statement/src/main/java/org/apache/shardingsphere/distsql/parser/statement/rdl/ResourceDefinitionStatement.java
@@ -17,8 +17,16 @@
package org.apache.shardingsphere.distsql.parser.statement.rdl;
+import org.apache.shardingsphere.distsql.parser.subject.DistSQLSubjectTypeEnum;
+import org.apache.shardingsphere.distsql.parser.subject.impl.ResourceSubjectSupplier;
+
/**
* Resource definition statement.
*/
-public abstract class ResourceDefinitionStatement extends RDLStatement {
+public abstract class ResourceDefinitionStatement extends RDLStatement implements ResourceSubjectSupplier {
+
+ @Override
+ public DistSQLSubjectTypeEnum getSubjectType() {
+ return DistSQLSubjectTypeEnum.RESOURCE;
+ }
}
diff --git a/shardingsphere-distsql/shardingsphere-distsql-statement/src/main/java/org/apache/shardingsphere/distsql/parser/statement/rdl/alter/AlterDefaultSingleTableRuleStatement.java b/shardingsphere-distsql/shardingsphere-distsql-statement/src/main/java/org/apache/shardingsphere/distsql/parser/statement/rdl/alter/AlterDefaultSingleTableRuleStatement.java
index 37c5ef29494..1d05bb275b2 100644
--- a/shardingsphere-distsql/shardingsphere-distsql-statement/src/main/java/org/apache/shardingsphere/distsql/parser/statement/rdl/alter/AlterDefaultSingleTableRuleStatement.java
+++ b/shardingsphere-distsql/shardingsphere-distsql-statement/src/main/java/org/apache/shardingsphere/distsql/parser/statement/rdl/alter/AlterDefaultSingleTableRuleStatement.java
@@ -19,13 +19,14 @@ package org.apache.shardingsphere.distsql.parser.statement.rdl.alter;
import lombok.Getter;
import lombok.RequiredArgsConstructor;
+import org.apache.shardingsphere.distsql.parser.subject.impl.SingleTableSubjectSupplier;
/**
* Alter default single table rule statement.
*/
@RequiredArgsConstructor
@Getter
-public final class AlterDefaultSingleTableRuleStatement extends AlterRuleStatement {
+public final class AlterDefaultSingleTableRuleStatement extends AlterRuleStatement implements SingleTableSubjectSupplier {
private final String defaultResource;
}
diff --git a/shardingsphere-distsql/shardingsphere-distsql-statement/src/main/java/org/apache/shardingsphere/distsql/parser/statement/rdl/alter/AlterResourceStatement.java b/shardingsphere-distsql/shardingsphere-distsql-statement/src/main/java/org/apache/shardingsphere/distsql/parser/statement/rdl/alter/AlterResourceStatement.java
index 924376c0c13..fc8e7ea4ccd 100644
--- a/shardingsphere-distsql/shardingsphere-distsql-statement/src/main/java/org/apache/shardingsphere/distsql/parser/statement/rdl/alter/AlterResourceStatement.java
+++ b/shardingsphere-distsql/shardingsphere-distsql-statement/src/main/java/org/apache/shardingsphere/distsql/parser/statement/rdl/alter/AlterResourceStatement.java
@@ -19,6 +19,8 @@ package org.apache.shardingsphere.distsql.parser.statement.rdl.alter;
import lombok.Getter;
import lombok.RequiredArgsConstructor;
+import org.apache.shardingsphere.distsql.parser.operation.impl.AlterOperationSupplier;
+import org.apache.shardingsphere.distsql.parser.subject.impl.ResourceSubjectSupplier;
import org.apache.shardingsphere.distsql.parser.segment.DataSourceSegment;
import org.apache.shardingsphere.distsql.parser.statement.rdl.ResourceDefinitionStatement;
@@ -29,7 +31,7 @@ import java.util.Collection;
*/
@RequiredArgsConstructor
@Getter
-public final class AlterResourceStatement extends ResourceDefinitionStatement {
+public final class AlterResourceStatement extends ResourceDefinitionStatement implements ResourceSubjectSupplier, AlterOperationSupplier {
private final Collection<DataSourceSegment> dataSources;
}
diff --git a/shardingsphere-distsql/shardingsphere-distsql-statement/src/main/java/org/apache/shardingsphere/distsql/parser/statement/rdl/alter/AlterRuleStatement.java b/shardingsphere-distsql/shardingsphere-distsql-statement/src/main/java/org/apache/shardingsphere/distsql/parser/statement/rdl/alter/AlterRuleStatement.java
index 2bf4373c3d8..b29b70fae6c 100644
--- a/shardingsphere-distsql/shardingsphere-distsql-statement/src/main/java/org/apache/shardingsphere/distsql/parser/statement/rdl/alter/AlterRuleStatement.java
+++ b/shardingsphere-distsql/shardingsphere-distsql-statement/src/main/java/org/apache/shardingsphere/distsql/parser/statement/rdl/alter/AlterRuleStatement.java
@@ -17,10 +17,16 @@
package org.apache.shardingsphere.distsql.parser.statement.rdl.alter;
+import org.apache.shardingsphere.distsql.parser.operation.DistSQLOperationTypeEnum;
import org.apache.shardingsphere.distsql.parser.statement.rdl.RuleDefinitionStatement;
/**
* Alter rule statement.
*/
public abstract class AlterRuleStatement extends RuleDefinitionStatement {
+
+ @Override
+ public DistSQLOperationTypeEnum getOperationType() {
+ return DistSQLOperationTypeEnum.ALTER;
+ }
}
diff --git a/shardingsphere-distsql/shardingsphere-distsql-statement/src/main/java/org/apache/shardingsphere/distsql/parser/statement/rdl/create/AddResourceStatement.java b/shardingsphere-distsql/shardingsphere-distsql-statement/src/main/java/org/apache/shardingsphere/distsql/parser/statement/rdl/create/AddResourceStatement.java
index 17b214ecb5d..703d03b0652 100644
--- a/shardingsphere-distsql/shardingsphere-distsql-statement/src/main/java/org/apache/shardingsphere/distsql/parser/statement/rdl/create/AddResourceStatement.java
+++ b/shardingsphere-distsql/shardingsphere-distsql-statement/src/main/java/org/apache/shardingsphere/distsql/parser/statement/rdl/create/AddResourceStatement.java
@@ -19,6 +19,8 @@ package org.apache.shardingsphere.distsql.parser.statement.rdl.create;
import lombok.Getter;
import lombok.RequiredArgsConstructor;
+import org.apache.shardingsphere.distsql.parser.operation.impl.AddOperationSupplier;
+import org.apache.shardingsphere.distsql.parser.operation.DistSQLOperationTypeEnum;
import org.apache.shardingsphere.distsql.parser.segment.DataSourceSegment;
import org.apache.shardingsphere.distsql.parser.statement.rdl.ResourceDefinitionStatement;
@@ -29,7 +31,12 @@ import java.util.Collection;
*/
@RequiredArgsConstructor
@Getter
-public final class AddResourceStatement extends ResourceDefinitionStatement {
+public final class AddResourceStatement extends ResourceDefinitionStatement implements AddOperationSupplier {
private final Collection<DataSourceSegment> dataSources;
+
+ @Override
+ public DistSQLOperationTypeEnum getOperationType() {
+ return DistSQLOperationTypeEnum.ADD;
+ }
}
diff --git a/shardingsphere-distsql/shardingsphere-distsql-statement/src/main/java/org/apache/shardingsphere/distsql/parser/statement/rdl/create/CreateDefaultSingleTableRuleStatement.java b/shardingsphere-distsql/shardingsphere-distsql-statement/src/main/java/org/apache/shardingsphere/distsql/parser/statement/rdl/create/CreateDefaultSingleTableRuleStatement.java
index 31c6e62372a..c8431f65bbf 100644
--- a/shardingsphere-distsql/shardingsphere-distsql-statement/src/main/java/org/apache/shardingsphere/distsql/parser/statement/rdl/create/CreateDefaultSingleTableRuleStatement.java
+++ b/shardingsphere-distsql/shardingsphere-distsql-statement/src/main/java/org/apache/shardingsphere/distsql/parser/statement/rdl/create/CreateDefaultSingleTableRuleStatement.java
@@ -19,13 +19,14 @@ package org.apache.shardingsphere.distsql.parser.statement.rdl.create;
import lombok.Getter;
import lombok.RequiredArgsConstructor;
+import org.apache.shardingsphere.distsql.parser.subject.impl.SingleTableSubjectSupplier;
/**
* Create default single table rule statement.
*/
@RequiredArgsConstructor
@Getter
-public final class CreateDefaultSingleTableRuleStatement extends CreateRuleStatement {
+public final class CreateDefaultSingleTableRuleStatement extends CreateRuleStatement implements SingleTableSubjectSupplier {
private final String defaultResource;
}
diff --git a/shardingsphere-distsql/shardingsphere-distsql-statement/src/main/java/org/apache/shardingsphere/distsql/parser/statement/rdl/create/CreateRuleStatement.java b/shardingsphere-distsql/shardingsphere-distsql-statement/src/main/java/org/apache/shardingsphere/distsql/parser/statement/rdl/create/CreateRuleStatement.java
index b8d5a3d4e6c..0b84ab77a45 100644
--- a/shardingsphere-distsql/shardingsphere-distsql-statement/src/main/java/org/apache/shardingsphere/distsql/parser/statement/rdl/create/CreateRuleStatement.java
+++ b/shardingsphere-distsql/shardingsphere-distsql-statement/src/main/java/org/apache/shardingsphere/distsql/parser/statement/rdl/create/CreateRuleStatement.java
@@ -17,10 +17,12 @@
package org.apache.shardingsphere.distsql.parser.statement.rdl.create;
+import org.apache.shardingsphere.distsql.parser.operation.impl.CreateOperationSupplier;
import org.apache.shardingsphere.distsql.parser.statement.rdl.RuleDefinitionStatement;
/**
* Create rule statement.
*/
-public abstract class CreateRuleStatement extends RuleDefinitionStatement {
+public abstract class CreateRuleStatement extends RuleDefinitionStatement implements CreateOperationSupplier {
+
}
diff --git a/shardingsphere-distsql/shardingsphere-distsql-statement/src/main/java/org/apache/shardingsphere/distsql/parser/statement/rdl/drop/DropDefaultSingleTableRuleStatement.java b/shardingsphere-distsql/shardingsphere-distsql-statement/src/main/java/org/apache/shardingsphere/distsql/parser/statement/rdl/drop/DropDefaultSingleTableRuleStatement.java
index 452cbc4a39b..78393c100ed 100644
--- a/shardingsphere-distsql/shardingsphere-distsql-statement/src/main/java/org/apache/shardingsphere/distsql/parser/statement/rdl/drop/DropDefaultSingleTableRuleStatement.java
+++ b/shardingsphere-distsql/shardingsphere-distsql-statement/src/main/java/org/apache/shardingsphere/distsql/parser/statement/rdl/drop/DropDefaultSingleTableRuleStatement.java
@@ -19,13 +19,14 @@ package org.apache.shardingsphere.distsql.parser.statement.rdl.drop;
import lombok.Getter;
import lombok.NoArgsConstructor;
+import org.apache.shardingsphere.distsql.parser.subject.impl.SingleTableSubjectSupplier;
/**
* Drop default single table rule statement.
*/
@Getter
@NoArgsConstructor
-public final class DropDefaultSingleTableRuleStatement extends DropRuleStatement {
+public final class DropDefaultSingleTableRuleStatement extends DropRuleStatement implements SingleTableSubjectSupplier {
public DropDefaultSingleTableRuleStatement(final boolean containsExistClause) {
setContainsExistClause(containsExistClause);
diff --git a/shardingsphere-distsql/shardingsphere-distsql-statement/src/main/java/org/apache/shardingsphere/distsql/parser/statement/rdl/drop/DropResourceStatement.java b/shardingsphere-distsql/shardingsphere-distsql-statement/src/main/java/org/apache/shardingsphere/distsql/parser/statement/rdl/drop/DropResourceStatement.java
index 5ee29b3b665..49a8f0b3a1e 100644
--- a/shardingsphere-distsql/shardingsphere-distsql-statement/src/main/java/org/apache/shardingsphere/distsql/parser/statement/rdl/drop/DropResourceStatement.java
+++ b/shardingsphere-distsql/shardingsphere-distsql-statement/src/main/java/org/apache/shardingsphere/distsql/parser/statement/rdl/drop/DropResourceStatement.java
@@ -19,6 +19,7 @@ package org.apache.shardingsphere.distsql.parser.statement.rdl.drop;
import lombok.Getter;
import lombok.RequiredArgsConstructor;
+import org.apache.shardingsphere.distsql.parser.operation.DistSQLOperationTypeEnum;
import org.apache.shardingsphere.distsql.parser.statement.rdl.ResourceDefinitionStatement;
import java.util.Collection;
@@ -41,4 +42,9 @@ public final class DropResourceStatement extends ResourceDefinitionStatement {
this.names = names;
this.ignoreSingleTables = ignoreSingleTables;
}
+
+ @Override
+ public DistSQLOperationTypeEnum getOperationType() {
+ return DistSQLOperationTypeEnum.DROP;
+ }
}
diff --git a/shardingsphere-distsql/shardingsphere-distsql-statement/src/main/java/org/apache/shardingsphere/distsql/parser/statement/rdl/drop/DropRuleStatement.java b/shardingsphere-distsql/shardingsphere-distsql-statement/src/main/java/org/apache/shardingsphere/distsql/parser/statement/rdl/drop/DropRuleStatement.java
index 349cd8c8ab8..445eda706bf 100644
--- a/shardingsphere-distsql/shardingsphere-distsql-statement/src/main/java/org/apache/shardingsphere/distsql/parser/statement/rdl/drop/DropRuleStatement.java
+++ b/shardingsphere-distsql/shardingsphere-distsql-statement/src/main/java/org/apache/shardingsphere/distsql/parser/statement/rdl/drop/DropRuleStatement.java
@@ -19,6 +19,7 @@ package org.apache.shardingsphere.distsql.parser.statement.rdl.drop;
import lombok.Getter;
import lombok.Setter;
+import org.apache.shardingsphere.distsql.parser.operation.DistSQLOperationTypeEnum;
import org.apache.shardingsphere.distsql.parser.statement.rdl.RuleDefinitionStatement;
/**
@@ -29,4 +30,9 @@ public abstract class DropRuleStatement extends RuleDefinitionStatement {
@Getter
@Setter
private boolean containsExistClause;
+
+ @Override
+ public DistSQLOperationTypeEnum getOperationType() {
+ return DistSQLOperationTypeEnum.DROP;
+ }
}
diff --git a/shardingsphere-distsql/shardingsphere-distsql-statement/src/main/java/org/apache/shardingsphere/distsql/parser/statement/rql/RQLStatement.java b/shardingsphere-distsql/shardingsphere-distsql-statement/src/main/java/org/apache/shardingsphere/distsql/parser/statement/rql/RQLStatement.java
index 886166ce47e..53f9a51d250 100644
--- a/shardingsphere-distsql/shardingsphere-distsql-statement/src/main/java/org/apache/shardingsphere/distsql/parser/statement/rql/RQLStatement.java
+++ b/shardingsphere-distsql/shardingsphere-distsql-statement/src/main/java/org/apache/shardingsphere/distsql/parser/statement/rql/RQLStatement.java
@@ -17,10 +17,22 @@
package org.apache.shardingsphere.distsql.parser.statement.rql;
+import org.apache.shardingsphere.distsql.parser.operation.DistSQLOperationTypeEnum;
import org.apache.shardingsphere.distsql.parser.statement.DistSQLStatement;
+import org.apache.shardingsphere.distsql.parser.statement.DistSQLStatementType;
/**
* RQL statement.
*/
public abstract class RQLStatement extends DistSQLStatement {
+
+ @Override
+ public DistSQLStatementType getStatementType() {
+ return DistSQLStatementType.RQL;
+ }
+
+ @Override
+ public DistSQLOperationTypeEnum getOperationType() {
+ return DistSQLOperationTypeEnum.SHOW;
+ }
}
diff --git a/shardingsphere-distsql/shardingsphere-distsql-statement/src/main/java/org/apache/shardingsphere/distsql/parser/statement/rql/show/CountSchemaRulesStatement.java b/shardingsphere-distsql/shardingsphere-distsql-statement/src/main/java/org/apache/shardingsphere/distsql/parser/statement/rql/show/CountSchemaRulesStatement.java
index ab38b8a2d62..0357e6675c6 100644
--- a/shardingsphere-distsql/shardingsphere-distsql-statement/src/main/java/org/apache/shardingsphere/distsql/parser/statement/rql/show/CountSchemaRulesStatement.java
+++ b/shardingsphere-distsql/shardingsphere-distsql-statement/src/main/java/org/apache/shardingsphere/distsql/parser/statement/rql/show/CountSchemaRulesStatement.java
@@ -18,6 +18,7 @@
package org.apache.shardingsphere.distsql.parser.statement.rql.show;
import lombok.Getter;
+import org.apache.shardingsphere.distsql.parser.subject.DistSQLSubjectTypeEnum;
import org.apache.shardingsphere.sql.parser.sql.common.segment.generic.SchemaSegment;
/**
@@ -29,4 +30,9 @@ public final class CountSchemaRulesStatement extends ShowRulesStatement {
public CountSchemaRulesStatement(final SchemaSegment schema) {
super(schema);
}
+
+ @Override
+ public DistSQLSubjectTypeEnum getSubjectType() {
+ return DistSQLSubjectTypeEnum.DEFAULT;
+ }
}
diff --git a/shardingsphere-distsql/shardingsphere-distsql-statement/src/main/java/org/apache/shardingsphere/distsql/parser/statement/rql/show/ShowResourcesStatement.java b/shardingsphere-distsql/shardingsphere-distsql-statement/src/main/java/org/apache/shardingsphere/distsql/parser/statement/rql/show/ShowResourcesStatement.java
index 08a84ab889b..54e7b87716e 100644
--- a/shardingsphere-distsql/shardingsphere-distsql-statement/src/main/java/org/apache/shardingsphere/distsql/parser/statement/rql/show/ShowResourcesStatement.java
+++ b/shardingsphere-distsql/shardingsphere-distsql-statement/src/main/java/org/apache/shardingsphere/distsql/parser/statement/rql/show/ShowResourcesStatement.java
@@ -18,6 +18,7 @@
package org.apache.shardingsphere.distsql.parser.statement.rql.show;
import lombok.RequiredArgsConstructor;
+import org.apache.shardingsphere.distsql.parser.subject.impl.ResourceSubjectSupplier;
import org.apache.shardingsphere.distsql.parser.statement.rql.RQLStatement;
import org.apache.shardingsphere.sql.parser.sql.common.segment.generic.SchemaSegment;
import org.apache.shardingsphere.sql.parser.sql.common.statement.available.FromSchemaAvailable;
@@ -28,7 +29,7 @@ import java.util.Optional;
* Show resources statement.
*/
@RequiredArgsConstructor
-public final class ShowResourcesStatement extends RQLStatement implements FromSchemaAvailable {
+public final class ShowResourcesStatement extends RQLStatement implements FromSchemaAvailable, ResourceSubjectSupplier {
private final SchemaSegment schema;
diff --git a/shardingsphere-distsql/shardingsphere-distsql-statement/src/main/java/org/apache/shardingsphere/distsql/parser/statement/rql/show/ShowRulesUsedResourceStatement.java b/shardingsphere-distsql/shardingsphere-distsql-statement/src/main/java/org/apache/shardingsphere/distsql/parser/statement/rql/show/ShowRulesUsedResourceStatement.java
index f614b4691ca..f8cc182960a 100644
--- a/shardingsphere-distsql/shardingsphere-distsql-statement/src/main/java/org/apache/shardingsphere/distsql/parser/statement/rql/show/ShowRulesUsedResourceStatement.java
+++ b/shardingsphere-distsql/shardingsphere-distsql-statement/src/main/java/org/apache/shardingsphere/distsql/parser/statement/rql/show/ShowRulesUsedResourceStatement.java
@@ -18,6 +18,7 @@
package org.apache.shardingsphere.distsql.parser.statement.rql.show;
import lombok.Getter;
+import org.apache.shardingsphere.distsql.parser.subject.impl.ResourceSubjectSupplier;
import org.apache.shardingsphere.sql.parser.sql.common.segment.generic.SchemaSegment;
import java.util.Optional;
@@ -26,7 +27,7 @@ import java.util.Optional;
* Show rules used resource statement.
*/
@Getter
-public final class ShowRulesUsedResourceStatement extends ShowRulesStatement {
+public final class ShowRulesUsedResourceStatement extends ShowRulesStatement implements ResourceSubjectSupplier {
private final Optional<String> resourceName;
diff --git a/shardingsphere-distsql/shardingsphere-distsql-statement/src/main/java/org/apache/shardingsphere/distsql/parser/statement/rql/show/ShowSingleTableRulesStatement.java b/shardingsphere-distsql/shardingsphere-distsql-statement/src/main/java/org/apache/shardingsphere/distsql/parser/statement/rql/show/ShowSingleTableRulesStatement.java
index 41904c1acc6..f9e0446c618 100644
--- a/shardingsphere-distsql/shardingsphere-distsql-statement/src/main/java/org/apache/shardingsphere/distsql/parser/statement/rql/show/ShowSingleTableRulesStatement.java
+++ b/shardingsphere-distsql/shardingsphere-distsql-statement/src/main/java/org/apache/shardingsphere/distsql/parser/statement/rql/show/ShowSingleTableRulesStatement.java
@@ -18,13 +18,14 @@
package org.apache.shardingsphere.distsql.parser.statement.rql.show;
import lombok.Getter;
+import org.apache.shardingsphere.distsql.parser.subject.impl.ResourceSubjectSupplier;
import org.apache.shardingsphere.sql.parser.sql.common.segment.generic.SchemaSegment;
/**
* Show single table rules statement.
*/
@Getter
-public final class ShowSingleTableRulesStatement extends ShowRulesStatement {
+public final class ShowSingleTableRulesStatement extends ShowRulesStatement implements ResourceSubjectSupplier {
public ShowSingleTableRulesStatement(final SchemaSegment schema) {
super(schema);
diff --git a/shardingsphere-distsql/shardingsphere-distsql-statement/src/main/java/org/apache/shardingsphere/distsql/parser/statement/rql/show/ShowSingleTableStatement.java b/shardingsphere-distsql/shardingsphere-distsql-statement/src/main/java/org/apache/shardingsphere/distsql/parser/statement/rql/show/ShowSingleTableStatement.java
index f0b80b1e686..cfb3c3cfa99 100644
--- a/shardingsphere-distsql/shardingsphere-distsql-statement/src/main/java/org/apache/shardingsphere/distsql/parser/statement/rql/show/ShowSingleTableStatement.java
+++ b/shardingsphere-distsql/shardingsphere-distsql-statement/src/main/java/org/apache/shardingsphere/distsql/parser/statement/rql/show/ShowSingleTableStatement.java
@@ -18,13 +18,14 @@
package org.apache.shardingsphere.distsql.parser.statement.rql.show;
import lombok.Getter;
+import org.apache.shardingsphere.distsql.parser.subject.impl.ResourceSubjectSupplier;
import org.apache.shardingsphere.sql.parser.sql.common.segment.generic.SchemaSegment;
/**
* Show single table statement.
*/
@Getter
-public final class ShowSingleTableStatement extends ShowRulesStatement {
+public final class ShowSingleTableStatement extends ShowRulesStatement implements ResourceSubjectSupplier {
private final String tableName;
diff --git a/shardingsphere-distsql/shardingsphere-distsql-statement/src/main/java/org/apache/shardingsphere/distsql/parser/statement/rql/show/ShowUnusedResourcesStatement.java b/shardingsphere-distsql/shardingsphere-distsql-statement/src/main/java/org/apache/shardingsphere/distsql/parser/statement/rql/show/ShowUnusedResourcesStatement.java
index 49374925180..4ef027061a0 100644
--- a/shardingsphere-distsql/shardingsphere-distsql-statement/src/main/java/org/apache/shardingsphere/distsql/parser/statement/rql/show/ShowUnusedResourcesStatement.java
+++ b/shardingsphere-distsql/shardingsphere-distsql-statement/src/main/java/org/apache/shardingsphere/distsql/parser/statement/rql/show/ShowUnusedResourcesStatement.java
@@ -18,6 +18,7 @@
package org.apache.shardingsphere.distsql.parser.statement.rql.show;
import lombok.RequiredArgsConstructor;
+import org.apache.shardingsphere.distsql.parser.subject.impl.ResourceSubjectSupplier;
import org.apache.shardingsphere.distsql.parser.statement.rql.RQLStatement;
import org.apache.shardingsphere.sql.parser.sql.common.segment.generic.SchemaSegment;
import org.apache.shardingsphere.sql.parser.sql.common.statement.available.FromSchemaAvailable;
@@ -28,7 +29,7 @@ import java.util.Optional;
* Show unused resources statement.
*/
@RequiredArgsConstructor
-public final class ShowUnusedResourcesStatement extends RQLStatement implements FromSchemaAvailable {
+public final class ShowUnusedResourcesStatement extends RQLStatement implements FromSchemaAvailable, ResourceSubjectSupplier {
private final SchemaSegment schema;
diff --git a/shardingsphere-features/shardingsphere-sharding/shardingsphere-sharding-distsql/shardingsphere-sharding-distsql-statement/src/main/java/org/apache/shardingsphere/sharding/distsql/parser/statement/DropShardingAlgorithmStatement.java b/shardingsphere-distsql/shardingsphere-distsql-statement/src/main/java/org/apache/shardingsphere/distsql/parser/subject/DistSQLSubjectSupplier.java
similarity index 64%
copy from shardingsphere-features/shardingsphere-sharding/shardingsphere-sharding-distsql/shardingsphere-sharding-distsql-statement/src/main/java/org/apache/shardingsphere/sharding/distsql/parser/statement/DropShardingAlgorithmStatement.java
copy to shardingsphere-distsql/shardingsphere-distsql-statement/src/main/java/org/apache/shardingsphere/distsql/parser/subject/DistSQLSubjectSupplier.java
index db4d4ec2b1d..2ca2608d1fd 100644
--- a/shardingsphere-features/shardingsphere-sharding/shardingsphere-sharding-distsql/shardingsphere-sharding-distsql-statement/src/main/java/org/apache/shardingsphere/sharding/distsql/parser/statement/DropShardingAlgorithmStatement.java
+++ b/shardingsphere-distsql/shardingsphere-distsql-statement/src/main/java/org/apache/shardingsphere/distsql/parser/subject/DistSQLSubjectSupplier.java
@@ -15,20 +15,29 @@
* limitations under the License.
*/
-package org.apache.shardingsphere.sharding.distsql.parser.statement;
-
-import lombok.Getter;
-import lombok.RequiredArgsConstructor;
-import org.apache.shardingsphere.distsql.parser.statement.rdl.drop.DropRuleStatement;
+package org.apache.shardingsphere.distsql.parser.subject;
import java.util.Collection;
+import java.util.Collections;
/**
- * Drop sharding algorithm statement.
+ * Dist SQL subject supplier.
*/
-@RequiredArgsConstructor
-@Getter
-public final class DropShardingAlgorithmStatement extends DropRuleStatement {
+public interface DistSQLSubjectSupplier {
+
+ /**
+ * Get subject type.
+ *
+ * @return subject type
+ */
+ DistSQLSubjectTypeEnum getSubjectType();
- private final Collection<String> algorithmNames;
+ /**
+ * Get subject names.
+ *
+ * @return subject names
+ */
+ default Collection<String> getSubjectNames() {
+ return Collections.emptyList();
+ }
}
diff --git a/shardingsphere-features/shardingsphere-db-discovery/shardingsphere-db-discovery-distsql/shardingsphere-db-discovery-distsql-statement/src/main/java/org/apache/shardingsphere/dbdiscovery/distsql/parser/statement/DropDatabaseDiscoveryHeartbeatStatement.java b/shardingsphere-distsql/shardingsphere-distsql-statement/src/main/java/org/apache/shardingsphere/distsql/parser/subject/DistSQLSubjectTypeEnum.java
similarity index 55%
copy from shardingsphere-features/shardingsphere-db-discovery/shardingsphere-db-discovery-distsql/shardingsphere-db-discovery-distsql-statement/src/main/java/org/apache/shardingsphere/dbdiscovery/distsql/parser/statement/DropDatabaseDiscoveryHeartbeatStatement.java
copy to shardingsphere-distsql/shardingsphere-distsql-statement/src/main/java/org/apache/shardingsphere/distsql/parser/subject/DistSQLSubjectTypeEnum.java
index 3a220d05bca..d118bb2a9df 100644
--- a/shardingsphere-features/shardingsphere-db-discovery/shardingsphere-db-discovery-distsql/shardingsphere-db-discovery-distsql-statement/src/main/java/org/apache/shardingsphere/dbdiscovery/distsql/parser/statement/DropDatabaseDiscoveryHeartbeatStatement.java
+++ b/shardingsphere-distsql/shardingsphere-distsql-statement/src/main/java/org/apache/shardingsphere/distsql/parser/subject/DistSQLSubjectTypeEnum.java
@@ -15,25 +15,31 @@
* limitations under the License.
*/
-package org.apache.shardingsphere.dbdiscovery.distsql.parser.statement;
+package org.apache.shardingsphere.distsql.parser.subject;
-import lombok.Getter;
-import lombok.RequiredArgsConstructor;
-import org.apache.shardingsphere.distsql.parser.statement.rdl.drop.DropRuleStatement;
-
-import java.util.Collection;
-
-/**
- * Drop database discovery heartbeat statement.
- */
-@RequiredArgsConstructor
-@Getter
-public final class DropDatabaseDiscoveryHeartbeatStatement extends DropRuleStatement {
+public enum DistSQLSubjectTypeEnum {
- private final Collection<String> heartbeatNames;
+ DEFAULT,
+ RESOURCE,
+ SHARDING,
+ READWRITE_SPLITTING,
+ DB_DISCOVERY,
+ ENCRYPT,
+ SHADOW,
+ SINGLE_TABLE,
+ SCALING;
- public DropDatabaseDiscoveryHeartbeatStatement(final Collection<String> heartbeatNames, final boolean containsExistClause) {
- setContainsExistClause(containsExistClause);
- this.heartbeatNames = heartbeatNames;
+ /**
+ * Returns the dist subject of the specified subject name.
+ *
+ * @param subjectName subject name
+ * @return subject constant
+ */
+ public static DistSQLSubjectTypeEnum getValueOf(final String subjectName) {
+ try {
+ return valueOf(subjectName.toUpperCase());
+ } catch (IllegalArgumentException ex) {
+ throw new UnsupportedOperationException(String.format("Unsupported subject `%s`", subjectName));
+ }
}
}
diff --git a/shardingsphere-distsql/shardingsphere-distsql-statement/src/main/java/org/apache/shardingsphere/distsql/parser/statement/rql/show/CountSchemaRulesStatement.java b/shardingsphere-distsql/shardingsphere-distsql-statement/src/main/java/org/apache/shardingsphere/distsql/parser/subject/impl/DatabaseDiscoverySubjectSupplier.java
similarity index 63%
copy from shardingsphere-distsql/shardingsphere-distsql-statement/src/main/java/org/apache/shardingsphere/distsql/parser/statement/rql/show/CountSchemaRulesStatement.java
copy to shardingsphere-distsql/shardingsphere-distsql-statement/src/main/java/org/apache/shardingsphere/distsql/parser/subject/impl/DatabaseDiscoverySubjectSupplier.java
index ab38b8a2d62..c25242d8fe9 100644
--- a/shardingsphere-distsql/shardingsphere-distsql-statement/src/main/java/org/apache/shardingsphere/distsql/parser/statement/rql/show/CountSchemaRulesStatement.java
+++ b/shardingsphere-distsql/shardingsphere-distsql-statement/src/main/java/org/apache/shardingsphere/distsql/parser/subject/impl/DatabaseDiscoverySubjectSupplier.java
@@ -15,18 +15,18 @@
* limitations under the License.
*/
-package org.apache.shardingsphere.distsql.parser.statement.rql.show;
+package org.apache.shardingsphere.distsql.parser.subject.impl;
-import lombok.Getter;
-import org.apache.shardingsphere.sql.parser.sql.common.segment.generic.SchemaSegment;
+import org.apache.shardingsphere.distsql.parser.subject.DistSQLSubjectSupplier;
+import org.apache.shardingsphere.distsql.parser.subject.DistSQLSubjectTypeEnum;
/**
- * Count schema rules statement.
+ * Database discovery subject supplier.
*/
-@Getter
-public final class CountSchemaRulesStatement extends ShowRulesStatement {
+public interface DatabaseDiscoverySubjectSupplier extends DistSQLSubjectSupplier {
- public CountSchemaRulesStatement(final SchemaSegment schema) {
- super(schema);
+ @Override
+ default DistSQLSubjectTypeEnum getSubjectType() {
+ return DistSQLSubjectTypeEnum.DB_DISCOVERY;
}
}
diff --git a/shardingsphere-distsql/shardingsphere-distsql-statement/src/main/java/org/apache/shardingsphere/distsql/parser/statement/rql/show/CountSchemaRulesStatement.java b/shardingsphere-distsql/shardingsphere-distsql-statement/src/main/java/org/apache/shardingsphere/distsql/parser/subject/impl/EncryptSubjectSupplier.java
similarity index 65%
copy from shardingsphere-distsql/shardingsphere-distsql-statement/src/main/java/org/apache/shardingsphere/distsql/parser/statement/rql/show/CountSchemaRulesStatement.java
copy to shardingsphere-distsql/shardingsphere-distsql-statement/src/main/java/org/apache/shardingsphere/distsql/parser/subject/impl/EncryptSubjectSupplier.java
index ab38b8a2d62..48e66757cee 100644
--- a/shardingsphere-distsql/shardingsphere-distsql-statement/src/main/java/org/apache/shardingsphere/distsql/parser/statement/rql/show/CountSchemaRulesStatement.java
+++ b/shardingsphere-distsql/shardingsphere-distsql-statement/src/main/java/org/apache/shardingsphere/distsql/parser/subject/impl/EncryptSubjectSupplier.java
@@ -15,18 +15,18 @@
* limitations under the License.
*/
-package org.apache.shardingsphere.distsql.parser.statement.rql.show;
+package org.apache.shardingsphere.distsql.parser.subject.impl;
-import lombok.Getter;
-import org.apache.shardingsphere.sql.parser.sql.common.segment.generic.SchemaSegment;
+import org.apache.shardingsphere.distsql.parser.subject.DistSQLSubjectSupplier;
+import org.apache.shardingsphere.distsql.parser.subject.DistSQLSubjectTypeEnum;
/**
- * Count schema rules statement.
+ * Encrypt subject supplier.
*/
-@Getter
-public final class CountSchemaRulesStatement extends ShowRulesStatement {
+public interface EncryptSubjectSupplier extends DistSQLSubjectSupplier {
- public CountSchemaRulesStatement(final SchemaSegment schema) {
- super(schema);
+ @Override
+ default DistSQLSubjectTypeEnum getSubjectType() {
+ return DistSQLSubjectTypeEnum.ENCRYPT;
}
}
diff --git a/shardingsphere-distsql/shardingsphere-distsql-statement/src/main/java/org/apache/shardingsphere/distsql/parser/statement/rql/show/CountSchemaRulesStatement.java b/shardingsphere-distsql/shardingsphere-distsql-statement/src/main/java/org/apache/shardingsphere/distsql/parser/subject/impl/ReadwriteSplittingSubjectSupplier.java
similarity index 63%
copy from shardingsphere-distsql/shardingsphere-distsql-statement/src/main/java/org/apache/shardingsphere/distsql/parser/statement/rql/show/CountSchemaRulesStatement.java
copy to shardingsphere-distsql/shardingsphere-distsql-statement/src/main/java/org/apache/shardingsphere/distsql/parser/subject/impl/ReadwriteSplittingSubjectSupplier.java
index ab38b8a2d62..07852e13742 100644
--- a/shardingsphere-distsql/shardingsphere-distsql-statement/src/main/java/org/apache/shardingsphere/distsql/parser/statement/rql/show/CountSchemaRulesStatement.java
+++ b/shardingsphere-distsql/shardingsphere-distsql-statement/src/main/java/org/apache/shardingsphere/distsql/parser/subject/impl/ReadwriteSplittingSubjectSupplier.java
@@ -15,18 +15,18 @@
* limitations under the License.
*/
-package org.apache.shardingsphere.distsql.parser.statement.rql.show;
+package org.apache.shardingsphere.distsql.parser.subject.impl;
-import lombok.Getter;
-import org.apache.shardingsphere.sql.parser.sql.common.segment.generic.SchemaSegment;
+import org.apache.shardingsphere.distsql.parser.subject.DistSQLSubjectSupplier;
+import org.apache.shardingsphere.distsql.parser.subject.DistSQLSubjectTypeEnum;
/**
- * Count schema rules statement.
+ * Readwrite splitting subject supplier.
*/
-@Getter
-public final class CountSchemaRulesStatement extends ShowRulesStatement {
+public interface ReadwriteSplittingSubjectSupplier extends DistSQLSubjectSupplier {
- public CountSchemaRulesStatement(final SchemaSegment schema) {
- super(schema);
+ @Override
+ default DistSQLSubjectTypeEnum getSubjectType() {
+ return DistSQLSubjectTypeEnum.READWRITE_SPLITTING;
}
}
diff --git a/shardingsphere-distsql/shardingsphere-distsql-statement/src/main/java/org/apache/shardingsphere/distsql/parser/statement/rql/show/CountSchemaRulesStatement.java b/shardingsphere-distsql/shardingsphere-distsql-statement/src/main/java/org/apache/shardingsphere/distsql/parser/subject/impl/ResourceSubjectSupplier.java
similarity index 64%
copy from shardingsphere-distsql/shardingsphere-distsql-statement/src/main/java/org/apache/shardingsphere/distsql/parser/statement/rql/show/CountSchemaRulesStatement.java
copy to shardingsphere-distsql/shardingsphere-distsql-statement/src/main/java/org/apache/shardingsphere/distsql/parser/subject/impl/ResourceSubjectSupplier.java
index ab38b8a2d62..fbd7845fe21 100644
--- a/shardingsphere-distsql/shardingsphere-distsql-statement/src/main/java/org/apache/shardingsphere/distsql/parser/statement/rql/show/CountSchemaRulesStatement.java
+++ b/shardingsphere-distsql/shardingsphere-distsql-statement/src/main/java/org/apache/shardingsphere/distsql/parser/subject/impl/ResourceSubjectSupplier.java
@@ -15,18 +15,18 @@
* limitations under the License.
*/
-package org.apache.shardingsphere.distsql.parser.statement.rql.show;
+package org.apache.shardingsphere.distsql.parser.subject.impl;
-import lombok.Getter;
-import org.apache.shardingsphere.sql.parser.sql.common.segment.generic.SchemaSegment;
+import org.apache.shardingsphere.distsql.parser.subject.DistSQLSubjectSupplier;
+import org.apache.shardingsphere.distsql.parser.subject.DistSQLSubjectTypeEnum;
/**
- * Count schema rules statement.
+ * Dist SQL resource subject supplier.
*/
-@Getter
-public final class CountSchemaRulesStatement extends ShowRulesStatement {
+public interface ResourceSubjectSupplier extends DistSQLSubjectSupplier {
- public CountSchemaRulesStatement(final SchemaSegment schema) {
- super(schema);
+ @Override
+ default DistSQLSubjectTypeEnum getSubjectType() {
+ return DistSQLSubjectTypeEnum.RESOURCE;
}
}
diff --git a/shardingsphere-distsql/shardingsphere-distsql-statement/src/main/java/org/apache/shardingsphere/distsql/parser/statement/rql/show/CountSchemaRulesStatement.java b/shardingsphere-distsql/shardingsphere-distsql-statement/src/main/java/org/apache/shardingsphere/distsql/parser/subject/impl/ScalingSubjectSupplier.java
similarity index 65%
copy from shardingsphere-distsql/shardingsphere-distsql-statement/src/main/java/org/apache/shardingsphere/distsql/parser/statement/rql/show/CountSchemaRulesStatement.java
copy to shardingsphere-distsql/shardingsphere-distsql-statement/src/main/java/org/apache/shardingsphere/distsql/parser/subject/impl/ScalingSubjectSupplier.java
index ab38b8a2d62..59dbf41d0dc 100644
--- a/shardingsphere-distsql/shardingsphere-distsql-statement/src/main/java/org/apache/shardingsphere/distsql/parser/statement/rql/show/CountSchemaRulesStatement.java
+++ b/shardingsphere-distsql/shardingsphere-distsql-statement/src/main/java/org/apache/shardingsphere/distsql/parser/subject/impl/ScalingSubjectSupplier.java
@@ -15,18 +15,18 @@
* limitations under the License.
*/
-package org.apache.shardingsphere.distsql.parser.statement.rql.show;
+package org.apache.shardingsphere.distsql.parser.subject.impl;
-import lombok.Getter;
-import org.apache.shardingsphere.sql.parser.sql.common.segment.generic.SchemaSegment;
+import org.apache.shardingsphere.distsql.parser.subject.DistSQLSubjectSupplier;
+import org.apache.shardingsphere.distsql.parser.subject.DistSQLSubjectTypeEnum;
/**
- * Count schema rules statement.
+ * Scaling subject supplier.
*/
-@Getter
-public final class CountSchemaRulesStatement extends ShowRulesStatement {
+public interface ScalingSubjectSupplier extends DistSQLSubjectSupplier {
- public CountSchemaRulesStatement(final SchemaSegment schema) {
- super(schema);
+ @Override
+ default DistSQLSubjectTypeEnum getSubjectType() {
+ return DistSQLSubjectTypeEnum.SCALING;
}
}
diff --git a/shardingsphere-distsql/shardingsphere-distsql-statement/src/main/java/org/apache/shardingsphere/distsql/parser/statement/rql/show/CountSchemaRulesStatement.java b/shardingsphere-distsql/shardingsphere-distsql-statement/src/main/java/org/apache/shardingsphere/distsql/parser/subject/impl/ShadowSubjectSupplier.java
similarity index 65%
copy from shardingsphere-distsql/shardingsphere-distsql-statement/src/main/java/org/apache/shardingsphere/distsql/parser/statement/rql/show/CountSchemaRulesStatement.java
copy to shardingsphere-distsql/shardingsphere-distsql-statement/src/main/java/org/apache/shardingsphere/distsql/parser/subject/impl/ShadowSubjectSupplier.java
index ab38b8a2d62..19be07c3bef 100644
--- a/shardingsphere-distsql/shardingsphere-distsql-statement/src/main/java/org/apache/shardingsphere/distsql/parser/statement/rql/show/CountSchemaRulesStatement.java
+++ b/shardingsphere-distsql/shardingsphere-distsql-statement/src/main/java/org/apache/shardingsphere/distsql/parser/subject/impl/ShadowSubjectSupplier.java
@@ -15,18 +15,18 @@
* limitations under the License.
*/
-package org.apache.shardingsphere.distsql.parser.statement.rql.show;
+package org.apache.shardingsphere.distsql.parser.subject.impl;
-import lombok.Getter;
-import org.apache.shardingsphere.sql.parser.sql.common.segment.generic.SchemaSegment;
+import org.apache.shardingsphere.distsql.parser.subject.DistSQLSubjectSupplier;
+import org.apache.shardingsphere.distsql.parser.subject.DistSQLSubjectTypeEnum;
/**
- * Count schema rules statement.
+ * Shadow subject supplier.
*/
-@Getter
-public final class CountSchemaRulesStatement extends ShowRulesStatement {
+public interface ShadowSubjectSupplier extends DistSQLSubjectSupplier {
- public CountSchemaRulesStatement(final SchemaSegment schema) {
- super(schema);
+ @Override
+ default DistSQLSubjectTypeEnum getSubjectType() {
+ return DistSQLSubjectTypeEnum.SHADOW;
}
}
diff --git a/shardingsphere-distsql/shardingsphere-distsql-statement/src/main/java/org/apache/shardingsphere/distsql/parser/statement/rql/show/CountSchemaRulesStatement.java b/shardingsphere-distsql/shardingsphere-distsql-statement/src/main/java/org/apache/shardingsphere/distsql/parser/subject/impl/ShardingSubjectSupplier.java
similarity index 65%
copy from shardingsphere-distsql/shardingsphere-distsql-statement/src/main/java/org/apache/shardingsphere/distsql/parser/statement/rql/show/CountSchemaRulesStatement.java
copy to shardingsphere-distsql/shardingsphere-distsql-statement/src/main/java/org/apache/shardingsphere/distsql/parser/subject/impl/ShardingSubjectSupplier.java
index ab38b8a2d62..4ffc92fcbd7 100644
--- a/shardingsphere-distsql/shardingsphere-distsql-statement/src/main/java/org/apache/shardingsphere/distsql/parser/statement/rql/show/CountSchemaRulesStatement.java
+++ b/shardingsphere-distsql/shardingsphere-distsql-statement/src/main/java/org/apache/shardingsphere/distsql/parser/subject/impl/ShardingSubjectSupplier.java
@@ -15,18 +15,18 @@
* limitations under the License.
*/
-package org.apache.shardingsphere.distsql.parser.statement.rql.show;
+package org.apache.shardingsphere.distsql.parser.subject.impl;
-import lombok.Getter;
-import org.apache.shardingsphere.sql.parser.sql.common.segment.generic.SchemaSegment;
+import org.apache.shardingsphere.distsql.parser.subject.DistSQLSubjectSupplier;
+import org.apache.shardingsphere.distsql.parser.subject.DistSQLSubjectTypeEnum;
/**
- * Count schema rules statement.
+ * Sharding subject supplier.
*/
-@Getter
-public final class CountSchemaRulesStatement extends ShowRulesStatement {
+public interface ShardingSubjectSupplier extends DistSQLSubjectSupplier {
- public CountSchemaRulesStatement(final SchemaSegment schema) {
- super(schema);
+ @Override
+ default DistSQLSubjectTypeEnum getSubjectType() {
+ return DistSQLSubjectTypeEnum.SHARDING;
}
}
diff --git a/shardingsphere-distsql/shardingsphere-distsql-statement/src/main/java/org/apache/shardingsphere/distsql/parser/statement/rql/show/CountSchemaRulesStatement.java b/shardingsphere-distsql/shardingsphere-distsql-statement/src/main/java/org/apache/shardingsphere/distsql/parser/subject/impl/SingleTableSubjectSupplier.java
similarity index 64%
copy from shardingsphere-distsql/shardingsphere-distsql-statement/src/main/java/org/apache/shardingsphere/distsql/parser/statement/rql/show/CountSchemaRulesStatement.java
copy to shardingsphere-distsql/shardingsphere-distsql-statement/src/main/java/org/apache/shardingsphere/distsql/parser/subject/impl/SingleTableSubjectSupplier.java
index ab38b8a2d62..ea3a752270e 100644
--- a/shardingsphere-distsql/shardingsphere-distsql-statement/src/main/java/org/apache/shardingsphere/distsql/parser/statement/rql/show/CountSchemaRulesStatement.java
+++ b/shardingsphere-distsql/shardingsphere-distsql-statement/src/main/java/org/apache/shardingsphere/distsql/parser/subject/impl/SingleTableSubjectSupplier.java
@@ -15,18 +15,18 @@
* limitations under the License.
*/
-package org.apache.shardingsphere.distsql.parser.statement.rql.show;
+package org.apache.shardingsphere.distsql.parser.subject.impl;
-import lombok.Getter;
-import org.apache.shardingsphere.sql.parser.sql.common.segment.generic.SchemaSegment;
+import org.apache.shardingsphere.distsql.parser.subject.DistSQLSubjectSupplier;
+import org.apache.shardingsphere.distsql.parser.subject.DistSQLSubjectTypeEnum;
/**
- * Count schema rules statement.
+ * Single table subject supplier.
*/
-@Getter
-public final class CountSchemaRulesStatement extends ShowRulesStatement {
+public interface SingleTableSubjectSupplier extends DistSQLSubjectSupplier {
- public CountSchemaRulesStatement(final SchemaSegment schema) {
- super(schema);
+ @Override
+ default DistSQLSubjectTypeEnum getSubjectType() {
+ return DistSQLSubjectTypeEnum.SINGLE_TABLE;
}
}
diff --git a/shardingsphere-features/shardingsphere-db-discovery/shardingsphere-db-discovery-distsql/shardingsphere-db-discovery-distsql-statement/src/main/java/org/apache/shardingsphere/dbdiscovery/distsql/parser/statement/AlterDatabaseDiscoveryHeartbeatStatement.java b/shardingsphere-features/shardingsphere-db-discovery/shardingsphere-db-discovery-distsql/shardingsphere-db-discovery-distsql-statement/src/main/java/org/apache/shardingsphere/dbdiscovery/distsql/parser/statement/AlterDatab [...]
index cf5531c762b..4efbe16fb3a 100644
--- a/shardingsphere-features/shardingsphere-db-discovery/shardingsphere-db-discovery-distsql/shardingsphere-db-discovery-distsql-statement/src/main/java/org/apache/shardingsphere/dbdiscovery/distsql/parser/statement/AlterDatabaseDiscoveryHeartbeatStatement.java
+++ b/shardingsphere-features/shardingsphere-db-discovery/shardingsphere-db-discovery-distsql/shardingsphere-db-discovery-distsql-statement/src/main/java/org/apache/shardingsphere/dbdiscovery/distsql/parser/statement/AlterDatabaseDiscoveryHeartbeatStatement.java
@@ -19,6 +19,7 @@ package org.apache.shardingsphere.dbdiscovery.distsql.parser.statement;
import lombok.Getter;
import lombok.RequiredArgsConstructor;
+import org.apache.shardingsphere.distsql.parser.subject.impl.DatabaseDiscoverySubjectSupplier;
import org.apache.shardingsphere.dbdiscovery.distsql.parser.segment.DatabaseDiscoveryHeartbeatSegment;
import org.apache.shardingsphere.distsql.parser.statement.rdl.alter.AlterRuleStatement;
@@ -29,7 +30,7 @@ import java.util.Collection;
*/
@RequiredArgsConstructor
@Getter
-public final class AlterDatabaseDiscoveryHeartbeatStatement extends AlterRuleStatement {
+public final class AlterDatabaseDiscoveryHeartbeatStatement extends AlterRuleStatement implements DatabaseDiscoverySubjectSupplier {
private final Collection<DatabaseDiscoveryHeartbeatSegment> heartbeats;
}
diff --git a/shardingsphere-features/shardingsphere-db-discovery/shardingsphere-db-discovery-distsql/shardingsphere-db-discovery-distsql-statement/src/main/java/org/apache/shardingsphere/dbdiscovery/distsql/parser/statement/AlterDatabaseDiscoveryRuleStatement.java b/shardingsphere-features/shardingsphere-db-discovery/shardingsphere-db-discovery-distsql/shardingsphere-db-discovery-distsql-statement/src/main/java/org/apache/shardingsphere/dbdiscovery/distsql/parser/statement/AlterDatabaseDi [...]
index b483d7664f3..4e539caa7bd 100644
--- a/shardingsphere-features/shardingsphere-db-discovery/shardingsphere-db-discovery-distsql/shardingsphere-db-discovery-distsql-statement/src/main/java/org/apache/shardingsphere/dbdiscovery/distsql/parser/statement/AlterDatabaseDiscoveryRuleStatement.java
+++ b/shardingsphere-features/shardingsphere-db-discovery/shardingsphere-db-discovery-distsql/shardingsphere-db-discovery-distsql-statement/src/main/java/org/apache/shardingsphere/dbdiscovery/distsql/parser/statement/AlterDatabaseDiscoveryRuleStatement.java
@@ -19,6 +19,7 @@ package org.apache.shardingsphere.dbdiscovery.distsql.parser.statement;
import lombok.Getter;
import lombok.RequiredArgsConstructor;
+import org.apache.shardingsphere.distsql.parser.subject.impl.DatabaseDiscoverySubjectSupplier;
import org.apache.shardingsphere.dbdiscovery.distsql.parser.segment.AbstractDatabaseDiscoverySegment;
import org.apache.shardingsphere.distsql.parser.statement.rdl.alter.AlterRuleStatement;
@@ -29,7 +30,7 @@ import java.util.Collection;
*/
@RequiredArgsConstructor
@Getter
-public final class AlterDatabaseDiscoveryRuleStatement extends AlterRuleStatement {
+public final class AlterDatabaseDiscoveryRuleStatement extends AlterRuleStatement implements DatabaseDiscoverySubjectSupplier {
private final Collection<AbstractDatabaseDiscoverySegment> rules;
}
diff --git a/shardingsphere-features/shardingsphere-db-discovery/shardingsphere-db-discovery-distsql/shardingsphere-db-discovery-distsql-statement/src/main/java/org/apache/shardingsphere/dbdiscovery/distsql/parser/statement/AlterDatabaseDiscoveryTypeStatement.java b/shardingsphere-features/shardingsphere-db-discovery/shardingsphere-db-discovery-distsql/shardingsphere-db-discovery-distsql-statement/src/main/java/org/apache/shardingsphere/dbdiscovery/distsql/parser/statement/AlterDatabaseDi [...]
index 70051e2202c..0d181c911fe 100644
--- a/shardingsphere-features/shardingsphere-db-discovery/shardingsphere-db-discovery-distsql/shardingsphere-db-discovery-distsql-statement/src/main/java/org/apache/shardingsphere/dbdiscovery/distsql/parser/statement/AlterDatabaseDiscoveryTypeStatement.java
+++ b/shardingsphere-features/shardingsphere-db-discovery/shardingsphere-db-discovery-distsql/shardingsphere-db-discovery-distsql-statement/src/main/java/org/apache/shardingsphere/dbdiscovery/distsql/parser/statement/AlterDatabaseDiscoveryTypeStatement.java
@@ -19,6 +19,7 @@ package org.apache.shardingsphere.dbdiscovery.distsql.parser.statement;
import lombok.Getter;
import lombok.RequiredArgsConstructor;
+import org.apache.shardingsphere.distsql.parser.subject.impl.DatabaseDiscoverySubjectSupplier;
import org.apache.shardingsphere.dbdiscovery.distsql.parser.segment.DatabaseDiscoveryTypeSegment;
import org.apache.shardingsphere.distsql.parser.statement.rdl.alter.AlterRuleStatement;
@@ -29,7 +30,7 @@ import java.util.Collection;
*/
@RequiredArgsConstructor
@Getter
-public final class AlterDatabaseDiscoveryTypeStatement extends AlterRuleStatement {
+public final class AlterDatabaseDiscoveryTypeStatement extends AlterRuleStatement implements DatabaseDiscoverySubjectSupplier {
private final Collection<DatabaseDiscoveryTypeSegment> types;
}
diff --git a/shardingsphere-features/shardingsphere-db-discovery/shardingsphere-db-discovery-distsql/shardingsphere-db-discovery-distsql-statement/src/main/java/org/apache/shardingsphere/dbdiscovery/distsql/parser/statement/CreateDatabaseDiscoveryHeartbeatStatement.java b/shardingsphere-features/shardingsphere-db-discovery/shardingsphere-db-discovery-distsql/shardingsphere-db-discovery-distsql-statement/src/main/java/org/apache/shardingsphere/dbdiscovery/distsql/parser/statement/CreateDat [...]
index 1a215d99ae1..d946e162582 100644
--- a/shardingsphere-features/shardingsphere-db-discovery/shardingsphere-db-discovery-distsql/shardingsphere-db-discovery-distsql-statement/src/main/java/org/apache/shardingsphere/dbdiscovery/distsql/parser/statement/CreateDatabaseDiscoveryHeartbeatStatement.java
+++ b/shardingsphere-features/shardingsphere-db-discovery/shardingsphere-db-discovery-distsql/shardingsphere-db-discovery-distsql-statement/src/main/java/org/apache/shardingsphere/dbdiscovery/distsql/parser/statement/CreateDatabaseDiscoveryHeartbeatStatement.java
@@ -19,6 +19,7 @@ package org.apache.shardingsphere.dbdiscovery.distsql.parser.statement;
import lombok.Getter;
import lombok.RequiredArgsConstructor;
+import org.apache.shardingsphere.distsql.parser.subject.impl.DatabaseDiscoverySubjectSupplier;
import org.apache.shardingsphere.dbdiscovery.distsql.parser.segment.DatabaseDiscoveryHeartbeatSegment;
import org.apache.shardingsphere.distsql.parser.statement.rdl.create.CreateRuleStatement;
@@ -29,7 +30,7 @@ import java.util.Collection;
*/
@RequiredArgsConstructor
@Getter
-public final class CreateDatabaseDiscoveryHeartbeatStatement extends CreateRuleStatement {
+public final class CreateDatabaseDiscoveryHeartbeatStatement extends CreateRuleStatement implements DatabaseDiscoverySubjectSupplier {
private final Collection<DatabaseDiscoveryHeartbeatSegment> heartbeats;
}
diff --git a/shardingsphere-features/shardingsphere-db-discovery/shardingsphere-db-discovery-distsql/shardingsphere-db-discovery-distsql-statement/src/main/java/org/apache/shardingsphere/dbdiscovery/distsql/parser/statement/CreateDatabaseDiscoveryRuleStatement.java b/shardingsphere-features/shardingsphere-db-discovery/shardingsphere-db-discovery-distsql/shardingsphere-db-discovery-distsql-statement/src/main/java/org/apache/shardingsphere/dbdiscovery/distsql/parser/statement/CreateDatabase [...]
index 1c041f1af50..85b294fc6a5 100644
--- a/shardingsphere-features/shardingsphere-db-discovery/shardingsphere-db-discovery-distsql/shardingsphere-db-discovery-distsql-statement/src/main/java/org/apache/shardingsphere/dbdiscovery/distsql/parser/statement/CreateDatabaseDiscoveryRuleStatement.java
+++ b/shardingsphere-features/shardingsphere-db-discovery/shardingsphere-db-discovery-distsql/shardingsphere-db-discovery-distsql-statement/src/main/java/org/apache/shardingsphere/dbdiscovery/distsql/parser/statement/CreateDatabaseDiscoveryRuleStatement.java
@@ -19,6 +19,7 @@ package org.apache.shardingsphere.dbdiscovery.distsql.parser.statement;
import lombok.Getter;
import lombok.RequiredArgsConstructor;
+import org.apache.shardingsphere.distsql.parser.subject.impl.DatabaseDiscoverySubjectSupplier;
import org.apache.shardingsphere.dbdiscovery.distsql.parser.segment.AbstractDatabaseDiscoverySegment;
import org.apache.shardingsphere.distsql.parser.statement.rdl.create.CreateRuleStatement;
@@ -29,7 +30,7 @@ import java.util.Collection;
*/
@RequiredArgsConstructor
@Getter
-public final class CreateDatabaseDiscoveryRuleStatement extends CreateRuleStatement {
+public final class CreateDatabaseDiscoveryRuleStatement extends CreateRuleStatement implements DatabaseDiscoverySubjectSupplier {
private final Collection<AbstractDatabaseDiscoverySegment> rules;
}
diff --git a/shardingsphere-features/shardingsphere-db-discovery/shardingsphere-db-discovery-distsql/shardingsphere-db-discovery-distsql-statement/src/main/java/org/apache/shardingsphere/dbdiscovery/distsql/parser/statement/CreateDatabaseDiscoveryTypeStatement.java b/shardingsphere-features/shardingsphere-db-discovery/shardingsphere-db-discovery-distsql/shardingsphere-db-discovery-distsql-statement/src/main/java/org/apache/shardingsphere/dbdiscovery/distsql/parser/statement/CreateDatabase [...]
index 4ff9680a436..09b667fd73f 100644
--- a/shardingsphere-features/shardingsphere-db-discovery/shardingsphere-db-discovery-distsql/shardingsphere-db-discovery-distsql-statement/src/main/java/org/apache/shardingsphere/dbdiscovery/distsql/parser/statement/CreateDatabaseDiscoveryTypeStatement.java
+++ b/shardingsphere-features/shardingsphere-db-discovery/shardingsphere-db-discovery-distsql/shardingsphere-db-discovery-distsql-statement/src/main/java/org/apache/shardingsphere/dbdiscovery/distsql/parser/statement/CreateDatabaseDiscoveryTypeStatement.java
@@ -19,6 +19,7 @@ package org.apache.shardingsphere.dbdiscovery.distsql.parser.statement;
import lombok.Getter;
import lombok.RequiredArgsConstructor;
+import org.apache.shardingsphere.distsql.parser.subject.impl.DatabaseDiscoverySubjectSupplier;
import org.apache.shardingsphere.dbdiscovery.distsql.parser.segment.DatabaseDiscoveryTypeSegment;
import org.apache.shardingsphere.distsql.parser.statement.rdl.create.CreateRuleStatement;
@@ -29,7 +30,7 @@ import java.util.Collection;
*/
@RequiredArgsConstructor
@Getter
-public final class CreateDatabaseDiscoveryTypeStatement extends CreateRuleStatement {
+public final class CreateDatabaseDiscoveryTypeStatement extends CreateRuleStatement implements DatabaseDiscoverySubjectSupplier {
private final Collection<DatabaseDiscoveryTypeSegment> types;
}
diff --git a/shardingsphere-features/shardingsphere-db-discovery/shardingsphere-db-discovery-distsql/shardingsphere-db-discovery-distsql-statement/src/main/java/org/apache/shardingsphere/dbdiscovery/distsql/parser/statement/DropDatabaseDiscoveryHeartbeatStatement.java b/shardingsphere-features/shardingsphere-db-discovery/shardingsphere-db-discovery-distsql/shardingsphere-db-discovery-distsql-statement/src/main/java/org/apache/shardingsphere/dbdiscovery/distsql/parser/statement/DropDatabas [...]
index 3a220d05bca..1a3f067cbc4 100644
--- a/shardingsphere-features/shardingsphere-db-discovery/shardingsphere-db-discovery-distsql/shardingsphere-db-discovery-distsql-statement/src/main/java/org/apache/shardingsphere/dbdiscovery/distsql/parser/statement/DropDatabaseDiscoveryHeartbeatStatement.java
+++ b/shardingsphere-features/shardingsphere-db-discovery/shardingsphere-db-discovery-distsql/shardingsphere-db-discovery-distsql-statement/src/main/java/org/apache/shardingsphere/dbdiscovery/distsql/parser/statement/DropDatabaseDiscoveryHeartbeatStatement.java
@@ -19,6 +19,7 @@ package org.apache.shardingsphere.dbdiscovery.distsql.parser.statement;
import lombok.Getter;
import lombok.RequiredArgsConstructor;
+import org.apache.shardingsphere.distsql.parser.subject.impl.DatabaseDiscoverySubjectSupplier;
import org.apache.shardingsphere.distsql.parser.statement.rdl.drop.DropRuleStatement;
import java.util.Collection;
@@ -28,7 +29,7 @@ import java.util.Collection;
*/
@RequiredArgsConstructor
@Getter
-public final class DropDatabaseDiscoveryHeartbeatStatement extends DropRuleStatement {
+public final class DropDatabaseDiscoveryHeartbeatStatement extends DropRuleStatement implements DatabaseDiscoverySubjectSupplier {
private final Collection<String> heartbeatNames;
diff --git a/shardingsphere-features/shardingsphere-db-discovery/shardingsphere-db-discovery-distsql/shardingsphere-db-discovery-distsql-statement/src/main/java/org/apache/shardingsphere/dbdiscovery/distsql/parser/statement/DropDatabaseDiscoveryRuleStatement.java b/shardingsphere-features/shardingsphere-db-discovery/shardingsphere-db-discovery-distsql/shardingsphere-db-discovery-distsql-statement/src/main/java/org/apache/shardingsphere/dbdiscovery/distsql/parser/statement/DropDatabaseDisc [...]
index 8b80f5c7dff..de87c933e03 100644
--- a/shardingsphere-features/shardingsphere-db-discovery/shardingsphere-db-discovery-distsql/shardingsphere-db-discovery-distsql-statement/src/main/java/org/apache/shardingsphere/dbdiscovery/distsql/parser/statement/DropDatabaseDiscoveryRuleStatement.java
+++ b/shardingsphere-features/shardingsphere-db-discovery/shardingsphere-db-discovery-distsql/shardingsphere-db-discovery-distsql-statement/src/main/java/org/apache/shardingsphere/dbdiscovery/distsql/parser/statement/DropDatabaseDiscoveryRuleStatement.java
@@ -19,6 +19,7 @@ package org.apache.shardingsphere.dbdiscovery.distsql.parser.statement;
import lombok.Getter;
import lombok.RequiredArgsConstructor;
+import org.apache.shardingsphere.distsql.parser.subject.impl.DatabaseDiscoverySubjectSupplier;
import org.apache.shardingsphere.distsql.parser.statement.rdl.drop.DropRuleStatement;
import java.util.Collection;
@@ -28,7 +29,7 @@ import java.util.Collection;
*/
@RequiredArgsConstructor
@Getter
-public final class DropDatabaseDiscoveryRuleStatement extends DropRuleStatement {
+public final class DropDatabaseDiscoveryRuleStatement extends DropRuleStatement implements DatabaseDiscoverySubjectSupplier {
private final Collection<String> ruleNames;
diff --git a/shardingsphere-features/shardingsphere-db-discovery/shardingsphere-db-discovery-distsql/shardingsphere-db-discovery-distsql-statement/src/main/java/org/apache/shardingsphere/dbdiscovery/distsql/parser/statement/DropDatabaseDiscoveryTypeStatement.java b/shardingsphere-features/shardingsphere-db-discovery/shardingsphere-db-discovery-distsql/shardingsphere-db-discovery-distsql-statement/src/main/java/org/apache/shardingsphere/dbdiscovery/distsql/parser/statement/DropDatabaseDisc [...]
index fa77d3c46d3..8ea6951523e 100644
--- a/shardingsphere-features/shardingsphere-db-discovery/shardingsphere-db-discovery-distsql/shardingsphere-db-discovery-distsql-statement/src/main/java/org/apache/shardingsphere/dbdiscovery/distsql/parser/statement/DropDatabaseDiscoveryTypeStatement.java
+++ b/shardingsphere-features/shardingsphere-db-discovery/shardingsphere-db-discovery-distsql/shardingsphere-db-discovery-distsql-statement/src/main/java/org/apache/shardingsphere/dbdiscovery/distsql/parser/statement/DropDatabaseDiscoveryTypeStatement.java
@@ -19,6 +19,7 @@ package org.apache.shardingsphere.dbdiscovery.distsql.parser.statement;
import lombok.Getter;
import lombok.RequiredArgsConstructor;
+import org.apache.shardingsphere.distsql.parser.subject.impl.DatabaseDiscoverySubjectSupplier;
import org.apache.shardingsphere.distsql.parser.statement.rdl.drop.DropRuleStatement;
import java.util.Collection;
@@ -28,7 +29,7 @@ import java.util.Collection;
*/
@RequiredArgsConstructor
@Getter
-public final class DropDatabaseDiscoveryTypeStatement extends DropRuleStatement {
+public final class DropDatabaseDiscoveryTypeStatement extends DropRuleStatement implements DatabaseDiscoverySubjectSupplier {
private final Collection<String> types;
diff --git a/shardingsphere-features/shardingsphere-db-discovery/shardingsphere-db-discovery-distsql/shardingsphere-db-discovery-distsql-statement/src/main/java/org/apache/shardingsphere/dbdiscovery/distsql/parser/statement/ShowDatabaseDiscoveryHeartbeatsStatement.java b/shardingsphere-features/shardingsphere-db-discovery/shardingsphere-db-discovery-distsql/shardingsphere-db-discovery-distsql-statement/src/main/java/org/apache/shardingsphere/dbdiscovery/distsql/parser/statement/ShowDataba [...]
index 1b118bdc7f2..1d365b6a62b 100644
--- a/shardingsphere-features/shardingsphere-db-discovery/shardingsphere-db-discovery-distsql/shardingsphere-db-discovery-distsql-statement/src/main/java/org/apache/shardingsphere/dbdiscovery/distsql/parser/statement/ShowDatabaseDiscoveryHeartbeatsStatement.java
+++ b/shardingsphere-features/shardingsphere-db-discovery/shardingsphere-db-discovery-distsql/shardingsphere-db-discovery-distsql-statement/src/main/java/org/apache/shardingsphere/dbdiscovery/distsql/parser/statement/ShowDatabaseDiscoveryHeartbeatsStatement.java
@@ -17,13 +17,14 @@
package org.apache.shardingsphere.dbdiscovery.distsql.parser.statement;
+import org.apache.shardingsphere.distsql.parser.subject.impl.DatabaseDiscoverySubjectSupplier;
import org.apache.shardingsphere.distsql.parser.statement.rql.show.ShowRulesStatement;
import org.apache.shardingsphere.sql.parser.sql.common.segment.generic.SchemaSegment;
/**
* Show database discovery heartbeats statement.
*/
-public final class ShowDatabaseDiscoveryHeartbeatsStatement extends ShowRulesStatement {
+public final class ShowDatabaseDiscoveryHeartbeatsStatement extends ShowRulesStatement implements DatabaseDiscoverySubjectSupplier {
public ShowDatabaseDiscoveryHeartbeatsStatement(final SchemaSegment schema) {
super(schema);
diff --git a/shardingsphere-features/shardingsphere-db-discovery/shardingsphere-db-discovery-distsql/shardingsphere-db-discovery-distsql-statement/src/main/java/org/apache/shardingsphere/dbdiscovery/distsql/parser/statement/ShowDatabaseDiscoveryRulesStatement.java b/shardingsphere-features/shardingsphere-db-discovery/shardingsphere-db-discovery-distsql/shardingsphere-db-discovery-distsql-statement/src/main/java/org/apache/shardingsphere/dbdiscovery/distsql/parser/statement/ShowDatabaseDis [...]
index c65e7058e6d..8843bb859c5 100644
--- a/shardingsphere-features/shardingsphere-db-discovery/shardingsphere-db-discovery-distsql/shardingsphere-db-discovery-distsql-statement/src/main/java/org/apache/shardingsphere/dbdiscovery/distsql/parser/statement/ShowDatabaseDiscoveryRulesStatement.java
+++ b/shardingsphere-features/shardingsphere-db-discovery/shardingsphere-db-discovery-distsql/shardingsphere-db-discovery-distsql-statement/src/main/java/org/apache/shardingsphere/dbdiscovery/distsql/parser/statement/ShowDatabaseDiscoveryRulesStatement.java
@@ -17,13 +17,14 @@
package org.apache.shardingsphere.dbdiscovery.distsql.parser.statement;
+import org.apache.shardingsphere.distsql.parser.subject.impl.DatabaseDiscoverySubjectSupplier;
import org.apache.shardingsphere.distsql.parser.statement.rql.show.ShowRulesStatement;
import org.apache.shardingsphere.sql.parser.sql.common.segment.generic.SchemaSegment;
/**
* Show database discovery rules statement.
*/
-public final class ShowDatabaseDiscoveryRulesStatement extends ShowRulesStatement {
+public final class ShowDatabaseDiscoveryRulesStatement extends ShowRulesStatement implements DatabaseDiscoverySubjectSupplier {
public ShowDatabaseDiscoveryRulesStatement(final SchemaSegment schema) {
super(schema);
diff --git a/shardingsphere-features/shardingsphere-db-discovery/shardingsphere-db-discovery-distsql/shardingsphere-db-discovery-distsql-statement/src/main/java/org/apache/shardingsphere/dbdiscovery/distsql/parser/statement/ShowDatabaseDiscoveryTypesStatement.java b/shardingsphere-features/shardingsphere-db-discovery/shardingsphere-db-discovery-distsql/shardingsphere-db-discovery-distsql-statement/src/main/java/org/apache/shardingsphere/dbdiscovery/distsql/parser/statement/ShowDatabaseDis [...]
index 1a1549bcce2..2609fe7e07e 100644
--- a/shardingsphere-features/shardingsphere-db-discovery/shardingsphere-db-discovery-distsql/shardingsphere-db-discovery-distsql-statement/src/main/java/org/apache/shardingsphere/dbdiscovery/distsql/parser/statement/ShowDatabaseDiscoveryTypesStatement.java
+++ b/shardingsphere-features/shardingsphere-db-discovery/shardingsphere-db-discovery-distsql/shardingsphere-db-discovery-distsql-statement/src/main/java/org/apache/shardingsphere/dbdiscovery/distsql/parser/statement/ShowDatabaseDiscoveryTypesStatement.java
@@ -17,13 +17,14 @@
package org.apache.shardingsphere.dbdiscovery.distsql.parser.statement;
+import org.apache.shardingsphere.distsql.parser.subject.impl.DatabaseDiscoverySubjectSupplier;
import org.apache.shardingsphere.distsql.parser.statement.rql.show.ShowRulesStatement;
import org.apache.shardingsphere.sql.parser.sql.common.segment.generic.SchemaSegment;
/**
* Show database discovery types statement.
*/
-public final class ShowDatabaseDiscoveryTypesStatement extends ShowRulesStatement {
+public final class ShowDatabaseDiscoveryTypesStatement extends ShowRulesStatement implements DatabaseDiscoverySubjectSupplier {
public ShowDatabaseDiscoveryTypesStatement(final SchemaSegment schema) {
super(schema);
diff --git a/shardingsphere-features/shardingsphere-encrypt/shardingsphere-encrypt-distsql/shardingsphere-encrypt-distsql-statement/src/main/java/org/apache/shardingsphere/encrypt/distsql/parser/statement/AlterEncryptRuleStatement.java b/shardingsphere-features/shardingsphere-encrypt/shardingsphere-encrypt-distsql/shardingsphere-encrypt-distsql-statement/src/main/java/org/apache/shardingsphere/encrypt/distsql/parser/statement/AlterEncryptRuleStatement.java
index 4659a8139e0..c218eea2989 100644
--- a/shardingsphere-features/shardingsphere-encrypt/shardingsphere-encrypt-distsql/shardingsphere-encrypt-distsql-statement/src/main/java/org/apache/shardingsphere/encrypt/distsql/parser/statement/AlterEncryptRuleStatement.java
+++ b/shardingsphere-features/shardingsphere-encrypt/shardingsphere-encrypt-distsql/shardingsphere-encrypt-distsql-statement/src/main/java/org/apache/shardingsphere/encrypt/distsql/parser/statement/AlterEncryptRuleStatement.java
@@ -19,17 +19,24 @@ package org.apache.shardingsphere.encrypt.distsql.parser.statement;
import lombok.Getter;
import lombok.RequiredArgsConstructor;
+import org.apache.shardingsphere.distsql.parser.subject.impl.EncryptSubjectSupplier;
import org.apache.shardingsphere.encrypt.distsql.parser.segment.EncryptRuleSegment;
import org.apache.shardingsphere.distsql.parser.statement.rdl.alter.AlterRuleStatement;
import java.util.Collection;
+import java.util.stream.Collectors;
/**
* Alter encrypt rule statement.
*/
@RequiredArgsConstructor
@Getter
-public final class AlterEncryptRuleStatement extends AlterRuleStatement {
+public final class AlterEncryptRuleStatement extends AlterRuleStatement implements EncryptSubjectSupplier {
private final Collection<EncryptRuleSegment> rules;
+
+ @Override
+ public Collection<String> getSubjectNames() {
+ return rules.stream().map(EncryptRuleSegment::getTableName).collect(Collectors.toSet());
+ }
}
diff --git a/shardingsphere-features/shardingsphere-encrypt/shardingsphere-encrypt-distsql/shardingsphere-encrypt-distsql-statement/src/main/java/org/apache/shardingsphere/encrypt/distsql/parser/statement/CreateEncryptRuleStatement.java b/shardingsphere-features/shardingsphere-encrypt/shardingsphere-encrypt-distsql/shardingsphere-encrypt-distsql-statement/src/main/java/org/apache/shardingsphere/encrypt/distsql/parser/statement/CreateEncryptRuleStatement.java
index 8f98adeed80..593b8a9f2a0 100644
--- a/shardingsphere-features/shardingsphere-encrypt/shardingsphere-encrypt-distsql/shardingsphere-encrypt-distsql-statement/src/main/java/org/apache/shardingsphere/encrypt/distsql/parser/statement/CreateEncryptRuleStatement.java
+++ b/shardingsphere-features/shardingsphere-encrypt/shardingsphere-encrypt-distsql/shardingsphere-encrypt-distsql-statement/src/main/java/org/apache/shardingsphere/encrypt/distsql/parser/statement/CreateEncryptRuleStatement.java
@@ -19,17 +19,24 @@ package org.apache.shardingsphere.encrypt.distsql.parser.statement;
import lombok.Getter;
import lombok.RequiredArgsConstructor;
-import org.apache.shardingsphere.encrypt.distsql.parser.segment.EncryptRuleSegment;
import org.apache.shardingsphere.distsql.parser.statement.rdl.create.CreateRuleStatement;
+import org.apache.shardingsphere.distsql.parser.subject.impl.EncryptSubjectSupplier;
+import org.apache.shardingsphere.encrypt.distsql.parser.segment.EncryptRuleSegment;
import java.util.Collection;
+import java.util.stream.Collectors;
/**
* Create encrypt rule statement.
*/
@RequiredArgsConstructor
@Getter
-public final class CreateEncryptRuleStatement extends CreateRuleStatement {
+public final class CreateEncryptRuleStatement extends CreateRuleStatement implements EncryptSubjectSupplier {
private final Collection<EncryptRuleSegment> rules;
+
+ @Override
+ public Collection<String> getSubjectNames() {
+ return rules.stream().map(EncryptRuleSegment::getTableName).collect(Collectors.toSet());
+ }
}
diff --git a/shardingsphere-features/shardingsphere-encrypt/shardingsphere-encrypt-distsql/shardingsphere-encrypt-distsql-statement/src/main/java/org/apache/shardingsphere/encrypt/distsql/parser/statement/DropEncryptRuleStatement.java b/shardingsphere-features/shardingsphere-encrypt/shardingsphere-encrypt-distsql/shardingsphere-encrypt-distsql-statement/src/main/java/org/apache/shardingsphere/encrypt/distsql/parser/statement/DropEncryptRuleStatement.java
index 9f04756384a..71204d9296e 100644
--- a/shardingsphere-features/shardingsphere-encrypt/shardingsphere-encrypt-distsql/shardingsphere-encrypt-distsql-statement/src/main/java/org/apache/shardingsphere/encrypt/distsql/parser/statement/DropEncryptRuleStatement.java
+++ b/shardingsphere-features/shardingsphere-encrypt/shardingsphere-encrypt-distsql/shardingsphere-encrypt-distsql-statement/src/main/java/org/apache/shardingsphere/encrypt/distsql/parser/statement/DropEncryptRuleStatement.java
@@ -20,6 +20,7 @@ package org.apache.shardingsphere.encrypt.distsql.parser.statement;
import lombok.Getter;
import lombok.RequiredArgsConstructor;
import org.apache.shardingsphere.distsql.parser.statement.rdl.drop.DropRuleStatement;
+import org.apache.shardingsphere.distsql.parser.subject.impl.EncryptSubjectSupplier;
import java.util.Collection;
@@ -28,7 +29,7 @@ import java.util.Collection;
*/
@RequiredArgsConstructor
@Getter
-public final class DropEncryptRuleStatement extends DropRuleStatement {
+public final class DropEncryptRuleStatement extends DropRuleStatement implements EncryptSubjectSupplier {
private final Collection<String> tables;
@@ -36,4 +37,9 @@ public final class DropEncryptRuleStatement extends DropRuleStatement {
setContainsExistClause(containsExistClause);
this.tables = tables;
}
+
+ @Override
+ public Collection<String> getSubjectNames() {
+ return tables;
+ }
}
diff --git a/shardingsphere-features/shardingsphere-encrypt/shardingsphere-encrypt-distsql/shardingsphere-encrypt-distsql-statement/src/main/java/org/apache/shardingsphere/encrypt/distsql/parser/statement/ShowEncryptRulesStatement.java b/shardingsphere-features/shardingsphere-encrypt/shardingsphere-encrypt-distsql/shardingsphere-encrypt-distsql-statement/src/main/java/org/apache/shardingsphere/encrypt/distsql/parser/statement/ShowEncryptRulesStatement.java
index 1adebbd1136..d116f06b819 100644
--- a/shardingsphere-features/shardingsphere-encrypt/shardingsphere-encrypt-distsql/shardingsphere-encrypt-distsql-statement/src/main/java/org/apache/shardingsphere/encrypt/distsql/parser/statement/ShowEncryptRulesStatement.java
+++ b/shardingsphere-features/shardingsphere-encrypt/shardingsphere-encrypt-distsql/shardingsphere-encrypt-distsql-statement/src/main/java/org/apache/shardingsphere/encrypt/distsql/parser/statement/ShowEncryptRulesStatement.java
@@ -19,13 +19,17 @@ package org.apache.shardingsphere.encrypt.distsql.parser.statement;
import lombok.Getter;
import org.apache.shardingsphere.distsql.parser.statement.rql.show.ShowRulesStatement;
+import org.apache.shardingsphere.distsql.parser.subject.impl.EncryptSubjectSupplier;
import org.apache.shardingsphere.sql.parser.sql.common.segment.generic.SchemaSegment;
+import java.util.Collection;
+import java.util.Collections;
+
/**
* Show encrypt rules statement.
*/
@Getter
-public final class ShowEncryptRulesStatement extends ShowRulesStatement {
+public final class ShowEncryptRulesStatement extends ShowRulesStatement implements EncryptSubjectSupplier {
private final String tableName;
@@ -33,4 +37,9 @@ public final class ShowEncryptRulesStatement extends ShowRulesStatement {
super(schema);
this.tableName = tableName;
}
+
+ @Override
+ public Collection<String> getSubjectNames() {
+ return null != tableName ? Collections.singletonList(tableName) : Collections.emptyList();
+ }
}
diff --git a/shardingsphere-features/shardingsphere-readwrite-splitting/shardingsphere-readwrite-splitting-distsql/shardingsphere-readwrite-splitting-distsql-statement/src/main/java/org/apache/shardingsphere/readwritesplitting/distsql/parser/statement/AlterReadwriteSplittingRuleStatement.java b/shardingsphere-features/shardingsphere-readwrite-splitting/shardingsphere-readwrite-splitting-distsql/shardingsphere-readwrite-splitting-distsql-statement/src/main/java/org/apache/shardingsphere/re [...]
index a982993aea5..2901d93e8ba 100644
--- a/shardingsphere-features/shardingsphere-readwrite-splitting/shardingsphere-readwrite-splitting-distsql/shardingsphere-readwrite-splitting-distsql-statement/src/main/java/org/apache/shardingsphere/readwritesplitting/distsql/parser/statement/AlterReadwriteSplittingRuleStatement.java
+++ b/shardingsphere-features/shardingsphere-readwrite-splitting/shardingsphere-readwrite-splitting-distsql/shardingsphere-readwrite-splitting-distsql-statement/src/main/java/org/apache/shardingsphere/readwritesplitting/distsql/parser/statement/AlterReadwriteSplittingRuleStatement.java
@@ -19,6 +19,7 @@ package org.apache.shardingsphere.readwritesplitting.distsql.parser.statement;
import lombok.Getter;
import lombok.RequiredArgsConstructor;
+import org.apache.shardingsphere.distsql.parser.subject.impl.ReadwriteSplittingSubjectSupplier;
import org.apache.shardingsphere.readwritesplitting.distsql.parser.segment.ReadwriteSplittingRuleSegment;
import org.apache.shardingsphere.distsql.parser.statement.rdl.alter.AlterRuleStatement;
@@ -29,7 +30,7 @@ import java.util.Collection;
*/
@RequiredArgsConstructor
@Getter
-public final class AlterReadwriteSplittingRuleStatement extends AlterRuleStatement {
+public final class AlterReadwriteSplittingRuleStatement extends AlterRuleStatement implements ReadwriteSplittingSubjectSupplier {
private final Collection<ReadwriteSplittingRuleSegment> rules;
}
diff --git a/shardingsphere-features/shardingsphere-readwrite-splitting/shardingsphere-readwrite-splitting-distsql/shardingsphere-readwrite-splitting-distsql-statement/src/main/java/org/apache/shardingsphere/readwritesplitting/distsql/parser/statement/CreateReadwriteSplittingRuleStatement.java b/shardingsphere-features/shardingsphere-readwrite-splitting/shardingsphere-readwrite-splitting-distsql/shardingsphere-readwrite-splitting-distsql-statement/src/main/java/org/apache/shardingsphere/r [...]
index 87ac6f260ca..28a227f91f8 100644
--- a/shardingsphere-features/shardingsphere-readwrite-splitting/shardingsphere-readwrite-splitting-distsql/shardingsphere-readwrite-splitting-distsql-statement/src/main/java/org/apache/shardingsphere/readwritesplitting/distsql/parser/statement/CreateReadwriteSplittingRuleStatement.java
+++ b/shardingsphere-features/shardingsphere-readwrite-splitting/shardingsphere-readwrite-splitting-distsql/shardingsphere-readwrite-splitting-distsql-statement/src/main/java/org/apache/shardingsphere/readwritesplitting/distsql/parser/statement/CreateReadwriteSplittingRuleStatement.java
@@ -19,6 +19,7 @@ package org.apache.shardingsphere.readwritesplitting.distsql.parser.statement;
import lombok.Getter;
import lombok.RequiredArgsConstructor;
+import org.apache.shardingsphere.distsql.parser.subject.impl.ReadwriteSplittingSubjectSupplier;
import org.apache.shardingsphere.readwritesplitting.distsql.parser.segment.ReadwriteSplittingRuleSegment;
import org.apache.shardingsphere.distsql.parser.statement.rdl.create.CreateRuleStatement;
@@ -29,7 +30,7 @@ import java.util.Collection;
*/
@RequiredArgsConstructor
@Getter
-public final class CreateReadwriteSplittingRuleStatement extends CreateRuleStatement {
+public final class CreateReadwriteSplittingRuleStatement extends CreateRuleStatement implements ReadwriteSplittingSubjectSupplier {
private final Collection<ReadwriteSplittingRuleSegment> rules;
}
diff --git a/shardingsphere-features/shardingsphere-readwrite-splitting/shardingsphere-readwrite-splitting-distsql/shardingsphere-readwrite-splitting-distsql-statement/src/main/java/org/apache/shardingsphere/readwritesplitting/distsql/parser/statement/DropReadwriteSplittingRuleStatement.java b/shardingsphere-features/shardingsphere-readwrite-splitting/shardingsphere-readwrite-splitting-distsql/shardingsphere-readwrite-splitting-distsql-statement/src/main/java/org/apache/shardingsphere/rea [...]
index ea055375e8a..598355f0033 100644
--- a/shardingsphere-features/shardingsphere-readwrite-splitting/shardingsphere-readwrite-splitting-distsql/shardingsphere-readwrite-splitting-distsql-statement/src/main/java/org/apache/shardingsphere/readwritesplitting/distsql/parser/statement/DropReadwriteSplittingRuleStatement.java
+++ b/shardingsphere-features/shardingsphere-readwrite-splitting/shardingsphere-readwrite-splitting-distsql/shardingsphere-readwrite-splitting-distsql-statement/src/main/java/org/apache/shardingsphere/readwritesplitting/distsql/parser/statement/DropReadwriteSplittingRuleStatement.java
@@ -20,6 +20,7 @@ package org.apache.shardingsphere.readwritesplitting.distsql.parser.statement;
import lombok.Getter;
import lombok.RequiredArgsConstructor;
import org.apache.shardingsphere.distsql.parser.statement.rdl.drop.DropRuleStatement;
+import org.apache.shardingsphere.distsql.parser.subject.impl.ReadwriteSplittingSubjectSupplier;
import java.util.Collection;
@@ -28,7 +29,7 @@ import java.util.Collection;
*/
@RequiredArgsConstructor
@Getter
-public final class DropReadwriteSplittingRuleStatement extends DropRuleStatement {
+public final class DropReadwriteSplittingRuleStatement extends DropRuleStatement implements ReadwriteSplittingSubjectSupplier {
private final Collection<String> ruleNames;
diff --git a/shardingsphere-features/shardingsphere-readwrite-splitting/shardingsphere-readwrite-splitting-distsql/shardingsphere-readwrite-splitting-distsql-statement/src/main/java/org/apache/shardingsphere/readwritesplitting/distsql/parser/statement/ShowReadwriteSplittingReadResourcesStatement.java b/shardingsphere-features/shardingsphere-readwrite-splitting/shardingsphere-readwrite-splitting-distsql/shardingsphere-readwrite-splitting-distsql-statement/src/main/java/org/apache/shardings [...]
index 945daa7dcd5..7dd07438e48 100644
--- a/shardingsphere-features/shardingsphere-readwrite-splitting/shardingsphere-readwrite-splitting-distsql/shardingsphere-readwrite-splitting-distsql-statement/src/main/java/org/apache/shardingsphere/readwritesplitting/distsql/parser/statement/ShowReadwriteSplittingReadResourcesStatement.java
+++ b/shardingsphere-features/shardingsphere-readwrite-splitting/shardingsphere-readwrite-splitting-distsql/shardingsphere-readwrite-splitting-distsql-statement/src/main/java/org/apache/shardingsphere/readwritesplitting/distsql/parser/statement/ShowReadwriteSplittingReadResourcesStatement.java
@@ -19,6 +19,7 @@ package org.apache.shardingsphere.readwritesplitting.distsql.parser.statement;
import lombok.RequiredArgsConstructor;
import org.apache.shardingsphere.distsql.parser.statement.ral.QueryableRALStatement;
+import org.apache.shardingsphere.distsql.parser.subject.impl.ReadwriteSplittingSubjectSupplier;
import org.apache.shardingsphere.sql.parser.sql.common.segment.generic.SchemaSegment;
import org.apache.shardingsphere.sql.parser.sql.common.statement.available.FromSchemaAvailable;
@@ -28,7 +29,7 @@ import java.util.Optional;
* Show readwrite-splitting read resources statement.
*/
@RequiredArgsConstructor
-public final class ShowReadwriteSplittingReadResourcesStatement extends QueryableRALStatement implements FromSchemaAvailable {
+public final class ShowReadwriteSplittingReadResourcesStatement extends QueryableRALStatement implements FromSchemaAvailable, ReadwriteSplittingSubjectSupplier {
private final SchemaSegment schema;
diff --git a/shardingsphere-features/shardingsphere-readwrite-splitting/shardingsphere-readwrite-splitting-distsql/shardingsphere-readwrite-splitting-distsql-statement/src/main/java/org/apache/shardingsphere/readwritesplitting/distsql/parser/statement/ShowReadwriteSplittingRulesStatement.java b/shardingsphere-features/shardingsphere-readwrite-splitting/shardingsphere-readwrite-splitting-distsql/shardingsphere-readwrite-splitting-distsql-statement/src/main/java/org/apache/shardingsphere/re [...]
index 82a897f71a7..1019fbad22a 100644
--- a/shardingsphere-features/shardingsphere-readwrite-splitting/shardingsphere-readwrite-splitting-distsql/shardingsphere-readwrite-splitting-distsql-statement/src/main/java/org/apache/shardingsphere/readwritesplitting/distsql/parser/statement/ShowReadwriteSplittingRulesStatement.java
+++ b/shardingsphere-features/shardingsphere-readwrite-splitting/shardingsphere-readwrite-splitting-distsql/shardingsphere-readwrite-splitting-distsql-statement/src/main/java/org/apache/shardingsphere/readwritesplitting/distsql/parser/statement/ShowReadwriteSplittingRulesStatement.java
@@ -18,12 +18,13 @@
package org.apache.shardingsphere.readwritesplitting.distsql.parser.statement;
import org.apache.shardingsphere.distsql.parser.statement.rql.show.ShowRulesStatement;
+import org.apache.shardingsphere.distsql.parser.subject.impl.ReadwriteSplittingSubjectSupplier;
import org.apache.shardingsphere.sql.parser.sql.common.segment.generic.SchemaSegment;
/**
* Show readwrite splitting rules statement.
*/
-public final class ShowReadwriteSplittingRulesStatement extends ShowRulesStatement {
+public final class ShowReadwriteSplittingRulesStatement extends ShowRulesStatement implements ReadwriteSplittingSubjectSupplier {
public ShowReadwriteSplittingRulesStatement(final SchemaSegment schema) {
super(schema);
diff --git a/shardingsphere-features/shardingsphere-readwrite-splitting/shardingsphere-readwrite-splitting-distsql/shardingsphere-readwrite-splitting-distsql-statement/src/main/java/org/apache/shardingsphere/readwritesplitting/distsql/parser/statement/hint/ClearReadwriteSplittingHintStatement.java b/shardingsphere-features/shardingsphere-readwrite-splitting/shardingsphere-readwrite-splitting-distsql/shardingsphere-readwrite-splitting-distsql-statement/src/main/java/org/apache/shardingsphe [...]
index bb12bafccd7..8dbc0ad1625 100644
--- a/shardingsphere-features/shardingsphere-readwrite-splitting/shardingsphere-readwrite-splitting-distsql/shardingsphere-readwrite-splitting-distsql-statement/src/main/java/org/apache/shardingsphere/readwritesplitting/distsql/parser/statement/hint/ClearReadwriteSplittingHintStatement.java
+++ b/shardingsphere-features/shardingsphere-readwrite-splitting/shardingsphere-readwrite-splitting-distsql/shardingsphere-readwrite-splitting-distsql-statement/src/main/java/org/apache/shardingsphere/readwritesplitting/distsql/parser/statement/hint/ClearReadwriteSplittingHintStatement.java
@@ -18,9 +18,10 @@
package org.apache.shardingsphere.readwritesplitting.distsql.parser.statement.hint;
import org.apache.shardingsphere.distsql.parser.statement.ral.common.HintDistSQLStatement;
+import org.apache.shardingsphere.distsql.parser.subject.impl.ReadwriteSplittingSubjectSupplier;
/**
* Clear readwrite-splitting hint statement.
*/
-public final class ClearReadwriteSplittingHintStatement extends HintDistSQLStatement {
+public final class ClearReadwriteSplittingHintStatement extends HintDistSQLStatement implements ReadwriteSplittingSubjectSupplier {
}
diff --git a/shardingsphere-features/shardingsphere-readwrite-splitting/shardingsphere-readwrite-splitting-distsql/shardingsphere-readwrite-splitting-distsql-statement/src/main/java/org/apache/shardingsphere/readwritesplitting/distsql/parser/statement/hint/SetReadwriteSplittingHintStatement.java b/shardingsphere-features/shardingsphere-readwrite-splitting/shardingsphere-readwrite-splitting-distsql/shardingsphere-readwrite-splitting-distsql-statement/src/main/java/org/apache/shardingsphere [...]
index 181d32fcf00..da811036e7c 100644
--- a/shardingsphere-features/shardingsphere-readwrite-splitting/shardingsphere-readwrite-splitting-distsql/shardingsphere-readwrite-splitting-distsql-statement/src/main/java/org/apache/shardingsphere/readwritesplitting/distsql/parser/statement/hint/SetReadwriteSplittingHintStatement.java
+++ b/shardingsphere-features/shardingsphere-readwrite-splitting/shardingsphere-readwrite-splitting-distsql/shardingsphere-readwrite-splitting-distsql-statement/src/main/java/org/apache/shardingsphere/readwritesplitting/distsql/parser/statement/hint/SetReadwriteSplittingHintStatement.java
@@ -20,13 +20,14 @@ package org.apache.shardingsphere.readwritesplitting.distsql.parser.statement.hi
import lombok.Getter;
import lombok.RequiredArgsConstructor;
import org.apache.shardingsphere.distsql.parser.statement.ral.common.HintDistSQLStatement;
+import org.apache.shardingsphere.distsql.parser.subject.impl.ReadwriteSplittingSubjectSupplier;
/**
* Set readwrite-splitting hint statement.
*/
@RequiredArgsConstructor
@Getter
-public final class SetReadwriteSplittingHintStatement extends HintDistSQLStatement {
+public final class SetReadwriteSplittingHintStatement extends HintDistSQLStatement implements ReadwriteSplittingSubjectSupplier {
private final String source;
}
diff --git a/shardingsphere-features/shardingsphere-readwrite-splitting/shardingsphere-readwrite-splitting-distsql/shardingsphere-readwrite-splitting-distsql-statement/src/main/java/org/apache/shardingsphere/readwritesplitting/distsql/parser/statement/hint/ShowReadwriteSplittingHintStatusStatement.java b/shardingsphere-features/shardingsphere-readwrite-splitting/shardingsphere-readwrite-splitting-distsql/shardingsphere-readwrite-splitting-distsql-statement/src/main/java/org/apache/shardin [...]
index b3102429b3f..e6fcf3c32a6 100644
--- a/shardingsphere-features/shardingsphere-readwrite-splitting/shardingsphere-readwrite-splitting-distsql/shardingsphere-readwrite-splitting-distsql-statement/src/main/java/org/apache/shardingsphere/readwritesplitting/distsql/parser/statement/hint/ShowReadwriteSplittingHintStatusStatement.java
+++ b/shardingsphere-features/shardingsphere-readwrite-splitting/shardingsphere-readwrite-splitting-distsql/shardingsphere-readwrite-splitting-distsql-statement/src/main/java/org/apache/shardingsphere/readwritesplitting/distsql/parser/statement/hint/ShowReadwriteSplittingHintStatusStatement.java
@@ -18,9 +18,10 @@
package org.apache.shardingsphere.readwritesplitting.distsql.parser.statement.hint;
import org.apache.shardingsphere.distsql.parser.statement.ral.common.HintDistSQLStatement;
+import org.apache.shardingsphere.distsql.parser.subject.impl.ReadwriteSplittingSubjectSupplier;
/**
* Show readwrite-splitting hint status statement.
*/
-public final class ShowReadwriteSplittingHintStatusStatement extends HintDistSQLStatement {
+public final class ShowReadwriteSplittingHintStatusStatement extends HintDistSQLStatement implements ReadwriteSplittingSubjectSupplier {
}
diff --git a/shardingsphere-features/shardingsphere-readwrite-splitting/shardingsphere-readwrite-splitting-distsql/shardingsphere-readwrite-splitting-distsql-statement/src/main/java/org/apache/shardingsphere/readwritesplitting/distsql/parser/statement/status/SetReadwriteSplittingStatusStatement.java b/shardingsphere-features/shardingsphere-readwrite-splitting/shardingsphere-readwrite-splitting-distsql/shardingsphere-readwrite-splitting-distsql-statement/src/main/java/org/apache/shardingsp [...]
index b5ca6c3ef93..ec887c97bcf 100644
--- a/shardingsphere-features/shardingsphere-readwrite-splitting/shardingsphere-readwrite-splitting-distsql/shardingsphere-readwrite-splitting-distsql-statement/src/main/java/org/apache/shardingsphere/readwritesplitting/distsql/parser/statement/status/SetReadwriteSplittingStatusStatement.java
+++ b/shardingsphere-features/shardingsphere-readwrite-splitting/shardingsphere-readwrite-splitting-distsql/shardingsphere-readwrite-splitting-distsql-statement/src/main/java/org/apache/shardingsphere/readwritesplitting/distsql/parser/statement/status/SetReadwriteSplittingStatusStatement.java
@@ -20,6 +20,7 @@ package org.apache.shardingsphere.readwritesplitting.distsql.parser.statement.st
import lombok.Getter;
import lombok.RequiredArgsConstructor;
import org.apache.shardingsphere.distsql.parser.statement.ral.UpdatableRALStatement;
+import org.apache.shardingsphere.distsql.parser.subject.impl.ReadwriteSplittingSubjectSupplier;
import org.apache.shardingsphere.sql.parser.sql.common.segment.generic.SchemaSegment;
import org.apache.shardingsphere.sql.parser.sql.common.statement.available.FromSchemaAvailable;
@@ -30,7 +31,7 @@ import java.util.Optional;
*/
@Getter
@RequiredArgsConstructor
-public class SetReadwriteSplittingStatusStatement extends UpdatableRALStatement implements FromSchemaAvailable {
+public class SetReadwriteSplittingStatusStatement extends UpdatableRALStatement implements FromSchemaAvailable, ReadwriteSplittingSubjectSupplier {
private final String status;
diff --git a/shardingsphere-features/shardingsphere-shadow/shardingsphere-shadow-distsql/shardingsphere-shadow-distsql-statement/src/main/java/org/apache/shardingsphere/shadow/distsql/parser/statement/AlterShadowAlgorithmStatement.java b/shardingsphere-features/shardingsphere-shadow/shardingsphere-shadow-distsql/shardingsphere-shadow-distsql-statement/src/main/java/org/apache/shardingsphere/shadow/distsql/parser/statement/AlterShadowAlgorithmStatement.java
index 792ed4af9d4..342cfc048d9 100644
--- a/shardingsphere-features/shardingsphere-shadow/shardingsphere-shadow-distsql/shardingsphere-shadow-distsql-statement/src/main/java/org/apache/shardingsphere/shadow/distsql/parser/statement/AlterShadowAlgorithmStatement.java
+++ b/shardingsphere-features/shardingsphere-shadow/shardingsphere-shadow-distsql/shardingsphere-shadow-distsql-statement/src/main/java/org/apache/shardingsphere/shadow/distsql/parser/statement/AlterShadowAlgorithmStatement.java
@@ -19,6 +19,7 @@ package org.apache.shardingsphere.shadow.distsql.parser.statement;
import lombok.Getter;
import lombok.RequiredArgsConstructor;
+import org.apache.shardingsphere.distsql.parser.subject.impl.ShadowSubjectSupplier;
import org.apache.shardingsphere.distsql.parser.statement.rdl.alter.AlterRuleStatement;
import org.apache.shardingsphere.shadow.distsql.parser.segment.ShadowAlgorithmSegment;
@@ -29,7 +30,7 @@ import java.util.Collection;
*/
@RequiredArgsConstructor
@Getter
-public final class AlterShadowAlgorithmStatement extends AlterRuleStatement {
+public final class AlterShadowAlgorithmStatement extends AlterRuleStatement implements ShadowSubjectSupplier {
private final Collection<ShadowAlgorithmSegment> algorithms;
}
diff --git a/shardingsphere-features/shardingsphere-shadow/shardingsphere-shadow-distsql/shardingsphere-shadow-distsql-statement/src/main/java/org/apache/shardingsphere/shadow/distsql/parser/statement/AlterShadowRuleStatement.java b/shardingsphere-features/shardingsphere-shadow/shardingsphere-shadow-distsql/shardingsphere-shadow-distsql-statement/src/main/java/org/apache/shardingsphere/shadow/distsql/parser/statement/AlterShadowRuleStatement.java
index 83eaa3fa897..7c63f50ce12 100644
--- a/shardingsphere-features/shardingsphere-shadow/shardingsphere-shadow-distsql/shardingsphere-shadow-distsql-statement/src/main/java/org/apache/shardingsphere/shadow/distsql/parser/statement/AlterShadowRuleStatement.java
+++ b/shardingsphere-features/shardingsphere-shadow/shardingsphere-shadow-distsql/shardingsphere-shadow-distsql-statement/src/main/java/org/apache/shardingsphere/shadow/distsql/parser/statement/AlterShadowRuleStatement.java
@@ -19,6 +19,7 @@ package org.apache.shardingsphere.shadow.distsql.parser.statement;
import lombok.Getter;
import lombok.RequiredArgsConstructor;
+import org.apache.shardingsphere.distsql.parser.subject.impl.ShadowSubjectSupplier;
import org.apache.shardingsphere.distsql.parser.statement.rdl.alter.AlterRuleStatement;
import org.apache.shardingsphere.shadow.distsql.parser.segment.ShadowRuleSegment;
@@ -29,7 +30,7 @@ import java.util.Collection;
*/
@RequiredArgsConstructor
@Getter
-public final class AlterShadowRuleStatement extends AlterRuleStatement {
+public final class AlterShadowRuleStatement extends AlterRuleStatement implements ShadowSubjectSupplier {
private final Collection<ShadowRuleSegment> rules;
}
diff --git a/shardingsphere-features/shardingsphere-shadow/shardingsphere-shadow-distsql/shardingsphere-shadow-distsql-statement/src/main/java/org/apache/shardingsphere/shadow/distsql/parser/statement/CreateDefaultShadowAlgorithmStatement.java b/shardingsphere-features/shardingsphere-shadow/shardingsphere-shadow-distsql/shardingsphere-shadow-distsql-statement/src/main/java/org/apache/shardingsphere/shadow/distsql/parser/statement/CreateDefaultShadowAlgorithmStatement.java
index 82787e41ac8..b4f12148ae2 100644
--- a/shardingsphere-features/shardingsphere-shadow/shardingsphere-shadow-distsql/shardingsphere-shadow-distsql-statement/src/main/java/org/apache/shardingsphere/shadow/distsql/parser/statement/CreateDefaultShadowAlgorithmStatement.java
+++ b/shardingsphere-features/shardingsphere-shadow/shardingsphere-shadow-distsql/shardingsphere-shadow-distsql-statement/src/main/java/org/apache/shardingsphere/shadow/distsql/parser/statement/CreateDefaultShadowAlgorithmStatement.java
@@ -19,6 +19,7 @@ package org.apache.shardingsphere.shadow.distsql.parser.statement;
import lombok.Getter;
import lombok.RequiredArgsConstructor;
+import org.apache.shardingsphere.distsql.parser.subject.impl.ShadowSubjectSupplier;
import org.apache.shardingsphere.distsql.parser.statement.rdl.create.CreateRuleStatement;
/**
@@ -26,7 +27,7 @@ import org.apache.shardingsphere.distsql.parser.statement.rdl.create.CreateRuleS
*/
@RequiredArgsConstructor
@Getter
-public final class CreateDefaultShadowAlgorithmStatement extends CreateRuleStatement {
+public final class CreateDefaultShadowAlgorithmStatement extends CreateRuleStatement implements ShadowSubjectSupplier {
private final String algorithmName;
}
diff --git a/shardingsphere-features/shardingsphere-shadow/shardingsphere-shadow-distsql/shardingsphere-shadow-distsql-statement/src/main/java/org/apache/shardingsphere/shadow/distsql/parser/statement/CreateShadowAlgorithmStatement.java b/shardingsphere-features/shardingsphere-shadow/shardingsphere-shadow-distsql/shardingsphere-shadow-distsql-statement/src/main/java/org/apache/shardingsphere/shadow/distsql/parser/statement/CreateShadowAlgorithmStatement.java
index 2f452945833..2b1bc780cdc 100644
--- a/shardingsphere-features/shardingsphere-shadow/shardingsphere-shadow-distsql/shardingsphere-shadow-distsql-statement/src/main/java/org/apache/shardingsphere/shadow/distsql/parser/statement/CreateShadowAlgorithmStatement.java
+++ b/shardingsphere-features/shardingsphere-shadow/shardingsphere-shadow-distsql/shardingsphere-shadow-distsql-statement/src/main/java/org/apache/shardingsphere/shadow/distsql/parser/statement/CreateShadowAlgorithmStatement.java
@@ -19,6 +19,7 @@ package org.apache.shardingsphere.shadow.distsql.parser.statement;
import lombok.Getter;
import lombok.RequiredArgsConstructor;
+import org.apache.shardingsphere.distsql.parser.subject.impl.ShadowSubjectSupplier;
import org.apache.shardingsphere.distsql.parser.statement.rdl.create.CreateRuleStatement;
import org.apache.shardingsphere.shadow.distsql.parser.segment.ShadowAlgorithmSegment;
@@ -29,7 +30,7 @@ import java.util.Collection;
*/
@RequiredArgsConstructor
@Getter
-public final class CreateShadowAlgorithmStatement extends CreateRuleStatement {
+public final class CreateShadowAlgorithmStatement extends CreateRuleStatement implements ShadowSubjectSupplier {
private final Collection<ShadowAlgorithmSegment> algorithms;
}
diff --git a/shardingsphere-features/shardingsphere-shadow/shardingsphere-shadow-distsql/shardingsphere-shadow-distsql-statement/src/main/java/org/apache/shardingsphere/shadow/distsql/parser/statement/CreateShadowRuleStatement.java b/shardingsphere-features/shardingsphere-shadow/shardingsphere-shadow-distsql/shardingsphere-shadow-distsql-statement/src/main/java/org/apache/shardingsphere/shadow/distsql/parser/statement/CreateShadowRuleStatement.java
index b5c976ac0a1..28404afb26a 100644
--- a/shardingsphere-features/shardingsphere-shadow/shardingsphere-shadow-distsql/shardingsphere-shadow-distsql-statement/src/main/java/org/apache/shardingsphere/shadow/distsql/parser/statement/CreateShadowRuleStatement.java
+++ b/shardingsphere-features/shardingsphere-shadow/shardingsphere-shadow-distsql/shardingsphere-shadow-distsql-statement/src/main/java/org/apache/shardingsphere/shadow/distsql/parser/statement/CreateShadowRuleStatement.java
@@ -19,6 +19,7 @@ package org.apache.shardingsphere.shadow.distsql.parser.statement;
import lombok.Getter;
import lombok.RequiredArgsConstructor;
+import org.apache.shardingsphere.distsql.parser.subject.impl.ShadowSubjectSupplier;
import org.apache.shardingsphere.distsql.parser.statement.rdl.create.CreateRuleStatement;
import org.apache.shardingsphere.shadow.distsql.parser.segment.ShadowRuleSegment;
@@ -29,7 +30,7 @@ import java.util.Collection;
*/
@RequiredArgsConstructor
@Getter
-public final class CreateShadowRuleStatement extends CreateRuleStatement {
+public final class CreateShadowRuleStatement extends CreateRuleStatement implements ShadowSubjectSupplier {
private final Collection<ShadowRuleSegment> rules;
}
diff --git a/shardingsphere-features/shardingsphere-shadow/shardingsphere-shadow-distsql/shardingsphere-shadow-distsql-statement/src/main/java/org/apache/shardingsphere/shadow/distsql/parser/statement/DropDefaultShadowAlgorithmStatement.java b/shardingsphere-features/shardingsphere-shadow/shardingsphere-shadow-distsql/shardingsphere-shadow-distsql-statement/src/main/java/org/apache/shardingsphere/shadow/distsql/parser/statement/DropDefaultShadowAlgorithmStatement.java
index a05ed2b73e2..833bec9fa27 100644
--- a/shardingsphere-features/shardingsphere-shadow/shardingsphere-shadow-distsql/shardingsphere-shadow-distsql-statement/src/main/java/org/apache/shardingsphere/shadow/distsql/parser/statement/DropDefaultShadowAlgorithmStatement.java
+++ b/shardingsphere-features/shardingsphere-shadow/shardingsphere-shadow-distsql/shardingsphere-shadow-distsql-statement/src/main/java/org/apache/shardingsphere/shadow/distsql/parser/statement/DropDefaultShadowAlgorithmStatement.java
@@ -19,6 +19,7 @@ package org.apache.shardingsphere.shadow.distsql.parser.statement;
import lombok.Getter;
import lombok.RequiredArgsConstructor;
+import org.apache.shardingsphere.distsql.parser.subject.impl.ShadowSubjectSupplier;
import org.apache.shardingsphere.distsql.parser.statement.rdl.drop.DropRuleStatement;
/**
@@ -26,7 +27,7 @@ import org.apache.shardingsphere.distsql.parser.statement.rdl.drop.DropRuleState
*/
@RequiredArgsConstructor
@Getter
-public final class DropDefaultShadowAlgorithmStatement extends DropRuleStatement {
+public final class DropDefaultShadowAlgorithmStatement extends DropRuleStatement implements ShadowSubjectSupplier {
public DropDefaultShadowAlgorithmStatement(final boolean containsExistClause) {
setContainsExistClause(containsExistClause);
diff --git a/shardingsphere-features/shardingsphere-shadow/shardingsphere-shadow-distsql/shardingsphere-shadow-distsql-statement/src/main/java/org/apache/shardingsphere/shadow/distsql/parser/statement/DropShadowAlgorithmStatement.java b/shardingsphere-features/shardingsphere-shadow/shardingsphere-shadow-distsql/shardingsphere-shadow-distsql-statement/src/main/java/org/apache/shardingsphere/shadow/distsql/parser/statement/DropShadowAlgorithmStatement.java
index 6691ece1a67..650957006ff 100644
--- a/shardingsphere-features/shardingsphere-shadow/shardingsphere-shadow-distsql/shardingsphere-shadow-distsql-statement/src/main/java/org/apache/shardingsphere/shadow/distsql/parser/statement/DropShadowAlgorithmStatement.java
+++ b/shardingsphere-features/shardingsphere-shadow/shardingsphere-shadow-distsql/shardingsphere-shadow-distsql-statement/src/main/java/org/apache/shardingsphere/shadow/distsql/parser/statement/DropShadowAlgorithmStatement.java
@@ -19,6 +19,7 @@ package org.apache.shardingsphere.shadow.distsql.parser.statement;
import lombok.Getter;
import lombok.RequiredArgsConstructor;
+import org.apache.shardingsphere.distsql.parser.subject.impl.ShadowSubjectSupplier;
import org.apache.shardingsphere.distsql.parser.statement.rdl.drop.DropRuleStatement;
import java.util.Collection;
@@ -28,7 +29,7 @@ import java.util.Collection;
*/
@RequiredArgsConstructor
@Getter
-public final class DropShadowAlgorithmStatement extends DropRuleStatement {
+public final class DropShadowAlgorithmStatement extends DropRuleStatement implements ShadowSubjectSupplier {
private final Collection<String> algorithmNames;
diff --git a/shardingsphere-features/shardingsphere-shadow/shardingsphere-shadow-distsql/shardingsphere-shadow-distsql-statement/src/main/java/org/apache/shardingsphere/shadow/distsql/parser/statement/DropShadowRuleStatement.java b/shardingsphere-features/shardingsphere-shadow/shardingsphere-shadow-distsql/shardingsphere-shadow-distsql-statement/src/main/java/org/apache/shardingsphere/shadow/distsql/parser/statement/DropShadowRuleStatement.java
index 560c6501cff..44f5e0ef03f 100644
--- a/shardingsphere-features/shardingsphere-shadow/shardingsphere-shadow-distsql/shardingsphere-shadow-distsql-statement/src/main/java/org/apache/shardingsphere/shadow/distsql/parser/statement/DropShadowRuleStatement.java
+++ b/shardingsphere-features/shardingsphere-shadow/shardingsphere-shadow-distsql/shardingsphere-shadow-distsql-statement/src/main/java/org/apache/shardingsphere/shadow/distsql/parser/statement/DropShadowRuleStatement.java
@@ -19,6 +19,7 @@ package org.apache.shardingsphere.shadow.distsql.parser.statement;
import lombok.Getter;
import lombok.RequiredArgsConstructor;
+import org.apache.shardingsphere.distsql.parser.subject.impl.ShadowSubjectSupplier;
import org.apache.shardingsphere.distsql.parser.statement.rdl.drop.DropRuleStatement;
import java.util.Collection;
@@ -28,7 +29,7 @@ import java.util.Collection;
*/
@RequiredArgsConstructor
@Getter
-public final class DropShadowRuleStatement extends DropRuleStatement {
+public final class DropShadowRuleStatement extends DropRuleStatement implements ShadowSubjectSupplier {
private final Collection<String> ruleNames;
diff --git a/shardingsphere-features/shardingsphere-shadow/shardingsphere-shadow-distsql/shardingsphere-shadow-distsql-statement/src/main/java/org/apache/shardingsphere/shadow/distsql/parser/statement/ShowShadowAlgorithmsStatement.java b/shardingsphere-features/shardingsphere-shadow/shardingsphere-shadow-distsql/shardingsphere-shadow-distsql-statement/src/main/java/org/apache/shardingsphere/shadow/distsql/parser/statement/ShowShadowAlgorithmsStatement.java
index f74bcc90acc..849d97fd5ea 100644
--- a/shardingsphere-features/shardingsphere-shadow/shardingsphere-shadow-distsql/shardingsphere-shadow-distsql-statement/src/main/java/org/apache/shardingsphere/shadow/distsql/parser/statement/ShowShadowAlgorithmsStatement.java
+++ b/shardingsphere-features/shardingsphere-shadow/shardingsphere-shadow-distsql/shardingsphere-shadow-distsql-statement/src/main/java/org/apache/shardingsphere/shadow/distsql/parser/statement/ShowShadowAlgorithmsStatement.java
@@ -18,6 +18,7 @@
package org.apache.shardingsphere.shadow.distsql.parser.statement;
import lombok.Getter;
+import org.apache.shardingsphere.distsql.parser.subject.impl.ShadowSubjectSupplier;
import org.apache.shardingsphere.distsql.parser.statement.rql.show.ShowRulesStatement;
import org.apache.shardingsphere.sql.parser.sql.common.segment.generic.SchemaSegment;
@@ -25,7 +26,7 @@ import org.apache.shardingsphere.sql.parser.sql.common.segment.generic.SchemaSeg
* Show shadow algorithms statement.
*/
@Getter
-public final class ShowShadowAlgorithmsStatement extends ShowRulesStatement {
+public final class ShowShadowAlgorithmsStatement extends ShowRulesStatement implements ShadowSubjectSupplier {
public ShowShadowAlgorithmsStatement(final SchemaSegment schema) {
super(schema);
diff --git a/shardingsphere-features/shardingsphere-shadow/shardingsphere-shadow-distsql/shardingsphere-shadow-distsql-statement/src/main/java/org/apache/shardingsphere/shadow/distsql/parser/statement/ShowShadowRulesStatement.java b/shardingsphere-features/shardingsphere-shadow/shardingsphere-shadow-distsql/shardingsphere-shadow-distsql-statement/src/main/java/org/apache/shardingsphere/shadow/distsql/parser/statement/ShowShadowRulesStatement.java
index da6adbb7c53..29068b4a66d 100644
--- a/shardingsphere-features/shardingsphere-shadow/shardingsphere-shadow-distsql/shardingsphere-shadow-distsql-statement/src/main/java/org/apache/shardingsphere/shadow/distsql/parser/statement/ShowShadowRulesStatement.java
+++ b/shardingsphere-features/shardingsphere-shadow/shardingsphere-shadow-distsql/shardingsphere-shadow-distsql-statement/src/main/java/org/apache/shardingsphere/shadow/distsql/parser/statement/ShowShadowRulesStatement.java
@@ -18,6 +18,7 @@
package org.apache.shardingsphere.shadow.distsql.parser.statement;
import lombok.Getter;
+import org.apache.shardingsphere.distsql.parser.subject.impl.ShadowSubjectSupplier;
import org.apache.shardingsphere.distsql.parser.statement.rql.show.ShowRulesStatement;
import org.apache.shardingsphere.sql.parser.sql.common.segment.generic.SchemaSegment;
@@ -25,7 +26,7 @@ import org.apache.shardingsphere.sql.parser.sql.common.segment.generic.SchemaSeg
* Show shadow rules statement.
*/
@Getter
-public final class ShowShadowRulesStatement extends ShowRulesStatement {
+public final class ShowShadowRulesStatement extends ShowRulesStatement implements ShadowSubjectSupplier {
private final String ruleName;
diff --git a/shardingsphere-features/shardingsphere-shadow/shardingsphere-shadow-distsql/shardingsphere-shadow-distsql-statement/src/main/java/org/apache/shardingsphere/shadow/distsql/parser/statement/ShowShadowTableRulesStatement.java b/shardingsphere-features/shardingsphere-shadow/shardingsphere-shadow-distsql/shardingsphere-shadow-distsql-statement/src/main/java/org/apache/shardingsphere/shadow/distsql/parser/statement/ShowShadowTableRulesStatement.java
index cb804227ded..43ca910aec4 100644
--- a/shardingsphere-features/shardingsphere-shadow/shardingsphere-shadow-distsql/shardingsphere-shadow-distsql-statement/src/main/java/org/apache/shardingsphere/shadow/distsql/parser/statement/ShowShadowTableRulesStatement.java
+++ b/shardingsphere-features/shardingsphere-shadow/shardingsphere-shadow-distsql/shardingsphere-shadow-distsql-statement/src/main/java/org/apache/shardingsphere/shadow/distsql/parser/statement/ShowShadowTableRulesStatement.java
@@ -18,6 +18,7 @@
package org.apache.shardingsphere.shadow.distsql.parser.statement;
import lombok.Getter;
+import org.apache.shardingsphere.distsql.parser.subject.impl.ShadowSubjectSupplier;
import org.apache.shardingsphere.distsql.parser.statement.rql.show.ShowRulesStatement;
import org.apache.shardingsphere.sql.parser.sql.common.segment.generic.SchemaSegment;
@@ -25,7 +26,7 @@ import org.apache.shardingsphere.sql.parser.sql.common.segment.generic.SchemaSeg
* Show shadow table rules statement.
*/
@Getter
-public final class ShowShadowTableRulesStatement extends ShowRulesStatement {
+public final class ShowShadowTableRulesStatement extends ShowRulesStatement implements ShadowSubjectSupplier {
public ShowShadowTableRulesStatement(final SchemaSegment schema) {
super(schema);
diff --git a/shardingsphere-features/shardingsphere-sharding/shardingsphere-sharding-distsql/shardingsphere-sharding-distsql-statement/src/main/java/org/apache/shardingsphere/scaling/distsql/statement/ApplyScalingStatement.java b/shardingsphere-features/shardingsphere-sharding/shardingsphere-sharding-distsql/shardingsphere-sharding-distsql-statement/src/main/java/org/apache/shardingsphere/scaling/distsql/statement/ApplyScalingStatement.java
index d475fc1859d..601b9e30727 100644
--- a/shardingsphere-features/shardingsphere-sharding/shardingsphere-sharding-distsql/shardingsphere-sharding-distsql-statement/src/main/java/org/apache/shardingsphere/scaling/distsql/statement/ApplyScalingStatement.java
+++ b/shardingsphere-features/shardingsphere-sharding/shardingsphere-sharding-distsql/shardingsphere-sharding-distsql-statement/src/main/java/org/apache/shardingsphere/scaling/distsql/statement/ApplyScalingStatement.java
@@ -19,6 +19,7 @@ package org.apache.shardingsphere.scaling.distsql.statement;
import lombok.Getter;
import lombok.RequiredArgsConstructor;
+import org.apache.shardingsphere.distsql.parser.subject.impl.ScalingSubjectSupplier;
import org.apache.shardingsphere.distsql.parser.statement.ral.scaling.UpdatableScalingRALStatement;
/**
@@ -26,7 +27,7 @@ import org.apache.shardingsphere.distsql.parser.statement.ral.scaling.UpdatableS
*/
@RequiredArgsConstructor
@Getter
-public final class ApplyScalingStatement extends UpdatableScalingRALStatement {
+public final class ApplyScalingStatement extends UpdatableScalingRALStatement implements ScalingSubjectSupplier {
private final String jobId;
}
diff --git a/shardingsphere-features/shardingsphere-sharding/shardingsphere-sharding-distsql/shardingsphere-sharding-distsql-statement/src/main/java/org/apache/shardingsphere/scaling/distsql/statement/CheckScalingStatement.java b/shardingsphere-features/shardingsphere-sharding/shardingsphere-sharding-distsql/shardingsphere-sharding-distsql-statement/src/main/java/org/apache/shardingsphere/scaling/distsql/statement/CheckScalingStatement.java
index 258b8706920..702c355f9e9 100644
--- a/shardingsphere-features/shardingsphere-sharding/shardingsphere-sharding-distsql/shardingsphere-sharding-distsql-statement/src/main/java/org/apache/shardingsphere/scaling/distsql/statement/CheckScalingStatement.java
+++ b/shardingsphere-features/shardingsphere-sharding/shardingsphere-sharding-distsql/shardingsphere-sharding-distsql-statement/src/main/java/org/apache/shardingsphere/scaling/distsql/statement/CheckScalingStatement.java
@@ -19,6 +19,7 @@ package org.apache.shardingsphere.scaling.distsql.statement;
import lombok.Getter;
import lombok.RequiredArgsConstructor;
+import org.apache.shardingsphere.distsql.parser.subject.impl.ScalingSubjectSupplier;
import org.apache.shardingsphere.distsql.parser.segment.AlgorithmSegment;
import org.apache.shardingsphere.distsql.parser.statement.ral.scaling.QueryableScalingRALStatement;
@@ -27,7 +28,7 @@ import org.apache.shardingsphere.distsql.parser.statement.ral.scaling.QueryableS
*/
@RequiredArgsConstructor
@Getter
-public final class CheckScalingStatement extends QueryableScalingRALStatement {
+public final class CheckScalingStatement extends QueryableScalingRALStatement implements ScalingSubjectSupplier {
private final String jobId;
diff --git a/shardingsphere-features/shardingsphere-sharding/shardingsphere-sharding-distsql/shardingsphere-sharding-distsql-statement/src/main/java/org/apache/shardingsphere/scaling/distsql/statement/CreateShardingScalingRuleStatement.java b/shardingsphere-features/shardingsphere-sharding/shardingsphere-sharding-distsql/shardingsphere-sharding-distsql-statement/src/main/java/org/apache/shardingsphere/scaling/distsql/statement/CreateShardingScalingRuleStatement.java
index f0e351ffbf8..7b24f4cea51 100644
--- a/shardingsphere-features/shardingsphere-sharding/shardingsphere-sharding-distsql/shardingsphere-sharding-distsql-statement/src/main/java/org/apache/shardingsphere/scaling/distsql/statement/CreateShardingScalingRuleStatement.java
+++ b/shardingsphere-features/shardingsphere-sharding/shardingsphere-sharding-distsql/shardingsphere-sharding-distsql-statement/src/main/java/org/apache/shardingsphere/scaling/distsql/statement/CreateShardingScalingRuleStatement.java
@@ -20,6 +20,7 @@ package org.apache.shardingsphere.scaling.distsql.statement;
import lombok.Getter;
import lombok.RequiredArgsConstructor;
import lombok.Setter;
+import org.apache.shardingsphere.distsql.parser.subject.impl.ScalingSubjectSupplier;
import org.apache.shardingsphere.distsql.parser.statement.rdl.create.CreateRuleStatement;
import org.apache.shardingsphere.scaling.distsql.statement.segment.ShardingScalingRuleConfigurationSegment;
@@ -29,7 +30,7 @@ import org.apache.shardingsphere.scaling.distsql.statement.segment.ShardingScali
@RequiredArgsConstructor
@Getter
@Setter
-public final class CreateShardingScalingRuleStatement extends CreateRuleStatement {
+public final class CreateShardingScalingRuleStatement extends CreateRuleStatement implements ScalingSubjectSupplier {
private final String scalingName;
diff --git a/shardingsphere-features/shardingsphere-sharding/shardingsphere-sharding-distsql/shardingsphere-sharding-distsql-statement/src/main/java/org/apache/shardingsphere/scaling/distsql/statement/DisableShardingScalingRuleStatement.java b/shardingsphere-features/shardingsphere-sharding/shardingsphere-sharding-distsql/shardingsphere-sharding-distsql-statement/src/main/java/org/apache/shardingsphere/scaling/distsql/statement/DisableShardingScalingRuleStatement.java
index a1283038e45..5ad33305fbb 100644
--- a/shardingsphere-features/shardingsphere-sharding/shardingsphere-sharding-distsql/shardingsphere-sharding-distsql-statement/src/main/java/org/apache/shardingsphere/scaling/distsql/statement/DisableShardingScalingRuleStatement.java
+++ b/shardingsphere-features/shardingsphere-sharding/shardingsphere-sharding-distsql/shardingsphere-sharding-distsql-statement/src/main/java/org/apache/shardingsphere/scaling/distsql/statement/DisableShardingScalingRuleStatement.java
@@ -19,6 +19,7 @@ package org.apache.shardingsphere.scaling.distsql.statement;
import lombok.Getter;
import lombok.RequiredArgsConstructor;
+import org.apache.shardingsphere.distsql.parser.subject.impl.ScalingSubjectSupplier;
import org.apache.shardingsphere.distsql.parser.statement.rdl.alter.AlterRuleStatement;
/**
@@ -26,7 +27,7 @@ import org.apache.shardingsphere.distsql.parser.statement.rdl.alter.AlterRuleSta
*/
@RequiredArgsConstructor
@Getter
-public final class DisableShardingScalingRuleStatement extends AlterRuleStatement {
+public final class DisableShardingScalingRuleStatement extends AlterRuleStatement implements ScalingSubjectSupplier {
private final String scalingName;
}
diff --git a/shardingsphere-features/shardingsphere-sharding/shardingsphere-sharding-distsql/shardingsphere-sharding-distsql-statement/src/main/java/org/apache/shardingsphere/scaling/distsql/statement/DropScalingStatement.java b/shardingsphere-features/shardingsphere-sharding/shardingsphere-sharding-distsql/shardingsphere-sharding-distsql-statement/src/main/java/org/apache/shardingsphere/scaling/distsql/statement/DropScalingStatement.java
index 85b7269d420..455ad7730b5 100644
--- a/shardingsphere-features/shardingsphere-sharding/shardingsphere-sharding-distsql/shardingsphere-sharding-distsql-statement/src/main/java/org/apache/shardingsphere/scaling/distsql/statement/DropScalingStatement.java
+++ b/shardingsphere-features/shardingsphere-sharding/shardingsphere-sharding-distsql/shardingsphere-sharding-distsql-statement/src/main/java/org/apache/shardingsphere/scaling/distsql/statement/DropScalingStatement.java
@@ -19,6 +19,7 @@ package org.apache.shardingsphere.scaling.distsql.statement;
import lombok.Getter;
import lombok.RequiredArgsConstructor;
+import org.apache.shardingsphere.distsql.parser.subject.impl.ScalingSubjectSupplier;
import org.apache.shardingsphere.distsql.parser.statement.ral.scaling.UpdatableScalingRALStatement;
/**
@@ -26,7 +27,7 @@ import org.apache.shardingsphere.distsql.parser.statement.ral.scaling.UpdatableS
*/
@RequiredArgsConstructor
@Getter
-public final class DropScalingStatement extends UpdatableScalingRALStatement {
+public final class DropScalingStatement extends UpdatableScalingRALStatement implements ScalingSubjectSupplier {
private final String jobId;
}
diff --git a/shardingsphere-features/shardingsphere-sharding/shardingsphere-sharding-distsql/shardingsphere-sharding-distsql-statement/src/main/java/org/apache/shardingsphere/scaling/distsql/statement/DropShardingScalingRuleStatement.java b/shardingsphere-features/shardingsphere-sharding/shardingsphere-sharding-distsql/shardingsphere-sharding-distsql-statement/src/main/java/org/apache/shardingsphere/scaling/distsql/statement/DropShardingScalingRuleStatement.java
index 5d551afcf75..c990d0ab257 100644
--- a/shardingsphere-features/shardingsphere-sharding/shardingsphere-sharding-distsql/shardingsphere-sharding-distsql-statement/src/main/java/org/apache/shardingsphere/scaling/distsql/statement/DropShardingScalingRuleStatement.java
+++ b/shardingsphere-features/shardingsphere-sharding/shardingsphere-sharding-distsql/shardingsphere-sharding-distsql-statement/src/main/java/org/apache/shardingsphere/scaling/distsql/statement/DropShardingScalingRuleStatement.java
@@ -19,6 +19,7 @@ package org.apache.shardingsphere.scaling.distsql.statement;
import lombok.Getter;
import lombok.RequiredArgsConstructor;
+import org.apache.shardingsphere.distsql.parser.subject.impl.ScalingSubjectSupplier;
import org.apache.shardingsphere.distsql.parser.statement.rdl.drop.DropRuleStatement;
/**
@@ -26,7 +27,7 @@ import org.apache.shardingsphere.distsql.parser.statement.rdl.drop.DropRuleState
*/
@RequiredArgsConstructor
@Getter
-public final class DropShardingScalingRuleStatement extends DropRuleStatement {
+public final class DropShardingScalingRuleStatement extends DropRuleStatement implements ScalingSubjectSupplier {
private final String scalingName;
diff --git a/shardingsphere-features/shardingsphere-sharding/shardingsphere-sharding-distsql/shardingsphere-sharding-distsql-statement/src/main/java/org/apache/shardingsphere/scaling/distsql/statement/EnableShardingScalingRuleStatement.java b/shardingsphere-features/shardingsphere-sharding/shardingsphere-sharding-distsql/shardingsphere-sharding-distsql-statement/src/main/java/org/apache/shardingsphere/scaling/distsql/statement/EnableShardingScalingRuleStatement.java
index 6470b9acb8d..21bbd842a02 100644
--- a/shardingsphere-features/shardingsphere-sharding/shardingsphere-sharding-distsql/shardingsphere-sharding-distsql-statement/src/main/java/org/apache/shardingsphere/scaling/distsql/statement/EnableShardingScalingRuleStatement.java
+++ b/shardingsphere-features/shardingsphere-sharding/shardingsphere-sharding-distsql/shardingsphere-sharding-distsql-statement/src/main/java/org/apache/shardingsphere/scaling/distsql/statement/EnableShardingScalingRuleStatement.java
@@ -19,6 +19,7 @@ package org.apache.shardingsphere.scaling.distsql.statement;
import lombok.Getter;
import lombok.RequiredArgsConstructor;
+import org.apache.shardingsphere.distsql.parser.subject.impl.ScalingSubjectSupplier;
import org.apache.shardingsphere.distsql.parser.statement.rdl.alter.AlterRuleStatement;
/**
@@ -26,7 +27,7 @@ import org.apache.shardingsphere.distsql.parser.statement.rdl.alter.AlterRuleSta
*/
@RequiredArgsConstructor
@Getter
-public final class EnableShardingScalingRuleStatement extends AlterRuleStatement {
+public final class EnableShardingScalingRuleStatement extends AlterRuleStatement implements ScalingSubjectSupplier {
private final String scalingName;
}
diff --git a/shardingsphere-features/shardingsphere-sharding/shardingsphere-sharding-distsql/shardingsphere-sharding-distsql-statement/src/main/java/org/apache/shardingsphere/scaling/distsql/statement/ResetScalingStatement.java b/shardingsphere-features/shardingsphere-sharding/shardingsphere-sharding-distsql/shardingsphere-sharding-distsql-statement/src/main/java/org/apache/shardingsphere/scaling/distsql/statement/ResetScalingStatement.java
index 3ac3ba09f0b..3004b833130 100644
--- a/shardingsphere-features/shardingsphere-sharding/shardingsphere-sharding-distsql/shardingsphere-sharding-distsql-statement/src/main/java/org/apache/shardingsphere/scaling/distsql/statement/ResetScalingStatement.java
+++ b/shardingsphere-features/shardingsphere-sharding/shardingsphere-sharding-distsql/shardingsphere-sharding-distsql-statement/src/main/java/org/apache/shardingsphere/scaling/distsql/statement/ResetScalingStatement.java
@@ -19,6 +19,7 @@ package org.apache.shardingsphere.scaling.distsql.statement;
import lombok.Getter;
import lombok.RequiredArgsConstructor;
+import org.apache.shardingsphere.distsql.parser.subject.impl.ScalingSubjectSupplier;
import org.apache.shardingsphere.distsql.parser.statement.ral.scaling.UpdatableScalingRALStatement;
/**
@@ -26,7 +27,7 @@ import org.apache.shardingsphere.distsql.parser.statement.ral.scaling.UpdatableS
*/
@RequiredArgsConstructor
@Getter
-public final class ResetScalingStatement extends UpdatableScalingRALStatement {
+public final class ResetScalingStatement extends UpdatableScalingRALStatement implements ScalingSubjectSupplier {
private final String jobId;
}
diff --git a/shardingsphere-features/shardingsphere-sharding/shardingsphere-sharding-distsql/shardingsphere-sharding-distsql-statement/src/main/java/org/apache/shardingsphere/scaling/distsql/statement/RestoreScalingSourceWritingStatement.java b/shardingsphere-features/shardingsphere-sharding/shardingsphere-sharding-distsql/shardingsphere-sharding-distsql-statement/src/main/java/org/apache/shardingsphere/scaling/distsql/statement/RestoreScalingSourceWritingStatement.java
index c368ec5bbcf..3c096070ea6 100644
--- a/shardingsphere-features/shardingsphere-sharding/shardingsphere-sharding-distsql/shardingsphere-sharding-distsql-statement/src/main/java/org/apache/shardingsphere/scaling/distsql/statement/RestoreScalingSourceWritingStatement.java
+++ b/shardingsphere-features/shardingsphere-sharding/shardingsphere-sharding-distsql/shardingsphere-sharding-distsql-statement/src/main/java/org/apache/shardingsphere/scaling/distsql/statement/RestoreScalingSourceWritingStatement.java
@@ -19,6 +19,7 @@ package org.apache.shardingsphere.scaling.distsql.statement;
import lombok.Getter;
import lombok.RequiredArgsConstructor;
+import org.apache.shardingsphere.distsql.parser.subject.impl.ScalingSubjectSupplier;
import org.apache.shardingsphere.distsql.parser.statement.ral.scaling.UpdatableScalingRALStatement;
/**
@@ -26,7 +27,7 @@ import org.apache.shardingsphere.distsql.parser.statement.ral.scaling.UpdatableS
*/
@RequiredArgsConstructor
@Getter
-public final class RestoreScalingSourceWritingStatement extends UpdatableScalingRALStatement {
+public final class RestoreScalingSourceWritingStatement extends UpdatableScalingRALStatement implements ScalingSubjectSupplier {
private final String jobId;
}
diff --git a/shardingsphere-features/shardingsphere-sharding/shardingsphere-sharding-distsql/shardingsphere-sharding-distsql-statement/src/main/java/org/apache/shardingsphere/scaling/distsql/statement/ShowScalingCheckAlgorithmsStatement.java b/shardingsphere-features/shardingsphere-sharding/shardingsphere-sharding-distsql/shardingsphere-sharding-distsql-statement/src/main/java/org/apache/shardingsphere/scaling/distsql/statement/ShowScalingCheckAlgorithmsStatement.java
index acd4ca33653..8170c1abd4a 100644
--- a/shardingsphere-features/shardingsphere-sharding/shardingsphere-sharding-distsql/shardingsphere-sharding-distsql-statement/src/main/java/org/apache/shardingsphere/scaling/distsql/statement/ShowScalingCheckAlgorithmsStatement.java
+++ b/shardingsphere-features/shardingsphere-sharding/shardingsphere-sharding-distsql/shardingsphere-sharding-distsql-statement/src/main/java/org/apache/shardingsphere/scaling/distsql/statement/ShowScalingCheckAlgorithmsStatement.java
@@ -17,10 +17,11 @@
package org.apache.shardingsphere.scaling.distsql.statement;
+import org.apache.shardingsphere.distsql.parser.subject.impl.ScalingSubjectSupplier;
import org.apache.shardingsphere.distsql.parser.statement.ral.scaling.QueryableScalingRALStatement;
/**
* Show scaling check algorithms statement.
*/
-public final class ShowScalingCheckAlgorithmsStatement extends QueryableScalingRALStatement {
+public final class ShowScalingCheckAlgorithmsStatement extends QueryableScalingRALStatement implements ScalingSubjectSupplier {
}
diff --git a/shardingsphere-features/shardingsphere-sharding/shardingsphere-sharding-distsql/shardingsphere-sharding-distsql-statement/src/main/java/org/apache/shardingsphere/scaling/distsql/statement/ShowScalingListStatement.java b/shardingsphere-features/shardingsphere-sharding/shardingsphere-sharding-distsql/shardingsphere-sharding-distsql-statement/src/main/java/org/apache/shardingsphere/scaling/distsql/statement/ShowScalingListStatement.java
index 8cd86fb8eb5..d05e32f8772 100644
--- a/shardingsphere-features/shardingsphere-sharding/shardingsphere-sharding-distsql/shardingsphere-sharding-distsql-statement/src/main/java/org/apache/shardingsphere/scaling/distsql/statement/ShowScalingListStatement.java
+++ b/shardingsphere-features/shardingsphere-sharding/shardingsphere-sharding-distsql/shardingsphere-sharding-distsql-statement/src/main/java/org/apache/shardingsphere/scaling/distsql/statement/ShowScalingListStatement.java
@@ -17,10 +17,11 @@
package org.apache.shardingsphere.scaling.distsql.statement;
+import org.apache.shardingsphere.distsql.parser.subject.impl.ScalingSubjectSupplier;
import org.apache.shardingsphere.distsql.parser.statement.ral.scaling.QueryableScalingRALStatement;
/**
* Show scaling list statement.
*/
-public final class ShowScalingListStatement extends QueryableScalingRALStatement {
+public final class ShowScalingListStatement extends QueryableScalingRALStatement implements ScalingSubjectSupplier {
}
diff --git a/shardingsphere-features/shardingsphere-sharding/shardingsphere-sharding-distsql/shardingsphere-sharding-distsql-statement/src/main/java/org/apache/shardingsphere/scaling/distsql/statement/ShowScalingStatusStatement.java b/shardingsphere-features/shardingsphere-sharding/shardingsphere-sharding-distsql/shardingsphere-sharding-distsql-statement/src/main/java/org/apache/shardingsphere/scaling/distsql/statement/ShowScalingStatusStatement.java
index 114b302b62d..a929edfd17b 100644
--- a/shardingsphere-features/shardingsphere-sharding/shardingsphere-sharding-distsql/shardingsphere-sharding-distsql-statement/src/main/java/org/apache/shardingsphere/scaling/distsql/statement/ShowScalingStatusStatement.java
+++ b/shardingsphere-features/shardingsphere-sharding/shardingsphere-sharding-distsql/shardingsphere-sharding-distsql-statement/src/main/java/org/apache/shardingsphere/scaling/distsql/statement/ShowScalingStatusStatement.java
@@ -19,6 +19,7 @@ package org.apache.shardingsphere.scaling.distsql.statement;
import lombok.Getter;
import lombok.RequiredArgsConstructor;
+import org.apache.shardingsphere.distsql.parser.subject.impl.ScalingSubjectSupplier;
import org.apache.shardingsphere.distsql.parser.statement.ral.scaling.QueryableScalingRALStatement;
/**
@@ -26,7 +27,7 @@ import org.apache.shardingsphere.distsql.parser.statement.ral.scaling.QueryableS
*/
@RequiredArgsConstructor
@Getter
-public final class ShowScalingStatusStatement extends QueryableScalingRALStatement {
+public final class ShowScalingStatusStatement extends QueryableScalingRALStatement implements ScalingSubjectSupplier {
private final String jobId;
}
diff --git a/shardingsphere-features/shardingsphere-sharding/shardingsphere-sharding-distsql/shardingsphere-sharding-distsql-statement/src/main/java/org/apache/shardingsphere/scaling/distsql/statement/ShowShardingScalingRulesStatement.java b/shardingsphere-features/shardingsphere-sharding/shardingsphere-sharding-distsql/shardingsphere-sharding-distsql-statement/src/main/java/org/apache/shardingsphere/scaling/distsql/statement/ShowShardingScalingRulesStatement.java
index fa2c2f44dcd..319db2877b2 100644
--- a/shardingsphere-features/shardingsphere-sharding/shardingsphere-sharding-distsql/shardingsphere-sharding-distsql-statement/src/main/java/org/apache/shardingsphere/scaling/distsql/statement/ShowShardingScalingRulesStatement.java
+++ b/shardingsphere-features/shardingsphere-sharding/shardingsphere-sharding-distsql/shardingsphere-sharding-distsql-statement/src/main/java/org/apache/shardingsphere/scaling/distsql/statement/ShowShardingScalingRulesStatement.java
@@ -17,13 +17,14 @@
package org.apache.shardingsphere.scaling.distsql.statement;
+import org.apache.shardingsphere.distsql.parser.subject.impl.ScalingSubjectSupplier;
import org.apache.shardingsphere.distsql.parser.statement.rql.show.ShowRulesStatement;
import org.apache.shardingsphere.sql.parser.sql.common.segment.generic.SchemaSegment;
/**
* Show sharding scaling rules statement.
*/
-public final class ShowShardingScalingRulesStatement extends ShowRulesStatement {
+public final class ShowShardingScalingRulesStatement extends ShowRulesStatement implements ScalingSubjectSupplier {
public ShowShardingScalingRulesStatement(final SchemaSegment schema) {
super(schema);
diff --git a/shardingsphere-features/shardingsphere-sharding/shardingsphere-sharding-distsql/shardingsphere-sharding-distsql-statement/src/main/java/org/apache/shardingsphere/scaling/distsql/statement/StartScalingStatement.java b/shardingsphere-features/shardingsphere-sharding/shardingsphere-sharding-distsql/shardingsphere-sharding-distsql-statement/src/main/java/org/apache/shardingsphere/scaling/distsql/statement/StartScalingStatement.java
index 37e8ad1a750..77f971c8123 100644
--- a/shardingsphere-features/shardingsphere-sharding/shardingsphere-sharding-distsql/shardingsphere-sharding-distsql-statement/src/main/java/org/apache/shardingsphere/scaling/distsql/statement/StartScalingStatement.java
+++ b/shardingsphere-features/shardingsphere-sharding/shardingsphere-sharding-distsql/shardingsphere-sharding-distsql-statement/src/main/java/org/apache/shardingsphere/scaling/distsql/statement/StartScalingStatement.java
@@ -19,6 +19,7 @@ package org.apache.shardingsphere.scaling.distsql.statement;
import lombok.Getter;
import lombok.RequiredArgsConstructor;
+import org.apache.shardingsphere.distsql.parser.subject.impl.ScalingSubjectSupplier;
import org.apache.shardingsphere.distsql.parser.statement.ral.scaling.UpdatableScalingRALStatement;
/**
@@ -26,7 +27,7 @@ import org.apache.shardingsphere.distsql.parser.statement.ral.scaling.UpdatableS
*/
@RequiredArgsConstructor
@Getter
-public final class StartScalingStatement extends UpdatableScalingRALStatement {
+public final class StartScalingStatement extends UpdatableScalingRALStatement implements ScalingSubjectSupplier {
private final String jobId;
}
diff --git a/shardingsphere-features/shardingsphere-sharding/shardingsphere-sharding-distsql/shardingsphere-sharding-distsql-statement/src/main/java/org/apache/shardingsphere/scaling/distsql/statement/StopScalingSourceWritingStatement.java b/shardingsphere-features/shardingsphere-sharding/shardingsphere-sharding-distsql/shardingsphere-sharding-distsql-statement/src/main/java/org/apache/shardingsphere/scaling/distsql/statement/StopScalingSourceWritingStatement.java
index 811c8cb2742..a4feeae86ca 100644
--- a/shardingsphere-features/shardingsphere-sharding/shardingsphere-sharding-distsql/shardingsphere-sharding-distsql-statement/src/main/java/org/apache/shardingsphere/scaling/distsql/statement/StopScalingSourceWritingStatement.java
+++ b/shardingsphere-features/shardingsphere-sharding/shardingsphere-sharding-distsql/shardingsphere-sharding-distsql-statement/src/main/java/org/apache/shardingsphere/scaling/distsql/statement/StopScalingSourceWritingStatement.java
@@ -19,6 +19,7 @@ package org.apache.shardingsphere.scaling.distsql.statement;
import lombok.Getter;
import lombok.RequiredArgsConstructor;
+import org.apache.shardingsphere.distsql.parser.subject.impl.ScalingSubjectSupplier;
import org.apache.shardingsphere.distsql.parser.statement.ral.scaling.UpdatableScalingRALStatement;
/**
@@ -26,7 +27,7 @@ import org.apache.shardingsphere.distsql.parser.statement.ral.scaling.UpdatableS
*/
@RequiredArgsConstructor
@Getter
-public final class StopScalingSourceWritingStatement extends UpdatableScalingRALStatement {
+public final class StopScalingSourceWritingStatement extends UpdatableScalingRALStatement implements ScalingSubjectSupplier {
private final String jobId;
}
diff --git a/shardingsphere-features/shardingsphere-sharding/shardingsphere-sharding-distsql/shardingsphere-sharding-distsql-statement/src/main/java/org/apache/shardingsphere/scaling/distsql/statement/StopScalingStatement.java b/shardingsphere-features/shardingsphere-sharding/shardingsphere-sharding-distsql/shardingsphere-sharding-distsql-statement/src/main/java/org/apache/shardingsphere/scaling/distsql/statement/StopScalingStatement.java
index 2c2a1acad93..44c95199231 100644
--- a/shardingsphere-features/shardingsphere-sharding/shardingsphere-sharding-distsql/shardingsphere-sharding-distsql-statement/src/main/java/org/apache/shardingsphere/scaling/distsql/statement/StopScalingStatement.java
+++ b/shardingsphere-features/shardingsphere-sharding/shardingsphere-sharding-distsql/shardingsphere-sharding-distsql-statement/src/main/java/org/apache/shardingsphere/scaling/distsql/statement/StopScalingStatement.java
@@ -19,6 +19,7 @@ package org.apache.shardingsphere.scaling.distsql.statement;
import lombok.Getter;
import lombok.RequiredArgsConstructor;
+import org.apache.shardingsphere.distsql.parser.subject.impl.ScalingSubjectSupplier;
import org.apache.shardingsphere.distsql.parser.statement.ral.scaling.UpdatableScalingRALStatement;
/**
@@ -26,7 +27,7 @@ import org.apache.shardingsphere.distsql.parser.statement.ral.scaling.UpdatableS
*/
@RequiredArgsConstructor
@Getter
-public final class StopScalingStatement extends UpdatableScalingRALStatement {
+public final class StopScalingStatement extends UpdatableScalingRALStatement implements ScalingSubjectSupplier {
private final String jobId;
}
diff --git a/shardingsphere-features/shardingsphere-sharding/shardingsphere-sharding-distsql/shardingsphere-sharding-distsql-statement/src/main/java/org/apache/shardingsphere/sharding/distsql/parser/statement/AlterDefaultShardingStrategyStatement.java b/shardingsphere-features/shardingsphere-sharding/shardingsphere-sharding-distsql/shardingsphere-sharding-distsql-statement/src/main/java/org/apache/shardingsphere/sharding/distsql/parser/statement/AlterDefaultShardingStrategyStatement.java
index 4e006e953c7..c409c39f213 100644
--- a/shardingsphere-features/shardingsphere-sharding/shardingsphere-sharding-distsql/shardingsphere-sharding-distsql-statement/src/main/java/org/apache/shardingsphere/sharding/distsql/parser/statement/AlterDefaultShardingStrategyStatement.java
+++ b/shardingsphere-features/shardingsphere-sharding/shardingsphere-sharding-distsql/shardingsphere-sharding-distsql-statement/src/main/java/org/apache/shardingsphere/sharding/distsql/parser/statement/AlterDefaultShardingStrategyStatement.java
@@ -21,13 +21,14 @@ import lombok.Getter;
import lombok.RequiredArgsConstructor;
import org.apache.shardingsphere.distsql.parser.segment.AlgorithmSegment;
import org.apache.shardingsphere.distsql.parser.statement.rdl.alter.AlterRuleStatement;
+import org.apache.shardingsphere.distsql.parser.subject.impl.ShardingSubjectSupplier;
/**
* Alter default sharding strategy statement.
*/
@RequiredArgsConstructor
@Getter
-public final class AlterDefaultShardingStrategyStatement extends AlterRuleStatement {
+public final class AlterDefaultShardingStrategyStatement extends AlterRuleStatement implements ShardingSubjectSupplier {
private final String defaultType;
diff --git a/shardingsphere-features/shardingsphere-sharding/shardingsphere-sharding-distsql/shardingsphere-sharding-distsql-statement/src/main/java/org/apache/shardingsphere/sharding/distsql/parser/statement/AlterShardingAlgorithmStatement.java b/shardingsphere-features/shardingsphere-sharding/shardingsphere-sharding-distsql/shardingsphere-sharding-distsql-statement/src/main/java/org/apache/shardingsphere/sharding/distsql/parser/statement/AlterShardingAlgorithmStatement.java
index 11615a33aa2..ec0600ed2f5 100644
--- a/shardingsphere-features/shardingsphere-sharding/shardingsphere-sharding-distsql/shardingsphere-sharding-distsql-statement/src/main/java/org/apache/shardingsphere/sharding/distsql/parser/statement/AlterShardingAlgorithmStatement.java
+++ b/shardingsphere-features/shardingsphere-sharding/shardingsphere-sharding-distsql/shardingsphere-sharding-distsql-statement/src/main/java/org/apache/shardingsphere/sharding/distsql/parser/statement/AlterShardingAlgorithmStatement.java
@@ -20,6 +20,7 @@ package org.apache.shardingsphere.sharding.distsql.parser.statement;
import lombok.Getter;
import lombok.RequiredArgsConstructor;
import org.apache.shardingsphere.distsql.parser.statement.rdl.alter.AlterRuleStatement;
+import org.apache.shardingsphere.distsql.parser.subject.impl.ShardingSubjectSupplier;
import org.apache.shardingsphere.sharding.distsql.parser.segment.ShardingAlgorithmSegment;
import java.util.Collection;
@@ -29,7 +30,7 @@ import java.util.Collection;
*/
@RequiredArgsConstructor
@Getter
-public final class AlterShardingAlgorithmStatement extends AlterRuleStatement {
+public final class AlterShardingAlgorithmStatement extends AlterRuleStatement implements ShardingSubjectSupplier {
private final Collection<ShardingAlgorithmSegment> algorithmSegments;
}
diff --git a/shardingsphere-features/shardingsphere-sharding/shardingsphere-sharding-distsql/shardingsphere-sharding-distsql-statement/src/main/java/org/apache/shardingsphere/sharding/distsql/parser/statement/AlterShardingBindingTableRulesStatement.java b/shardingsphere-features/shardingsphere-sharding/shardingsphere-sharding-distsql/shardingsphere-sharding-distsql-statement/src/main/java/org/apache/shardingsphere/sharding/distsql/parser/statement/AlterShardingBindingTableRulesStatement.java
index b6fbd480860..62cc9a8172d 100644
--- a/shardingsphere-features/shardingsphere-sharding/shardingsphere-sharding-distsql/shardingsphere-sharding-distsql-statement/src/main/java/org/apache/shardingsphere/sharding/distsql/parser/statement/AlterShardingBindingTableRulesStatement.java
+++ b/shardingsphere-features/shardingsphere-sharding/shardingsphere-sharding-distsql/shardingsphere-sharding-distsql-statement/src/main/java/org/apache/shardingsphere/sharding/distsql/parser/statement/AlterShardingBindingTableRulesStatement.java
@@ -20,6 +20,7 @@ package org.apache.shardingsphere.sharding.distsql.parser.statement;
import lombok.Getter;
import lombok.RequiredArgsConstructor;
import org.apache.shardingsphere.distsql.parser.statement.rdl.alter.AlterRuleStatement;
+import org.apache.shardingsphere.distsql.parser.subject.impl.ShardingSubjectSupplier;
import org.apache.shardingsphere.sharding.distsql.parser.segment.BindingTableRuleSegment;
import java.util.Collection;
@@ -30,7 +31,7 @@ import java.util.LinkedList;
*/
@RequiredArgsConstructor
@Getter
-public final class AlterShardingBindingTableRulesStatement extends AlterRuleStatement {
+public final class AlterShardingBindingTableRulesStatement extends AlterRuleStatement implements ShardingSubjectSupplier {
private final Collection<BindingTableRuleSegment> rules;
@@ -46,4 +47,9 @@ public final class AlterShardingBindingTableRulesStatement extends AlterRuleStat
}
return result;
}
+
+ @Override
+ public Collection<String> getSubjectNames() {
+ return getBindingTables();
+ }
}
diff --git a/shardingsphere-features/shardingsphere-sharding/shardingsphere-sharding-distsql/shardingsphere-sharding-distsql-statement/src/main/java/org/apache/shardingsphere/sharding/distsql/parser/statement/AlterShardingBroadcastTableRulesStatement.java b/shardingsphere-features/shardingsphere-sharding/shardingsphere-sharding-distsql/shardingsphere-sharding-distsql-statement/src/main/java/org/apache/shardingsphere/sharding/distsql/parser/statement/AlterShardingBroadcastTableRulesStatement.java
index 4fd4feab2a3..05a094872ec 100644
--- a/shardingsphere-features/shardingsphere-sharding/shardingsphere-sharding-distsql/shardingsphere-sharding-distsql-statement/src/main/java/org/apache/shardingsphere/sharding/distsql/parser/statement/AlterShardingBroadcastTableRulesStatement.java
+++ b/shardingsphere-features/shardingsphere-sharding/shardingsphere-sharding-distsql/shardingsphere-sharding-distsql-statement/src/main/java/org/apache/shardingsphere/sharding/distsql/parser/statement/AlterShardingBroadcastTableRulesStatement.java
@@ -20,6 +20,7 @@ package org.apache.shardingsphere.sharding.distsql.parser.statement;
import lombok.Getter;
import lombok.RequiredArgsConstructor;
import org.apache.shardingsphere.distsql.parser.statement.rdl.alter.AlterRuleStatement;
+import org.apache.shardingsphere.distsql.parser.subject.impl.ShardingSubjectSupplier;
import java.util.Collection;
@@ -28,7 +29,12 @@ import java.util.Collection;
*/
@RequiredArgsConstructor
@Getter
-public final class AlterShardingBroadcastTableRulesStatement extends AlterRuleStatement {
+public final class AlterShardingBroadcastTableRulesStatement extends AlterRuleStatement implements ShardingSubjectSupplier {
private final Collection<String> tables;
+
+ @Override
+ public Collection<String> getSubjectNames() {
+ return tables;
+ }
}
diff --git a/shardingsphere-features/shardingsphere-sharding/shardingsphere-sharding-distsql/shardingsphere-sharding-distsql-statement/src/main/java/org/apache/shardingsphere/sharding/distsql/parser/statement/AlterShardingKeyGeneratorStatement.java b/shardingsphere-features/shardingsphere-sharding/shardingsphere-sharding-distsql/shardingsphere-sharding-distsql-statement/src/main/java/org/apache/shardingsphere/sharding/distsql/parser/statement/AlterShardingKeyGeneratorStatement.java
index f4f7bac17be..354546a1c16 100644
--- a/shardingsphere-features/shardingsphere-sharding/shardingsphere-sharding-distsql/shardingsphere-sharding-distsql-statement/src/main/java/org/apache/shardingsphere/sharding/distsql/parser/statement/AlterShardingKeyGeneratorStatement.java
+++ b/shardingsphere-features/shardingsphere-sharding/shardingsphere-sharding-distsql/shardingsphere-sharding-distsql-statement/src/main/java/org/apache/shardingsphere/sharding/distsql/parser/statement/AlterShardingKeyGeneratorStatement.java
@@ -20,6 +20,7 @@ package org.apache.shardingsphere.sharding.distsql.parser.statement;
import lombok.Getter;
import lombok.RequiredArgsConstructor;
import org.apache.shardingsphere.distsql.parser.statement.rdl.alter.AlterRuleStatement;
+import org.apache.shardingsphere.distsql.parser.subject.impl.ShardingSubjectSupplier;
import org.apache.shardingsphere.sharding.distsql.parser.segment.ShardingKeyGeneratorSegment;
import java.util.Collection;
@@ -29,7 +30,7 @@ import java.util.Collection;
*/
@RequiredArgsConstructor
@Getter
-public final class AlterShardingKeyGeneratorStatement extends AlterRuleStatement {
+public final class AlterShardingKeyGeneratorStatement extends AlterRuleStatement implements ShardingSubjectSupplier {
private final Collection<ShardingKeyGeneratorSegment> keyGeneratorSegments;
}
diff --git a/shardingsphere-features/shardingsphere-sharding/shardingsphere-sharding-distsql/shardingsphere-sharding-distsql-statement/src/main/java/org/apache/shardingsphere/sharding/distsql/parser/statement/AlterShardingTableRuleStatement.java b/shardingsphere-features/shardingsphere-sharding/shardingsphere-sharding-distsql/shardingsphere-sharding-distsql-statement/src/main/java/org/apache/shardingsphere/sharding/distsql/parser/statement/AlterShardingTableRuleStatement.java
index 662996c3756..03ee674b745 100644
--- a/shardingsphere-features/shardingsphere-sharding/shardingsphere-sharding-distsql/shardingsphere-sharding-distsql-statement/src/main/java/org/apache/shardingsphere/sharding/distsql/parser/statement/AlterShardingTableRuleStatement.java
+++ b/shardingsphere-features/shardingsphere-sharding/shardingsphere-sharding-distsql/shardingsphere-sharding-distsql-statement/src/main/java/org/apache/shardingsphere/sharding/distsql/parser/statement/AlterShardingTableRuleStatement.java
@@ -20,16 +20,23 @@ package org.apache.shardingsphere.sharding.distsql.parser.statement;
import lombok.Getter;
import lombok.RequiredArgsConstructor;
import org.apache.shardingsphere.distsql.parser.statement.rdl.alter.AlterRuleStatement;
+import org.apache.shardingsphere.distsql.parser.subject.impl.ShardingSubjectSupplier;
import org.apache.shardingsphere.sharding.distsql.parser.segment.AbstractTableRuleSegment;
import java.util.Collection;
+import java.util.stream.Collectors;
/**
* Alter sharding table rule statement.
*/
@RequiredArgsConstructor
@Getter
-public final class AlterShardingTableRuleStatement extends AlterRuleStatement {
+public final class AlterShardingTableRuleStatement extends AlterRuleStatement implements ShardingSubjectSupplier {
private final Collection<AbstractTableRuleSegment> rules;
+
+ @Override
+ public Collection<String> getSubjectNames() {
+ return rules.stream().map(AbstractTableRuleSegment::getLogicTable).collect(Collectors.toSet());
+ }
}
diff --git a/shardingsphere-features/shardingsphere-sharding/shardingsphere-sharding-distsql/shardingsphere-sharding-distsql-statement/src/main/java/org/apache/shardingsphere/sharding/distsql/parser/statement/CreateDefaultShardingStrategyStatement.java b/shardingsphere-features/shardingsphere-sharding/shardingsphere-sharding-distsql/shardingsphere-sharding-distsql-statement/src/main/java/org/apache/shardingsphere/sharding/distsql/parser/statement/CreateDefaultShardingStrategyStatement.java
index cd42f255134..865bf596bfd 100644
--- a/shardingsphere-features/shardingsphere-sharding/shardingsphere-sharding-distsql/shardingsphere-sharding-distsql-statement/src/main/java/org/apache/shardingsphere/sharding/distsql/parser/statement/CreateDefaultShardingStrategyStatement.java
+++ b/shardingsphere-features/shardingsphere-sharding/shardingsphere-sharding-distsql/shardingsphere-sharding-distsql-statement/src/main/java/org/apache/shardingsphere/sharding/distsql/parser/statement/CreateDefaultShardingStrategyStatement.java
@@ -21,13 +21,14 @@ import lombok.Getter;
import lombok.RequiredArgsConstructor;
import org.apache.shardingsphere.distsql.parser.segment.AlgorithmSegment;
import org.apache.shardingsphere.distsql.parser.statement.rdl.create.CreateRuleStatement;
+import org.apache.shardingsphere.distsql.parser.subject.impl.ShardingSubjectSupplier;
/**
* Create default sharding strategy statement.
*/
@RequiredArgsConstructor
@Getter
-public final class CreateDefaultShardingStrategyStatement extends CreateRuleStatement {
+public final class CreateDefaultShardingStrategyStatement extends CreateRuleStatement implements ShardingSubjectSupplier {
private final String defaultType;
diff --git a/shardingsphere-features/shardingsphere-sharding/shardingsphere-sharding-distsql/shardingsphere-sharding-distsql-statement/src/main/java/org/apache/shardingsphere/sharding/distsql/parser/statement/CreateShardingAlgorithmStatement.java b/shardingsphere-features/shardingsphere-sharding/shardingsphere-sharding-distsql/shardingsphere-sharding-distsql-statement/src/main/java/org/apache/shardingsphere/sharding/distsql/parser/statement/CreateShardingAlgorithmStatement.java
index e9be4b85dcd..058011a9f31 100644
--- a/shardingsphere-features/shardingsphere-sharding/shardingsphere-sharding-distsql/shardingsphere-sharding-distsql-statement/src/main/java/org/apache/shardingsphere/sharding/distsql/parser/statement/CreateShardingAlgorithmStatement.java
+++ b/shardingsphere-features/shardingsphere-sharding/shardingsphere-sharding-distsql/shardingsphere-sharding-distsql-statement/src/main/java/org/apache/shardingsphere/sharding/distsql/parser/statement/CreateShardingAlgorithmStatement.java
@@ -20,6 +20,7 @@ package org.apache.shardingsphere.sharding.distsql.parser.statement;
import lombok.Getter;
import lombok.RequiredArgsConstructor;
import org.apache.shardingsphere.distsql.parser.statement.rdl.create.CreateRuleStatement;
+import org.apache.shardingsphere.distsql.parser.subject.impl.ShardingSubjectSupplier;
import org.apache.shardingsphere.sharding.distsql.parser.segment.ShardingAlgorithmSegment;
import java.util.Collection;
@@ -29,7 +30,7 @@ import java.util.Collection;
*/
@RequiredArgsConstructor
@Getter
-public final class CreateShardingAlgorithmStatement extends CreateRuleStatement {
+public final class CreateShardingAlgorithmStatement extends CreateRuleStatement implements ShardingSubjectSupplier {
private final Collection<ShardingAlgorithmSegment> algorithmSegments;
}
diff --git a/shardingsphere-features/shardingsphere-sharding/shardingsphere-sharding-distsql/shardingsphere-sharding-distsql-statement/src/main/java/org/apache/shardingsphere/sharding/distsql/parser/statement/CreateShardingBindingTableRulesStatement.java b/shardingsphere-features/shardingsphere-sharding/shardingsphere-sharding-distsql/shardingsphere-sharding-distsql-statement/src/main/java/org/apache/shardingsphere/sharding/distsql/parser/statement/CreateShardingBindingTableRulesStatement.java
index 3eca763f640..a14c944ff4c 100644
--- a/shardingsphere-features/shardingsphere-sharding/shardingsphere-sharding-distsql/shardingsphere-sharding-distsql-statement/src/main/java/org/apache/shardingsphere/sharding/distsql/parser/statement/CreateShardingBindingTableRulesStatement.java
+++ b/shardingsphere-features/shardingsphere-sharding/shardingsphere-sharding-distsql/shardingsphere-sharding-distsql-statement/src/main/java/org/apache/shardingsphere/sharding/distsql/parser/statement/CreateShardingBindingTableRulesStatement.java
@@ -20,6 +20,7 @@ package org.apache.shardingsphere.sharding.distsql.parser.statement;
import lombok.Getter;
import lombok.RequiredArgsConstructor;
import org.apache.shardingsphere.distsql.parser.statement.rdl.create.CreateRuleStatement;
+import org.apache.shardingsphere.distsql.parser.subject.impl.ShardingSubjectSupplier;
import org.apache.shardingsphere.sharding.distsql.parser.segment.BindingTableRuleSegment;
import java.util.Collection;
@@ -30,7 +31,7 @@ import java.util.LinkedList;
*/
@RequiredArgsConstructor
@Getter
-public final class CreateShardingBindingTableRulesStatement extends CreateRuleStatement {
+public final class CreateShardingBindingTableRulesStatement extends CreateRuleStatement implements ShardingSubjectSupplier {
private final Collection<BindingTableRuleSegment> rules;
@@ -46,4 +47,9 @@ public final class CreateShardingBindingTableRulesStatement extends CreateRuleSt
}
return result;
}
+
+ @Override
+ public Collection<String> getSubjectNames() {
+ return getBindingTables();
+ }
}
diff --git a/shardingsphere-features/shardingsphere-sharding/shardingsphere-sharding-distsql/shardingsphere-sharding-distsql-statement/src/main/java/org/apache/shardingsphere/sharding/distsql/parser/statement/CreateShardingBroadcastTableRulesStatement.java b/shardingsphere-features/shardingsphere-sharding/shardingsphere-sharding-distsql/shardingsphere-sharding-distsql-statement/src/main/java/org/apache/shardingsphere/sharding/distsql/parser/statement/CreateShardingBroadcastTableRulesState [...]
index 68120803ace..954daf560ca 100644
--- a/shardingsphere-features/shardingsphere-sharding/shardingsphere-sharding-distsql/shardingsphere-sharding-distsql-statement/src/main/java/org/apache/shardingsphere/sharding/distsql/parser/statement/CreateShardingBroadcastTableRulesStatement.java
+++ b/shardingsphere-features/shardingsphere-sharding/shardingsphere-sharding-distsql/shardingsphere-sharding-distsql-statement/src/main/java/org/apache/shardingsphere/sharding/distsql/parser/statement/CreateShardingBroadcastTableRulesStatement.java
@@ -20,6 +20,7 @@ package org.apache.shardingsphere.sharding.distsql.parser.statement;
import lombok.Getter;
import lombok.RequiredArgsConstructor;
import org.apache.shardingsphere.distsql.parser.statement.rdl.create.CreateRuleStatement;
+import org.apache.shardingsphere.distsql.parser.subject.impl.ShardingSubjectSupplier;
import java.util.Collection;
@@ -28,7 +29,7 @@ import java.util.Collection;
*/
@RequiredArgsConstructor
@Getter
-public final class CreateShardingBroadcastTableRulesStatement extends CreateRuleStatement {
+public final class CreateShardingBroadcastTableRulesStatement extends CreateRuleStatement implements ShardingSubjectSupplier {
private final Collection<String> tables;
}
diff --git a/shardingsphere-features/shardingsphere-sharding/shardingsphere-sharding-distsql/shardingsphere-sharding-distsql-statement/src/main/java/org/apache/shardingsphere/sharding/distsql/parser/statement/CreateShardingKeyGeneratorStatement.java b/shardingsphere-features/shardingsphere-sharding/shardingsphere-sharding-distsql/shardingsphere-sharding-distsql-statement/src/main/java/org/apache/shardingsphere/sharding/distsql/parser/statement/CreateShardingKeyGeneratorStatement.java
index 2bc1cbd7f58..2406df76405 100644
--- a/shardingsphere-features/shardingsphere-sharding/shardingsphere-sharding-distsql/shardingsphere-sharding-distsql-statement/src/main/java/org/apache/shardingsphere/sharding/distsql/parser/statement/CreateShardingKeyGeneratorStatement.java
+++ b/shardingsphere-features/shardingsphere-sharding/shardingsphere-sharding-distsql/shardingsphere-sharding-distsql-statement/src/main/java/org/apache/shardingsphere/sharding/distsql/parser/statement/CreateShardingKeyGeneratorStatement.java
@@ -20,6 +20,7 @@ package org.apache.shardingsphere.sharding.distsql.parser.statement;
import lombok.Getter;
import lombok.RequiredArgsConstructor;
import org.apache.shardingsphere.distsql.parser.statement.rdl.create.CreateRuleStatement;
+import org.apache.shardingsphere.distsql.parser.subject.impl.ShardingSubjectSupplier;
import org.apache.shardingsphere.sharding.distsql.parser.segment.ShardingKeyGeneratorSegment;
import java.util.Collection;
@@ -29,7 +30,7 @@ import java.util.Collection;
*/
@RequiredArgsConstructor
@Getter
-public final class CreateShardingKeyGeneratorStatement extends CreateRuleStatement {
+public final class CreateShardingKeyGeneratorStatement extends CreateRuleStatement implements ShardingSubjectSupplier {
private final Collection<ShardingKeyGeneratorSegment> keyGeneratorSegments;
}
diff --git a/shardingsphere-features/shardingsphere-sharding/shardingsphere-sharding-distsql/shardingsphere-sharding-distsql-statement/src/main/java/org/apache/shardingsphere/sharding/distsql/parser/statement/CreateShardingTableRuleStatement.java b/shardingsphere-features/shardingsphere-sharding/shardingsphere-sharding-distsql/shardingsphere-sharding-distsql-statement/src/main/java/org/apache/shardingsphere/sharding/distsql/parser/statement/CreateShardingTableRuleStatement.java
index 12a96528f45..78353558007 100644
--- a/shardingsphere-features/shardingsphere-sharding/shardingsphere-sharding-distsql/shardingsphere-sharding-distsql-statement/src/main/java/org/apache/shardingsphere/sharding/distsql/parser/statement/CreateShardingTableRuleStatement.java
+++ b/shardingsphere-features/shardingsphere-sharding/shardingsphere-sharding-distsql/shardingsphere-sharding-distsql-statement/src/main/java/org/apache/shardingsphere/sharding/distsql/parser/statement/CreateShardingTableRuleStatement.java
@@ -20,16 +20,23 @@ package org.apache.shardingsphere.sharding.distsql.parser.statement;
import lombok.Getter;
import lombok.RequiredArgsConstructor;
import org.apache.shardingsphere.distsql.parser.statement.rdl.create.CreateRuleStatement;
+import org.apache.shardingsphere.distsql.parser.subject.impl.ShardingSubjectSupplier;
import org.apache.shardingsphere.sharding.distsql.parser.segment.AbstractTableRuleSegment;
import java.util.Collection;
+import java.util.stream.Collectors;
/**
* Create sharding table rule statement.
*/
@RequiredArgsConstructor
@Getter
-public final class CreateShardingTableRuleStatement extends CreateRuleStatement {
+public final class CreateShardingTableRuleStatement extends CreateRuleStatement implements ShardingSubjectSupplier {
private final Collection<AbstractTableRuleSegment> rules;
+
+ @Override
+ public Collection<String> getSubjectNames() {
+ return rules.stream().map(AbstractTableRuleSegment::getLogicTable).collect(Collectors.toSet());
+ }
}
diff --git a/shardingsphere-features/shardingsphere-sharding/shardingsphere-sharding-distsql/shardingsphere-sharding-distsql-statement/src/main/java/org/apache/shardingsphere/sharding/distsql/parser/statement/DropDefaultShardingStrategyStatement.java b/shardingsphere-features/shardingsphere-sharding/shardingsphere-sharding-distsql/shardingsphere-sharding-distsql-statement/src/main/java/org/apache/shardingsphere/sharding/distsql/parser/statement/DropDefaultShardingStrategyStatement.java
index 1de82c146f4..6da71fde85f 100644
--- a/shardingsphere-features/shardingsphere-sharding/shardingsphere-sharding-distsql/shardingsphere-sharding-distsql-statement/src/main/java/org/apache/shardingsphere/sharding/distsql/parser/statement/DropDefaultShardingStrategyStatement.java
+++ b/shardingsphere-features/shardingsphere-sharding/shardingsphere-sharding-distsql/shardingsphere-sharding-distsql-statement/src/main/java/org/apache/shardingsphere/sharding/distsql/parser/statement/DropDefaultShardingStrategyStatement.java
@@ -20,13 +20,14 @@ package org.apache.shardingsphere.sharding.distsql.parser.statement;
import lombok.Getter;
import lombok.RequiredArgsConstructor;
import org.apache.shardingsphere.distsql.parser.statement.rdl.drop.DropRuleStatement;
+import org.apache.shardingsphere.distsql.parser.subject.impl.ShardingSubjectSupplier;
/**
* Drop default sharding strategy statement.
*/
@RequiredArgsConstructor
@Getter
-public final class DropDefaultShardingStrategyStatement extends DropRuleStatement {
+public final class DropDefaultShardingStrategyStatement extends DropRuleStatement implements ShardingSubjectSupplier {
private final String defaultType;
diff --git a/shardingsphere-features/shardingsphere-sharding/shardingsphere-sharding-distsql/shardingsphere-sharding-distsql-statement/src/main/java/org/apache/shardingsphere/sharding/distsql/parser/statement/DropShardingAlgorithmStatement.java b/shardingsphere-features/shardingsphere-sharding/shardingsphere-sharding-distsql/shardingsphere-sharding-distsql-statement/src/main/java/org/apache/shardingsphere/sharding/distsql/parser/statement/DropShardingAlgorithmStatement.java
index db4d4ec2b1d..2d05a46eab6 100644
--- a/shardingsphere-features/shardingsphere-sharding/shardingsphere-sharding-distsql/shardingsphere-sharding-distsql-statement/src/main/java/org/apache/shardingsphere/sharding/distsql/parser/statement/DropShardingAlgorithmStatement.java
+++ b/shardingsphere-features/shardingsphere-sharding/shardingsphere-sharding-distsql/shardingsphere-sharding-distsql-statement/src/main/java/org/apache/shardingsphere/sharding/distsql/parser/statement/DropShardingAlgorithmStatement.java
@@ -20,6 +20,7 @@ package org.apache.shardingsphere.sharding.distsql.parser.statement;
import lombok.Getter;
import lombok.RequiredArgsConstructor;
import org.apache.shardingsphere.distsql.parser.statement.rdl.drop.DropRuleStatement;
+import org.apache.shardingsphere.distsql.parser.subject.impl.ShardingSubjectSupplier;
import java.util.Collection;
@@ -28,7 +29,7 @@ import java.util.Collection;
*/
@RequiredArgsConstructor
@Getter
-public final class DropShardingAlgorithmStatement extends DropRuleStatement {
+public final class DropShardingAlgorithmStatement extends DropRuleStatement implements ShardingSubjectSupplier {
private final Collection<String> algorithmNames;
}
diff --git a/shardingsphere-features/shardingsphere-sharding/shardingsphere-sharding-distsql/shardingsphere-sharding-distsql-statement/src/main/java/org/apache/shardingsphere/sharding/distsql/parser/statement/DropShardingBindingTableRulesStatement.java b/shardingsphere-features/shardingsphere-sharding/shardingsphere-sharding-distsql/shardingsphere-sharding-distsql-statement/src/main/java/org/apache/shardingsphere/sharding/distsql/parser/statement/DropShardingBindingTableRulesStatement.java
index 4d6a9a2cdb4..3a77fa5288f 100644
--- a/shardingsphere-features/shardingsphere-sharding/shardingsphere-sharding-distsql/shardingsphere-sharding-distsql-statement/src/main/java/org/apache/shardingsphere/sharding/distsql/parser/statement/DropShardingBindingTableRulesStatement.java
+++ b/shardingsphere-features/shardingsphere-sharding/shardingsphere-sharding-distsql/shardingsphere-sharding-distsql-statement/src/main/java/org/apache/shardingsphere/sharding/distsql/parser/statement/DropShardingBindingTableRulesStatement.java
@@ -20,6 +20,7 @@ package org.apache.shardingsphere.sharding.distsql.parser.statement;
import lombok.Getter;
import lombok.RequiredArgsConstructor;
import org.apache.shardingsphere.distsql.parser.statement.rdl.drop.DropRuleStatement;
+import org.apache.shardingsphere.distsql.parser.subject.impl.ShardingSubjectSupplier;
import org.apache.shardingsphere.sharding.distsql.parser.segment.BindingTableRuleSegment;
import java.util.Collection;
@@ -30,7 +31,7 @@ import java.util.LinkedList;
*/
@RequiredArgsConstructor
@Getter
-public final class DropShardingBindingTableRulesStatement extends DropRuleStatement {
+public final class DropShardingBindingTableRulesStatement extends DropRuleStatement implements ShardingSubjectSupplier {
private final Collection<BindingTableRuleSegment> rules;
diff --git a/shardingsphere-features/shardingsphere-sharding/shardingsphere-sharding-distsql/shardingsphere-sharding-distsql-statement/src/main/java/org/apache/shardingsphere/sharding/distsql/parser/statement/DropShardingBroadcastTableRulesStatement.java b/shardingsphere-features/shardingsphere-sharding/shardingsphere-sharding-distsql/shardingsphere-sharding-distsql-statement/src/main/java/org/apache/shardingsphere/sharding/distsql/parser/statement/DropShardingBroadcastTableRulesStatement.java
index f5745724d36..49f20ac2b97 100644
--- a/shardingsphere-features/shardingsphere-sharding/shardingsphere-sharding-distsql/shardingsphere-sharding-distsql-statement/src/main/java/org/apache/shardingsphere/sharding/distsql/parser/statement/DropShardingBroadcastTableRulesStatement.java
+++ b/shardingsphere-features/shardingsphere-sharding/shardingsphere-sharding-distsql/shardingsphere-sharding-distsql-statement/src/main/java/org/apache/shardingsphere/sharding/distsql/parser/statement/DropShardingBroadcastTableRulesStatement.java
@@ -20,6 +20,7 @@ package org.apache.shardingsphere.sharding.distsql.parser.statement;
import lombok.Getter;
import lombok.RequiredArgsConstructor;
import org.apache.shardingsphere.distsql.parser.statement.rdl.drop.DropRuleStatement;
+import org.apache.shardingsphere.distsql.parser.subject.impl.ShardingSubjectSupplier;
import java.util.Collection;
@@ -28,7 +29,7 @@ import java.util.Collection;
*/
@Getter
@RequiredArgsConstructor
-public final class DropShardingBroadcastTableRulesStatement extends DropRuleStatement {
+public final class DropShardingBroadcastTableRulesStatement extends DropRuleStatement implements ShardingSubjectSupplier {
private final Collection<String> rules;
@@ -36,4 +37,9 @@ public final class DropShardingBroadcastTableRulesStatement extends DropRuleStat
setContainsExistClause(containsExistClause);
this.rules = rules;
}
+
+ @Override
+ public Collection<String> getSubjectNames() {
+ return rules;
+ }
}
diff --git a/shardingsphere-features/shardingsphere-sharding/shardingsphere-sharding-distsql/shardingsphere-sharding-distsql-statement/src/main/java/org/apache/shardingsphere/sharding/distsql/parser/statement/DropShardingKeyGeneratorStatement.java b/shardingsphere-features/shardingsphere-sharding/shardingsphere-sharding-distsql/shardingsphere-sharding-distsql-statement/src/main/java/org/apache/shardingsphere/sharding/distsql/parser/statement/DropShardingKeyGeneratorStatement.java
index 5c1b4d7368d..53d9524f8b3 100644
--- a/shardingsphere-features/shardingsphere-sharding/shardingsphere-sharding-distsql/shardingsphere-sharding-distsql-statement/src/main/java/org/apache/shardingsphere/sharding/distsql/parser/statement/DropShardingKeyGeneratorStatement.java
+++ b/shardingsphere-features/shardingsphere-sharding/shardingsphere-sharding-distsql/shardingsphere-sharding-distsql-statement/src/main/java/org/apache/shardingsphere/sharding/distsql/parser/statement/DropShardingKeyGeneratorStatement.java
@@ -20,6 +20,7 @@ package org.apache.shardingsphere.sharding.distsql.parser.statement;
import lombok.Getter;
import lombok.RequiredArgsConstructor;
import org.apache.shardingsphere.distsql.parser.statement.rdl.drop.DropRuleStatement;
+import org.apache.shardingsphere.distsql.parser.subject.impl.ShardingSubjectSupplier;
import java.util.Collection;
@@ -28,7 +29,7 @@ import java.util.Collection;
*/
@RequiredArgsConstructor
@Getter
-public final class DropShardingKeyGeneratorStatement extends DropRuleStatement {
+public final class DropShardingKeyGeneratorStatement extends DropRuleStatement implements ShardingSubjectSupplier {
private final Collection<String> keyGeneratorNames;
}
diff --git a/shardingsphere-features/shardingsphere-sharding/shardingsphere-sharding-distsql/shardingsphere-sharding-distsql-statement/src/main/java/org/apache/shardingsphere/sharding/distsql/parser/statement/DropShardingTableRuleStatement.java b/shardingsphere-features/shardingsphere-sharding/shardingsphere-sharding-distsql/shardingsphere-sharding-distsql-statement/src/main/java/org/apache/shardingsphere/sharding/distsql/parser/statement/DropShardingTableRuleStatement.java
index 949e17b4e21..29926ab979f 100644
--- a/shardingsphere-features/shardingsphere-sharding/shardingsphere-sharding-distsql/shardingsphere-sharding-distsql-statement/src/main/java/org/apache/shardingsphere/sharding/distsql/parser/statement/DropShardingTableRuleStatement.java
+++ b/shardingsphere-features/shardingsphere-sharding/shardingsphere-sharding-distsql/shardingsphere-sharding-distsql-statement/src/main/java/org/apache/shardingsphere/sharding/distsql/parser/statement/DropShardingTableRuleStatement.java
@@ -20,6 +20,7 @@ package org.apache.shardingsphere.sharding.distsql.parser.statement;
import lombok.Getter;
import lombok.RequiredArgsConstructor;
import org.apache.shardingsphere.distsql.parser.statement.rdl.drop.DropRuleStatement;
+import org.apache.shardingsphere.distsql.parser.subject.impl.ShardingSubjectSupplier;
import org.apache.shardingsphere.sql.parser.sql.common.segment.generic.table.TableNameSegment;
import java.util.Collection;
@@ -29,7 +30,7 @@ import java.util.Collection;
*/
@RequiredArgsConstructor
@Getter
-public final class DropShardingTableRuleStatement extends DropRuleStatement {
+public final class DropShardingTableRuleStatement extends DropRuleStatement implements ShardingSubjectSupplier {
private final Collection<TableNameSegment> tableNames;
diff --git a/shardingsphere-features/shardingsphere-sharding/shardingsphere-sharding-distsql/shardingsphere-sharding-distsql-statement/src/main/java/org/apache/shardingsphere/sharding/distsql/parser/statement/ShowDefaultShardingStrategyStatement.java b/shardingsphere-features/shardingsphere-sharding/shardingsphere-sharding-distsql/shardingsphere-sharding-distsql-statement/src/main/java/org/apache/shardingsphere/sharding/distsql/parser/statement/ShowDefaultShardingStrategyStatement.java
index 54ec03d3a1b..589800e1252 100644
--- a/shardingsphere-features/shardingsphere-sharding/shardingsphere-sharding-distsql/shardingsphere-sharding-distsql-statement/src/main/java/org/apache/shardingsphere/sharding/distsql/parser/statement/ShowDefaultShardingStrategyStatement.java
+++ b/shardingsphere-features/shardingsphere-sharding/shardingsphere-sharding-distsql/shardingsphere-sharding-distsql-statement/src/main/java/org/apache/shardingsphere/sharding/distsql/parser/statement/ShowDefaultShardingStrategyStatement.java
@@ -18,12 +18,13 @@
package org.apache.shardingsphere.sharding.distsql.parser.statement;
import org.apache.shardingsphere.distsql.parser.statement.rql.show.ShowRulesStatement;
+import org.apache.shardingsphere.distsql.parser.subject.impl.ShardingSubjectSupplier;
import org.apache.shardingsphere.sql.parser.sql.common.segment.generic.SchemaSegment;
/**
* Show default sharding strategy statement.
*/
-public final class ShowDefaultShardingStrategyStatement extends ShowRulesStatement {
+public final class ShowDefaultShardingStrategyStatement extends ShowRulesStatement implements ShardingSubjectSupplier {
public ShowDefaultShardingStrategyStatement(final SchemaSegment schema) {
super(schema);
diff --git a/shardingsphere-features/shardingsphere-sharding/shardingsphere-sharding-distsql/shardingsphere-sharding-distsql-statement/src/main/java/org/apache/shardingsphere/sharding/distsql/parser/statement/ShowShardingAlgorithmsStatement.java b/shardingsphere-features/shardingsphere-sharding/shardingsphere-sharding-distsql/shardingsphere-sharding-distsql-statement/src/main/java/org/apache/shardingsphere/sharding/distsql/parser/statement/ShowShardingAlgorithmsStatement.java
index 3258d4d32c5..0cf80e5c067 100644
--- a/shardingsphere-features/shardingsphere-sharding/shardingsphere-sharding-distsql/shardingsphere-sharding-distsql-statement/src/main/java/org/apache/shardingsphere/sharding/distsql/parser/statement/ShowShardingAlgorithmsStatement.java
+++ b/shardingsphere-features/shardingsphere-sharding/shardingsphere-sharding-distsql/shardingsphere-sharding-distsql-statement/src/main/java/org/apache/shardingsphere/sharding/distsql/parser/statement/ShowShardingAlgorithmsStatement.java
@@ -18,12 +18,13 @@
package org.apache.shardingsphere.sharding.distsql.parser.statement;
import org.apache.shardingsphere.distsql.parser.statement.rql.show.ShowRulesStatement;
+import org.apache.shardingsphere.distsql.parser.subject.impl.ShardingSubjectSupplier;
import org.apache.shardingsphere.sql.parser.sql.common.segment.generic.SchemaSegment;
/**
* Show sharding algorithms statement.
*/
-public final class ShowShardingAlgorithmsStatement extends ShowRulesStatement {
+public final class ShowShardingAlgorithmsStatement extends ShowRulesStatement implements ShardingSubjectSupplier {
public ShowShardingAlgorithmsStatement(final SchemaSegment schema) {
super(schema);
diff --git a/shardingsphere-features/shardingsphere-sharding/shardingsphere-sharding-distsql/shardingsphere-sharding-distsql-statement/src/main/java/org/apache/shardingsphere/sharding/distsql/parser/statement/ShowShardingBindingTableRulesStatement.java b/shardingsphere-features/shardingsphere-sharding/shardingsphere-sharding-distsql/shardingsphere-sharding-distsql-statement/src/main/java/org/apache/shardingsphere/sharding/distsql/parser/statement/ShowShardingBindingTableRulesStatement.java
index 48b604b4b6a..2b181341939 100644
--- a/shardingsphere-features/shardingsphere-sharding/shardingsphere-sharding-distsql/shardingsphere-sharding-distsql-statement/src/main/java/org/apache/shardingsphere/sharding/distsql/parser/statement/ShowShardingBindingTableRulesStatement.java
+++ b/shardingsphere-features/shardingsphere-sharding/shardingsphere-sharding-distsql/shardingsphere-sharding-distsql-statement/src/main/java/org/apache/shardingsphere/sharding/distsql/parser/statement/ShowShardingBindingTableRulesStatement.java
@@ -18,12 +18,13 @@
package org.apache.shardingsphere.sharding.distsql.parser.statement;
import org.apache.shardingsphere.distsql.parser.statement.rql.show.ShowRulesStatement;
+import org.apache.shardingsphere.distsql.parser.subject.impl.ShardingSubjectSupplier;
import org.apache.shardingsphere.sql.parser.sql.common.segment.generic.SchemaSegment;
/**
* Show sharding binding table rules statement.
*/
-public final class ShowShardingBindingTableRulesStatement extends ShowRulesStatement {
+public final class ShowShardingBindingTableRulesStatement extends ShowRulesStatement implements ShardingSubjectSupplier {
public ShowShardingBindingTableRulesStatement(final SchemaSegment schema) {
super(schema);
diff --git a/shardingsphere-features/shardingsphere-sharding/shardingsphere-sharding-distsql/shardingsphere-sharding-distsql-statement/src/main/java/org/apache/shardingsphere/sharding/distsql/parser/statement/ShowShardingBroadcastTableRulesStatement.java b/shardingsphere-features/shardingsphere-sharding/shardingsphere-sharding-distsql/shardingsphere-sharding-distsql-statement/src/main/java/org/apache/shardingsphere/sharding/distsql/parser/statement/ShowShardingBroadcastTableRulesStatement.java
index 72b5c319f3c..e01a18528f1 100644
--- a/shardingsphere-features/shardingsphere-sharding/shardingsphere-sharding-distsql/shardingsphere-sharding-distsql-statement/src/main/java/org/apache/shardingsphere/sharding/distsql/parser/statement/ShowShardingBroadcastTableRulesStatement.java
+++ b/shardingsphere-features/shardingsphere-sharding/shardingsphere-sharding-distsql/shardingsphere-sharding-distsql-statement/src/main/java/org/apache/shardingsphere/sharding/distsql/parser/statement/ShowShardingBroadcastTableRulesStatement.java
@@ -18,12 +18,13 @@
package org.apache.shardingsphere.sharding.distsql.parser.statement;
import org.apache.shardingsphere.distsql.parser.statement.rql.show.ShowRulesStatement;
+import org.apache.shardingsphere.distsql.parser.subject.impl.ShardingSubjectSupplier;
import org.apache.shardingsphere.sql.parser.sql.common.segment.generic.SchemaSegment;
/**
* Show sharding broadcast table rules statement.
*/
-public final class ShowShardingBroadcastTableRulesStatement extends ShowRulesStatement {
+public final class ShowShardingBroadcastTableRulesStatement extends ShowRulesStatement implements ShardingSubjectSupplier {
public ShowShardingBroadcastTableRulesStatement(final SchemaSegment schema) {
super(schema);
diff --git a/shardingsphere-features/shardingsphere-sharding/shardingsphere-sharding-distsql/shardingsphere-sharding-distsql-statement/src/main/java/org/apache/shardingsphere/sharding/distsql/parser/statement/ShowShardingKeyGeneratorsStatement.java b/shardingsphere-features/shardingsphere-sharding/shardingsphere-sharding-distsql/shardingsphere-sharding-distsql-statement/src/main/java/org/apache/shardingsphere/sharding/distsql/parser/statement/ShowShardingKeyGeneratorsStatement.java
index a91e0cb8e61..2a6c247599a 100644
--- a/shardingsphere-features/shardingsphere-sharding/shardingsphere-sharding-distsql/shardingsphere-sharding-distsql-statement/src/main/java/org/apache/shardingsphere/sharding/distsql/parser/statement/ShowShardingKeyGeneratorsStatement.java
+++ b/shardingsphere-features/shardingsphere-sharding/shardingsphere-sharding-distsql/shardingsphere-sharding-distsql-statement/src/main/java/org/apache/shardingsphere/sharding/distsql/parser/statement/ShowShardingKeyGeneratorsStatement.java
@@ -18,12 +18,13 @@
package org.apache.shardingsphere.sharding.distsql.parser.statement;
import org.apache.shardingsphere.distsql.parser.statement.rql.show.ShowRulesStatement;
+import org.apache.shardingsphere.distsql.parser.subject.impl.ShardingSubjectSupplier;
import org.apache.shardingsphere.sql.parser.sql.common.segment.generic.SchemaSegment;
/**
* Show sharding key generators statement.
*/
-public final class ShowShardingKeyGeneratorsStatement extends ShowRulesStatement {
+public final class ShowShardingKeyGeneratorsStatement extends ShowRulesStatement implements ShardingSubjectSupplier {
public ShowShardingKeyGeneratorsStatement(final SchemaSegment schema) {
super(schema);
diff --git a/shardingsphere-features/shardingsphere-sharding/shardingsphere-sharding-distsql/shardingsphere-sharding-distsql-statement/src/main/java/org/apache/shardingsphere/sharding/distsql/parser/statement/ShowShardingTableNodesStatement.java b/shardingsphere-features/shardingsphere-sharding/shardingsphere-sharding-distsql/shardingsphere-sharding-distsql-statement/src/main/java/org/apache/shardingsphere/sharding/distsql/parser/statement/ShowShardingTableNodesStatement.java
index c46e18260b4..92dd0d04320 100644
--- a/shardingsphere-features/shardingsphere-sharding/shardingsphere-sharding-distsql/shardingsphere-sharding-distsql-statement/src/main/java/org/apache/shardingsphere/sharding/distsql/parser/statement/ShowShardingTableNodesStatement.java
+++ b/shardingsphere-features/shardingsphere-sharding/shardingsphere-sharding-distsql/shardingsphere-sharding-distsql-statement/src/main/java/org/apache/shardingsphere/sharding/distsql/parser/statement/ShowShardingTableNodesStatement.java
@@ -19,13 +19,17 @@ package org.apache.shardingsphere.sharding.distsql.parser.statement;
import lombok.Getter;
import org.apache.shardingsphere.distsql.parser.statement.rql.show.ShowRulesStatement;
+import org.apache.shardingsphere.distsql.parser.subject.impl.ShardingSubjectSupplier;
import org.apache.shardingsphere.sql.parser.sql.common.segment.generic.SchemaSegment;
+import java.util.Collection;
+import java.util.Collections;
+
/**
* Show sharding table nodes statement.
*/
@Getter
-public final class ShowShardingTableNodesStatement extends ShowRulesStatement {
+public final class ShowShardingTableNodesStatement extends ShowRulesStatement implements ShardingSubjectSupplier {
private final String tableName;
@@ -33,4 +37,9 @@ public final class ShowShardingTableNodesStatement extends ShowRulesStatement {
super(schema);
this.tableName = tableName;
}
+
+ @Override
+ public Collection<String> getSubjectNames() {
+ return null != tableName ? Collections.singletonList(tableName) : Collections.emptyList();
+ }
}
diff --git a/shardingsphere-features/shardingsphere-sharding/shardingsphere-sharding-distsql/shardingsphere-sharding-distsql-statement/src/main/java/org/apache/shardingsphere/sharding/distsql/parser/statement/ShowShardingTableRulesStatement.java b/shardingsphere-features/shardingsphere-sharding/shardingsphere-sharding-distsql/shardingsphere-sharding-distsql-statement/src/main/java/org/apache/shardingsphere/sharding/distsql/parser/statement/ShowShardingTableRulesStatement.java
index 7df2eb0a1f1..3b57bad6c60 100644
--- a/shardingsphere-features/shardingsphere-sharding/shardingsphere-sharding-distsql/shardingsphere-sharding-distsql-statement/src/main/java/org/apache/shardingsphere/sharding/distsql/parser/statement/ShowShardingTableRulesStatement.java
+++ b/shardingsphere-features/shardingsphere-sharding/shardingsphere-sharding-distsql/shardingsphere-sharding-distsql-statement/src/main/java/org/apache/shardingsphere/sharding/distsql/parser/statement/ShowShardingTableRulesStatement.java
@@ -19,13 +19,17 @@ package org.apache.shardingsphere.sharding.distsql.parser.statement;
import lombok.Getter;
import org.apache.shardingsphere.distsql.parser.statement.rql.show.ShowRulesStatement;
+import org.apache.shardingsphere.distsql.parser.subject.impl.ShardingSubjectSupplier;
import org.apache.shardingsphere.sql.parser.sql.common.segment.generic.SchemaSegment;
+import java.util.Collection;
+import java.util.Collections;
+
/**
* Show sharding table rules statement.
*/
@Getter
-public final class ShowShardingTableRulesStatement extends ShowRulesStatement {
+public final class ShowShardingTableRulesStatement extends ShowRulesStatement implements ShardingSubjectSupplier {
private final String tableName;
@@ -33,4 +37,9 @@ public final class ShowShardingTableRulesStatement extends ShowRulesStatement {
super(schema);
this.tableName = tableName;
}
+
+ @Override
+ public Collection<String> getSubjectNames() {
+ return null != tableName ? Collections.singletonList(tableName) : Collections.emptyList();
+ }
}
diff --git a/shardingsphere-features/shardingsphere-sharding/shardingsphere-sharding-distsql/shardingsphere-sharding-distsql-statement/src/main/java/org/apache/shardingsphere/sharding/distsql/parser/statement/ShowShardingTableRulesUsedAlgorithmStatement.java b/shardingsphere-features/shardingsphere-sharding/shardingsphere-sharding-distsql/shardingsphere-sharding-distsql-statement/src/main/java/org/apache/shardingsphere/sharding/distsql/parser/statement/ShowShardingTableRulesUsedAlgorithmS [...]
index 16459123091..265e1162ae4 100644
--- a/shardingsphere-features/shardingsphere-sharding/shardingsphere-sharding-distsql/shardingsphere-sharding-distsql-statement/src/main/java/org/apache/shardingsphere/sharding/distsql/parser/statement/ShowShardingTableRulesUsedAlgorithmStatement.java
+++ b/shardingsphere-features/shardingsphere-sharding/shardingsphere-sharding-distsql/shardingsphere-sharding-distsql-statement/src/main/java/org/apache/shardingsphere/sharding/distsql/parser/statement/ShowShardingTableRulesUsedAlgorithmStatement.java
@@ -18,6 +18,7 @@
package org.apache.shardingsphere.sharding.distsql.parser.statement;
import org.apache.shardingsphere.distsql.parser.statement.rql.show.ShowRulesStatement;
+import org.apache.shardingsphere.distsql.parser.subject.impl.ShardingSubjectSupplier;
import org.apache.shardingsphere.sql.parser.sql.common.segment.generic.SchemaSegment;
import java.util.Optional;
@@ -25,7 +26,7 @@ import java.util.Optional;
/**
* Show sharding table rules used algorithm statement.
*/
-public final class ShowShardingTableRulesUsedAlgorithmStatement extends ShowRulesStatement {
+public final class ShowShardingTableRulesUsedAlgorithmStatement extends ShowRulesStatement implements ShardingSubjectSupplier {
private final String algorithmName;
diff --git a/shardingsphere-features/shardingsphere-sharding/shardingsphere-sharding-distsql/shardingsphere-sharding-distsql-statement/src/main/java/org/apache/shardingsphere/sharding/distsql/parser/statement/ShowShardingTableRulesUsedKeyGeneratorStatement.java b/shardingsphere-features/shardingsphere-sharding/shardingsphere-sharding-distsql/shardingsphere-sharding-distsql-statement/src/main/java/org/apache/shardingsphere/sharding/distsql/parser/statement/ShowShardingTableRulesUsedKeyGene [...]
index 1a5ea2b8c35..bb1ad9358be 100644
--- a/shardingsphere-features/shardingsphere-sharding/shardingsphere-sharding-distsql/shardingsphere-sharding-distsql-statement/src/main/java/org/apache/shardingsphere/sharding/distsql/parser/statement/ShowShardingTableRulesUsedKeyGeneratorStatement.java
+++ b/shardingsphere-features/shardingsphere-sharding/shardingsphere-sharding-distsql/shardingsphere-sharding-distsql-statement/src/main/java/org/apache/shardingsphere/sharding/distsql/parser/statement/ShowShardingTableRulesUsedKeyGeneratorStatement.java
@@ -18,6 +18,7 @@
package org.apache.shardingsphere.sharding.distsql.parser.statement;
import org.apache.shardingsphere.distsql.parser.statement.rql.show.ShowRulesStatement;
+import org.apache.shardingsphere.distsql.parser.subject.impl.ShardingSubjectSupplier;
import org.apache.shardingsphere.sql.parser.sql.common.segment.generic.SchemaSegment;
import java.util.Optional;
@@ -25,7 +26,7 @@ import java.util.Optional;
/**
* Show sharding table rules used key generator statement.
*/
-public final class ShowShardingTableRulesUsedKeyGeneratorStatement extends ShowRulesStatement {
+public final class ShowShardingTableRulesUsedKeyGeneratorStatement extends ShowRulesStatement implements ShardingSubjectSupplier {
private final String keyGeneratorName;
diff --git a/shardingsphere-features/shardingsphere-sharding/shardingsphere-sharding-distsql/shardingsphere-sharding-distsql-statement/src/main/java/org/apache/shardingsphere/sharding/distsql/parser/statement/ShowUnusedShardingAlgorithmsStatement.java b/shardingsphere-features/shardingsphere-sharding/shardingsphere-sharding-distsql/shardingsphere-sharding-distsql-statement/src/main/java/org/apache/shardingsphere/sharding/distsql/parser/statement/ShowUnusedShardingAlgorithmsStatement.java
index 6a08f5f28fc..10a1e71a4e9 100644
--- a/shardingsphere-features/shardingsphere-sharding/shardingsphere-sharding-distsql/shardingsphere-sharding-distsql-statement/src/main/java/org/apache/shardingsphere/sharding/distsql/parser/statement/ShowUnusedShardingAlgorithmsStatement.java
+++ b/shardingsphere-features/shardingsphere-sharding/shardingsphere-sharding-distsql/shardingsphere-sharding-distsql-statement/src/main/java/org/apache/shardingsphere/sharding/distsql/parser/statement/ShowUnusedShardingAlgorithmsStatement.java
@@ -18,12 +18,13 @@
package org.apache.shardingsphere.sharding.distsql.parser.statement;
import org.apache.shardingsphere.distsql.parser.statement.rql.show.ShowRulesStatement;
+import org.apache.shardingsphere.distsql.parser.subject.impl.ShardingSubjectSupplier;
import org.apache.shardingsphere.sql.parser.sql.common.segment.generic.SchemaSegment;
/**
* Show unused sharding algorithms statement.
*/
-public final class ShowUnusedShardingAlgorithmsStatement extends ShowRulesStatement {
+public final class ShowUnusedShardingAlgorithmsStatement extends ShowRulesStatement implements ShardingSubjectSupplier {
public ShowUnusedShardingAlgorithmsStatement(final SchemaSegment schema) {
super(schema);
diff --git a/shardingsphere-features/shardingsphere-sharding/shardingsphere-sharding-distsql/shardingsphere-sharding-distsql-statement/src/main/java/org/apache/shardingsphere/sharding/distsql/parser/statement/ShowUnusedShardingKeyGeneratorsStatement.java b/shardingsphere-features/shardingsphere-sharding/shardingsphere-sharding-distsql/shardingsphere-sharding-distsql-statement/src/main/java/org/apache/shardingsphere/sharding/distsql/parser/statement/ShowUnusedShardingKeyGeneratorsStatement.java
index bcfcaddb0bf..34971787eaa 100644
--- a/shardingsphere-features/shardingsphere-sharding/shardingsphere-sharding-distsql/shardingsphere-sharding-distsql-statement/src/main/java/org/apache/shardingsphere/sharding/distsql/parser/statement/ShowUnusedShardingKeyGeneratorsStatement.java
+++ b/shardingsphere-features/shardingsphere-sharding/shardingsphere-sharding-distsql/shardingsphere-sharding-distsql-statement/src/main/java/org/apache/shardingsphere/sharding/distsql/parser/statement/ShowUnusedShardingKeyGeneratorsStatement.java
@@ -18,12 +18,13 @@
package org.apache.shardingsphere.sharding.distsql.parser.statement;
import org.apache.shardingsphere.distsql.parser.statement.rql.show.ShowRulesStatement;
+import org.apache.shardingsphere.distsql.parser.subject.impl.ShardingSubjectSupplier;
import org.apache.shardingsphere.sql.parser.sql.common.segment.generic.SchemaSegment;
/**
* Show unused sharding key generators statement.
*/
-public final class ShowUnusedShardingKeyGeneratorsStatement extends ShowRulesStatement {
+public final class ShowUnusedShardingKeyGeneratorsStatement extends ShowRulesStatement implements ShardingSubjectSupplier {
public ShowUnusedShardingKeyGeneratorsStatement(final SchemaSegment schema) {
super(schema);
diff --git a/shardingsphere-proxy/shardingsphere-proxy-backend/src/test/java/org/apache/shardingsphere/proxy/backend/text/distsql/fixture/CreateFixtureRuleStatement.java b/shardingsphere-proxy/shardingsphere-proxy-backend/src/test/java/org/apache/shardingsphere/proxy/backend/text/distsql/fixture/CreateFixtureRuleStatement.java
index 4553e8805c2..ea27d91d73f 100644
--- a/shardingsphere-proxy/shardingsphere-proxy-backend/src/test/java/org/apache/shardingsphere/proxy/backend/text/distsql/fixture/CreateFixtureRuleStatement.java
+++ b/shardingsphere-proxy/shardingsphere-proxy-backend/src/test/java/org/apache/shardingsphere/proxy/backend/text/distsql/fixture/CreateFixtureRuleStatement.java
@@ -17,7 +17,13 @@
package org.apache.shardingsphere.proxy.backend.text.distsql.fixture;
+import org.apache.shardingsphere.distsql.parser.subject.DistSQLSubjectTypeEnum;
import org.apache.shardingsphere.distsql.parser.statement.rdl.create.CreateRuleStatement;
public final class CreateFixtureRuleStatement extends CreateRuleStatement {
+
+ @Override
+ public DistSQLSubjectTypeEnum getSubjectType() {
+ return null;
+ }
}