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 3d34954ba90 Remove useless SchemaMetaDataPersistService (#32983)
3d34954ba90 is described below
commit 3d34954ba9000047e327ade3244d1df2f7eff9a7
Author: Liang Zhang <[email protected]>
AuthorDate: Tue Sep 24 21:01:54 2024 +0800
Remove useless SchemaMetaDataPersistService (#32983)
* Remove useless SchemaMetaDataPersistService
* Remove useless SchemaMetaDataPersistService
---
.../schema/SchemaMetaDataPersistService.java | 63 ---------------------
.../schema/TableMetaDataPersistService.java | 43 +++++++++++---
.../service/schema/ViewMetaDataPersistService.java | 66 +++++++++++++++-------
.../schema/TableMetaDataPersistServiceTest.java | 8 +--
...st.java => ViewMetaDataPersistServiceTest.java} | 44 +++++++--------
.../dispatch/MetaDataChangedSubscriber.java | 10 ++--
.../dispatch/MetaDataChangedSubscriberTest.java | 6 +-
7 files changed, 111 insertions(+), 129 deletions(-)
diff --git
a/kernel/metadata/core/src/main/java/org/apache/shardingsphere/metadata/persist/service/schema/SchemaMetaDataPersistService.java
b/kernel/metadata/core/src/main/java/org/apache/shardingsphere/metadata/persist/service/schema/SchemaMetaDataPersistService.java
deleted file mode 100644
index f4730264307..00000000000
---
a/kernel/metadata/core/src/main/java/org/apache/shardingsphere/metadata/persist/service/schema/SchemaMetaDataPersistService.java
+++ /dev/null
@@ -1,63 +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.metadata.persist.service.schema;
-
-/**
- * Schema meta data persist service.
- *
- * @param <T> type of schema
- */
-public interface SchemaMetaDataPersistService<T> {
-
- /**
- * Persist meta data.
- *
- * @param databaseName database name
- * @param schemaName schema name
- * @param schema schema meta data
- */
- void persist(String databaseName, String schemaName, T schema);
-
- /**
- * Load schema meta data.
- *
- * @param databaseName database name
- * @param schemaName schema name
- * @return schema meta data
- */
- T load(String databaseName, String schemaName);
-
- /**
- * Load schema meta data.
- *
- * @param databaseName database name
- * @param schemaName schema name
- * @param name name
- * @return schema meta data
- */
- T load(String databaseName, String schemaName, String name);
-
- /**
- * Delete table or view.
- *
- * @param databaseName database name
- * @param schemaName schema name
- * @param name table or view name
- */
- void delete(String databaseName, String schemaName, String name);
-}
diff --git
a/kernel/metadata/core/src/main/java/org/apache/shardingsphere/metadata/persist/service/schema/TableMetaDataPersistService.java
b/kernel/metadata/core/src/main/java/org/apache/shardingsphere/metadata/persist/service/schema/TableMetaDataPersistService.java
index 3df33a65db5..067d2df29fb 100644
---
a/kernel/metadata/core/src/main/java/org/apache/shardingsphere/metadata/persist/service/schema/TableMetaDataPersistService.java
+++
b/kernel/metadata/core/src/main/java/org/apache/shardingsphere/metadata/persist/service/schema/TableMetaDataPersistService.java
@@ -17,6 +17,7 @@
package org.apache.shardingsphere.metadata.persist.service.schema;
+import com.google.common.base.Preconditions;
import com.google.common.base.Strings;
import lombok.RequiredArgsConstructor;
import
org.apache.shardingsphere.infra.metadata.database.schema.model.ShardingSphereTable;
@@ -29,7 +30,6 @@ import
org.apache.shardingsphere.metadata.persist.service.version.MetaDataVersio
import org.apache.shardingsphere.mode.spi.PersistRepository;
import java.util.Collection;
-import java.util.Collections;
import java.util.LinkedHashMap;
import java.util.LinkedList;
import java.util.List;
@@ -41,13 +41,19 @@ import java.util.Optional;
* Table meta data persist service.
*/
@RequiredArgsConstructor
-public final class TableMetaDataPersistService implements
SchemaMetaDataPersistService<Map<String, ShardingSphereTable>> {
+public final class TableMetaDataPersistService {
private final PersistRepository repository;
private final MetaDataVersionPersistService metaDataVersionPersistService;
- @Override
+ /**
+ * Persist tables.
+ *
+ * @param databaseName database name
+ * @param schemaName schema name
+ * @param tables tables
+ */
public void persist(final String databaseName, final String schemaName,
final Map<String, ShardingSphereTable> tables) {
Collection<MetaDataVersion> metaDataVersions = new LinkedList<>();
for (Entry<String, ShardingSphereTable> entry : tables.entrySet()) {
@@ -70,7 +76,13 @@ public final class TableMetaDataPersistService implements
SchemaMetaDataPersistS
return
repository.query(TableMetaDataNode.getTableActiveVersionNode(databaseName,
schemaName, tableName));
}
- @Override
+ /**
+ * Load tables.
+ *
+ * @param databaseName database name
+ * @param schemaName schema name
+ * @return loaded tables
+ */
public Map<String, ShardingSphereTable> load(final String databaseName,
final String schemaName) {
List<String> tableNames =
repository.getChildrenKeys(TableMetaDataNode.getMetaDataTablesNode(databaseName,
schemaName));
Map<String, ShardingSphereTable> result = new
LinkedHashMap<>(tableNames.size(), 1F);
@@ -80,9 +92,18 @@ public final class TableMetaDataPersistService implements
SchemaMetaDataPersistS
return result;
}
- @Override
- public Map<String, ShardingSphereTable> load(final String databaseName,
final String schemaName, final String tableName) {
- return getTableMetaData(databaseName, schemaName,
tableName).map(optional -> Collections.singletonMap(tableName.toLowerCase(),
optional)).orElse(Collections.emptyMap());
+ /**
+ * Load table.
+ *
+ * @param databaseName database name
+ * @param schemaName schema name
+ * @param tableName table name
+ * @return loaded table
+ */
+ public ShardingSphereTable load(final String databaseName, final String
schemaName, final String tableName) {
+ Optional<ShardingSphereTable> result = getTableMetaData(databaseName,
schemaName, tableName);
+ Preconditions.checkState(result.isPresent());
+ return result.get();
}
private Optional<ShardingSphereTable> getTableMetaData(final String
databaseName, final String schemaName, final String tableName) {
@@ -91,7 +112,13 @@ public final class TableMetaDataPersistService implements
SchemaMetaDataPersistS
return Strings.isNullOrEmpty(tableContent) ? Optional.empty() :
Optional.of(new
YamlTableSwapper().swapToObject(YamlEngine.unmarshal(tableContent,
YamlShardingSphereTable.class)));
}
- @Override
+ /**
+ * Delete table.
+ *
+ * @param databaseName database name
+ * @param schemaName schema name
+ * @param tableName table name
+ */
public void delete(final String databaseName, final String schemaName,
final String tableName) {
repository.delete(TableMetaDataNode.getTableNode(databaseName,
schemaName, tableName.toLowerCase()));
}
diff --git
a/kernel/metadata/core/src/main/java/org/apache/shardingsphere/metadata/persist/service/schema/ViewMetaDataPersistService.java
b/kernel/metadata/core/src/main/java/org/apache/shardingsphere/metadata/persist/service/schema/ViewMetaDataPersistService.java
index ad92b615d4f..021eb34b6ee 100644
---
a/kernel/metadata/core/src/main/java/org/apache/shardingsphere/metadata/persist/service/schema/ViewMetaDataPersistService.java
+++
b/kernel/metadata/core/src/main/java/org/apache/shardingsphere/metadata/persist/service/schema/ViewMetaDataPersistService.java
@@ -17,6 +17,7 @@
package org.apache.shardingsphere.metadata.persist.service.schema;
+import com.google.common.base.Preconditions;
import com.google.common.base.Strings;
import lombok.RequiredArgsConstructor;
import
org.apache.shardingsphere.infra.metadata.database.schema.model.ShardingSphereView;
@@ -29,24 +30,30 @@ import
org.apache.shardingsphere.metadata.persist.service.version.MetaDataVersio
import org.apache.shardingsphere.mode.spi.PersistRepository;
import java.util.Collection;
-import java.util.Collections;
import java.util.LinkedHashMap;
import java.util.LinkedList;
import java.util.List;
import java.util.Map;
import java.util.Map.Entry;
+import java.util.Optional;
/**
* View meta data persist service.
*/
@RequiredArgsConstructor
-public final class ViewMetaDataPersistService implements
SchemaMetaDataPersistService<Map<String, ShardingSphereView>> {
+public final class ViewMetaDataPersistService {
private final PersistRepository repository;
private final MetaDataVersionPersistService metaDataVersionPersistService;
- @Override
+ /**
+ * Persist views.
+ *
+ * @param databaseName database name
+ * @param schemaName schema name
+ * @param views views
+ */
public void persist(final String databaseName, final String schemaName,
final Map<String, ShardingSphereView> views) {
Collection<MetaDataVersion> metaDataVersions = new LinkedList<>();
for (Entry<String, ShardingSphereView> entry : views.entrySet()) {
@@ -67,30 +74,49 @@ public final class ViewMetaDataPersistService implements
SchemaMetaDataPersistSe
return
repository.query(ViewMetaDataNode.getViewActiveVersionNode(databaseName,
schemaName, viewName));
}
- @Override
+ /**
+ * Load views.
+ *
+ * @param databaseName database name
+ * @param schemaName schema name
+ * @return loaded views
+ */
public Map<String, ShardingSphereView> load(final String databaseName,
final String schemaName) {
- Collection<String> viewNames =
repository.getChildrenKeys(ViewMetaDataNode.getMetaDataViewsNode(databaseName,
schemaName));
- return viewNames.isEmpty() ? Collections.emptyMap() :
getViewMetaDataByViewNames(databaseName, schemaName, viewNames);
+ List<String> viewNames =
repository.getChildrenKeys(ViewMetaDataNode.getMetaDataViewsNode(databaseName,
schemaName));
+ Map<String, ShardingSphereView> result = new
LinkedHashMap<>(viewNames.size(), 1F);
+ for (String each : viewNames) {
+ getViewMetaData(databaseName, schemaName, each).ifPresent(optional
-> result.put(each.toLowerCase(), optional));
+ }
+ return result;
}
- @Override
- public Map<String, ShardingSphereView> load(final String databaseName,
final String schemaName, final String viewName) {
- return getViewMetaDataByViewNames(databaseName, schemaName,
Collections.singletonList(viewName));
+ /**
+ * Load view.
+ *
+ * @param databaseName database name
+ * @param schemaName schema name
+ * @param viewName view name
+ * @return loaded view
+ */
+ public ShardingSphereView load(final String databaseName, final String
schemaName, final String viewName) {
+ Optional<ShardingSphereView> result = getViewMetaData(databaseName,
schemaName, viewName);
+ Preconditions.checkState(result.isPresent());
+ return result.get();
}
- private Map<String, ShardingSphereView> getViewMetaDataByViewNames(final
String databaseName, final String schemaName, final Collection<String>
viewNames) {
- Map<String, ShardingSphereView> result = new
LinkedHashMap<>(viewNames.size(), 1F);
- viewNames.forEach(each -> {
- String view =
repository.query(ViewMetaDataNode.getViewVersionNode(databaseName, schemaName,
each,
-
repository.query(ViewMetaDataNode.getViewActiveVersionNode(databaseName,
schemaName, each))));
- if (!Strings.isNullOrEmpty(view)) {
- result.put(each.toLowerCase(), new
YamlViewSwapper().swapToObject(YamlEngine.unmarshal(view,
YamlShardingSphereView.class)));
- }
- });
- return result;
+ private Optional<ShardingSphereView> getViewMetaData(final String
databaseName, final String schemaName, final String viewName) {
+ String view =
repository.query(ViewMetaDataNode.getViewVersionNode(databaseName, schemaName,
viewName,
+
repository.query(ViewMetaDataNode.getViewActiveVersionNode(databaseName,
schemaName, viewName))));
+ return Strings.isNullOrEmpty(view) ? Optional.empty() :
Optional.of(new YamlViewSwapper().swapToObject(YamlEngine.unmarshal(view,
YamlShardingSphereView.class)));
}
- @Override
+ /**
+ * Delete view.
+ *
+ * @param databaseName database name
+ * @param schemaName schema name
+ * @param viewName view name
+ */
public void delete(final String databaseName, final String schemaName,
final String viewName) {
repository.delete(ViewMetaDataNode.getViewNode(databaseName,
schemaName, viewName.toLowerCase()));
}
diff --git
a/kernel/metadata/core/src/test/java/org/apache/shardingsphere/metadata/persist/service/schema/TableMetaDataPersistServiceTest.java
b/kernel/metadata/core/src/test/java/org/apache/shardingsphere/metadata/persist/service/schema/TableMetaDataPersistServiceTest.java
index 355cbb9064c..49b332d09eb 100644
---
a/kernel/metadata/core/src/test/java/org/apache/shardingsphere/metadata/persist/service/schema/TableMetaDataPersistServiceTest.java
+++
b/kernel/metadata/core/src/test/java/org/apache/shardingsphere/metadata/persist/service/schema/TableMetaDataPersistServiceTest.java
@@ -18,7 +18,6 @@
package org.apache.shardingsphere.metadata.persist.service.schema;
import
org.apache.shardingsphere.infra.metadata.database.schema.model.ShardingSphereTable;
-import
org.apache.shardingsphere.metadata.persist.node.metadata.TableMetaDataNode;
import
org.apache.shardingsphere.metadata.persist.service.version.MetaDataVersionPersistService;
import org.apache.shardingsphere.mode.spi.PersistRepository;
import org.junit.jupiter.api.BeforeEach;
@@ -81,14 +80,13 @@ class TableMetaDataPersistServiceTest {
void assertLoadWithTable() {
when(repository.query("/metadata/foo_db/schemas/foo_schema/tables/foo_tbl/active_version")).thenReturn("0");
when(repository.query("/metadata/foo_db/schemas/foo_schema/tables/foo_tbl/versions/0")).thenReturn("{name:
foo_tbl}");
- Map<String, ShardingSphereTable> actual =
persistService.load("foo_db", "foo_schema", "foo_tbl");
- assertThat(actual.size(), is(1));
- assertThat(actual.get("foo_tbl").getName(), is("foo_tbl"));
+ ShardingSphereTable actual = persistService.load("foo_db",
"foo_schema", "foo_tbl");
+ assertThat(actual.getName(), is("foo_tbl"));
}
@Test
void assertDelete() {
persistService.delete("foo_db", "foo_schema", "foo_tbl");
- verify(repository).delete(TableMetaDataNode.getTableNode("foo_db",
"foo_schema", "foo_tbl"));
+
verify(repository).delete("/metadata/foo_db/schemas/foo_schema/tables/foo_tbl");
}
}
diff --git
a/kernel/metadata/core/src/test/java/org/apache/shardingsphere/metadata/persist/service/schema/TableMetaDataPersistServiceTest.java
b/kernel/metadata/core/src/test/java/org/apache/shardingsphere/metadata/persist/service/schema/ViewMetaDataPersistServiceTest.java
similarity index 65%
copy from
kernel/metadata/core/src/test/java/org/apache/shardingsphere/metadata/persist/service/schema/TableMetaDataPersistServiceTest.java
copy to
kernel/metadata/core/src/test/java/org/apache/shardingsphere/metadata/persist/service/schema/ViewMetaDataPersistServiceTest.java
index 355cbb9064c..fc10c4abad7 100644
---
a/kernel/metadata/core/src/test/java/org/apache/shardingsphere/metadata/persist/service/schema/TableMetaDataPersistServiceTest.java
+++
b/kernel/metadata/core/src/test/java/org/apache/shardingsphere/metadata/persist/service/schema/ViewMetaDataPersistServiceTest.java
@@ -17,8 +17,7 @@
package org.apache.shardingsphere.metadata.persist.service.schema;
-import
org.apache.shardingsphere.infra.metadata.database.schema.model.ShardingSphereTable;
-import
org.apache.shardingsphere.metadata.persist.node.metadata.TableMetaDataNode;
+import
org.apache.shardingsphere.infra.metadata.database.schema.model.ShardingSphereView;
import
org.apache.shardingsphere.metadata.persist.service.version.MetaDataVersionPersistService;
import org.apache.shardingsphere.mode.spi.PersistRepository;
import org.junit.jupiter.api.BeforeEach;
@@ -39,9 +38,9 @@ import static org.mockito.Mockito.verify;
import static org.mockito.Mockito.when;
@ExtendWith(MockitoExtension.class)
-class TableMetaDataPersistServiceTest {
+class ViewMetaDataPersistServiceTest {
- private TableMetaDataPersistService persistService;
+ private ViewMetaDataPersistService persistService;
@Mock
private PersistRepository repository;
@@ -51,44 +50,43 @@ class TableMetaDataPersistServiceTest {
@BeforeEach
void setUp() {
- persistService = new TableMetaDataPersistService(repository,
metaDataVersionPersistService);
+ persistService = new ViewMetaDataPersistService(repository,
metaDataVersionPersistService);
}
@Test
void assertPersist() {
- persistService.persist("foo_db", "foo_schema",
Collections.singletonMap("foo_tbl", mock(ShardingSphereTable.class)));
-
verify(repository).persist("/metadata/foo_db/schemas/foo_schema/tables/foo_tbl/versions/0",
"{}" + System.lineSeparator());
-
verify(repository).persist("/metadata/foo_db/schemas/foo_schema/tables/foo_tbl/active_version",
"0");
+ persistService.persist("foo_db", "foo_schema",
Collections.singletonMap("foo_view", mock(ShardingSphereView.class)));
+
verify(repository).persist("/metadata/foo_db/schemas/foo_schema/views/foo_view/versions/0",
"{}" + System.lineSeparator());
+
verify(repository).persist("/metadata/foo_db/schemas/foo_schema/views/foo_view/active_version",
"0");
verify(metaDataVersionPersistService).switchActiveVersion(any());
}
@Test
- void assertLoadWithEmptyTables() {
+ void assertLoadWithEmptyViews() {
assertTrue(persistService.load("foo_db", "foo_schema").isEmpty());
}
@Test
- void assertLoadWithTables() {
-
when(repository.getChildrenKeys("/metadata/foo_db/schemas/foo_schema/tables")).thenReturn(Collections.singletonList("foo_tbl"));
-
when(repository.query("/metadata/foo_db/schemas/foo_schema/tables/foo_tbl/active_version")).thenReturn("0");
-
when(repository.query("/metadata/foo_db/schemas/foo_schema/tables/foo_tbl/versions/0")).thenReturn("{name:
foo_tbl}");
- Map<String, ShardingSphereTable> actual =
persistService.load("foo_db", "foo_schema");
+ void assertLoadWithViews() {
+
when(repository.getChildrenKeys("/metadata/foo_db/schemas/foo_schema/views")).thenReturn(Collections.singletonList("foo_view"));
+
when(repository.query("/metadata/foo_db/schemas/foo_schema/views/foo_view/active_version")).thenReturn("0");
+
when(repository.query("/metadata/foo_db/schemas/foo_schema/views/foo_view/versions/0")).thenReturn("{name:
foo_view}");
+ Map<String, ShardingSphereView> actual = persistService.load("foo_db",
"foo_schema");
assertThat(actual.size(), is(1));
- assertThat(actual.get("foo_tbl").getName(), is("foo_tbl"));
+ assertThat(actual.get("foo_view").getName(), is("foo_view"));
}
@Test
- void assertLoadWithTable() {
-
when(repository.query("/metadata/foo_db/schemas/foo_schema/tables/foo_tbl/active_version")).thenReturn("0");
-
when(repository.query("/metadata/foo_db/schemas/foo_schema/tables/foo_tbl/versions/0")).thenReturn("{name:
foo_tbl}");
- Map<String, ShardingSphereTable> actual =
persistService.load("foo_db", "foo_schema", "foo_tbl");
- assertThat(actual.size(), is(1));
- assertThat(actual.get("foo_tbl").getName(), is("foo_tbl"));
+ void assertLoadWithView() {
+
when(repository.query("/metadata/foo_db/schemas/foo_schema/views/foo_view/active_version")).thenReturn("0");
+
when(repository.query("/metadata/foo_db/schemas/foo_schema/views/foo_view/versions/0")).thenReturn("{name:
foo_view}");
+ ShardingSphereView actual = persistService.load("foo_db",
"foo_schema", "foo_view");
+ assertThat(actual.getName(), is("foo_view"));
}
@Test
void assertDelete() {
- persistService.delete("foo_db", "foo_schema", "foo_tbl");
- verify(repository).delete(TableMetaDataNode.getTableNode("foo_db",
"foo_schema", "foo_tbl"));
+ persistService.delete("foo_db", "foo_schema", "foo_view");
+
verify(repository).delete("/metadata/foo_db/schemas/foo_schema/views/foo_view");
}
}
diff --git
a/mode/type/cluster/core/src/main/java/org/apache/shardingsphere/mode/manager/cluster/event/subscriber/dispatch/MetaDataChangedSubscriber.java
b/mode/type/cluster/core/src/main/java/org/apache/shardingsphere/mode/manager/cluster/event/subscriber/dispatch/MetaDataChangedSubscriber.java
index f6ae7c6f754..1aa97490bc1 100644
---
a/mode/type/cluster/core/src/main/java/org/apache/shardingsphere/mode/manager/cluster/event/subscriber/dispatch/MetaDataChangedSubscriber.java
+++
b/mode/type/cluster/core/src/main/java/org/apache/shardingsphere/mode/manager/cluster/event/subscriber/dispatch/MetaDataChangedSubscriber.java
@@ -35,8 +35,6 @@ import
org.apache.shardingsphere.mode.manager.cluster.lock.GlobalLockPersistServ
import
org.apache.shardingsphere.mode.metadata.refresher.ShardingSphereStatisticsRefreshEngine;
import
org.apache.shardingsphere.mode.repository.cluster.ClusterPersistRepository;
-import java.util.Map;
-
/**
* Meta data changed subscriber.
*/
@@ -84,9 +82,9 @@ public final class MetaDataChangedSubscriber implements
EventSubscriber {
Preconditions.checkArgument(event.getActiveVersion().equals(
contextManager.getPersistServiceFacade().getMetaDataPersistService().getMetaDataVersionPersistService().getActiveVersionByFullPath(event.getActiveVersionKey())),
"Invalid active version: %s of key: %s",
event.getActiveVersion(), event.getActiveVersionKey());
- Map<String, ShardingSphereTable> tables =
contextManager.getPersistServiceFacade().getMetaDataPersistService().getDatabaseMetaDataService().getTableMetaDataPersistService()
+ ShardingSphereTable table =
contextManager.getPersistServiceFacade().getMetaDataPersistService().getDatabaseMetaDataService().getTableMetaDataPersistService()
.load(event.getDatabaseName(), event.getSchemaName(),
event.getTableName());
-
contextManager.getMetaDataContextManager().getSchemaMetaDataManager().alterSchema(event.getDatabaseName(),
event.getSchemaName(), tables.values().iterator().next(), null);
+
contextManager.getMetaDataContextManager().getSchemaMetaDataManager().alterSchema(event.getDatabaseName(),
event.getSchemaName(), table, null);
refreshShardingSphereStatisticsData();
}
@@ -111,9 +109,9 @@ public final class MetaDataChangedSubscriber implements
EventSubscriber {
Preconditions.checkArgument(event.getActiveVersion().equals(
contextManager.getPersistServiceFacade().getMetaDataPersistService().getMetaDataVersionPersistService().getActiveVersionByFullPath(event.getActiveVersionKey())),
"Invalid active version: %s of key: %s",
event.getActiveVersion(), event.getActiveVersionKey());
- Map<String, ShardingSphereView> views =
contextManager.getPersistServiceFacade().getMetaDataPersistService().getDatabaseMetaDataService().getViewMetaDataPersistService()
+ ShardingSphereView view =
contextManager.getPersistServiceFacade().getMetaDataPersistService().getDatabaseMetaDataService().getViewMetaDataPersistService()
.load(event.getDatabaseName(), event.getSchemaName(),
event.getViewName());
-
contextManager.getMetaDataContextManager().getSchemaMetaDataManager().alterSchema(event.getDatabaseName(),
event.getSchemaName(), null, views.values().iterator().next());
+
contextManager.getMetaDataContextManager().getSchemaMetaDataManager().alterSchema(event.getDatabaseName(),
event.getSchemaName(), null, view);
refreshShardingSphereStatisticsData();
}
diff --git
a/mode/type/cluster/core/src/test/java/org/apache/shardingsphere/mode/manager/cluster/event/subscriber/dispatch/MetaDataChangedSubscriberTest.java
b/mode/type/cluster/core/src/test/java/org/apache/shardingsphere/mode/manager/cluster/event/subscriber/dispatch/MetaDataChangedSubscriberTest.java
index f54401f38b7..fbc0033dbaa 100644
---
a/mode/type/cluster/core/src/test/java/org/apache/shardingsphere/mode/manager/cluster/event/subscriber/dispatch/MetaDataChangedSubscriberTest.java
+++
b/mode/type/cluster/core/src/test/java/org/apache/shardingsphere/mode/manager/cluster/event/subscriber/dispatch/MetaDataChangedSubscriberTest.java
@@ -38,8 +38,6 @@ import org.mockito.junit.jupiter.MockitoExtension;
import org.mockito.junit.jupiter.MockitoSettings;
import org.mockito.quality.Strictness;
-import java.util.Collections;
-
import static org.mockito.Mockito.mock;
import static org.mockito.Mockito.verify;
import static org.mockito.Mockito.when;
@@ -80,7 +78,7 @@ class MetaDataChangedSubscriberTest {
when(contextManager.getPersistServiceFacade().getMetaDataPersistService().getMetaDataVersionPersistService().getActiveVersionByFullPath("key")).thenReturn("value");
ShardingSphereTable table = mock(ShardingSphereTable.class);
when(contextManager.getPersistServiceFacade().getMetaDataPersistService().getDatabaseMetaDataService().getTableMetaDataPersistService().load("foo_db",
"foo_schema", "foo_tbl"))
- .thenReturn(Collections.singletonMap("foo_tbl", table));
+ .thenReturn(table);
subscriber.renew(new CreateOrAlterTableEvent("foo_db", "foo_schema",
"foo_tbl", "key", "value"));
verify(contextManager.getMetaDataContextManager().getSchemaMetaDataManager()).alterSchema("foo_db",
"foo_schema", table, null);
}
@@ -96,7 +94,7 @@ class MetaDataChangedSubscriberTest {
when(contextManager.getPersistServiceFacade().getMetaDataPersistService().getMetaDataVersionPersistService().getActiveVersionByFullPath("key")).thenReturn("value");
ShardingSphereView view = mock(ShardingSphereView.class);
when(contextManager.getPersistServiceFacade().getMetaDataPersistService().getDatabaseMetaDataService().getViewMetaDataPersistService().load("foo_db",
"foo_schema", "foo_view"))
- .thenReturn(Collections.singletonMap("foo_view", view));
+ .thenReturn(view);
subscriber.renew(new CreateOrAlterViewEvent("foo_db", "foo_schema",
"foo_view", "key", "value"));
verify(contextManager.getMetaDataContextManager().getSchemaMetaDataManager()).alterSchema("foo_db",
"foo_schema", null, view);
}