This is an automated email from the ASF dual-hosted git repository.
zhangliang 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 770f0a4ee5f Refactor CreateDatabaseProxyBackendHandler (#36810)
770f0a4ee5f is described below
commit 770f0a4ee5f939bde44f7a035ec8bed1ff2f8e54
Author: Liang Zhang <[email protected]>
AuthorDate: Tue Oct 7 23:16:37 2025 +0800
Refactor CreateDatabaseProxyBackendHandler (#36810)
* Refactor CreateDatabaseProxyBackendHandler
* Refactor CreateDatabaseProxyBackendHandler
---
.../database/DatabaseOperateProxyBackendHandlerFactory.java | 2 ++
.../{ => type}/CreateDatabaseProxyBackendHandler.java | 12 ++++--------
.../database/{ => type}/DropDatabaseProxyBackendHandler.java | 5 ++---
.../DatabaseOperateProxyBackendHandlerFactoryTest.java | 2 ++
.../{ => type}/CreateDatabaseProxyBackendHandlerTest.java | 2 +-
.../{ => type}/DropDatabaseProxyBackendHandlerTest.java | 2 +-
6 files changed, 12 insertions(+), 13 deletions(-)
diff --git
a/proxy/backend/core/src/main/java/org/apache/shardingsphere/proxy/backend/handler/database/DatabaseOperateProxyBackendHandlerFactory.java
b/proxy/backend/core/src/main/java/org/apache/shardingsphere/proxy/backend/handler/database/DatabaseOperateProxyBackendHandlerFactory.java
index 75abec72793..884dde12418 100644
---
a/proxy/backend/core/src/main/java/org/apache/shardingsphere/proxy/backend/handler/database/DatabaseOperateProxyBackendHandlerFactory.java
+++
b/proxy/backend/core/src/main/java/org/apache/shardingsphere/proxy/backend/handler/database/DatabaseOperateProxyBackendHandlerFactory.java
@@ -21,6 +21,8 @@ import lombok.AccessLevel;
import lombok.NoArgsConstructor;
import
org.apache.shardingsphere.infra.exception.generic.UnsupportedSQLOperationException;
import org.apache.shardingsphere.proxy.backend.handler.ProxyBackendHandler;
+import
org.apache.shardingsphere.proxy.backend.handler.database.type.CreateDatabaseProxyBackendHandler;
+import
org.apache.shardingsphere.proxy.backend.handler.database.type.DropDatabaseProxyBackendHandler;
import org.apache.shardingsphere.proxy.backend.session.ConnectionSession;
import
org.apache.shardingsphere.sql.parser.statement.core.statement.SQLStatement;
import
org.apache.shardingsphere.sql.parser.statement.core.statement.type.ddl.database.CreateDatabaseStatement;
diff --git
a/proxy/backend/core/src/main/java/org/apache/shardingsphere/proxy/backend/handler/database/CreateDatabaseProxyBackendHandler.java
b/proxy/backend/core/src/main/java/org/apache/shardingsphere/proxy/backend/handler/database/type/CreateDatabaseProxyBackendHandler.java
similarity index 85%
rename from
proxy/backend/core/src/main/java/org/apache/shardingsphere/proxy/backend/handler/database/CreateDatabaseProxyBackendHandler.java
rename to
proxy/backend/core/src/main/java/org/apache/shardingsphere/proxy/backend/handler/database/type/CreateDatabaseProxyBackendHandler.java
index 939e589bb67..367a3d9a62c 100644
---
a/proxy/backend/core/src/main/java/org/apache/shardingsphere/proxy/backend/handler/database/CreateDatabaseProxyBackendHandler.java
+++
b/proxy/backend/core/src/main/java/org/apache/shardingsphere/proxy/backend/handler/database/type/CreateDatabaseProxyBackendHandler.java
@@ -15,10 +15,11 @@
* limitations under the License.
*/
-package org.apache.shardingsphere.proxy.backend.handler.database;
+package org.apache.shardingsphere.proxy.backend.handler.database.type;
import lombok.RequiredArgsConstructor;
import
org.apache.shardingsphere.database.exception.core.exception.syntax.database.DatabaseCreateExistsException;
+import org.apache.shardingsphere.infra.exception.ShardingSpherePreconditions;
import org.apache.shardingsphere.proxy.backend.context.ProxyContext;
import org.apache.shardingsphere.proxy.backend.handler.ProxyBackendHandler;
import org.apache.shardingsphere.proxy.backend.response.header.ResponseHeader;
@@ -37,14 +38,9 @@ public final class CreateDatabaseProxyBackendHandler
implements ProxyBackendHand
@Override
public ResponseHeader execute() throws SQLException {
- check(sqlStatement);
+ ShardingSpherePreconditions.checkState(sqlStatement.isIfNotExists() ||
!ProxyContext.getInstance().databaseExists(sqlStatement.getDatabaseName()),
+ () -> new
DatabaseCreateExistsException(sqlStatement.getDatabaseName()));
ProxyContext.getInstance().getContextManager().getPersistServiceFacade().getModeFacade().getMetaDataManagerService().createDatabase(sqlStatement.getDatabaseName());
return new UpdateResponseHeader(sqlStatement);
}
-
- private void check(final CreateDatabaseStatement sqlStatement) {
- if (!sqlStatement.isIfNotExists() &&
ProxyContext.getInstance().databaseExists(sqlStatement.getDatabaseName())) {
- throw new
DatabaseCreateExistsException(sqlStatement.getDatabaseName());
- }
- }
}
diff --git
a/proxy/backend/core/src/main/java/org/apache/shardingsphere/proxy/backend/handler/database/DropDatabaseProxyBackendHandler.java
b/proxy/backend/core/src/main/java/org/apache/shardingsphere/proxy/backend/handler/database/type/DropDatabaseProxyBackendHandler.java
similarity index 95%
rename from
proxy/backend/core/src/main/java/org/apache/shardingsphere/proxy/backend/handler/database/DropDatabaseProxyBackendHandler.java
rename to
proxy/backend/core/src/main/java/org/apache/shardingsphere/proxy/backend/handler/database/type/DropDatabaseProxyBackendHandler.java
index 5570ac7dbd4..808c223029a 100644
---
a/proxy/backend/core/src/main/java/org/apache/shardingsphere/proxy/backend/handler/database/DropDatabaseProxyBackendHandler.java
+++
b/proxy/backend/core/src/main/java/org/apache/shardingsphere/proxy/backend/handler/database/type/DropDatabaseProxyBackendHandler.java
@@ -15,7 +15,7 @@
* limitations under the License.
*/
-package org.apache.shardingsphere.proxy.backend.handler.database;
+package org.apache.shardingsphere.proxy.backend.handler.database.type;
import com.google.common.base.Strings;
import lombok.RequiredArgsConstructor;
@@ -64,8 +64,7 @@ public final class DropDatabaseProxyBackendHandler implements
ProxyBackendHandle
private void check(final DropDatabaseStatement sqlStatement, final Grantee
grantee) {
String databaseName = sqlStatement.getDatabaseName().toLowerCase();
AuthorityRule authorityRule =
ProxyContext.getInstance().getContextManager().getMetaDataContexts().getMetaData().getGlobalRuleMetaData().getSingleRule(AuthorityRule.class);
- AuthorityChecker authorityChecker = new
AuthorityChecker(authorityRule, grantee);
-
ShardingSpherePreconditions.checkState(authorityChecker.isAuthorized(databaseName),
() -> new UnknownDatabaseException(databaseName));
+ ShardingSpherePreconditions.checkState(new
AuthorityChecker(authorityRule, grantee).isAuthorized(databaseName), () -> new
UnknownDatabaseException(databaseName));
ShardingSpherePreconditions.checkState(sqlStatement.isIfExists() ||
ProxyContext.getInstance().databaseExists(databaseName), () -> new
DatabaseDropNotExistsException(databaseName));
}
diff --git
a/proxy/backend/core/src/test/java/org/apache/shardingsphere/proxy/backend/handler/database/DatabaseOperateProxyBackendHandlerFactoryTest.java
b/proxy/backend/core/src/test/java/org/apache/shardingsphere/proxy/backend/handler/database/DatabaseOperateProxyBackendHandlerFactoryTest.java
index 7d87502a085..9480a0a2476 100644
---
a/proxy/backend/core/src/test/java/org/apache/shardingsphere/proxy/backend/handler/database/DatabaseOperateProxyBackendHandlerFactoryTest.java
+++
b/proxy/backend/core/src/test/java/org/apache/shardingsphere/proxy/backend/handler/database/DatabaseOperateProxyBackendHandlerFactoryTest.java
@@ -31,6 +31,8 @@ import
org.apache.shardingsphere.infra.spi.type.typed.TypedSPILoader;
import org.apache.shardingsphere.mode.manager.ContextManager;
import org.apache.shardingsphere.mode.metadata.MetaDataContexts;
import org.apache.shardingsphere.proxy.backend.context.ProxyContext;
+import
org.apache.shardingsphere.proxy.backend.handler.database.type.CreateDatabaseProxyBackendHandler;
+import
org.apache.shardingsphere.proxy.backend.handler.database.type.DropDatabaseProxyBackendHandler;
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;
diff --git
a/proxy/backend/core/src/test/java/org/apache/shardingsphere/proxy/backend/handler/database/CreateDatabaseProxyBackendHandlerTest.java
b/proxy/backend/core/src/test/java/org/apache/shardingsphere/proxy/backend/handler/database/type/CreateDatabaseProxyBackendHandlerTest.java
similarity index 99%
rename from
proxy/backend/core/src/test/java/org/apache/shardingsphere/proxy/backend/handler/database/CreateDatabaseProxyBackendHandlerTest.java
rename to
proxy/backend/core/src/test/java/org/apache/shardingsphere/proxy/backend/handler/database/type/CreateDatabaseProxyBackendHandlerTest.java
index 5e96f2a4690..d657416cd83 100644
---
a/proxy/backend/core/src/test/java/org/apache/shardingsphere/proxy/backend/handler/database/CreateDatabaseProxyBackendHandlerTest.java
+++
b/proxy/backend/core/src/test/java/org/apache/shardingsphere/proxy/backend/handler/database/type/CreateDatabaseProxyBackendHandlerTest.java
@@ -15,7 +15,7 @@
* limitations under the License.
*/
-package org.apache.shardingsphere.proxy.backend.handler.database;
+package org.apache.shardingsphere.proxy.backend.handler.database.type;
import
org.apache.shardingsphere.database.exception.core.exception.syntax.database.DatabaseCreateExistsException;
import org.apache.shardingsphere.mode.manager.ContextManager;
diff --git
a/proxy/backend/core/src/test/java/org/apache/shardingsphere/proxy/backend/handler/database/DropDatabaseProxyBackendHandlerTest.java
b/proxy/backend/core/src/test/java/org/apache/shardingsphere/proxy/backend/handler/database/type/DropDatabaseProxyBackendHandlerTest.java
similarity index 99%
rename from
proxy/backend/core/src/test/java/org/apache/shardingsphere/proxy/backend/handler/database/DropDatabaseProxyBackendHandlerTest.java
rename to
proxy/backend/core/src/test/java/org/apache/shardingsphere/proxy/backend/handler/database/type/DropDatabaseProxyBackendHandlerTest.java
index 06dc4812ee0..287ebd27873 100644
---
a/proxy/backend/core/src/test/java/org/apache/shardingsphere/proxy/backend/handler/database/DropDatabaseProxyBackendHandlerTest.java
+++
b/proxy/backend/core/src/test/java/org/apache/shardingsphere/proxy/backend/handler/database/type/DropDatabaseProxyBackendHandlerTest.java
@@ -15,7 +15,7 @@
* limitations under the License.
*/
-package org.apache.shardingsphere.proxy.backend.handler.database;
+package org.apache.shardingsphere.proxy.backend.handler.database.type;
import org.apache.shardingsphere.authority.rule.AuthorityRule;
import org.apache.shardingsphere.database.connector.core.type.DatabaseType;