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 23cde702b33 Refactor MetaDataManagerPersistService.alterSchema()
(#34475)
23cde702b33 is described below
commit 23cde702b33360d5edd78d34ac46f4022eb2493a
Author: Liang Zhang <[email protected]>
AuthorDate: Fri Jan 24 23:55:39 2025 +0800
Refactor MetaDataManagerPersistService.alterSchema() (#34475)
* Refactor MetaDataManagerPersistService.alterSchema()
* Refactor MetaDataManagerPersistService.alterSchema()
---
.../schema/pojo/AlterSchemaMetaDataPOJO.java | 54 ----------------------
.../type/AlterViewFederationMetaDataRefresher.java | 15 +++---
.../CreateViewFederationMetaDataRefresher.java | 8 ++--
.../type/DropViewFederationMetaDataRefresher.java | 13 +++---
.../index/AlterIndexPushDownMetaDataRefresher.java | 7 ++-
.../CreateIndexPushDownMetaDataRefresher.java | 6 +--
.../index/DropIndexPushDownMetaDataRefresher.java | 6 +--
.../table/AlterTablePushDownMetaDataRefresher.java | 13 +++---
.../RenameTablePushDownMetaDataRefresher.java | 10 ++--
.../view/AlterViewPushDownMetaDataRefresher.java | 21 +++++----
.../view/CreateViewPushDownMetaDataRefresher.java | 8 ++--
.../view/DropViewPushDownMetaDataRefresher.java | 17 ++++---
.../service/MetaDataManagerPersistService.java | 13 ++++--
.../ClusterMetaDataManagerPersistService.java | 16 +++----
.../ClusterMetaDataManagerPersistServiceTest.java | 3 +-
.../StandaloneMetaDataManagerPersistService.java | 19 ++++----
...tandaloneMetaDataManagerPersistServiceTest.java | 3 +-
17 files changed, 91 insertions(+), 141 deletions(-)
diff --git
a/infra/common/src/main/java/org/apache/shardingsphere/infra/metadata/database/schema/pojo/AlterSchemaMetaDataPOJO.java
b/infra/common/src/main/java/org/apache/shardingsphere/infra/metadata/database/schema/pojo/AlterSchemaMetaDataPOJO.java
deleted file mode 100644
index b63a5d3c19c..00000000000
---
a/infra/common/src/main/java/org/apache/shardingsphere/infra/metadata/database/schema/pojo/AlterSchemaMetaDataPOJO.java
+++ /dev/null
@@ -1,54 +0,0 @@
-/*
- * Licensed to the Apache Software Foundation (ASF) under one or more
- * contributor license agreements. See the NOTICE file distributed with
- * this work for additional information regarding copyright ownership.
- * The ASF licenses this file to You under the Apache License, Version 2.0
- * (the "License"); you may not use this file except in compliance with
- * the License. You may obtain a copy of the License at
- *
- * http://www.apache.org/licenses/LICENSE-2.0
- *
- * Unless required by applicable law or agreed to in writing, software
- * distributed under the License is distributed on an "AS IS" BASIS,
- * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
- * See the License for the specific language governing permissions and
- * limitations under the License.
- */
-
-package org.apache.shardingsphere.infra.metadata.database.schema.pojo;
-
-import lombok.Getter;
-import lombok.RequiredArgsConstructor;
-import
org.apache.shardingsphere.infra.metadata.database.schema.model.ShardingSphereTable;
-import
org.apache.shardingsphere.infra.metadata.database.schema.model.ShardingSphereView;
-
-import java.util.Collection;
-import java.util.LinkedList;
-
-/**
- * Alter schema metadata pojo.
- */
-@RequiredArgsConstructor
-@Getter
-public final class AlterSchemaMetaDataPOJO {
-
- private final String databaseName;
-
- private final String schemaName;
-
- private String logicDataSourceName;
-
- private final Collection<ShardingSphereTable> alteredTables = new
LinkedList<>();
-
- private final Collection<ShardingSphereView> alteredViews = new
LinkedList<>();
-
- private final Collection<String> droppedTables = new LinkedList<>();
-
- private final Collection<String> droppedViews = new LinkedList<>();
-
- public AlterSchemaMetaDataPOJO(final String databaseName, final String
schemaName, final Collection<String> logicDataSourceNames) {
- this.databaseName = databaseName;
- this.schemaName = schemaName;
- this.logicDataSourceName = logicDataSourceNames.isEmpty() ? null :
logicDataSourceNames.iterator().next();
- }
-}
diff --git
a/mode/core/src/main/java/org/apache/shardingsphere/mode/metadata/refresher/metadata/federation/type/AlterViewFederationMetaDataRefresher.java
b/mode/core/src/main/java/org/apache/shardingsphere/mode/metadata/refresher/metadata/federation/type/AlterViewFederationMetaDataRefresher.java
index 256b4abc02d..238922b8aa3 100644
---
a/mode/core/src/main/java/org/apache/shardingsphere/mode/metadata/refresher/metadata/federation/type/AlterViewFederationMetaDataRefresher.java
+++
b/mode/core/src/main/java/org/apache/shardingsphere/mode/metadata/refresher/metadata/federation/type/AlterViewFederationMetaDataRefresher.java
@@ -19,13 +19,15 @@ package
org.apache.shardingsphere.mode.metadata.refresher.metadata.federation.ty
import
org.apache.shardingsphere.infra.metadata.database.ShardingSphereDatabase;
import
org.apache.shardingsphere.infra.metadata.database.schema.model.ShardingSphereView;
-import
org.apache.shardingsphere.infra.metadata.database.schema.pojo.AlterSchemaMetaDataPOJO;
import
org.apache.shardingsphere.mode.metadata.refresher.metadata.federation.FederationMetaDataRefresher;
import
org.apache.shardingsphere.mode.metadata.refresher.metadata.util.TableRefreshUtils;
import
org.apache.shardingsphere.mode.persist.service.MetaDataManagerPersistService;
import
org.apache.shardingsphere.sql.parser.statement.core.segment.generic.table.SimpleTableSegment;
import
org.apache.shardingsphere.sql.parser.statement.core.statement.ddl.AlterViewStatement;
+import java.util.Collection;
+import java.util.Collections;
+import java.util.LinkedList;
import java.util.Optional;
/**
@@ -36,16 +38,17 @@ public final class AlterViewFederationMetaDataRefresher
implements FederationMet
@Override
public void refresh(final MetaDataManagerPersistService
metaDataManagerPersistService, final ShardingSphereDatabase database, final
String schemaName, final AlterViewStatement sqlStatement) {
String viewName =
TableRefreshUtils.getTableName(sqlStatement.getView().getTableName().getIdentifier(),
sqlStatement.getDatabaseType());
- AlterSchemaMetaDataPOJO alterSchemaMetaDataPOJO = new
AlterSchemaMetaDataPOJO(database.getName(), schemaName);
Optional<SimpleTableSegment> renameView = sqlStatement.getRenameView();
+ Collection<ShardingSphereView> alteredViews = new LinkedList<>();
+ Collection<String> droppedViews = new LinkedList<>();
if (renameView.isPresent()) {
String renameViewName =
renameView.get().getTableName().getIdentifier().getValue();
String originalView =
database.getSchema(schemaName).getView(viewName).getViewDefinition();
- alterSchemaMetaDataPOJO.getAlteredViews().add(new
ShardingSphereView(renameViewName, originalView));
- alterSchemaMetaDataPOJO.getDroppedViews().add(viewName);
+ alteredViews.add(new ShardingSphereView(renameViewName,
originalView));
+ droppedViews.add(viewName);
}
- sqlStatement.getViewDefinition().ifPresent(optional ->
alterSchemaMetaDataPOJO.getAlteredViews().add(new ShardingSphereView(viewName,
optional)));
- metaDataManagerPersistService.alterSchema(alterSchemaMetaDataPOJO);
+ sqlStatement.getViewDefinition().ifPresent(optional ->
alteredViews.add(new ShardingSphereView(viewName, optional)));
+ metaDataManagerPersistService.alterSchema(database.getName(),
schemaName, null, Collections.emptyList(), alteredViews, droppedViews,
Collections.emptyList());
}
@Override
diff --git
a/mode/core/src/main/java/org/apache/shardingsphere/mode/metadata/refresher/metadata/federation/type/CreateViewFederationMetaDataRefresher.java
b/mode/core/src/main/java/org/apache/shardingsphere/mode/metadata/refresher/metadata/federation/type/CreateViewFederationMetaDataRefresher.java
index 50688c6fff5..769f3a06164 100644
---
a/mode/core/src/main/java/org/apache/shardingsphere/mode/metadata/refresher/metadata/federation/type/CreateViewFederationMetaDataRefresher.java
+++
b/mode/core/src/main/java/org/apache/shardingsphere/mode/metadata/refresher/metadata/federation/type/CreateViewFederationMetaDataRefresher.java
@@ -19,12 +19,13 @@ package
org.apache.shardingsphere.mode.metadata.refresher.metadata.federation.ty
import
org.apache.shardingsphere.infra.metadata.database.ShardingSphereDatabase;
import
org.apache.shardingsphere.infra.metadata.database.schema.model.ShardingSphereView;
-import
org.apache.shardingsphere.infra.metadata.database.schema.pojo.AlterSchemaMetaDataPOJO;
import
org.apache.shardingsphere.mode.metadata.refresher.metadata.federation.FederationMetaDataRefresher;
import
org.apache.shardingsphere.mode.metadata.refresher.metadata.util.TableRefreshUtils;
import
org.apache.shardingsphere.mode.persist.service.MetaDataManagerPersistService;
import
org.apache.shardingsphere.sql.parser.statement.core.statement.ddl.CreateViewStatement;
+import java.util.Collections;
+
/**
* Create view federation meta data refresher.
*/
@@ -33,9 +34,8 @@ public final class CreateViewFederationMetaDataRefresher
implements FederationMe
@Override
public void refresh(final MetaDataManagerPersistService
metaDataManagerPersistService, final ShardingSphereDatabase database, final
String schemaName, final CreateViewStatement sqlStatement) {
String viewName =
TableRefreshUtils.getTableName(sqlStatement.getView().getTableName().getIdentifier(),
sqlStatement.getDatabaseType());
- AlterSchemaMetaDataPOJO alterSchemaMetaDataPOJO = new
AlterSchemaMetaDataPOJO(database.getName(), schemaName);
- alterSchemaMetaDataPOJO.getAlteredViews().add(new
ShardingSphereView(viewName, sqlStatement.getViewDefinition()));
- metaDataManagerPersistService.alterSchema(alterSchemaMetaDataPOJO);
+ metaDataManagerPersistService.alterSchema(database.getName(),
schemaName, null,
+ Collections.emptyList(), Collections.singleton(new
ShardingSphereView(viewName, sqlStatement.getViewDefinition())),
Collections.emptyList(), Collections.emptyList());
}
@Override
diff --git
a/mode/core/src/main/java/org/apache/shardingsphere/mode/metadata/refresher/metadata/federation/type/DropViewFederationMetaDataRefresher.java
b/mode/core/src/main/java/org/apache/shardingsphere/mode/metadata/refresher/metadata/federation/type/DropViewFederationMetaDataRefresher.java
index 6398b93b09d..e9c0b8dc449 100644
---
a/mode/core/src/main/java/org/apache/shardingsphere/mode/metadata/refresher/metadata/federation/type/DropViewFederationMetaDataRefresher.java
+++
b/mode/core/src/main/java/org/apache/shardingsphere/mode/metadata/refresher/metadata/federation/type/DropViewFederationMetaDataRefresher.java
@@ -18,12 +18,14 @@
package
org.apache.shardingsphere.mode.metadata.refresher.metadata.federation.type;
import
org.apache.shardingsphere.infra.metadata.database.ShardingSphereDatabase;
-import
org.apache.shardingsphere.infra.metadata.database.schema.pojo.AlterSchemaMetaDataPOJO;
import
org.apache.shardingsphere.mode.metadata.refresher.metadata.federation.FederationMetaDataRefresher;
import
org.apache.shardingsphere.mode.persist.service.MetaDataManagerPersistService;
-import
org.apache.shardingsphere.sql.parser.statement.core.segment.generic.table.SimpleTableSegment;
import
org.apache.shardingsphere.sql.parser.statement.core.statement.ddl.DropViewStatement;
+import java.util.Collection;
+import java.util.Collections;
+import java.util.stream.Collectors;
+
/**
* Drop view federation meta data refresher.
*/
@@ -31,11 +33,8 @@ public final class DropViewFederationMetaDataRefresher
implements FederationMeta
@Override
public void refresh(final MetaDataManagerPersistService
metaDataManagerPersistService, final ShardingSphereDatabase database, final
String schemaName, final DropViewStatement sqlStatement) {
- AlterSchemaMetaDataPOJO alterSchemaMetaDataPOJO = new
AlterSchemaMetaDataPOJO(database.getName(), schemaName);
- for (SimpleTableSegment each : sqlStatement.getViews()) {
-
alterSchemaMetaDataPOJO.getDroppedViews().add(each.getTableName().getIdentifier().getValue());
- }
- metaDataManagerPersistService.alterSchema(alterSchemaMetaDataPOJO);
+ Collection<String> droppedViews =
sqlStatement.getViews().stream().map(each ->
each.getTableName().getIdentifier().getValue()).collect(Collectors.toList());
+ metaDataManagerPersistService.alterSchema(database.getName(),
schemaName, null, Collections.emptyList(), Collections.emptyList(),
Collections.emptyList(), droppedViews);
}
@Override
diff --git
a/mode/core/src/main/java/org/apache/shardingsphere/mode/metadata/refresher/metadata/pushdown/type/index/AlterIndexPushDownMetaDataRefresher.java
b/mode/core/src/main/java/org/apache/shardingsphere/mode/metadata/refresher/metadata/pushdown/type/index/AlterIndexPushDownMetaDataRefresher.java
index ff0aaa2b0e6..51e2c8d26a5 100644
---
a/mode/core/src/main/java/org/apache/shardingsphere/mode/metadata/refresher/metadata/pushdown/type/index/AlterIndexPushDownMetaDataRefresher.java
+++
b/mode/core/src/main/java/org/apache/shardingsphere/mode/metadata/refresher/metadata/pushdown/type/index/AlterIndexPushDownMetaDataRefresher.java
@@ -27,13 +27,13 @@ import
org.apache.shardingsphere.infra.metadata.database.ShardingSphereDatabase;
import
org.apache.shardingsphere.infra.metadata.database.schema.model.ShardingSphereIndex;
import
org.apache.shardingsphere.infra.metadata.database.schema.model.ShardingSphereSchema;
import
org.apache.shardingsphere.infra.metadata.database.schema.model.ShardingSphereTable;
-import
org.apache.shardingsphere.infra.metadata.database.schema.pojo.AlterSchemaMetaDataPOJO;
import
org.apache.shardingsphere.mode.metadata.refresher.metadata.pushdown.PushDownMetaDataRefresher;
import
org.apache.shardingsphere.mode.persist.service.MetaDataManagerPersistService;
import
org.apache.shardingsphere.sql.parser.statement.core.segment.ddl.index.IndexSegment;
import
org.apache.shardingsphere.sql.parser.statement.core.statement.ddl.AlterIndexStatement;
import java.util.Collection;
+import java.util.Collections;
import java.util.LinkedList;
import java.util.Optional;
@@ -61,9 +61,8 @@ public final class AlterIndexPushDownMetaDataRefresher
implements PushDownMetaDa
newTable.removeIndex(indexName);
String renameIndexName =
renameIndex.get().getIndexName().getIdentifier().getValue();
newTable.putIndex(new ShardingSphereIndex(renameIndexName, new
LinkedList<>(), false));
- AlterSchemaMetaDataPOJO alterSchemaMetaDataPOJO = new
AlterSchemaMetaDataPOJO(database.getName(), actualSchemaName);
- alterSchemaMetaDataPOJO.getAlteredTables().add(newTable);
- metaDataManagerPersistService.alterSchema(alterSchemaMetaDataPOJO);
+ metaDataManagerPersistService.alterSchema(database.getName(),
actualSchemaName, null,
+ Collections.singleton(newTable), Collections.emptyList(),
Collections.emptyList(), Collections.emptyList());
}
private Optional<String> findLogicTableName(final ShardingSphereSchema
schema, final String indexName) {
diff --git
a/mode/core/src/main/java/org/apache/shardingsphere/mode/metadata/refresher/metadata/pushdown/type/index/CreateIndexPushDownMetaDataRefresher.java
b/mode/core/src/main/java/org/apache/shardingsphere/mode/metadata/refresher/metadata/pushdown/type/index/CreateIndexPushDownMetaDataRefresher.java
index 094aeded9d6..67727f9c1b7 100644
---
a/mode/core/src/main/java/org/apache/shardingsphere/mode/metadata/refresher/metadata/pushdown/type/index/CreateIndexPushDownMetaDataRefresher.java
+++
b/mode/core/src/main/java/org/apache/shardingsphere/mode/metadata/refresher/metadata/pushdown/type/index/CreateIndexPushDownMetaDataRefresher.java
@@ -26,13 +26,13 @@ import
org.apache.shardingsphere.infra.metadata.database.ShardingSphereDatabase;
import
org.apache.shardingsphere.infra.metadata.database.schema.model.ShardingSphereIndex;
import
org.apache.shardingsphere.infra.metadata.database.schema.model.ShardingSphereSchema;
import
org.apache.shardingsphere.infra.metadata.database.schema.model.ShardingSphereTable;
-import
org.apache.shardingsphere.infra.metadata.database.schema.pojo.AlterSchemaMetaDataPOJO;
import
org.apache.shardingsphere.infra.metadata.database.schema.util.IndexMetaDataUtils;
import
org.apache.shardingsphere.mode.metadata.refresher.metadata.pushdown.PushDownMetaDataRefresher;
import
org.apache.shardingsphere.mode.persist.service.MetaDataManagerPersistService;
import
org.apache.shardingsphere.sql.parser.statement.core.statement.ddl.CreateIndexStatement;
import java.util.Collection;
+import java.util.Collections;
import java.util.LinkedList;
/**
@@ -53,9 +53,7 @@ public final class CreateIndexPushDownMetaDataRefresher
implements PushDownMetaD
ShardingSphereTable table = schema.getTable(tableName);
ShardingSphereTable newTable = new
ShardingSphereTable(table.getName(), table.getAllColumns(),
table.getAllIndexes(), table.getAllConstraints(), table.getType());
newTable.putIndex(new ShardingSphereIndex(indexName, new
LinkedList<>(), false));
- AlterSchemaMetaDataPOJO alterSchemaMetaDataPOJO = new
AlterSchemaMetaDataPOJO(database.getName(), schemaName);
- alterSchemaMetaDataPOJO.getAlteredTables().add(newTable);
- metaDataManagerPersistService.alterSchema(alterSchemaMetaDataPOJO);
+ metaDataManagerPersistService.alterSchema(database.getName(),
schemaName, null, Collections.singleton(newTable), Collections.emptyList(),
Collections.emptyList(), Collections.emptyList());
}
@Override
diff --git
a/mode/core/src/main/java/org/apache/shardingsphere/mode/metadata/refresher/metadata/pushdown/type/index/DropIndexPushDownMetaDataRefresher.java
b/mode/core/src/main/java/org/apache/shardingsphere/mode/metadata/refresher/metadata/pushdown/type/index/DropIndexPushDownMetaDataRefresher.java
index fc916e15503..eeb19580a73 100644
---
a/mode/core/src/main/java/org/apache/shardingsphere/mode/metadata/refresher/metadata/pushdown/type/index/DropIndexPushDownMetaDataRefresher.java
+++
b/mode/core/src/main/java/org/apache/shardingsphere/mode/metadata/refresher/metadata/pushdown/type/index/DropIndexPushDownMetaDataRefresher.java
@@ -26,7 +26,6 @@ import
org.apache.shardingsphere.infra.metadata.database.ShardingSphereDatabase;
import org.apache.shardingsphere.infra.metadata.database.schema.QualifiedTable;
import
org.apache.shardingsphere.infra.metadata.database.schema.model.ShardingSphereSchema;
import
org.apache.shardingsphere.infra.metadata.database.schema.model.ShardingSphereTable;
-import
org.apache.shardingsphere.infra.metadata.database.schema.pojo.AlterSchemaMetaDataPOJO;
import
org.apache.shardingsphere.infra.metadata.database.schema.util.IndexMetaDataUtils;
import
org.apache.shardingsphere.mode.metadata.refresher.metadata.pushdown.PushDownMetaDataRefresher;
import
org.apache.shardingsphere.mode.persist.service.MetaDataManagerPersistService;
@@ -58,9 +57,8 @@ public final class DropIndexPushDownMetaDataRefresher
implements PushDownMetaDat
ShardingSphereTable table = schema.getTable(logicTableName.get());
ShardingSphereTable newTable = new
ShardingSphereTable(table.getName(), table.getAllColumns(),
table.getAllIndexes(), table.getAllConstraints(), table.getType());
newTable.removeIndex(each.getIndexName().getIdentifier().getValue());
- AlterSchemaMetaDataPOJO alterSchemaMetaDataPOJO = new
AlterSchemaMetaDataPOJO(database.getName(), actualSchemaName);
- alterSchemaMetaDataPOJO.getAlteredTables().add(newTable);
- metaDataManagerPersistService.alterSchema(alterSchemaMetaDataPOJO);
+ metaDataManagerPersistService.alterSchema(database.getName(),
actualSchemaName, null,
+ Collections.singleton(newTable), Collections.emptyList(),
Collections.emptyList(), Collections.emptyList());
}
}
diff --git
a/mode/core/src/main/java/org/apache/shardingsphere/mode/metadata/refresher/metadata/pushdown/type/table/AlterTablePushDownMetaDataRefresher.java
b/mode/core/src/main/java/org/apache/shardingsphere/mode/metadata/refresher/metadata/pushdown/type/table/AlterTablePushDownMetaDataRefresher.java
index 1bed6ee4b8e..5232ea1f46b 100644
---
a/mode/core/src/main/java/org/apache/shardingsphere/mode/metadata/refresher/metadata/pushdown/type/table/AlterTablePushDownMetaDataRefresher.java
+++
b/mode/core/src/main/java/org/apache/shardingsphere/mode/metadata/refresher/metadata/pushdown/type/table/AlterTablePushDownMetaDataRefresher.java
@@ -25,7 +25,6 @@ import
org.apache.shardingsphere.infra.metadata.database.schema.builder.GenericS
import
org.apache.shardingsphere.infra.metadata.database.schema.builder.GenericSchemaBuilderMaterial;
import
org.apache.shardingsphere.infra.metadata.database.schema.model.ShardingSphereSchema;
import
org.apache.shardingsphere.infra.metadata.database.schema.model.ShardingSphereTable;
-import
org.apache.shardingsphere.infra.metadata.database.schema.pojo.AlterSchemaMetaDataPOJO;
import
org.apache.shardingsphere.infra.rule.attribute.datanode.MutableDataNodeRuleAttribute;
import
org.apache.shardingsphere.mode.metadata.refresher.metadata.pushdown.PushDownMetaDataRefresher;
import
org.apache.shardingsphere.mode.metadata.refresher.metadata.util.TableRefreshUtils;
@@ -48,15 +47,17 @@ public final class AlterTablePushDownMetaDataRefresher
implements PushDownMetaDa
public void refresh(final MetaDataManagerPersistService
metaDataManagerPersistService, final ShardingSphereDatabase database, final
Collection<String> logicDataSourceNames,
final String schemaName, final DatabaseType
databaseType, final AlterTableStatement sqlStatement, final
ConfigurationProperties props) throws SQLException {
String tableName =
TableRefreshUtils.getTableName(sqlStatement.getTable().getTableName().getIdentifier(),
databaseType);
- AlterSchemaMetaDataPOJO alterSchemaMetaDataPOJO = new
AlterSchemaMetaDataPOJO(database.getName(), schemaName, logicDataSourceNames);
+ Collection<ShardingSphereTable> alteredTables = new LinkedList<>();
+ Collection<String> droppedTables = new LinkedList<>();
if (sqlStatement.getRenameTable().isPresent()) {
String renameTable =
sqlStatement.getRenameTable().get().getTableName().getIdentifier().getValue();
- alterSchemaMetaDataPOJO.getAlteredTables().add(getTable(database,
logicDataSourceNames, schemaName, renameTable, props));
- alterSchemaMetaDataPOJO.getDroppedTables().add(tableName);
+ alteredTables.add(getTable(database, logicDataSourceNames,
schemaName, renameTable, props));
+ droppedTables.add(tableName);
} else {
- alterSchemaMetaDataPOJO.getAlteredTables().add(getTable(database,
logicDataSourceNames, schemaName, tableName, props));
+ alteredTables.add(getTable(database, logicDataSourceNames,
schemaName, tableName, props));
}
- metaDataManagerPersistService.alterSchema(alterSchemaMetaDataPOJO);
+ metaDataManagerPersistService.alterSchema(database.getName(),
schemaName, logicDataSourceNames.isEmpty() ? null :
logicDataSourceNames.iterator().next(),
+ alteredTables, Collections.emptyList(), droppedTables,
Collections.emptyList());
}
private ShardingSphereTable getTable(final ShardingSphereDatabase
database, final Collection<String> logicDataSourceNames, final String
schemaName,
diff --git
a/mode/core/src/main/java/org/apache/shardingsphere/mode/metadata/refresher/metadata/pushdown/type/table/RenameTablePushDownMetaDataRefresher.java
b/mode/core/src/main/java/org/apache/shardingsphere/mode/metadata/refresher/metadata/pushdown/type/table/RenameTablePushDownMetaDataRefresher.java
index 323936792a4..9c0ba1f5677 100644
---
a/mode/core/src/main/java/org/apache/shardingsphere/mode/metadata/refresher/metadata/pushdown/type/table/RenameTablePushDownMetaDataRefresher.java
+++
b/mode/core/src/main/java/org/apache/shardingsphere/mode/metadata/refresher/metadata/pushdown/type/table/RenameTablePushDownMetaDataRefresher.java
@@ -25,7 +25,6 @@ import
org.apache.shardingsphere.infra.metadata.database.schema.builder.GenericS
import
org.apache.shardingsphere.infra.metadata.database.schema.builder.GenericSchemaBuilderMaterial;
import
org.apache.shardingsphere.infra.metadata.database.schema.model.ShardingSphereSchema;
import
org.apache.shardingsphere.infra.metadata.database.schema.model.ShardingSphereTable;
-import
org.apache.shardingsphere.infra.metadata.database.schema.pojo.AlterSchemaMetaDataPOJO;
import
org.apache.shardingsphere.infra.rule.attribute.datanode.MutableDataNodeRuleAttribute;
import
org.apache.shardingsphere.mode.metadata.refresher.metadata.pushdown.PushDownMetaDataRefresher;
import
org.apache.shardingsphere.mode.metadata.refresher.metadata.util.TableRefreshUtils;
@@ -49,11 +48,10 @@ public final class RenameTablePushDownMetaDataRefresher
implements PushDownMetaD
public void refresh(final MetaDataManagerPersistService
metaDataManagerPersistService, final ShardingSphereDatabase database, final
Collection<String> logicDataSourceNames,
final String schemaName, final DatabaseType
databaseType, final RenameTableStatement sqlStatement, final
ConfigurationProperties props) throws SQLException {
for (RenameTableDefinitionSegment each :
sqlStatement.getRenameTables()) {
- AlterSchemaMetaDataPOJO alterSchemaMetaDataPOJO = new
AlterSchemaMetaDataPOJO(database.getName(), schemaName, logicDataSourceNames);
- alterSchemaMetaDataPOJO.getAlteredTables().add(getTable(database,
logicDataSourceNames, schemaName,
-
TableRefreshUtils.getTableName(each.getRenameTable().getTableName().getIdentifier(),
databaseType), props));
-
alterSchemaMetaDataPOJO.getDroppedTables().add(each.getTable().getTableName().getIdentifier().getValue());
- metaDataManagerPersistService.alterSchema(alterSchemaMetaDataPOJO);
+ ShardingSphereTable alteredTable = getTable(
+ database, logicDataSourceNames, schemaName,
TableRefreshUtils.getTableName(each.getRenameTable().getTableName().getIdentifier(),
databaseType), props);
+ metaDataManagerPersistService.alterSchema(database.getName(),
schemaName, logicDataSourceNames.isEmpty() ? null :
logicDataSourceNames.iterator().next(),
+ Collections.singleton(alteredTable),
Collections.emptyList(),
Collections.singleton(each.getTable().getTableName().getIdentifier().getValue()),
Collections.emptyList());
}
}
diff --git
a/mode/core/src/main/java/org/apache/shardingsphere/mode/metadata/refresher/metadata/pushdown/type/view/AlterViewPushDownMetaDataRefresher.java
b/mode/core/src/main/java/org/apache/shardingsphere/mode/metadata/refresher/metadata/pushdown/type/view/AlterViewPushDownMetaDataRefresher.java
index 1683434fa62..310029f548b 100644
---
a/mode/core/src/main/java/org/apache/shardingsphere/mode/metadata/refresher/metadata/pushdown/type/view/AlterViewPushDownMetaDataRefresher.java
+++
b/mode/core/src/main/java/org/apache/shardingsphere/mode/metadata/refresher/metadata/pushdown/type/view/AlterViewPushDownMetaDataRefresher.java
@@ -26,7 +26,6 @@ import
org.apache.shardingsphere.infra.metadata.database.schema.builder.GenericS
import
org.apache.shardingsphere.infra.metadata.database.schema.model.ShardingSphereSchema;
import
org.apache.shardingsphere.infra.metadata.database.schema.model.ShardingSphereTable;
import
org.apache.shardingsphere.infra.metadata.database.schema.model.ShardingSphereView;
-import
org.apache.shardingsphere.infra.metadata.database.schema.pojo.AlterSchemaMetaDataPOJO;
import
org.apache.shardingsphere.infra.rule.attribute.datanode.MutableDataNodeRuleAttribute;
import
org.apache.shardingsphere.mode.metadata.refresher.metadata.pushdown.PushDownMetaDataRefresher;
import
org.apache.shardingsphere.mode.metadata.refresher.metadata.util.TableRefreshUtils;
@@ -50,24 +49,28 @@ public final class AlterViewPushDownMetaDataRefresher
implements PushDownMetaDat
public void refresh(final MetaDataManagerPersistService
metaDataManagerPersistService, final ShardingSphereDatabase database, final
Collection<String> logicDataSourceNames,
final String schemaName, final DatabaseType
databaseType, final AlterViewStatement sqlStatement, final
ConfigurationProperties props) throws SQLException {
String viewName =
TableRefreshUtils.getTableName(sqlStatement.getView().getTableName().getIdentifier(),
databaseType);
- AlterSchemaMetaDataPOJO alterSchemaMetaDataPOJO = new
AlterSchemaMetaDataPOJO(database.getName(), schemaName, logicDataSourceNames);
+ Collection<ShardingSphereTable> alteredTables = new LinkedList<>();
+ Collection<ShardingSphereView> alteredViews = new LinkedList<>();
+ Collection<String> droppedTables = new LinkedList<>();
+ Collection<String> droppedViews = new LinkedList<>();
Optional<SimpleTableSegment> renameView = sqlStatement.getRenameView();
if (renameView.isPresent()) {
String renameViewName =
renameView.get().getTableName().getIdentifier().getValue();
String originalView =
database.getSchema(schemaName).getView(viewName).getViewDefinition();
ShardingSphereSchema schema = getSchema(database,
logicDataSourceNames, schemaName, renameViewName, originalView, props);
-
alterSchemaMetaDataPOJO.getAlteredTables().add(schema.getTable(renameViewName));
-
alterSchemaMetaDataPOJO.getAlteredViews().add(schema.getView(renameViewName));
- alterSchemaMetaDataPOJO.getDroppedTables().add(viewName);
- alterSchemaMetaDataPOJO.getDroppedViews().add(viewName);
+ alteredTables.add(schema.getTable(renameViewName));
+ alteredViews.add(schema.getView(renameViewName));
+ droppedTables.add(viewName);
+ droppedViews.add(viewName);
}
Optional<String> viewDefinition = sqlStatement.getViewDefinition();
if (viewDefinition.isPresent()) {
ShardingSphereSchema schema = getSchema(database,
logicDataSourceNames, schemaName, viewName, viewDefinition.get(), props);
-
alterSchemaMetaDataPOJO.getAlteredTables().add(schema.getTable(viewName));
-
alterSchemaMetaDataPOJO.getAlteredViews().add(schema.getView(viewName));
+ alteredTables.add(schema.getTable(viewName));
+ alteredViews.add(schema.getView(viewName));
}
- metaDataManagerPersistService.alterSchema(alterSchemaMetaDataPOJO);
+ metaDataManagerPersistService.alterSchema(database.getName(),
schemaName,
+ logicDataSourceNames.isEmpty() ? null :
logicDataSourceNames.iterator().next(), alteredTables, alteredViews,
droppedTables, droppedViews);
}
private ShardingSphereSchema getSchema(final ShardingSphereDatabase
database, final Collection<String> logicDataSourceNames,
diff --git
a/mode/core/src/main/java/org/apache/shardingsphere/mode/metadata/refresher/metadata/pushdown/type/view/CreateViewPushDownMetaDataRefresher.java
b/mode/core/src/main/java/org/apache/shardingsphere/mode/metadata/refresher/metadata/pushdown/type/view/CreateViewPushDownMetaDataRefresher.java
index e65bdef1275..989d2c64130 100644
---
a/mode/core/src/main/java/org/apache/shardingsphere/mode/metadata/refresher/metadata/pushdown/type/view/CreateViewPushDownMetaDataRefresher.java
+++
b/mode/core/src/main/java/org/apache/shardingsphere/mode/metadata/refresher/metadata/pushdown/type/view/CreateViewPushDownMetaDataRefresher.java
@@ -27,7 +27,6 @@ import
org.apache.shardingsphere.infra.metadata.database.schema.builder.GenericS
import
org.apache.shardingsphere.infra.metadata.database.schema.model.ShardingSphereSchema;
import
org.apache.shardingsphere.infra.metadata.database.schema.model.ShardingSphereTable;
import
org.apache.shardingsphere.infra.metadata.database.schema.model.ShardingSphereView;
-import
org.apache.shardingsphere.infra.metadata.database.schema.pojo.AlterSchemaMetaDataPOJO;
import
org.apache.shardingsphere.infra.rule.attribute.datanode.MutableDataNodeRuleAttribute;
import
org.apache.shardingsphere.mode.metadata.refresher.metadata.pushdown.PushDownMetaDataRefresher;
import
org.apache.shardingsphere.mode.metadata.refresher.metadata.util.TableRefreshUtils;
@@ -58,10 +57,9 @@ public final class CreateViewPushDownMetaDataRefresher
implements PushDownMetaDa
Map<String, ShardingSphereSchema> schemas =
GenericSchemaBuilder.build(Collections.singletonList(viewName),
database.getProtocolType(), material);
Optional<ShardingSphereTable> actualTableMetaData =
Optional.ofNullable(schemas.get(schemaName)).map(optional ->
optional.getTable(viewName));
Preconditions.checkState(actualTableMetaData.isPresent(), "Load actual
view metadata '%s' failed.", viewName);
- AlterSchemaMetaDataPOJO alterSchemaMetaDataPOJO = new
AlterSchemaMetaDataPOJO(database.getName(), schemaName, logicDataSourceNames);
-
alterSchemaMetaDataPOJO.getAlteredTables().add(actualTableMetaData.get());
- alterSchemaMetaDataPOJO.getAlteredViews().add(new
ShardingSphereView(viewName, sqlStatement.getViewDefinition()));
- metaDataManagerPersistService.alterSchema(alterSchemaMetaDataPOJO);
+ metaDataManagerPersistService.alterSchema(database.getName(),
schemaName, logicDataSourceNames.isEmpty() ? null :
logicDataSourceNames.iterator().next(),
+ Collections.singleton(actualTableMetaData.get()),
Collections.singleton(new ShardingSphereView(viewName,
sqlStatement.getViewDefinition())),
+ Collections.emptyList(), Collections.emptyList());
}
@Override
diff --git
a/mode/core/src/main/java/org/apache/shardingsphere/mode/metadata/refresher/metadata/pushdown/type/view/DropViewPushDownMetaDataRefresher.java
b/mode/core/src/main/java/org/apache/shardingsphere/mode/metadata/refresher/metadata/pushdown/type/view/DropViewPushDownMetaDataRefresher.java
index 06733376bee..1e2c74d6395 100644
---
a/mode/core/src/main/java/org/apache/shardingsphere/mode/metadata/refresher/metadata/pushdown/type/view/DropViewPushDownMetaDataRefresher.java
+++
b/mode/core/src/main/java/org/apache/shardingsphere/mode/metadata/refresher/metadata/pushdown/type/view/DropViewPushDownMetaDataRefresher.java
@@ -20,12 +20,14 @@ package
org.apache.shardingsphere.mode.metadata.refresher.metadata.pushdown.type
import org.apache.shardingsphere.infra.config.props.ConfigurationProperties;
import org.apache.shardingsphere.infra.database.core.type.DatabaseType;
import
org.apache.shardingsphere.infra.metadata.database.ShardingSphereDatabase;
-import
org.apache.shardingsphere.infra.metadata.database.schema.pojo.AlterSchemaMetaDataPOJO;
import
org.apache.shardingsphere.mode.metadata.refresher.metadata.pushdown.PushDownMetaDataRefresher;
import
org.apache.shardingsphere.mode.persist.service.MetaDataManagerPersistService;
+import
org.apache.shardingsphere.sql.parser.statement.core.segment.generic.table.SimpleTableSegment;
import
org.apache.shardingsphere.sql.parser.statement.core.statement.ddl.DropViewStatement;
import java.util.Collection;
+import java.util.Collections;
+import java.util.LinkedList;
/**
* Drop view push down meta data refresher.
@@ -35,13 +37,14 @@ public final class DropViewPushDownMetaDataRefresher
implements PushDownMetaData
@Override
public void refresh(final MetaDataManagerPersistService
metaDataManagerPersistService, final ShardingSphereDatabase database, final
Collection<String> logicDataSourceNames,
final String schemaName, final DatabaseType
databaseType, final DropViewStatement sqlStatement, final
ConfigurationProperties props) {
- AlterSchemaMetaDataPOJO alterSchemaMetaDataPOJO = new
AlterSchemaMetaDataPOJO(database.getName(), schemaName);
- sqlStatement.getViews().forEach(each -> {
+ Collection<String> droppedTables = new LinkedList<>();
+ Collection<String> droppedViews = new LinkedList<>();
+ for (SimpleTableSegment each : sqlStatement.getViews()) {
String viewName = each.getTableName().getIdentifier().getValue();
- alterSchemaMetaDataPOJO.getDroppedTables().add(viewName);
- alterSchemaMetaDataPOJO.getDroppedViews().add(viewName);
- });
- metaDataManagerPersistService.alterSchema(alterSchemaMetaDataPOJO);
+ droppedTables.add(viewName);
+ droppedViews.add(viewName);
+ }
+ metaDataManagerPersistService.alterSchema(database.getName(),
schemaName, null, Collections.emptyList(), Collections.emptyList(),
droppedTables, droppedViews);
}
@Override
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 4ff387df16b..6eef3720a3f 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
@@ -20,7 +20,7 @@ package org.apache.shardingsphere.mode.persist.service;
import org.apache.shardingsphere.infra.config.rule.RuleConfiguration;
import
org.apache.shardingsphere.infra.datasource.pool.props.domain.DataSourcePoolProperties;
import
org.apache.shardingsphere.infra.metadata.database.schema.model.ShardingSphereTable;
-import
org.apache.shardingsphere.infra.metadata.database.schema.pojo.AlterSchemaMetaDataPOJO;
+import
org.apache.shardingsphere.infra.metadata.database.schema.model.ShardingSphereView;
import java.sql.SQLException;
import java.util.Collection;
@@ -57,9 +57,16 @@ public interface MetaDataManagerPersistService {
/**
* Alter schema.
*
- * @param alterSchemaMetaDataPOJO alter schema metadata pojo
+ * @param databaseName database name
+ * @param schemaName schema name
+ * @param logicDataSourceName logic data source name
+ * @param alteredTables altered tables
+ * @param alteredViews altered views
+ * @param droppedTables dropped tables
+ * @param droppedViews dropped views
*/
- void alterSchema(AlterSchemaMetaDataPOJO alterSchemaMetaDataPOJO);
+ void alterSchema(String databaseName, String schemaName, String
logicDataSourceName,
+ Collection<ShardingSphereTable> alteredTables,
Collection<ShardingSphereView> alteredViews, Collection<String> droppedTables,
Collection<String> droppedViews);
/**
* Alter schema name.
diff --git
a/mode/type/cluster/core/src/main/java/org/apache/shardingsphere/mode/manager/cluster/persist/service/ClusterMetaDataManagerPersistService.java
b/mode/type/cluster/core/src/main/java/org/apache/shardingsphere/mode/manager/cluster/persist/service/ClusterMetaDataManagerPersistService.java
index 35893189ebc..875ac023887 100644
---
a/mode/type/cluster/core/src/main/java/org/apache/shardingsphere/mode/manager/cluster/persist/service/ClusterMetaDataManagerPersistService.java
+++
b/mode/type/cluster/core/src/main/java/org/apache/shardingsphere/mode/manager/cluster/persist/service/ClusterMetaDataManagerPersistService.java
@@ -25,7 +25,7 @@ import
org.apache.shardingsphere.infra.metadata.ShardingSphereMetaData;
import
org.apache.shardingsphere.infra.metadata.database.resource.node.StorageNode;
import
org.apache.shardingsphere.infra.metadata.database.schema.model.ShardingSphereSchema;
import
org.apache.shardingsphere.infra.metadata.database.schema.model.ShardingSphereTable;
-import
org.apache.shardingsphere.infra.metadata.database.schema.pojo.AlterSchemaMetaDataPOJO;
+import
org.apache.shardingsphere.infra.metadata.database.schema.model.ShardingSphereView;
import
org.apache.shardingsphere.infra.metadata.statistics.ShardingSphereStatistics;
import org.apache.shardingsphere.infra.metadata.version.MetaDataVersion;
import org.apache.shardingsphere.mode.metadata.MetaDataContextManager;
@@ -87,14 +87,14 @@ public final class ClusterMetaDataManagerPersistService
implements MetaDataManag
}
@Override
- public void alterSchema(final AlterSchemaMetaDataPOJO
alterSchemaMetaDataPOJO) {
- String databaseName = alterSchemaMetaDataPOJO.getDatabaseName();
- String schemaName = alterSchemaMetaDataPOJO.getSchemaName();
+ public void alterSchema(final String databaseName, final String
schemaName, final String logicDataSourceName,
+ final Collection<ShardingSphereTable>
alteredTables, final Collection<ShardingSphereView> alteredViews,
+ final Collection<String> droppedTables, final
Collection<String> droppedViews) {
DatabaseMetaDataPersistFacade databaseMetaDataFacade =
metaDataPersistService.getDatabaseMetaDataFacade();
- databaseMetaDataFacade.getTable().persist(databaseName, schemaName,
alterSchemaMetaDataPOJO.getAlteredTables());
- databaseMetaDataFacade.getView().persist(databaseName, schemaName,
alterSchemaMetaDataPOJO.getAlteredViews());
- alterSchemaMetaDataPOJO.getDroppedTables().forEach(each ->
databaseMetaDataFacade.getTable().drop(databaseName, schemaName, each));
- alterSchemaMetaDataPOJO.getDroppedViews().forEach(each ->
databaseMetaDataFacade.getView().delete(databaseName, schemaName, each));
+ databaseMetaDataFacade.getTable().persist(databaseName, schemaName,
alteredTables);
+ databaseMetaDataFacade.getView().persist(databaseName, schemaName,
alteredViews);
+ droppedTables.forEach(each ->
databaseMetaDataFacade.getTable().drop(databaseName, schemaName, each));
+ droppedViews.forEach(each ->
databaseMetaDataFacade.getView().delete(databaseName, schemaName, each));
}
@Override
diff --git
a/mode/type/cluster/core/src/test/java/org/apache/shardingsphere/mode/manager/cluster/persist/service/ClusterMetaDataManagerPersistServiceTest.java
b/mode/type/cluster/core/src/test/java/org/apache/shardingsphere/mode/manager/cluster/persist/service/ClusterMetaDataManagerPersistServiceTest.java
index 4b86e04a909..9fdc23b5f23 100644
---
a/mode/type/cluster/core/src/test/java/org/apache/shardingsphere/mode/manager/cluster/persist/service/ClusterMetaDataManagerPersistServiceTest.java
+++
b/mode/type/cluster/core/src/test/java/org/apache/shardingsphere/mode/manager/cluster/persist/service/ClusterMetaDataManagerPersistServiceTest.java
@@ -21,7 +21,6 @@ import lombok.SneakyThrows;
import org.apache.shardingsphere.infra.config.rule.RuleConfiguration;
import
org.apache.shardingsphere.infra.metadata.database.schema.model.ShardingSphereSchema;
import
org.apache.shardingsphere.infra.metadata.database.schema.model.ShardingSphereTable;
-import
org.apache.shardingsphere.infra.metadata.database.schema.pojo.AlterSchemaMetaDataPOJO;
import org.apache.shardingsphere.mode.metadata.MetaDataContextManager;
import org.apache.shardingsphere.mode.metadata.persist.MetaDataPersistService;
import org.apache.shardingsphere.mode.spi.repository.PersistRepository;
@@ -97,7 +96,7 @@ class ClusterMetaDataManagerPersistServiceTest {
@Test
void assertAlterSchema() {
- metaDataManagerPersistService.alterSchema(new
AlterSchemaMetaDataPOJO("foo_db", "foo_schema",
Collections.singleton("foo_ds")));
+ metaDataManagerPersistService.alterSchema("foo_db", "foo_schema",
"foo_ds", Collections.emptyList(), Collections.emptyList(),
Collections.emptyList(), Collections.emptyList());
verify(metaDataPersistService.getDatabaseMetaDataFacade().getTable()).persist("foo_db",
"foo_schema", Collections.emptyList());
verify(metaDataPersistService.getDatabaseMetaDataFacade().getView()).persist("foo_db",
"foo_schema", Collections.emptyList());
}
diff --git
a/mode/type/standalone/core/src/main/java/org/apache/shardingsphere/mode/manager/standalone/persist/service/StandaloneMetaDataManagerPersistService.java
b/mode/type/standalone/core/src/main/java/org/apache/shardingsphere/mode/manager/standalone/persist/service/StandaloneMetaDataManagerPersistService.java
index af03a7e81e9..060d469b91a 100644
---
a/mode/type/standalone/core/src/main/java/org/apache/shardingsphere/mode/manager/standalone/persist/service/StandaloneMetaDataManagerPersistService.java
+++
b/mode/type/standalone/core/src/main/java/org/apache/shardingsphere/mode/manager/standalone/persist/service/StandaloneMetaDataManagerPersistService.java
@@ -25,7 +25,6 @@ import
org.apache.shardingsphere.infra.metadata.database.ShardingSphereDatabase;
import
org.apache.shardingsphere.infra.metadata.database.schema.model.ShardingSphereSchema;
import
org.apache.shardingsphere.infra.metadata.database.schema.model.ShardingSphereTable;
import
org.apache.shardingsphere.infra.metadata.database.schema.model.ShardingSphereView;
-import
org.apache.shardingsphere.infra.metadata.database.schema.pojo.AlterSchemaMetaDataPOJO;
import org.apache.shardingsphere.infra.metadata.version.MetaDataVersion;
import
org.apache.shardingsphere.infra.rule.attribute.datanode.MutableDataNodeRuleAttribute;
import org.apache.shardingsphere.infra.rule.scope.GlobalRule;
@@ -95,18 +94,18 @@ public final class StandaloneMetaDataManagerPersistService
implements MetaDataMa
}
@Override
- public void alterSchema(final AlterSchemaMetaDataPOJO
alterSchemaMetaDataPOJO) {
- String databaseName = alterSchemaMetaDataPOJO.getDatabaseName();
- String schemaName = alterSchemaMetaDataPOJO.getSchemaName();
+ public void alterSchema(final String databaseName, final String
schemaName, final String logicDataSourceName,
+ final Collection<ShardingSphereTable>
alteredTables, final Collection<ShardingSphereView> alteredViews,
+ final Collection<String> droppedTables, final
Collection<String> droppedViews) {
ShardingSphereMetaData metaData =
metaDataContextManager.getMetaDataContexts().getMetaData();
ShardingSphereDatabase database = metaData.getDatabase(databaseName);
- addDataNode(database,
alterSchemaMetaDataPOJO.getLogicDataSourceName(), schemaName,
alterSchemaMetaDataPOJO.getAlteredTables(),
alterSchemaMetaDataPOJO.getAlteredViews());
- removeDataNode(database, schemaName,
alterSchemaMetaDataPOJO.getDroppedTables(),
alterSchemaMetaDataPOJO.getDroppedViews());
+ addDataNode(database, logicDataSourceName, schemaName, alteredTables,
alteredViews);
+ removeDataNode(database, schemaName, droppedTables, droppedViews);
metaData.getGlobalRuleMetaData().getRules().forEach(each ->
((GlobalRule) each).refresh(metaData.getAllDatabases(),
GlobalRuleChangedType.SCHEMA_CHANGED));
-
metaDataPersistService.getDatabaseMetaDataFacade().getTable().persist(databaseName,
schemaName, alterSchemaMetaDataPOJO.getAlteredTables());
-
metaDataPersistService.getDatabaseMetaDataFacade().getView().persist(databaseName,
schemaName, alterSchemaMetaDataPOJO.getAlteredViews());
- alterSchemaMetaDataPOJO.getDroppedTables().forEach(each ->
metaDataPersistService.getDatabaseMetaDataFacade().getTable().drop(databaseName,
schemaName, each));
- alterSchemaMetaDataPOJO.getDroppedViews().forEach(each ->
metaDataPersistService.getDatabaseMetaDataFacade().getView().delete(databaseName,
schemaName, each));
+
metaDataPersistService.getDatabaseMetaDataFacade().getTable().persist(databaseName,
schemaName, alteredTables);
+
metaDataPersistService.getDatabaseMetaDataFacade().getView().persist(databaseName,
schemaName, alteredViews);
+ droppedTables.forEach(each ->
metaDataPersistService.getDatabaseMetaDataFacade().getTable().drop(databaseName,
schemaName, each));
+ droppedViews.forEach(each ->
metaDataPersistService.getDatabaseMetaDataFacade().getView().delete(databaseName,
schemaName, each));
}
@Override
diff --git
a/mode/type/standalone/core/src/test/java/org/apache/shardingsphere/mode/manager/standalone/persist/service/StandaloneMetaDataManagerPersistServiceTest.java
b/mode/type/standalone/core/src/test/java/org/apache/shardingsphere/mode/manager/standalone/persist/service/StandaloneMetaDataManagerPersistServiceTest.java
index 38a5b254b45..666fdc15705 100644
---
a/mode/type/standalone/core/src/test/java/org/apache/shardingsphere/mode/manager/standalone/persist/service/StandaloneMetaDataManagerPersistServiceTest.java
+++
b/mode/type/standalone/core/src/test/java/org/apache/shardingsphere/mode/manager/standalone/persist/service/StandaloneMetaDataManagerPersistServiceTest.java
@@ -25,7 +25,6 @@ import
org.apache.shardingsphere.infra.metadata.ShardingSphereMetaData;
import
org.apache.shardingsphere.infra.metadata.database.ShardingSphereDatabase;
import
org.apache.shardingsphere.infra.metadata.database.schema.model.ShardingSphereSchema;
import
org.apache.shardingsphere.infra.metadata.database.schema.model.ShardingSphereTable;
-import
org.apache.shardingsphere.infra.metadata.database.schema.pojo.AlterSchemaMetaDataPOJO;
import org.apache.shardingsphere.infra.metadata.version.MetaDataVersion;
import org.apache.shardingsphere.mode.metadata.MetaDataContextManager;
import org.apache.shardingsphere.mode.metadata.manager.RuleItemChangedBuilder;
@@ -101,7 +100,7 @@ class StandaloneMetaDataManagerPersistServiceTest {
void assertAlterSchema() {
DatabaseMetaDataPersistFacade databaseMetaDataFacade =
mock(DatabaseMetaDataPersistFacade.class, RETURNS_DEEP_STUBS);
when(metaDataPersistService.getDatabaseMetaDataFacade()).thenReturn(databaseMetaDataFacade);
- metaDataManagerPersistService.alterSchema(new
AlterSchemaMetaDataPOJO("foo_db", "foo_schema",
Collections.singleton("foo_ds")));
+ metaDataManagerPersistService.alterSchema("foo_db", "foo_schema",
"foo_ds", Collections.emptyList(), Collections.emptyList(),
Collections.emptyList(), Collections.emptyList());
verify(databaseMetaDataFacade.getTable()).persist("foo_db",
"foo_schema", new LinkedList<>());
}