This is an automated email from the ASF dual-hosted git repository.
panjuan 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 f0ddea877f2 Add DistSQLBackendHandler. (#23729)
f0ddea877f2 is described below
commit f0ddea877f2ac7efec87aed0d3ef325d28551269
Author: Raigor <[email protected]>
AuthorDate: Thu Jan 26 12:16:48 2023 +0800
Add DistSQLBackendHandler. (#23729)
---
.../distsql/parser/statement/DistSQLStatement.java | 2 +-
.../handler/DatabaseRequiredBackendHandler.java | 3 ++-
...kendHandler.java => DistSQLBackendHandler.java} | 16 ++++------------
.../ral/QueryableGlobalRuleRALBackendHandler.java | 6 +++---
.../handler/distsql/ral/RALBackendHandler.java | 4 ++--
.../ral/UpdatableGlobalRuleRALBackendHandler.java | 6 +++---
.../query/QueryableScalingRALBackendHandler.java | 6 +++---
.../update/UpdatableScalingRALBackendHandler.java | 4 ++--
.../rdl/RDLBackendHandler.java} | 11 ++++++-----
.../distsql/rdl/RDLBackendHandlerFactory.java | 6 +++---
.../rdl/rule/RuleDefinitionBackendHandler.java | 6 +++---
.../unit}/AlterStorageUnitBackendHandler.java | 11 +++++------
.../unit}/RegisterStorageUnitBackendHandler.java | 5 ++---
.../unit/StorageUnitDefinitionBackendHandler.java} | 22 ++++++++++++----------
.../unit}/UnregisterStorageUnitBackendHandler.java | 9 ++++-----
.../unit}/StorageUnitResultSet.java | 4 ++--
.../handler/distsql/rul/RULBackendHandler.java | 4 ++--
...here.distsql.handler.resultset.DistSQLResultSet | 2 +-
.../distsql/rdl/RDLBackendHandlerFactoryTest.java | 6 +++---
.../unit}/AlterStorageUnitBackendHandlerTest.java | 2 +-
.../RegisterStorageUnitBackendHandlerTest.java | 2 +-
.../UnregisterStorageUnitBackendHandlerTest.java | 6 +++---
.../distsql/rql/StorageUnitResultSetTest.java | 2 +-
23 files changed, 69 insertions(+), 76 deletions(-)
diff --git
a/distsql/statement/src/main/java/org/apache/shardingsphere/distsql/parser/statement/DistSQLStatement.java
b/distsql/statement/src/main/java/org/apache/shardingsphere/distsql/parser/statement/DistSQLStatement.java
index 919d8dfac75..177f5c374ae 100644
---
a/distsql/statement/src/main/java/org/apache/shardingsphere/distsql/parser/statement/DistSQLStatement.java
+++
b/distsql/statement/src/main/java/org/apache/shardingsphere/distsql/parser/statement/DistSQLStatement.java
@@ -20,7 +20,7 @@ package org.apache.shardingsphere.distsql.parser.statement;
import
org.apache.shardingsphere.sql.parser.sql.common.statement.AbstractSQLStatement;
/**
- * DistSQL Statement.
+ * DistSQL statement.
*/
public abstract class DistSQLStatement extends AbstractSQLStatement {
}
diff --git
a/proxy/backend/src/main/java/org/apache/shardingsphere/proxy/backend/handler/DatabaseRequiredBackendHandler.java
b/proxy/backend/src/main/java/org/apache/shardingsphere/proxy/backend/handler/DatabaseRequiredBackendHandler.java
index fc894904bc8..02806b72d2b 100644
---
a/proxy/backend/src/main/java/org/apache/shardingsphere/proxy/backend/handler/DatabaseRequiredBackendHandler.java
+++
b/proxy/backend/src/main/java/org/apache/shardingsphere/proxy/backend/handler/DatabaseRequiredBackendHandler.java
@@ -23,6 +23,7 @@ import
org.apache.shardingsphere.dialect.exception.syntax.database.NoDatabaseSel
import
org.apache.shardingsphere.dialect.exception.syntax.database.UnknownDatabaseException;
import
org.apache.shardingsphere.infra.util.exception.ShardingSpherePreconditions;
import org.apache.shardingsphere.proxy.backend.context.ProxyContext;
+import
org.apache.shardingsphere.proxy.backend.handler.distsql.DistSQLBackendHandler;
import org.apache.shardingsphere.proxy.backend.response.header.ResponseHeader;
import org.apache.shardingsphere.proxy.backend.session.ConnectionSession;
import
org.apache.shardingsphere.sql.parser.sql.common.segment.generic.DatabaseSegment;
@@ -39,7 +40,7 @@ import java.util.Optional;
*/
@RequiredArgsConstructor
@Getter
-public abstract class DatabaseRequiredBackendHandler<T extends SQLStatement>
implements ProxyBackendHandler {
+public abstract class DatabaseRequiredBackendHandler<T extends SQLStatement>
implements DistSQLBackendHandler {
private final T sqlStatement;
diff --git
a/proxy/backend/src/main/java/org/apache/shardingsphere/proxy/backend/handler/distsql/rdl/resource/StorageUnitBackendHandler.java
b/proxy/backend/src/main/java/org/apache/shardingsphere/proxy/backend/handler/distsql/DistSQLBackendHandler.java
similarity index 62%
copy from
proxy/backend/src/main/java/org/apache/shardingsphere/proxy/backend/handler/distsql/rdl/resource/StorageUnitBackendHandler.java
copy to
proxy/backend/src/main/java/org/apache/shardingsphere/proxy/backend/handler/distsql/DistSQLBackendHandler.java
index 5f5c411d06c..d0122ee458d 100644
---
a/proxy/backend/src/main/java/org/apache/shardingsphere/proxy/backend/handler/distsql/rdl/resource/StorageUnitBackendHandler.java
+++
b/proxy/backend/src/main/java/org/apache/shardingsphere/proxy/backend/handler/distsql/DistSQLBackendHandler.java
@@ -15,20 +15,12 @@
* limitations under the License.
*/
-package org.apache.shardingsphere.proxy.backend.handler.distsql.rdl.resource;
+package org.apache.shardingsphere.proxy.backend.handler.distsql;
-import
org.apache.shardingsphere.distsql.parser.statement.rdl.StorageUnitDefinitionStatement;
+import org.apache.shardingsphere.proxy.backend.handler.ProxyBackendHandler;
/**
- * Storage unit backend handler.
+ * DistSQL backend handler.
*/
-public interface StorageUnitBackendHandler<T extends
StorageUnitDefinitionStatement> {
-
- /**
- * Check SQL statement.
- *
- * @param databaseName database name
- * @param sqlStatement SQL statement
- */
- void checkSQLStatement(String databaseName, T sqlStatement);
+public interface DistSQLBackendHandler extends ProxyBackendHandler {
}
diff --git
a/proxy/backend/src/main/java/org/apache/shardingsphere/proxy/backend/handler/distsql/ral/QueryableGlobalRuleRALBackendHandler.java
b/proxy/backend/src/main/java/org/apache/shardingsphere/proxy/backend/handler/distsql/ral/QueryableGlobalRuleRALBackendHandler.java
index 324572a9f87..a66cec1f959 100644
---
a/proxy/backend/src/main/java/org/apache/shardingsphere/proxy/backend/handler/distsql/ral/QueryableGlobalRuleRALBackendHandler.java
+++
b/proxy/backend/src/main/java/org/apache/shardingsphere/proxy/backend/handler/distsql/ral/QueryableGlobalRuleRALBackendHandler.java
@@ -17,10 +17,10 @@
package org.apache.shardingsphere.proxy.backend.handler.distsql.ral;
-import org.apache.shardingsphere.distsql.parser.statement.ral.RALStatement;
import
org.apache.shardingsphere.distsql.handler.resultset.GlobalRuleDistSQLResultSet;
+import org.apache.shardingsphere.distsql.parser.statement.ral.RALStatement;
import org.apache.shardingsphere.proxy.backend.context.ProxyContext;
-import org.apache.shardingsphere.proxy.backend.handler.ProxyBackendHandler;
+import
org.apache.shardingsphere.proxy.backend.handler.distsql.DistSQLBackendHandler;
import org.apache.shardingsphere.proxy.backend.response.data.QueryResponseCell;
import org.apache.shardingsphere.proxy.backend.response.data.QueryResponseRow;
import org.apache.shardingsphere.proxy.backend.response.header.ResponseHeader;
@@ -35,7 +35,7 @@ import java.util.List;
/**
* Queryable RAL backend handler for global rule.
*/
-public final class QueryableGlobalRuleRALBackendHandler implements
ProxyBackendHandler {
+public final class QueryableGlobalRuleRALBackendHandler implements
DistSQLBackendHandler {
private final RALStatement sqlStatement;
diff --git
a/proxy/backend/src/main/java/org/apache/shardingsphere/proxy/backend/handler/distsql/ral/RALBackendHandler.java
b/proxy/backend/src/main/java/org/apache/shardingsphere/proxy/backend/handler/distsql/ral/RALBackendHandler.java
index e0670e36255..2f3911a5b76 100644
---
a/proxy/backend/src/main/java/org/apache/shardingsphere/proxy/backend/handler/distsql/ral/RALBackendHandler.java
+++
b/proxy/backend/src/main/java/org/apache/shardingsphere/proxy/backend/handler/distsql/ral/RALBackendHandler.java
@@ -19,14 +19,14 @@ package
org.apache.shardingsphere.proxy.backend.handler.distsql.ral;
import lombok.Getter;
import org.apache.shardingsphere.distsql.parser.statement.ral.RALStatement;
+import
org.apache.shardingsphere.proxy.backend.handler.distsql.DistSQLBackendHandler;
import org.apache.shardingsphere.proxy.backend.session.ConnectionSession;
-import org.apache.shardingsphere.proxy.backend.handler.ProxyBackendHandler;
/**
* RAL backend handler.
*/
@Getter
-public abstract class RALBackendHandler<E extends RALStatement> implements
ProxyBackendHandler {
+public abstract class RALBackendHandler<E extends RALStatement> implements
DistSQLBackendHandler {
private E sqlStatement;
diff --git
a/proxy/backend/src/main/java/org/apache/shardingsphere/proxy/backend/handler/distsql/ral/UpdatableGlobalRuleRALBackendHandler.java
b/proxy/backend/src/main/java/org/apache/shardingsphere/proxy/backend/handler/distsql/ral/UpdatableGlobalRuleRALBackendHandler.java
index f5747c64fa6..4da4c1072dd 100644
---
a/proxy/backend/src/main/java/org/apache/shardingsphere/proxy/backend/handler/distsql/ral/UpdatableGlobalRuleRALBackendHandler.java
+++
b/proxy/backend/src/main/java/org/apache/shardingsphere/proxy/backend/handler/distsql/ral/UpdatableGlobalRuleRALBackendHandler.java
@@ -17,18 +17,18 @@
package org.apache.shardingsphere.proxy.backend.handler.distsql.ral;
-import org.apache.shardingsphere.distsql.parser.statement.ral.RALStatement;
import org.apache.shardingsphere.distsql.handler.update.GlobalRuleRALUpdater;
+import org.apache.shardingsphere.distsql.parser.statement.ral.RALStatement;
import org.apache.shardingsphere.mode.manager.ContextManager;
import org.apache.shardingsphere.proxy.backend.context.ProxyContext;
-import org.apache.shardingsphere.proxy.backend.handler.ProxyBackendHandler;
+import
org.apache.shardingsphere.proxy.backend.handler.distsql.DistSQLBackendHandler;
import org.apache.shardingsphere.proxy.backend.response.header.ResponseHeader;
import
org.apache.shardingsphere.proxy.backend.response.header.update.UpdateResponseHeader;
/**
* Updatable RAL backend handler for global rule.
*/
-public final class UpdatableGlobalRuleRALBackendHandler implements
ProxyBackendHandler {
+public final class UpdatableGlobalRuleRALBackendHandler implements
DistSQLBackendHandler {
private final RALStatement sqlStatement;
diff --git
a/proxy/backend/src/main/java/org/apache/shardingsphere/proxy/backend/handler/distsql/ral/migration/query/QueryableScalingRALBackendHandler.java
b/proxy/backend/src/main/java/org/apache/shardingsphere/proxy/backend/handler/distsql/ral/migration/query/QueryableScalingRALBackendHandler.java
index 4ca10ebf7fb..8961e7180c9 100644
---
a/proxy/backend/src/main/java/org/apache/shardingsphere/proxy/backend/handler/distsql/ral/migration/query/QueryableScalingRALBackendHandler.java
+++
b/proxy/backend/src/main/java/org/apache/shardingsphere/proxy/backend/handler/distsql/ral/migration/query/QueryableScalingRALBackendHandler.java
@@ -18,9 +18,9 @@
package
org.apache.shardingsphere.proxy.backend.handler.distsql.ral.migration.query;
import lombok.RequiredArgsConstructor;
-import
org.apache.shardingsphere.distsql.parser.statement.ral.scaling.QueryableScalingRALStatement;
import
org.apache.shardingsphere.distsql.handler.resultset.DatabaseDistSQLResultSet;
-import org.apache.shardingsphere.proxy.backend.handler.ProxyBackendHandler;
+import
org.apache.shardingsphere.distsql.parser.statement.ral.scaling.QueryableScalingRALStatement;
+import
org.apache.shardingsphere.proxy.backend.handler.distsql.DistSQLBackendHandler;
import org.apache.shardingsphere.proxy.backend.response.data.QueryResponseCell;
import org.apache.shardingsphere.proxy.backend.response.data.QueryResponseRow;
import org.apache.shardingsphere.proxy.backend.response.header.ResponseHeader;
@@ -36,7 +36,7 @@ import java.util.List;
* Queryable scaling RAL backend handler.
*/
@RequiredArgsConstructor
-public final class QueryableScalingRALBackendHandler implements
ProxyBackendHandler {
+public final class QueryableScalingRALBackendHandler implements
DistSQLBackendHandler {
private final QueryableScalingRALStatement sqlStatement;
diff --git
a/proxy/backend/src/main/java/org/apache/shardingsphere/proxy/backend/handler/distsql/ral/migration/update/UpdatableScalingRALBackendHandler.java
b/proxy/backend/src/main/java/org/apache/shardingsphere/proxy/backend/handler/distsql/ral/migration/update/UpdatableScalingRALBackendHandler.java
index 0228dce1039..6de9a2bb9e1 100644
---
a/proxy/backend/src/main/java/org/apache/shardingsphere/proxy/backend/handler/distsql/ral/migration/update/UpdatableScalingRALBackendHandler.java
+++
b/proxy/backend/src/main/java/org/apache/shardingsphere/proxy/backend/handler/distsql/ral/migration/update/UpdatableScalingRALBackendHandler.java
@@ -22,7 +22,7 @@ import lombok.Setter;
import org.apache.shardingsphere.distsql.handler.update.RALUpdater;
import
org.apache.shardingsphere.distsql.parser.statement.ral.scaling.UpdatableScalingRALStatement;
import org.apache.shardingsphere.infra.util.spi.type.typed.TypedSPIRegistry;
-import org.apache.shardingsphere.proxy.backend.handler.ProxyBackendHandler;
+import
org.apache.shardingsphere.proxy.backend.handler.distsql.DistSQLBackendHandler;
import org.apache.shardingsphere.proxy.backend.response.header.ResponseHeader;
import
org.apache.shardingsphere.proxy.backend.response.header.update.UpdateResponseHeader;
import org.apache.shardingsphere.proxy.backend.session.ConnectionSession;
@@ -34,7 +34,7 @@ import java.sql.SQLException;
*/
@RequiredArgsConstructor
@Setter
-public final class UpdatableScalingRALBackendHandler implements
ProxyBackendHandler {
+public final class UpdatableScalingRALBackendHandler implements
DistSQLBackendHandler {
private final UpdatableScalingRALStatement sqlStatement;
diff --git
a/proxy/backend/src/main/java/org/apache/shardingsphere/proxy/backend/handler/DatabaseRequiredBackendHandler.java
b/proxy/backend/src/main/java/org/apache/shardingsphere/proxy/backend/handler/distsql/rdl/RDLBackendHandler.java
similarity index 87%
copy from
proxy/backend/src/main/java/org/apache/shardingsphere/proxy/backend/handler/DatabaseRequiredBackendHandler.java
copy to
proxy/backend/src/main/java/org/apache/shardingsphere/proxy/backend/handler/distsql/rdl/RDLBackendHandler.java
index fc894904bc8..034fbedabef 100644
---
a/proxy/backend/src/main/java/org/apache/shardingsphere/proxy/backend/handler/DatabaseRequiredBackendHandler.java
+++
b/proxy/backend/src/main/java/org/apache/shardingsphere/proxy/backend/handler/distsql/rdl/RDLBackendHandler.java
@@ -15,31 +15,32 @@
* limitations under the License.
*/
-package org.apache.shardingsphere.proxy.backend.handler;
+package org.apache.shardingsphere.proxy.backend.handler.distsql.rdl;
import lombok.Getter;
import lombok.RequiredArgsConstructor;
import
org.apache.shardingsphere.dialect.exception.syntax.database.NoDatabaseSelectedException;
import
org.apache.shardingsphere.dialect.exception.syntax.database.UnknownDatabaseException;
+import org.apache.shardingsphere.distsql.parser.statement.rdl.RDLStatement;
import
org.apache.shardingsphere.infra.util.exception.ShardingSpherePreconditions;
import org.apache.shardingsphere.proxy.backend.context.ProxyContext;
+import
org.apache.shardingsphere.proxy.backend.handler.distsql.DistSQLBackendHandler;
import org.apache.shardingsphere.proxy.backend.response.header.ResponseHeader;
import org.apache.shardingsphere.proxy.backend.session.ConnectionSession;
import
org.apache.shardingsphere.sql.parser.sql.common.segment.generic.DatabaseSegment;
-import org.apache.shardingsphere.sql.parser.sql.common.statement.SQLStatement;
import
org.apache.shardingsphere.sql.parser.sql.common.statement.available.FromDatabaseAvailable;
import java.sql.SQLException;
import java.util.Optional;
/**
- * Database required backend handler.
+ * RDL backend handler.
*
- * @param <T> type of SQL statement
+ * @param <T> type of RDL statement
*/
@RequiredArgsConstructor
@Getter
-public abstract class DatabaseRequiredBackendHandler<T extends SQLStatement>
implements ProxyBackendHandler {
+public abstract class RDLBackendHandler<T extends RDLStatement> implements
DistSQLBackendHandler {
private final T sqlStatement;
diff --git
a/proxy/backend/src/main/java/org/apache/shardingsphere/proxy/backend/handler/distsql/rdl/RDLBackendHandlerFactory.java
b/proxy/backend/src/main/java/org/apache/shardingsphere/proxy/backend/handler/distsql/rdl/RDLBackendHandlerFactory.java
index 0e97de1c536..14a6688a87d 100644
---
a/proxy/backend/src/main/java/org/apache/shardingsphere/proxy/backend/handler/distsql/rdl/RDLBackendHandlerFactory.java
+++
b/proxy/backend/src/main/java/org/apache/shardingsphere/proxy/backend/handler/distsql/rdl/RDLBackendHandlerFactory.java
@@ -26,10 +26,10 @@ import
org.apache.shardingsphere.distsql.parser.statement.rdl.alter.AlterStorage
import
org.apache.shardingsphere.distsql.parser.statement.rdl.create.RegisterStorageUnitStatement;
import
org.apache.shardingsphere.distsql.parser.statement.rdl.drop.UnregisterStorageUnitStatement;
import org.apache.shardingsphere.proxy.backend.handler.ProxyBackendHandler;
-import
org.apache.shardingsphere.proxy.backend.handler.distsql.rdl.resource.AlterStorageUnitBackendHandler;
-import
org.apache.shardingsphere.proxy.backend.handler.distsql.rdl.resource.RegisterStorageUnitBackendHandler;
-import
org.apache.shardingsphere.proxy.backend.handler.distsql.rdl.resource.UnregisterStorageUnitBackendHandler;
import
org.apache.shardingsphere.proxy.backend.handler.distsql.rdl.rule.RuleDefinitionBackendHandler;
+import
org.apache.shardingsphere.proxy.backend.handler.distsql.rdl.storage.unit.AlterStorageUnitBackendHandler;
+import
org.apache.shardingsphere.proxy.backend.handler.distsql.rdl.storage.unit.RegisterStorageUnitBackendHandler;
+import
org.apache.shardingsphere.proxy.backend.handler.distsql.rdl.storage.unit.UnregisterStorageUnitBackendHandler;
import org.apache.shardingsphere.proxy.backend.session.ConnectionSession;
/**
diff --git
a/proxy/backend/src/main/java/org/apache/shardingsphere/proxy/backend/handler/distsql/rdl/rule/RuleDefinitionBackendHandler.java
b/proxy/backend/src/main/java/org/apache/shardingsphere/proxy/backend/handler/distsql/rdl/rule/RuleDefinitionBackendHandler.java
index 85b342f58e0..1bfd479f903 100644
---
a/proxy/backend/src/main/java/org/apache/shardingsphere/proxy/backend/handler/distsql/rdl/rule/RuleDefinitionBackendHandler.java
+++
b/proxy/backend/src/main/java/org/apache/shardingsphere/proxy/backend/handler/distsql/rdl/rule/RuleDefinitionBackendHandler.java
@@ -27,7 +27,7 @@ import
org.apache.shardingsphere.infra.metadata.database.ShardingSphereDatabase;
import
org.apache.shardingsphere.infra.util.exception.external.sql.type.generic.UnsupportedSQLOperationException;
import org.apache.shardingsphere.infra.util.spi.type.typed.TypedSPIRegistry;
import org.apache.shardingsphere.proxy.backend.context.ProxyContext;
-import
org.apache.shardingsphere.proxy.backend.handler.DatabaseRequiredBackendHandler;
+import
org.apache.shardingsphere.proxy.backend.handler.distsql.rdl.RDLBackendHandler;
import org.apache.shardingsphere.proxy.backend.response.header.ResponseHeader;
import
org.apache.shardingsphere.proxy.backend.response.header.update.UpdateResponseHeader;
import org.apache.shardingsphere.proxy.backend.session.ConnectionSession;
@@ -40,9 +40,9 @@ import java.util.Optional;
/**
* Rule definition backend handler.
*
- * @param <T> type of SQL statement
+ * @param <T> type of rule definition statement
*/
-public final class RuleDefinitionBackendHandler<T extends
RuleDefinitionStatement> extends DatabaseRequiredBackendHandler<T> {
+public final class RuleDefinitionBackendHandler<T extends
RuleDefinitionStatement> extends RDLBackendHandler<T> {
public RuleDefinitionBackendHandler(final T sqlStatement, final
ConnectionSession connectionSession) {
super(sqlStatement, connectionSession);
diff --git
a/proxy/backend/src/main/java/org/apache/shardingsphere/proxy/backend/handler/distsql/rdl/resource/AlterStorageUnitBackendHandler.java
b/proxy/backend/src/main/java/org/apache/shardingsphere/proxy/backend/handler/distsql/rdl/storage/unit/AlterStorageUnitBackendHandler.java
similarity index 96%
rename from
proxy/backend/src/main/java/org/apache/shardingsphere/proxy/backend/handler/distsql/rdl/resource/AlterStorageUnitBackendHandler.java
rename to
proxy/backend/src/main/java/org/apache/shardingsphere/proxy/backend/handler/distsql/rdl/storage/unit/AlterStorageUnitBackendHandler.java
index 188d7bc1e72..adec501d0f8 100644
---
a/proxy/backend/src/main/java/org/apache/shardingsphere/proxy/backend/handler/distsql/rdl/resource/AlterStorageUnitBackendHandler.java
+++
b/proxy/backend/src/main/java/org/apache/shardingsphere/proxy/backend/handler/distsql/rdl/storage/unit/AlterStorageUnitBackendHandler.java
@@ -15,9 +15,12 @@
* limitations under the License.
*/
-package org.apache.shardingsphere.proxy.backend.handler.distsql.rdl.resource;
+package
org.apache.shardingsphere.proxy.backend.handler.distsql.rdl.storage.unit;
import lombok.extern.slf4j.Slf4j;
+import
org.apache.shardingsphere.distsql.handler.exception.storageunit.DuplicateStorageUnitException;
+import
org.apache.shardingsphere.distsql.handler.exception.storageunit.InvalidStorageUnitsException;
+import
org.apache.shardingsphere.distsql.handler.exception.storageunit.MissingRequiredStorageUnitsException;
import
org.apache.shardingsphere.distsql.handler.validate.DataSourcePropertiesValidateHandler;
import org.apache.shardingsphere.distsql.parser.segment.DataSourceSegment;
import
org.apache.shardingsphere.distsql.parser.segment.HostnameAndPortBasedDataSourceSegment;
@@ -29,13 +32,9 @@ import
org.apache.shardingsphere.infra.database.metadata.url.StandardJdbcUrlPars
import org.apache.shardingsphere.infra.database.type.DatabaseType;
import org.apache.shardingsphere.infra.datasource.props.DataSourceProperties;
import
org.apache.shardingsphere.infra.datasource.props.DataSourcePropertiesCreator;
-import
org.apache.shardingsphere.distsql.handler.exception.storageunit.DuplicateStorageUnitException;
-import
org.apache.shardingsphere.distsql.handler.exception.storageunit.InvalidStorageUnitsException;
-import
org.apache.shardingsphere.distsql.handler.exception.storageunit.MissingRequiredStorageUnitsException;
import
org.apache.shardingsphere.infra.util.exception.ShardingSpherePreconditions;
import
org.apache.shardingsphere.infra.util.exception.external.server.ShardingSphereServerException;
import org.apache.shardingsphere.proxy.backend.context.ProxyContext;
-import
org.apache.shardingsphere.proxy.backend.handler.DatabaseRequiredBackendHandler;
import org.apache.shardingsphere.proxy.backend.response.header.ResponseHeader;
import
org.apache.shardingsphere.proxy.backend.response.header.update.UpdateResponseHeader;
import org.apache.shardingsphere.proxy.backend.session.ConnectionSession;
@@ -53,7 +52,7 @@ import java.util.stream.Collectors;
* Alter storage unit backend handler.
*/
@Slf4j
-public final class AlterStorageUnitBackendHandler extends
DatabaseRequiredBackendHandler<AlterStorageUnitStatement> implements
StorageUnitBackendHandler<AlterStorageUnitStatement> {
+public final class AlterStorageUnitBackendHandler extends
StorageUnitDefinitionBackendHandler<AlterStorageUnitStatement> {
private final DatabaseType databaseType;
diff --git
a/proxy/backend/src/main/java/org/apache/shardingsphere/proxy/backend/handler/distsql/rdl/resource/RegisterStorageUnitBackendHandler.java
b/proxy/backend/src/main/java/org/apache/shardingsphere/proxy/backend/handler/distsql/rdl/storage/unit/RegisterStorageUnitBackendHandler.java
similarity index 95%
rename from
proxy/backend/src/main/java/org/apache/shardingsphere/proxy/backend/handler/distsql/rdl/resource/RegisterStorageUnitBackendHandler.java
rename to
proxy/backend/src/main/java/org/apache/shardingsphere/proxy/backend/handler/distsql/rdl/storage/unit/RegisterStorageUnitBackendHandler.java
index c9fe7bb7a81..f136f588c28 100644
---
a/proxy/backend/src/main/java/org/apache/shardingsphere/proxy/backend/handler/distsql/rdl/resource/RegisterStorageUnitBackendHandler.java
+++
b/proxy/backend/src/main/java/org/apache/shardingsphere/proxy/backend/handler/distsql/rdl/storage/unit/RegisterStorageUnitBackendHandler.java
@@ -15,7 +15,7 @@
* limitations under the License.
*/
-package org.apache.shardingsphere.proxy.backend.handler.distsql.rdl.resource;
+package
org.apache.shardingsphere.proxy.backend.handler.distsql.rdl.storage.unit;
import lombok.extern.slf4j.Slf4j;
import
org.apache.shardingsphere.distsql.handler.exception.storageunit.DuplicateStorageUnitException;
@@ -30,7 +30,6 @@ import
org.apache.shardingsphere.infra.rule.identifier.type.DataSourceContainedR
import
org.apache.shardingsphere.infra.util.exception.ShardingSpherePreconditions;
import
org.apache.shardingsphere.infra.util.exception.external.server.ShardingSphereServerException;
import org.apache.shardingsphere.proxy.backend.context.ProxyContext;
-import
org.apache.shardingsphere.proxy.backend.handler.DatabaseRequiredBackendHandler;
import org.apache.shardingsphere.proxy.backend.response.header.ResponseHeader;
import
org.apache.shardingsphere.proxy.backend.response.header.update.UpdateResponseHeader;
import org.apache.shardingsphere.proxy.backend.session.ConnectionSession;
@@ -47,7 +46,7 @@ import java.util.stream.Collectors;
* Register storage unit backend handler.
*/
@Slf4j
-public final class RegisterStorageUnitBackendHandler extends
DatabaseRequiredBackendHandler<RegisterStorageUnitStatement> implements
StorageUnitBackendHandler<RegisterStorageUnitStatement> {
+public final class RegisterStorageUnitBackendHandler extends
StorageUnitDefinitionBackendHandler<RegisterStorageUnitStatement> {
private final DatabaseType databaseType;
diff --git
a/proxy/backend/src/main/java/org/apache/shardingsphere/proxy/backend/handler/distsql/rdl/resource/StorageUnitBackendHandler.java
b/proxy/backend/src/main/java/org/apache/shardingsphere/proxy/backend/handler/distsql/rdl/storage/unit/StorageUnitDefinitionBackendHandler.java
similarity index 59%
rename from
proxy/backend/src/main/java/org/apache/shardingsphere/proxy/backend/handler/distsql/rdl/resource/StorageUnitBackendHandler.java
rename to
proxy/backend/src/main/java/org/apache/shardingsphere/proxy/backend/handler/distsql/rdl/storage/unit/StorageUnitDefinitionBackendHandler.java
index 5f5c411d06c..00c9892bb18 100644
---
a/proxy/backend/src/main/java/org/apache/shardingsphere/proxy/backend/handler/distsql/rdl/resource/StorageUnitBackendHandler.java
+++
b/proxy/backend/src/main/java/org/apache/shardingsphere/proxy/backend/handler/distsql/rdl/storage/unit/StorageUnitDefinitionBackendHandler.java
@@ -15,20 +15,22 @@
* limitations under the License.
*/
-package org.apache.shardingsphere.proxy.backend.handler.distsql.rdl.resource;
+package
org.apache.shardingsphere.proxy.backend.handler.distsql.rdl.storage.unit;
import
org.apache.shardingsphere.distsql.parser.statement.rdl.StorageUnitDefinitionStatement;
+import
org.apache.shardingsphere.proxy.backend.handler.distsql.rdl.RDLBackendHandler;
+import org.apache.shardingsphere.proxy.backend.session.ConnectionSession;
/**
- * Storage unit backend handler.
+ * Storage unit definition backend handler.
+ *
+ * @param <T> type of storage unit definition statement
*/
-public interface StorageUnitBackendHandler<T extends
StorageUnitDefinitionStatement> {
+public abstract class StorageUnitDefinitionBackendHandler<T extends
StorageUnitDefinitionStatement> extends RDLBackendHandler<T> {
+
+ public StorageUnitDefinitionBackendHandler(final T sqlStatement, final
ConnectionSession connectionSession) {
+ super(sqlStatement, connectionSession);
+ }
- /**
- * Check SQL statement.
- *
- * @param databaseName database name
- * @param sqlStatement SQL statement
- */
- void checkSQLStatement(String databaseName, T sqlStatement);
+ protected abstract void checkSQLStatement(String databaseName, T
sqlStatement);
}
diff --git
a/proxy/backend/src/main/java/org/apache/shardingsphere/proxy/backend/handler/distsql/rdl/resource/UnregisterStorageUnitBackendHandler.java
b/proxy/backend/src/main/java/org/apache/shardingsphere/proxy/backend/handler/distsql/rdl/storage/unit/UnregisterStorageUnitBackendHandler.java
similarity index 95%
rename from
proxy/backend/src/main/java/org/apache/shardingsphere/proxy/backend/handler/distsql/rdl/resource/UnregisterStorageUnitBackendHandler.java
rename to
proxy/backend/src/main/java/org/apache/shardingsphere/proxy/backend/handler/distsql/rdl/storage/unit/UnregisterStorageUnitBackendHandler.java
index 201b93309fc..715e7173fac 100644
---
a/proxy/backend/src/main/java/org/apache/shardingsphere/proxy/backend/handler/distsql/rdl/resource/UnregisterStorageUnitBackendHandler.java
+++
b/proxy/backend/src/main/java/org/apache/shardingsphere/proxy/backend/handler/distsql/rdl/storage/unit/UnregisterStorageUnitBackendHandler.java
@@ -15,23 +15,22 @@
* limitations under the License.
*/
-package org.apache.shardingsphere.proxy.backend.handler.distsql.rdl.resource;
+package
org.apache.shardingsphere.proxy.backend.handler.distsql.rdl.storage.unit;
import com.google.common.collect.LinkedListMultimap;
import com.google.common.collect.Multimap;
import lombok.extern.slf4j.Slf4j;
-import
org.apache.shardingsphere.distsql.parser.statement.rdl.drop.UnregisterStorageUnitStatement;
-import org.apache.shardingsphere.infra.datanode.DataNode;
import
org.apache.shardingsphere.distsql.handler.exception.storageunit.InvalidStorageUnitsException;
import
org.apache.shardingsphere.distsql.handler.exception.storageunit.MissingRequiredStorageUnitsException;
import
org.apache.shardingsphere.distsql.handler.exception.storageunit.StorageUnitInUsedException;
+import
org.apache.shardingsphere.distsql.parser.statement.rdl.drop.UnregisterStorageUnitStatement;
+import org.apache.shardingsphere.infra.datanode.DataNode;
import org.apache.shardingsphere.infra.rule.ShardingSphereRule;
import
org.apache.shardingsphere.infra.rule.identifier.type.DataNodeContainedRule;
import
org.apache.shardingsphere.infra.rule.identifier.type.DataSourceContainedRule;
import
org.apache.shardingsphere.infra.util.exception.ShardingSpherePreconditions;
import
org.apache.shardingsphere.infra.util.exception.external.server.ShardingSphereServerException;
import org.apache.shardingsphere.proxy.backend.context.ProxyContext;
-import
org.apache.shardingsphere.proxy.backend.handler.DatabaseRequiredBackendHandler;
import org.apache.shardingsphere.proxy.backend.response.header.ResponseHeader;
import
org.apache.shardingsphere.proxy.backend.response.header.update.UpdateResponseHeader;
import org.apache.shardingsphere.proxy.backend.session.ConnectionSession;
@@ -49,7 +48,7 @@ import java.util.stream.Collectors;
* Unregister storage unit backend handler.
*/
@Slf4j
-public final class UnregisterStorageUnitBackendHandler extends
DatabaseRequiredBackendHandler<UnregisterStorageUnitStatement> implements
StorageUnitBackendHandler<UnregisterStorageUnitStatement> {
+public final class UnregisterStorageUnitBackendHandler extends
StorageUnitDefinitionBackendHandler<UnregisterStorageUnitStatement> {
public UnregisterStorageUnitBackendHandler(final
UnregisterStorageUnitStatement sqlStatement, final ConnectionSession
connectionSession) {
super(sqlStatement, connectionSession);
diff --git
a/proxy/backend/src/main/java/org/apache/shardingsphere/proxy/backend/handler/distsql/rql/resource/StorageUnitResultSet.java
b/proxy/backend/src/main/java/org/apache/shardingsphere/proxy/backend/handler/distsql/rql/storage/unit/StorageUnitResultSet.java
similarity index 99%
rename from
proxy/backend/src/main/java/org/apache/shardingsphere/proxy/backend/handler/distsql/rql/resource/StorageUnitResultSet.java
rename to
proxy/backend/src/main/java/org/apache/shardingsphere/proxy/backend/handler/distsql/rql/storage/unit/StorageUnitResultSet.java
index 74cb9ceeb47..3e23a517018 100644
---
a/proxy/backend/src/main/java/org/apache/shardingsphere/proxy/backend/handler/distsql/rql/resource/StorageUnitResultSet.java
+++
b/proxy/backend/src/main/java/org/apache/shardingsphere/proxy/backend/handler/distsql/rql/storage/unit/StorageUnitResultSet.java
@@ -15,17 +15,17 @@
* limitations under the License.
*/
-package org.apache.shardingsphere.proxy.backend.handler.distsql.rql.resource;
+package
org.apache.shardingsphere.proxy.backend.handler.distsql.rql.storage.unit;
import com.google.common.collect.LinkedListMultimap;
import com.google.common.collect.Multimap;
import com.google.gson.Gson;
+import
org.apache.shardingsphere.distsql.handler.resultset.DatabaseDistSQLResultSet;
import
org.apache.shardingsphere.distsql.parser.statement.rql.show.ShowStorageUnitsStatement;
import org.apache.shardingsphere.infra.database.metadata.DataSourceMetaData;
import org.apache.shardingsphere.infra.datanode.DataNode;
import org.apache.shardingsphere.infra.datasource.props.DataSourceProperties;
import
org.apache.shardingsphere.infra.datasource.props.DataSourcePropertiesCreator;
-import
org.apache.shardingsphere.distsql.handler.resultset.DatabaseDistSQLResultSet;
import
org.apache.shardingsphere.infra.metadata.database.ShardingSphereDatabase;
import
org.apache.shardingsphere.infra.metadata.database.resource.ShardingSphereResourceMetaData;
import
org.apache.shardingsphere.infra.metadata.database.rule.ShardingSphereRuleMetaData;
diff --git
a/proxy/backend/src/main/java/org/apache/shardingsphere/proxy/backend/handler/distsql/rul/RULBackendHandler.java
b/proxy/backend/src/main/java/org/apache/shardingsphere/proxy/backend/handler/distsql/rul/RULBackendHandler.java
index 02004d2029f..fb50b830d90 100644
---
a/proxy/backend/src/main/java/org/apache/shardingsphere/proxy/backend/handler/distsql/rul/RULBackendHandler.java
+++
b/proxy/backend/src/main/java/org/apache/shardingsphere/proxy/backend/handler/distsql/rul/RULBackendHandler.java
@@ -19,14 +19,14 @@ package
org.apache.shardingsphere.proxy.backend.handler.distsql.rul;
import lombok.Getter;
import org.apache.shardingsphere.distsql.parser.statement.rul.RULStatement;
+import
org.apache.shardingsphere.proxy.backend.handler.distsql.DistSQLBackendHandler;
import org.apache.shardingsphere.proxy.backend.session.ConnectionSession;
-import org.apache.shardingsphere.proxy.backend.handler.ProxyBackendHandler;
/**
* RUL backend handler.
*/
@Getter
-public abstract class RULBackendHandler<E extends RULStatement> implements
ProxyBackendHandler {
+public abstract class RULBackendHandler<E extends RULStatement> implements
DistSQLBackendHandler {
private E sqlStatement;
diff --git
a/proxy/backend/src/main/resources/META-INF/services/org.apache.shardingsphere.distsql.handler.resultset.DistSQLResultSet
b/proxy/backend/src/main/resources/META-INF/services/org.apache.shardingsphere.distsql.handler.resultset.DistSQLResultSet
index 74058cb6ba7..8c4f9d71f0a 100644
---
a/proxy/backend/src/main/resources/META-INF/services/org.apache.shardingsphere.distsql.handler.resultset.DistSQLResultSet
+++
b/proxy/backend/src/main/resources/META-INF/services/org.apache.shardingsphere.distsql.handler.resultset.DistSQLResultSet
@@ -15,7 +15,7 @@
# limitations under the License.
#
-org.apache.shardingsphere.proxy.backend.handler.distsql.rql.resource.StorageUnitResultSet
+org.apache.shardingsphere.proxy.backend.handler.distsql.rql.storage.unit.StorageUnitResultSet
org.apache.shardingsphere.proxy.backend.handler.distsql.rql.rule.LogicalTableResultSet
org.apache.shardingsphere.proxy.backend.handler.distsql.rql.rule.SingleTableResultSet
org.apache.shardingsphere.proxy.backend.handler.distsql.rql.rule.SingleTableRuleResultSet
diff --git
a/proxy/backend/src/test/java/org/apache/shardingsphere/proxy/backend/handler/distsql/rdl/RDLBackendHandlerFactoryTest.java
b/proxy/backend/src/test/java/org/apache/shardingsphere/proxy/backend/handler/distsql/rdl/RDLBackendHandlerFactoryTest.java
index cc896e39937..8380029475f 100644
---
a/proxy/backend/src/test/java/org/apache/shardingsphere/proxy/backend/handler/distsql/rdl/RDLBackendHandlerFactoryTest.java
+++
b/proxy/backend/src/test/java/org/apache/shardingsphere/proxy/backend/handler/distsql/rdl/RDLBackendHandlerFactoryTest.java
@@ -21,10 +21,10 @@ import
org.apache.shardingsphere.distsql.parser.statement.rdl.RuleDefinitionStat
import
org.apache.shardingsphere.distsql.parser.statement.rdl.alter.AlterStorageUnitStatement;
import
org.apache.shardingsphere.distsql.parser.statement.rdl.create.RegisterStorageUnitStatement;
import
org.apache.shardingsphere.distsql.parser.statement.rdl.drop.UnregisterStorageUnitStatement;
-import
org.apache.shardingsphere.proxy.backend.handler.distsql.rdl.resource.RegisterStorageUnitBackendHandler;
-import
org.apache.shardingsphere.proxy.backend.handler.distsql.rdl.resource.AlterStorageUnitBackendHandler;
-import
org.apache.shardingsphere.proxy.backend.handler.distsql.rdl.resource.UnregisterStorageUnitBackendHandler;
import
org.apache.shardingsphere.proxy.backend.handler.distsql.rdl.rule.RuleDefinitionBackendHandler;
+import
org.apache.shardingsphere.proxy.backend.handler.distsql.rdl.storage.unit.AlterStorageUnitBackendHandler;
+import
org.apache.shardingsphere.proxy.backend.handler.distsql.rdl.storage.unit.RegisterStorageUnitBackendHandler;
+import
org.apache.shardingsphere.proxy.backend.handler.distsql.rdl.storage.unit.UnregisterStorageUnitBackendHandler;
import org.apache.shardingsphere.proxy.backend.session.ConnectionSession;
import org.junit.Test;
diff --git
a/proxy/backend/src/test/java/org/apache/shardingsphere/proxy/backend/handler/distsql/rdl/resource/AlterStorageUnitBackendHandlerTest.java
b/proxy/backend/src/test/java/org/apache/shardingsphere/proxy/backend/handler/distsql/rdl/storage/unit/AlterStorageUnitBackendHandlerTest.java
similarity index 99%
rename from
proxy/backend/src/test/java/org/apache/shardingsphere/proxy/backend/handler/distsql/rdl/resource/AlterStorageUnitBackendHandlerTest.java
rename to
proxy/backend/src/test/java/org/apache/shardingsphere/proxy/backend/handler/distsql/rdl/storage/unit/AlterStorageUnitBackendHandlerTest.java
index f95623cbd1e..e317859d7a6 100644
---
a/proxy/backend/src/test/java/org/apache/shardingsphere/proxy/backend/handler/distsql/rdl/resource/AlterStorageUnitBackendHandlerTest.java
+++
b/proxy/backend/src/test/java/org/apache/shardingsphere/proxy/backend/handler/distsql/rdl/storage/unit/AlterStorageUnitBackendHandlerTest.java
@@ -15,7 +15,7 @@
* limitations under the License.
*/
-package org.apache.shardingsphere.proxy.backend.handler.distsql.rdl.resource;
+package
org.apache.shardingsphere.proxy.backend.handler.distsql.rdl.storage.unit;
import com.zaxxer.hikari.HikariDataSource;
import
org.apache.shardingsphere.distsql.handler.exception.storageunit.DuplicateStorageUnitException;
diff --git
a/proxy/backend/src/test/java/org/apache/shardingsphere/proxy/backend/handler/distsql/rdl/resource/RegisterStorageUnitBackendHandlerTest.java
b/proxy/backend/src/test/java/org/apache/shardingsphere/proxy/backend/handler/distsql/rdl/storage/unit/RegisterStorageUnitBackendHandlerTest.java
similarity index 99%
rename from
proxy/backend/src/test/java/org/apache/shardingsphere/proxy/backend/handler/distsql/rdl/resource/RegisterStorageUnitBackendHandlerTest.java
rename to
proxy/backend/src/test/java/org/apache/shardingsphere/proxy/backend/handler/distsql/rdl/storage/unit/RegisterStorageUnitBackendHandlerTest.java
index 364acd3b9c6..fb7c85da253 100644
---
a/proxy/backend/src/test/java/org/apache/shardingsphere/proxy/backend/handler/distsql/rdl/resource/RegisterStorageUnitBackendHandlerTest.java
+++
b/proxy/backend/src/test/java/org/apache/shardingsphere/proxy/backend/handler/distsql/rdl/storage/unit/RegisterStorageUnitBackendHandlerTest.java
@@ -15,7 +15,7 @@
* limitations under the License.
*/
-package org.apache.shardingsphere.proxy.backend.handler.distsql.rdl.resource;
+package
org.apache.shardingsphere.proxy.backend.handler.distsql.rdl.storage.unit;
import
org.apache.shardingsphere.distsql.handler.exception.storageunit.DuplicateStorageUnitException;
import
org.apache.shardingsphere.distsql.handler.exception.storageunit.InvalidStorageUnitsException;
diff --git
a/proxy/backend/src/test/java/org/apache/shardingsphere/proxy/backend/handler/distsql/rdl/resource/UnregisterStorageUnitBackendHandlerTest.java
b/proxy/backend/src/test/java/org/apache/shardingsphere/proxy/backend/handler/distsql/rdl/storage/unit/UnregisterStorageUnitBackendHandlerTest.java
similarity index 99%
rename from
proxy/backend/src/test/java/org/apache/shardingsphere/proxy/backend/handler/distsql/rdl/resource/UnregisterStorageUnitBackendHandlerTest.java
rename to
proxy/backend/src/test/java/org/apache/shardingsphere/proxy/backend/handler/distsql/rdl/storage/unit/UnregisterStorageUnitBackendHandlerTest.java
index 493b5e18567..e42f6e5a0b2 100644
---
a/proxy/backend/src/test/java/org/apache/shardingsphere/proxy/backend/handler/distsql/rdl/resource/UnregisterStorageUnitBackendHandlerTest.java
+++
b/proxy/backend/src/test/java/org/apache/shardingsphere/proxy/backend/handler/distsql/rdl/storage/unit/UnregisterStorageUnitBackendHandlerTest.java
@@ -15,13 +15,13 @@
* limitations under the License.
*/
-package org.apache.shardingsphere.proxy.backend.handler.distsql.rdl.resource;
+package
org.apache.shardingsphere.proxy.backend.handler.distsql.rdl.storage.unit;
-import
org.apache.shardingsphere.distsql.parser.statement.rdl.drop.UnregisterStorageUnitStatement;
-import org.apache.shardingsphere.infra.datanode.DataNode;
import org.apache.shardingsphere.distsql.handler.exception.DistSQLException;
import
org.apache.shardingsphere.distsql.handler.exception.storageunit.MissingRequiredStorageUnitsException;
import
org.apache.shardingsphere.distsql.handler.exception.storageunit.StorageUnitInUsedException;
+import
org.apache.shardingsphere.distsql.parser.statement.rdl.drop.UnregisterStorageUnitStatement;
+import org.apache.shardingsphere.infra.datanode.DataNode;
import org.apache.shardingsphere.infra.instance.mode.ModeContextManager;
import
org.apache.shardingsphere.infra.metadata.database.ShardingSphereDatabase;
import
org.apache.shardingsphere.infra.metadata.database.resource.ShardingSphereResourceMetaData;
diff --git
a/proxy/backend/src/test/java/org/apache/shardingsphere/proxy/backend/handler/distsql/rql/StorageUnitResultSetTest.java
b/proxy/backend/src/test/java/org/apache/shardingsphere/proxy/backend/handler/distsql/rql/StorageUnitResultSetTest.java
index 94c9a068845..2ccb365ddfe 100644
---
a/proxy/backend/src/test/java/org/apache/shardingsphere/proxy/backend/handler/distsql/rql/StorageUnitResultSetTest.java
+++
b/proxy/backend/src/test/java/org/apache/shardingsphere/proxy/backend/handler/distsql/rql/StorageUnitResultSetTest.java
@@ -22,7 +22,7 @@ import
org.apache.shardingsphere.infra.instance.InstanceContext;
import
org.apache.shardingsphere.infra.metadata.database.ShardingSphereDatabase;
import
org.apache.shardingsphere.infra.metadata.database.resource.ShardingSphereResourceMetaData;
import
org.apache.shardingsphere.infra.metadata.database.rule.ShardingSphereRuleMetaData;
-import
org.apache.shardingsphere.proxy.backend.handler.distsql.rql.resource.StorageUnitResultSet;
+import
org.apache.shardingsphere.proxy.backend.handler.distsql.rql.storage.unit.StorageUnitResultSet;
import org.apache.shardingsphere.sharding.api.config.ShardingRuleConfiguration;
import
org.apache.shardingsphere.sharding.api.config.rule.ShardingTableRuleConfiguration;
import
org.apache.shardingsphere.sharding.api.config.strategy.keygen.KeyGenerateStrategyConfiguration;