You are viewing a plain text version of this content. The canonical link for it is here.
Posted to notifications@shardingsphere.apache.org by du...@apache.org on 2022/05/06 00:28:45 UTC
[shardingsphere] branch master updated: Rename SchemaNotExistedException to DatabaseNotExistedException. (#17349)
This is an automated email from the ASF dual-hosted git repository.
duanzhengqiang 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 17c58354f3e Rename SchemaNotExistedException to DatabaseNotExistedException. (#17349)
17c58354f3e is described below
commit 17c58354f3ef2822097e76677e7244e5ee4217d9
Author: yx9o <ya...@163.com>
AuthorDate: Fri May 6 08:28:29 2022 +0800
Rename SchemaNotExistedException to DatabaseNotExistedException. (#17349)
* Rename SchemaNotExistedException to DatabaseNotExistedException.
* Update.
---
.../statement/dml/InsertStatementContext.java | 8 ++++----
.../statement/dml/SelectStatementContext.java | 4 ++--
...ption.java => DatabaseNotExistedException.java} | 12 ++++++------
.../mysql/executor/ShowCreateDatabaseExecutor.java | 4 ++--
.../ral/advanced/PreviewDistSQLBackendHandler.java | 4 ++--
.../ExportDatabaseConfigurationHandler.java | 7 ++++---
...ShowReadwriteSplittingReadResourcesHandler.java | 22 ++++++++++++++--------
.../common/queryable/ShowTableMetadataHandler.java | 22 ++++++++++++++--------
.../ImportDatabaseConfigurationHandler.java | 4 ++--
.../updatable/RefreshTableMetadataHandler.java | 14 ++++++++------
.../SetReadwriteSplittingStatusHandler.java | 10 +++++-----
.../frontend/mysql/err/MySQLErrPacketFactory.java | 12 ++++++------
12 files changed, 69 insertions(+), 54 deletions(-)
diff --git a/shardingsphere-infra/shardingsphere-infra-binder/src/main/java/org/apache/shardingsphere/infra/binder/statement/dml/InsertStatementContext.java b/shardingsphere-infra/shardingsphere-infra-binder/src/main/java/org/apache/shardingsphere/infra/binder/statement/dml/InsertStatementContext.java
index 70099d23f35..742f10400b8 100644
--- a/shardingsphere-infra/shardingsphere-infra-binder/src/main/java/org/apache/shardingsphere/infra/binder/statement/dml/InsertStatementContext.java
+++ b/shardingsphere-infra/shardingsphere-infra-binder/src/main/java/org/apache/shardingsphere/infra/binder/statement/dml/InsertStatementContext.java
@@ -27,7 +27,7 @@ import org.apache.shardingsphere.infra.binder.segment.insert.values.OnDuplicateU
import org.apache.shardingsphere.infra.binder.segment.table.TablesContext;
import org.apache.shardingsphere.infra.binder.statement.CommonSQLStatementContext;
import org.apache.shardingsphere.infra.binder.type.TableAvailable;
-import org.apache.shardingsphere.infra.exception.SchemaNotExistedException;
+import org.apache.shardingsphere.infra.exception.DatabaseNotExistedException;
import org.apache.shardingsphere.infra.metadata.ShardingSphereMetaData;
import org.apache.shardingsphere.infra.metadata.schema.ShardingSphereSchema;
import org.apache.shardingsphere.sql.parser.sql.common.extractor.TableExtractor;
@@ -96,11 +96,11 @@ public final class InsertStatementContext extends CommonSQLStatementContext<Inse
.createGenerateKeyContext(insertColumnNames, getAllValueExpressions(sqlStatement), parameters).orElse(null);
}
- private ShardingSphereSchema getSchema(final Map<String, ShardingSphereMetaData> metaDataMap, final String defaultSchemaName) {
- String databaseName = tablesContext.getDatabaseName().orElse(defaultSchemaName);
+ private ShardingSphereSchema getSchema(final Map<String, ShardingSphereMetaData> metaDataMap, final String defaultDatabaseName) {
+ String databaseName = tablesContext.getDatabaseName().orElse(defaultDatabaseName);
ShardingSphereMetaData metaData = metaDataMap.get(databaseName);
if (null == metaData) {
- throw new SchemaNotExistedException(databaseName);
+ throw new DatabaseNotExistedException(databaseName);
}
String defaultSchema = getDatabaseType().getDefaultSchema(databaseName);
return tablesContext.getSchemaName().map(metaData::getSchemaByName).orElseGet(() -> metaData.getSchemaByName(defaultSchema));
diff --git a/shardingsphere-infra/shardingsphere-infra-binder/src/main/java/org/apache/shardingsphere/infra/binder/statement/dml/SelectStatementContext.java b/shardingsphere-infra/shardingsphere-infra-binder/src/main/java/org/apache/shardingsphere/infra/binder/statement/dml/SelectStatementContext.java
index 78c377222ec..1fc85d8c949 100644
--- a/shardingsphere-infra/shardingsphere-infra-binder/src/main/java/org/apache/shardingsphere/infra/binder/statement/dml/SelectStatementContext.java
+++ b/shardingsphere-infra/shardingsphere-infra-binder/src/main/java/org/apache/shardingsphere/infra/binder/statement/dml/SelectStatementContext.java
@@ -39,7 +39,7 @@ import org.apache.shardingsphere.infra.binder.segment.table.TablesContext;
import org.apache.shardingsphere.infra.binder.statement.CommonSQLStatementContext;
import org.apache.shardingsphere.infra.binder.type.TableAvailable;
import org.apache.shardingsphere.infra.binder.type.WhereAvailable;
-import org.apache.shardingsphere.infra.exception.SchemaNotExistedException;
+import org.apache.shardingsphere.infra.exception.DatabaseNotExistedException;
import org.apache.shardingsphere.infra.metadata.ShardingSphereMetaData;
import org.apache.shardingsphere.infra.metadata.schema.ShardingSphereSchema;
import org.apache.shardingsphere.sql.parser.sql.common.constant.ParameterMarkerType;
@@ -135,7 +135,7 @@ public final class SelectStatementContext extends CommonSQLStatementContext<Sele
if (tablesContext.getTables().isEmpty()) {
return new ShardingSphereSchema();
} else {
- throw new SchemaNotExistedException(databaseName);
+ throw new DatabaseNotExistedException(databaseName);
}
}
String defaultSchemaName = getDatabaseType().getDefaultSchema(databaseName);
diff --git a/shardingsphere-infra/shardingsphere-infra-common/src/main/java/org/apache/shardingsphere/infra/exception/SchemaNotExistedException.java b/shardingsphere-infra/shardingsphere-infra-common/src/main/java/org/apache/shardingsphere/infra/exception/DatabaseNotExistedException.java
similarity index 74%
rename from shardingsphere-infra/shardingsphere-infra-common/src/main/java/org/apache/shardingsphere/infra/exception/SchemaNotExistedException.java
rename to shardingsphere-infra/shardingsphere-infra-common/src/main/java/org/apache/shardingsphere/infra/exception/DatabaseNotExistedException.java
index 2c66016b8e1..2afc69cdbb6 100644
--- a/shardingsphere-infra/shardingsphere-infra-common/src/main/java/org/apache/shardingsphere/infra/exception/SchemaNotExistedException.java
+++ b/shardingsphere-infra/shardingsphere-infra-common/src/main/java/org/apache/shardingsphere/infra/exception/DatabaseNotExistedException.java
@@ -20,17 +20,17 @@ package org.apache.shardingsphere.infra.exception;
import lombok.Getter;
/**
- * Schema does not exist exception.
+ * Database does not exist exception.
*/
@Getter
-public final class SchemaNotExistedException extends ShardingSphereException {
+public final class DatabaseNotExistedException extends ShardingSphereException {
private static final long serialVersionUID = -1818822065202117480L;
- private final String schemaName;
+ private final String databaseName;
- public SchemaNotExistedException(final String schemaName) {
- super(String.format("Schema '%s' doesn't exist.", schemaName));
- this.schemaName = schemaName;
+ public DatabaseNotExistedException(final String databaseName) {
+ super(String.format("Database '%s' doesn't exist.", databaseName));
+ this.databaseName = databaseName;
}
}
diff --git a/shardingsphere-proxy/shardingsphere-proxy-backend/src/main/java/org/apache/shardingsphere/proxy/backend/text/admin/mysql/executor/ShowCreateDatabaseExecutor.java b/shardingsphere-proxy/shardingsphere-proxy-backend/src/main/java/org/apache/shardingsphere/proxy/backend/text/admin/mysql/executor/ShowCreateDatabaseExecutor.java
index 66647e552d1..91adc97dd38 100644
--- a/shardingsphere-proxy/shardingsphere-proxy-backend/src/main/java/org/apache/shardingsphere/proxy/backend/text/admin/mysql/executor/ShowCreateDatabaseExecutor.java
+++ b/shardingsphere-proxy/shardingsphere-proxy-backend/src/main/java/org/apache/shardingsphere/proxy/backend/text/admin/mysql/executor/ShowCreateDatabaseExecutor.java
@@ -19,7 +19,7 @@ package org.apache.shardingsphere.proxy.backend.text.admin.mysql.executor;
import lombok.Getter;
import lombok.RequiredArgsConstructor;
-import org.apache.shardingsphere.infra.exception.SchemaNotExistedException;
+import org.apache.shardingsphere.infra.exception.DatabaseNotExistedException;
import org.apache.shardingsphere.infra.executor.sql.execute.result.query.QueryResult;
import org.apache.shardingsphere.infra.executor.sql.execute.result.query.QueryResultMetaData;
import org.apache.shardingsphere.infra.executor.sql.execute.result.query.impl.raw.metadata.RawQueryResultColumnMetaData;
@@ -65,7 +65,7 @@ public final class ShowCreateDatabaseExecutor implements DatabaseAdminQueryExecu
private QueryResult getQueryResult(final String databaseName) {
if (!ProxyContext.getInstance().databaseExists(databaseName)) {
- throw new SchemaNotExistedException(databaseName);
+ throw new DatabaseNotExistedException(databaseName);
}
List<MemoryQueryResultDataRow> rows = new LinkedList<>();
rows.add(new MemoryQueryResultDataRow(Arrays.asList(databaseName, String.format(CREATE_DATABASE_PATTERN, databaseName))));
diff --git a/shardingsphere-proxy/shardingsphere-proxy-backend/src/main/java/org/apache/shardingsphere/proxy/backend/text/distsql/ral/advanced/PreviewDistSQLBackendHandler.java b/shardingsphere-proxy/shardingsphere-proxy-backend/src/main/java/org/apache/shardingsphere/proxy/backend/text/distsql/ral/advanced/PreviewDistSQLBackendHandler.java
index eb284f57e0b..7b1448c6280 100644
--- a/shardingsphere-proxy/shardingsphere-proxy-backend/src/main/java/org/apache/shardingsphere/proxy/backend/text/distsql/ral/advanced/PreviewDistSQLBackendHandler.java
+++ b/shardingsphere-proxy/shardingsphere-proxy-backend/src/main/java/org/apache/shardingsphere/proxy/backend/text/distsql/ral/advanced/PreviewDistSQLBackendHandler.java
@@ -28,7 +28,7 @@ import org.apache.shardingsphere.infra.config.props.ConfigurationPropertyKey;
import org.apache.shardingsphere.infra.context.kernel.KernelProcessor;
import org.apache.shardingsphere.infra.database.type.DatabaseType;
import org.apache.shardingsphere.infra.database.type.DatabaseTypeRegistry;
-import org.apache.shardingsphere.infra.exception.SchemaNotExistedException;
+import org.apache.shardingsphere.infra.exception.DatabaseNotExistedException;
import org.apache.shardingsphere.infra.executor.sql.context.ExecutionContext;
import org.apache.shardingsphere.infra.executor.sql.context.ExecutionUnit;
import org.apache.shardingsphere.infra.executor.sql.execute.engine.ConnectionMode;
@@ -164,7 +164,7 @@ public final class PreviewDistSQLBackendHandler extends QueryableRALBackendHandl
throw new NoDatabaseSelectedException();
}
if (!ProxyContext.getInstance().getAllDatabaseNames().contains(result)) {
- throw new SchemaNotExistedException(result);
+ throw new DatabaseNotExistedException(result);
}
return result;
}
diff --git a/shardingsphere-proxy/shardingsphere-proxy-backend/src/main/java/org/apache/shardingsphere/proxy/backend/text/distsql/ral/common/queryable/ExportDatabaseConfigurationHandler.java b/shardingsphere-proxy/shardingsphere-proxy-backend/src/main/java/org/apache/shardingsphere/proxy/backend/text/distsql/ral/common/queryable/ExportDatabaseConfigurationHandler.java
index 3df3733a705..4a18d918e3a 100644
--- a/shardingsphere-proxy/shardingsphere-proxy-backend/src/main/java/org/apache/shardingsphere/proxy/backend/text/distsql/ral/common/queryable/ExportDatabaseConfigurationHandler.java
+++ b/shardingsphere-proxy/shardingsphere-proxy-backend/src/main/java/org/apache/shardingsphere/proxy/backend/text/distsql/ral/common/queryable/ExportDatabaseConfigurationHandler.java
@@ -17,6 +17,7 @@
package org.apache.shardingsphere.proxy.backend.text.distsql.ral.common.queryable;
+import com.google.common.base.Strings;
import org.apache.shardingsphere.dbdiscovery.api.config.DatabaseDiscoveryRuleConfiguration;
import org.apache.shardingsphere.dbdiscovery.yaml.swapper.DatabaseDiscoveryRuleConfigurationYamlSwapper;
import org.apache.shardingsphere.distsql.parser.statement.ral.common.queryable.ExportDatabaseConfigurationStatement;
@@ -25,7 +26,7 @@ import org.apache.shardingsphere.encrypt.yaml.swapper.EncryptRuleConfigurationYa
import org.apache.shardingsphere.infra.config.RuleConfiguration;
import org.apache.shardingsphere.infra.datasource.props.DataSourceProperties;
import org.apache.shardingsphere.infra.datasource.props.DataSourcePropertiesCreator;
-import org.apache.shardingsphere.infra.exception.SchemaNotExistedException;
+import org.apache.shardingsphere.infra.exception.DatabaseNotExistedException;
import org.apache.shardingsphere.infra.exception.ShardingSphereException;
import org.apache.shardingsphere.infra.metadata.ShardingSphereMetaData;
import org.apache.shardingsphere.infra.yaml.engine.YamlEngine;
@@ -220,11 +221,11 @@ public final class ExportDatabaseConfigurationHandler extends QueryableRALBacken
private String getDatabaseName() {
String result = sqlStatement.getSchema().isPresent() ? sqlStatement.getSchema().get().getIdentifier().getValue() : connectionSession.getDatabaseName();
- if (null == result) {
+ if (Strings.isNullOrEmpty(result)) {
throw new NoDatabaseSelectedException();
}
if (!ProxyContext.getInstance().getAllDatabaseNames().contains(result)) {
- throw new SchemaNotExistedException(result);
+ throw new DatabaseNotExistedException(result);
}
return result;
}
diff --git a/shardingsphere-proxy/shardingsphere-proxy-backend/src/main/java/org/apache/shardingsphere/proxy/backend/text/distsql/ral/common/queryable/ShowReadwriteSplittingReadResourcesHandler.java b/shardingsphere-proxy/shardingsphere-proxy-backend/src/main/java/org/apache/shardingsphere/proxy/backend/text/distsql/ral/common/queryable/ShowReadwriteSplittingReadResourcesHandler.java
index e2018050edd..b817cb175ed 100644
--- a/shardingsphere-proxy/shardingsphere-proxy-backend/src/main/java/org/apache/shardingsphere/proxy/backend/text/distsql/ral/common/queryable/ShowReadwriteSplittingReadResourcesHandler.java
+++ b/shardingsphere-proxy/shardingsphere-proxy-backend/src/main/java/org/apache/shardingsphere/proxy/backend/text/distsql/ral/common/queryable/ShowReadwriteSplittingReadResourcesHandler.java
@@ -17,8 +17,9 @@
package org.apache.shardingsphere.proxy.backend.text.distsql.ral.common.queryable;
+import com.google.common.base.Strings;
import org.apache.shardingsphere.infra.distsql.constant.ExportableConstants;
-import org.apache.shardingsphere.infra.exception.SchemaNotExistedException;
+import org.apache.shardingsphere.infra.exception.DatabaseNotExistedException;
import org.apache.shardingsphere.infra.metadata.ShardingSphereMetaData;
import org.apache.shardingsphere.infra.metadata.schema.QualifiedDatabase;
import org.apache.shardingsphere.infra.rule.identifier.type.ExportableRule;
@@ -73,13 +74,7 @@ public final class ShowReadwriteSplittingReadResourcesHandler extends QueryableR
@Override
protected Collection<List<Object>> getRows(final ContextManager contextManager) {
- String databaseName = sqlStatement.getSchema().isPresent() ? sqlStatement.getSchema().get().getIdentifier().getValue() : connectionSession.getDatabaseName();
- if (null == databaseName) {
- throw new NoDatabaseSelectedException();
- }
- if (!ProxyContext.getInstance().getAllDatabaseNames().contains(databaseName)) {
- throw new SchemaNotExistedException(databaseName);
- }
+ String databaseName = getDatabaseName();
MetaDataContexts metaDataContexts = contextManager.getMetaDataContexts();
ShardingSphereMetaData metaData = metaDataContexts.getMetaData(databaseName);
Collection<String> allReadResources = getAllReadResources(metaData);
@@ -87,6 +82,17 @@ public final class ShowReadwriteSplittingReadResourcesHandler extends QueryableR
return buildRows(allReadResources, persistentReadResources);
}
+ private String getDatabaseName() {
+ String result = sqlStatement.getSchema().isPresent() ? sqlStatement.getSchema().get().getIdentifier().getValue() : connectionSession.getDatabaseName();
+ if (Strings.isNullOrEmpty(result)) {
+ throw new NoDatabaseSelectedException();
+ }
+ if (!ProxyContext.getInstance().getAllDatabaseNames().contains(result)) {
+ throw new DatabaseNotExistedException(result);
+ }
+ return result;
+ }
+
private Collection<String> getAllReadResources(final ShardingSphereMetaData metaData) {
Collection<String> result = new LinkedHashSet<>();
Map<String, Map<String, String>> readResourceData = getReadResourceData(metaData);
diff --git a/shardingsphere-proxy/shardingsphere-proxy-backend/src/main/java/org/apache/shardingsphere/proxy/backend/text/distsql/ral/common/queryable/ShowTableMetadataHandler.java b/shardingsphere-proxy/shardingsphere-proxy-backend/src/main/java/org/apache/shardingsphere/proxy/backend/text/distsql/ral/common/queryable/ShowTableMetadataHandler.java
index 64aa18e47f6..94bc758f6f4 100644
--- a/shardingsphere-proxy/shardingsphere-proxy-backend/src/main/java/org/apache/shardingsphere/proxy/backend/text/distsql/ral/common/queryable/ShowTableMetadataHandler.java
+++ b/shardingsphere-proxy/shardingsphere-proxy-backend/src/main/java/org/apache/shardingsphere/proxy/backend/text/distsql/ral/common/queryable/ShowTableMetadataHandler.java
@@ -17,8 +17,9 @@
package org.apache.shardingsphere.proxy.backend.text.distsql.ral.common.queryable;
+import com.google.common.base.Strings;
import org.apache.shardingsphere.distsql.parser.statement.ral.common.queryable.ShowTableMetadataStatement;
-import org.apache.shardingsphere.infra.exception.SchemaNotExistedException;
+import org.apache.shardingsphere.infra.exception.DatabaseNotExistedException;
import org.apache.shardingsphere.infra.metadata.schema.ShardingSphereSchema;
import org.apache.shardingsphere.infra.metadata.schema.model.IndexMetaData;
import org.apache.shardingsphere.mode.manager.ContextManager;
@@ -62,19 +63,24 @@ public final class ShowTableMetadataHandler extends QueryableRALBackendHandler<S
@Override
protected Collection<List<Object>> getRows(final ContextManager contextManager) {
- String databaseName = sqlStatement.getSchema().isPresent() ? sqlStatement.getSchema().get().getIdentifier().getValue() : connectionSession.getDatabaseName();
- if (null == databaseName) {
- throw new NoDatabaseSelectedException();
- }
- if (!ProxyContext.getInstance().getAllDatabaseNames().contains(databaseName)) {
- throw new SchemaNotExistedException(databaseName);
- }
+ String databaseName = getDatabaseName();
String defaultSchema = connectionSession.getDatabaseType().getDefaultSchema(connectionSession.getDatabaseName());
ShardingSphereSchema schema = ProxyContext.getInstance().getMetaData(databaseName).getSchemaByName(defaultSchema);
return schema.getAllTableNames().stream().filter(each -> sqlStatement.getTableNames().contains(each))
.map(each -> buildTableRows(databaseName, schema, each)).flatMap(Collection::stream).collect(Collectors.toList());
}
+ private String getDatabaseName() {
+ String result = sqlStatement.getSchema().isPresent() ? sqlStatement.getSchema().get().getIdentifier().getValue() : connectionSession.getDatabaseName();
+ if (Strings.isNullOrEmpty(result)) {
+ throw new NoDatabaseSelectedException();
+ }
+ if (!ProxyContext.getInstance().getAllDatabaseNames().contains(result)) {
+ throw new DatabaseNotExistedException(result);
+ }
+ return result;
+ }
+
private Collection<List<Object>> buildTableRows(final String databaseName, final ShardingSphereSchema schema, final String tableName) {
Collection<List<Object>> result = new LinkedList<>();
Collection<List<Object>> columnRows = schema.getAllColumnNames(tableName).stream().map(each -> buildRow(databaseName, tableName, "COLUMN", each))
diff --git a/shardingsphere-proxy/shardingsphere-proxy-backend/src/main/java/org/apache/shardingsphere/proxy/backend/text/distsql/ral/common/updatable/ImportDatabaseConfigurationHandler.java b/shardingsphere-proxy/shardingsphere-proxy-backend/src/main/java/org/apache/shardingsphere/proxy/backend/text/distsql/ral/common/updatable/ImportDatabaseConfigurationHandler.java
index fb3813b93db..2e332acf7d6 100644
--- a/shardingsphere-proxy/shardingsphere-proxy-backend/src/main/java/org/apache/shardingsphere/proxy/backend/text/distsql/ral/common/updatable/ImportDatabaseConfigurationHandler.java
+++ b/shardingsphere-proxy/shardingsphere-proxy-backend/src/main/java/org/apache/shardingsphere/proxy/backend/text/distsql/ral/common/updatable/ImportDatabaseConfigurationHandler.java
@@ -34,7 +34,7 @@ import org.apache.shardingsphere.infra.distsql.exception.DistSQLException;
import org.apache.shardingsphere.infra.distsql.exception.resource.ImportResourceNotExistedException;
import org.apache.shardingsphere.infra.distsql.exception.resource.InvalidResourcesException;
import org.apache.shardingsphere.infra.exception.ImportDatabaseNotExistedException;
-import org.apache.shardingsphere.infra.exception.SchemaNotExistedException;
+import org.apache.shardingsphere.infra.exception.DatabaseNotExistedException;
import org.apache.shardingsphere.infra.exception.ShardingSphereException;
import org.apache.shardingsphere.infra.metadata.ShardingSphereMetaData;
import org.apache.shardingsphere.infra.yaml.config.pojo.YamlRuleConfiguration;
@@ -145,7 +145,7 @@ public final class ImportDatabaseConfigurationHandler extends UpdatableRALBacken
private void checkDatabaseName(final String databaseName) {
if (!ProxyContext.getInstance().getAllDatabaseNames().contains(databaseName)) {
- throw new SchemaNotExistedException(databaseName);
+ throw new DatabaseNotExistedException(databaseName);
}
}
diff --git a/shardingsphere-proxy/shardingsphere-proxy-backend/src/main/java/org/apache/shardingsphere/proxy/backend/text/distsql/ral/common/updatable/RefreshTableMetadataHandler.java b/shardingsphere-proxy/shardingsphere-proxy-backend/src/main/java/org/apache/shardingsphere/proxy/backend/text/distsql/ral/common/updatable/RefreshTableMetadataHandler.java
index a3f59b6b7cd..92c724aa7df 100644
--- a/shardingsphere-proxy/shardingsphere-proxy-backend/src/main/java/org/apache/shardingsphere/proxy/backend/text/distsql/ral/common/updatable/RefreshTableMetadataHandler.java
+++ b/shardingsphere-proxy/shardingsphere-proxy-backend/src/main/java/org/apache/shardingsphere/proxy/backend/text/distsql/ral/common/updatable/RefreshTableMetadataHandler.java
@@ -17,6 +17,7 @@
package org.apache.shardingsphere.proxy.backend.text.distsql.ral.common.updatable;
+import com.google.common.base.Strings;
import org.apache.shardingsphere.distsql.parser.statement.ral.common.updatable.RefreshTableMetadataStatement;
import org.apache.shardingsphere.infra.distsql.exception.DistSQLException;
import org.apache.shardingsphere.mode.manager.ContextManager;
@@ -42,8 +43,7 @@ public final class RefreshTableMetadataHandler extends UpdatableRALBackendHandle
@Override
protected void update(final ContextManager contextManager, final RefreshTableMetadataStatement sqlStatement) throws DistSQLException {
- String databaseName = connectionSession.getDatabaseName();
- checkDatabase(databaseName);
+ String databaseName = getDatabaseName();
if (sqlStatement.getResourceName().isPresent()) {
contextManager.reloadMetaData(databaseName, sqlStatement.getTableName().get(), sqlStatement.getResourceName().get());
return;
@@ -55,12 +55,14 @@ public final class RefreshTableMetadataHandler extends UpdatableRALBackendHandle
contextManager.reloadMetaData(databaseName);
}
- private void checkDatabase(final String databaseName) {
- if (null == databaseName) {
+ private String getDatabaseName() {
+ String result = connectionSession.getDatabaseName();
+ if (Strings.isNullOrEmpty(result)) {
throw new NoDatabaseSelectedException();
}
- if (!ProxyContext.getInstance().databaseExists(databaseName)) {
- throw new UnknownDatabaseException(databaseName);
+ if (!ProxyContext.getInstance().databaseExists(result)) {
+ throw new UnknownDatabaseException(result);
}
+ return result;
}
}
diff --git a/shardingsphere-proxy/shardingsphere-proxy-backend/src/main/java/org/apache/shardingsphere/proxy/backend/text/distsql/ral/common/updatable/SetReadwriteSplittingStatusHandler.java b/shardingsphere-proxy/shardingsphere-proxy-backend/src/main/java/org/apache/shardingsphere/proxy/backend/text/distsql/ral/common/updatable/SetReadwriteSplittingStatusHandler.java
index cf05a7fda9b..f603278da99 100644
--- a/shardingsphere-proxy/shardingsphere-proxy-backend/src/main/java/org/apache/shardingsphere/proxy/backend/text/distsql/ral/common/updatable/SetReadwriteSplittingStatusHandler.java
+++ b/shardingsphere-proxy/shardingsphere-proxy-backend/src/main/java/org/apache/shardingsphere/proxy/backend/text/distsql/ral/common/updatable/SetReadwriteSplittingStatusHandler.java
@@ -23,7 +23,7 @@ import org.apache.shardingsphere.infra.distsql.constant.ExportableConstants;
import org.apache.shardingsphere.infra.distsql.exception.DistSQLException;
import org.apache.shardingsphere.infra.distsql.exception.resource.RequiredResourceMissedException;
import org.apache.shardingsphere.infra.eventbus.ShardingSphereEventBus;
-import org.apache.shardingsphere.infra.exception.SchemaNotExistedException;
+import org.apache.shardingsphere.infra.exception.DatabaseNotExistedException;
import org.apache.shardingsphere.infra.metadata.schema.QualifiedDatabase;
import org.apache.shardingsphere.infra.rule.event.impl.DataSourceDisabledEvent;
import org.apache.shardingsphere.infra.storage.StorageNodeDataSource;
@@ -71,7 +71,7 @@ public final class SetReadwriteSplittingStatusHandler extends UpdatableRALBacken
String databaseName = sqlStatement.getSchema().isPresent() ? sqlStatement.getSchema().get().getIdentifier().getValue() : connectionSession.getDatabaseName();
String toBeUpdatedResource = sqlStatement.getResourceName();
checkModeAndPersistRepository(contextManager);
- checkDatabase(databaseName);
+ checkDatabaseName(databaseName);
checkReadwriteSplittingRule(contextManager, databaseName);
Map<String, String> replicaResources = getReplicaResources(contextManager, databaseName);
Map<String, String> disabledResources = getDisabledResources(contextManager, databaseName);
@@ -103,12 +103,12 @@ public final class SetReadwriteSplittingStatusHandler extends UpdatableRALBacken
}
}
- private void checkDatabase(final String databaseName) {
- if (null == databaseName) {
+ private void checkDatabaseName(final String databaseName) {
+ if (Strings.isNullOrEmpty(databaseName)) {
throw new NoDatabaseSelectedException();
}
if (!ProxyContext.getInstance().getAllDatabaseNames().contains(databaseName)) {
- throw new SchemaNotExistedException(databaseName);
+ throw new DatabaseNotExistedException(databaseName);
}
}
diff --git a/shardingsphere-proxy/shardingsphere-proxy-frontend/shardingsphere-proxy-frontend-mysql/src/main/java/org/apache/shardingsphere/proxy/frontend/mysql/err/MySQLErrPacketFactory.java b/shardingsphere-proxy/shardingsphere-proxy-frontend/shardingsphere-proxy-frontend-mysql/src/main/java/org/apache/shardingsphere/proxy/frontend/mysql/err/MySQLErrPacketFactory.java
index bf756e93cc9..5c267857923 100644
--- a/shardingsphere-proxy/shardingsphere-proxy-frontend/shardingsphere-proxy-frontend-mysql/src/main/java/org/apache/shardingsphere/proxy/frontend/mysql/err/MySQLErrPacketFactory.java
+++ b/shardingsphere-proxy/shardingsphere-proxy-frontend/shardingsphere-proxy-frontend-mysql/src/main/java/org/apache/shardingsphere/proxy/frontend/mysql/err/MySQLErrPacketFactory.java
@@ -25,14 +25,14 @@ import org.apache.shardingsphere.db.protocol.error.CommonErrorCode;
import org.apache.shardingsphere.db.protocol.mysql.constant.MySQLServerErrorCode;
import org.apache.shardingsphere.db.protocol.mysql.packet.generic.MySQLErrPacket;
import org.apache.shardingsphere.infra.config.exception.ShardingSphereConfigurationException;
-import org.apache.shardingsphere.infra.exception.SchemaNotExistedException;
+import org.apache.shardingsphere.infra.exception.DatabaseNotExistedException;
import org.apache.shardingsphere.proxy.backend.exception.CircuitBreakException;
import org.apache.shardingsphere.proxy.backend.exception.DBCreateExistsException;
import org.apache.shardingsphere.proxy.backend.exception.DBDropNotExistsException;
-import org.apache.shardingsphere.proxy.backend.exception.ResourceNotExistedException;
+import org.apache.shardingsphere.proxy.backend.exception.DatabaseLockedException;
import org.apache.shardingsphere.proxy.backend.exception.NoDatabaseSelectedException;
+import org.apache.shardingsphere.proxy.backend.exception.ResourceNotExistedException;
import org.apache.shardingsphere.proxy.backend.exception.RuleNotExistedException;
-import org.apache.shardingsphere.proxy.backend.exception.DatabaseLockedException;
import org.apache.shardingsphere.proxy.backend.exception.TableLockWaitTimeoutException;
import org.apache.shardingsphere.proxy.backend.exception.TableLockedException;
import org.apache.shardingsphere.proxy.backend.exception.TableModifyInTransactionException;
@@ -77,9 +77,9 @@ public final class MySQLErrPacketFactory {
if (cause instanceof UnknownDatabaseException) {
return new MySQLErrPacket(1, MySQLServerErrorCode.ER_BAD_DB_ERROR, ((UnknownDatabaseException) cause).getDatabaseName());
}
- if (cause instanceof SchemaNotExistedException) {
- return null != ((SchemaNotExistedException) cause).getSchemaName()
- ? new MySQLErrPacket(1, MySQLServerErrorCode.ER_BAD_DB_ERROR, ((SchemaNotExistedException) cause).getSchemaName())
+ if (cause instanceof DatabaseNotExistedException) {
+ return null != ((DatabaseNotExistedException) cause).getDatabaseName()
+ ? new MySQLErrPacket(1, MySQLServerErrorCode.ER_BAD_DB_ERROR, ((DatabaseNotExistedException) cause).getDatabaseName())
: new MySQLErrPacket(1, MySQLServerErrorCode.ER_NO_DB_ERROR);
}
if (cause instanceof NoDatabaseSelectedException) {