This is an automated email from the ASF dual-hosted git repository.
zhaojinchao pushed a commit to branch master
in repository https://gitbox.apache.org/repos/asf/shardingsphere.git
The following commit(s) were added to refs/heads/master by this push:
new 8bb1c561593 Throw necessary exception for
MetaDataManagerPersistService (#32441)
8bb1c561593 is described below
commit 8bb1c561593fe768917f0224807d3253df7f05b6
Author: Haoran Meng <[email protected]>
AuthorDate: Fri Aug 9 16:12:44 2024 +0800
Throw necessary exception for MetaDataManagerPersistService (#32441)
---
.../type/schema/AlterSchemaStatementSchemaRefresher.java | 3 ++-
.../mode/persist/service/MetaDataManagerPersistService.java | 9 ++++++---
.../backend/handler/database/DropDatabaseBackendHandler.java | 4 +++-
.../handler/distsql/ral/updatable/ImportMetaDataExecutor.java | 2 +-
.../backend/util/YamlDatabaseConfigurationImportExecutor.java | 7 ++++---
.../backend/handler/database/DropDatabaseBackendHandlerTest.java | 7 ++++---
6 files changed, 20 insertions(+), 12 deletions(-)
diff --git
a/mode/core/src/main/java/org/apache/shardingsphere/mode/metadata/refresher/type/schema/AlterSchemaStatementSchemaRefresher.java
b/mode/core/src/main/java/org/apache/shardingsphere/mode/metadata/refresher/type/schema/AlterSchemaStatementSchemaRefresher.java
index 7353df18fd7..230c291c590 100644
---
a/mode/core/src/main/java/org/apache/shardingsphere/mode/metadata/refresher/type/schema/AlterSchemaStatementSchemaRefresher.java
+++
b/mode/core/src/main/java/org/apache/shardingsphere/mode/metadata/refresher/type/schema/AlterSchemaStatementSchemaRefresher.java
@@ -25,6 +25,7 @@ import
org.apache.shardingsphere.mode.metadata.refresher.MetaDataRefresher;
import
org.apache.shardingsphere.mode.persist.service.MetaDataManagerPersistService;
import
org.apache.shardingsphere.sql.parser.statement.core.statement.ddl.AlterSchemaStatement;
+import java.sql.SQLException;
import java.util.Collection;
import java.util.Optional;
@@ -35,7 +36,7 @@ public final class AlterSchemaStatementSchemaRefresher
implements MetaDataRefres
@Override
public void refresh(final MetaDataManagerPersistService
metaDataManagerPersistService, final ShardingSphereDatabase database, final
Collection<String> logicDataSourceNames,
- final String schemaName, final DatabaseType
databaseType, final AlterSchemaStatement sqlStatement, final
ConfigurationProperties props) {
+ final String schemaName, final DatabaseType
databaseType, final AlterSchemaStatement sqlStatement, final
ConfigurationProperties props) throws SQLException {
Optional<String> renameSchemaName =
sqlStatement.getRenameSchema().map(optional ->
optional.getValue().toLowerCase());
if (!renameSchemaName.isPresent()) {
return;
diff --git
a/mode/core/src/main/java/org/apache/shardingsphere/mode/persist/service/MetaDataManagerPersistService.java
b/mode/core/src/main/java/org/apache/shardingsphere/mode/persist/service/MetaDataManagerPersistService.java
index eb1cbe35954..8364cf5f5a6 100644
---
a/mode/core/src/main/java/org/apache/shardingsphere/mode/persist/service/MetaDataManagerPersistService.java
+++
b/mode/core/src/main/java/org/apache/shardingsphere/mode/persist/service/MetaDataManagerPersistService.java
@@ -37,15 +37,17 @@ public interface MetaDataManagerPersistService {
* Create database.
*
* @param databaseName database name
+ * @throws SQLException SQL exception
*/
- void createDatabase(String databaseName);
+ void createDatabase(String databaseName) throws SQLException;
/**
* Drop database.
*
* @param databaseName database name
+ * @throws SQLException SQL exception
*/
- void dropDatabase(String databaseName);
+ void dropDatabase(String databaseName) throws SQLException;
/**
* Create schema.
@@ -59,8 +61,9 @@ public interface MetaDataManagerPersistService {
* Alter schema.
*
* @param alterSchemaPOJO alter schema pojo
+ * @throws SQLException SQL exception
*/
- void alterSchema(AlterSchemaPOJO alterSchemaPOJO);
+ void alterSchema(AlterSchemaPOJO alterSchemaPOJO) throws SQLException;
/**
* Drop schema.
diff --git
a/proxy/backend/core/src/main/java/org/apache/shardingsphere/proxy/backend/handler/database/DropDatabaseBackendHandler.java
b/proxy/backend/core/src/main/java/org/apache/shardingsphere/proxy/backend/handler/database/DropDatabaseBackendHandler.java
index a2b57338c49..3d80f30a58e 100644
---
a/proxy/backend/core/src/main/java/org/apache/shardingsphere/proxy/backend/handler/database/DropDatabaseBackendHandler.java
+++
b/proxy/backend/core/src/main/java/org/apache/shardingsphere/proxy/backend/handler/database/DropDatabaseBackendHandler.java
@@ -34,6 +34,8 @@ import
org.apache.shardingsphere.proxy.backend.response.header.update.UpdateResp
import org.apache.shardingsphere.proxy.backend.session.ConnectionSession;
import
org.apache.shardingsphere.sql.parser.statement.core.statement.ddl.DropDatabaseStatement;
+import java.sql.SQLException;
+
/**
* Drop database backend handler.
*/
@@ -45,7 +47,7 @@ public final class DropDatabaseBackendHandler implements
ProxyBackendHandler {
private final ConnectionSession connectionSession;
@Override
- public ResponseHeader execute() {
+ public ResponseHeader execute() throws SQLException {
check(sqlStatement,
connectionSession.getConnectionContext().getGrantee());
if (isDropCurrentDatabase(sqlStatement.getDatabaseName())) {
checkSupportedDropCurrentDatabase(connectionSession);
diff --git
a/proxy/backend/core/src/main/java/org/apache/shardingsphere/proxy/backend/handler/distsql/ral/updatable/ImportMetaDataExecutor.java
b/proxy/backend/core/src/main/java/org/apache/shardingsphere/proxy/backend/handler/distsql/ral/updatable/ImportMetaDataExecutor.java
index ea6567a6043..31e22a82216 100644
---
a/proxy/backend/core/src/main/java/org/apache/shardingsphere/proxy/backend/handler/distsql/ral/updatable/ImportMetaDataExecutor.java
+++
b/proxy/backend/core/src/main/java/org/apache/shardingsphere/proxy/backend/handler/distsql/ral/updatable/ImportMetaDataExecutor.java
@@ -77,7 +77,7 @@ public final class ImportMetaDataExecutor implements
DistSQLUpdateExecutor<Impor
contextManager.getPersistServiceFacade().getMetaDataManagerPersistService().alterProperties(yamlServerConfig.getProps());
}
- private void importDatabase(final ExportedMetaData exportedMetaData) {
+ private void importDatabase(final ExportedMetaData exportedMetaData)
throws SQLException {
for (String each : exportedMetaData.getDatabases().values()) {
YamlProxyDatabaseConfiguration yamlDatabaseConfig =
YamlEngine.unmarshal(each, YamlProxyDatabaseConfiguration.class);
databaseConfigImportExecutor.importDatabaseConfiguration(yamlDatabaseConfig);
diff --git
a/proxy/backend/core/src/main/java/org/apache/shardingsphere/proxy/backend/util/YamlDatabaseConfigurationImportExecutor.java
b/proxy/backend/core/src/main/java/org/apache/shardingsphere/proxy/backend/util/YamlDatabaseConfigurationImportExecutor.java
index 2f2b4201e36..d21bc274586 100644
---
a/proxy/backend/core/src/main/java/org/apache/shardingsphere/proxy/backend/util/YamlDatabaseConfigurationImportExecutor.java
+++
b/proxy/backend/core/src/main/java/org/apache/shardingsphere/proxy/backend/util/YamlDatabaseConfigurationImportExecutor.java
@@ -71,8 +71,9 @@ public final class YamlDatabaseConfigurationImportExecutor {
* Import proxy database from yaml configuration.
*
* @param yamlConfig yaml proxy database configuration
+ * @throws SQLException SQL exception
*/
- public void importDatabaseConfiguration(final
YamlProxyDatabaseConfiguration yamlConfig) {
+ public void importDatabaseConfiguration(final
YamlProxyDatabaseConfiguration yamlConfig) throws SQLException {
String databaseName = yamlConfig.getDatabaseName();
checkDatabase(databaseName);
addDatabase(databaseName);
@@ -93,7 +94,7 @@ public final class YamlDatabaseConfigurationImportExecutor {
ShardingSpherePreconditions.checkState(!ProxyContext.getInstance().databaseExists(databaseName),
() -> new DatabaseCreateExistsException(databaseName));
}
- private void addDatabase(final String databaseName) {
+ private void addDatabase(final String databaseName) throws SQLException {
ContextManager contextManager =
ProxyContext.getInstance().getContextManager();
contextManager.getPersistServiceFacade().getMetaDataManagerPersistService().createDatabase(databaseName);
DatabaseType protocolType =
DatabaseTypeEngine.getProtocolType(Collections.emptyMap(),
contextManager.getMetaDataContexts().getMetaData().getProps());
@@ -156,7 +157,7 @@ public final class YamlDatabaseConfigurationImportExecutor {
return result;
}
- private void dropDatabase(final String databaseName) {
+ private void dropDatabase(final String databaseName) throws SQLException {
ProxyContext.getInstance().getContextManager().getPersistServiceFacade().getMetaDataManagerPersistService().dropDatabase(databaseName);
}
}
diff --git
a/proxy/backend/core/src/test/java/org/apache/shardingsphere/proxy/backend/handler/database/DropDatabaseBackendHandlerTest.java
b/proxy/backend/core/src/test/java/org/apache/shardingsphere/proxy/backend/handler/database/DropDatabaseBackendHandlerTest.java
index 08d448f99a7..ff24b8c44e2 100644
---
a/proxy/backend/core/src/test/java/org/apache/shardingsphere/proxy/backend/handler/database/DropDatabaseBackendHandlerTest.java
+++
b/proxy/backend/core/src/test/java/org/apache/shardingsphere/proxy/backend/handler/database/DropDatabaseBackendHandlerTest.java
@@ -40,6 +40,7 @@ import org.mockito.Mock;
import org.mockito.junit.jupiter.MockitoSettings;
import org.mockito.quality.Strictness;
+import java.sql.SQLException;
import java.util.Collections;
import java.util.HashMap;
import java.util.Map;
@@ -107,7 +108,7 @@ class DropDatabaseBackendHandlerTest {
}
@Test
- void assertExecuteDropWithoutCurrentDatabase() {
+ void assertExecuteDropWithoutCurrentDatabase() throws SQLException {
when(sqlStatement.getDatabaseName()).thenReturn("foo_db");
ResponseHeader responseHeader = handler.execute();
verify(connectionSession, times(0)).setCurrentDatabaseName(null);
@@ -115,7 +116,7 @@ class DropDatabaseBackendHandlerTest {
}
@Test
- void assertExecuteDropCurrentDatabaseWithMySQL() {
+ void assertExecuteDropCurrentDatabaseWithMySQL() throws SQLException {
when(connectionSession.getUsedDatabaseName()).thenReturn("foo_db");
when(connectionSession.getProtocolType()).thenReturn(TypedSPILoader.getService(DatabaseType.class,
"MySQL"));
when(sqlStatement.getDatabaseName()).thenReturn("foo_db");
@@ -133,7 +134,7 @@ class DropDatabaseBackendHandlerTest {
}
@Test
- void assertExecuteDropOtherDatabase() {
+ void assertExecuteDropOtherDatabase() throws SQLException {
when(connectionSession.getUsedDatabaseName()).thenReturn("foo_db");
when(sqlStatement.getDatabaseName()).thenReturn("bar_db");
ResponseHeader responseHeader = handler.execute();