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 bc2cf9df7c9 Fix ShardingMetaDataReviseEntry (#24093)
bc2cf9df7c9 is described below

commit bc2cf9df7c937dcf4334898254f8cd5bd9a8a9d4
Author: Liang Zhang <[email protected]>
AuthorDate: Fri Feb 10 00:36:29 2023 +0800

    Fix ShardingMetaDataReviseEntry (#24093)
---
 .../sharding/metadata/reviser/ShardingMetaDataReviseEntry.java   | 8 +++++---
 .../sharding/metadata/ShardingMetaDataReviseEngineTest.java      | 9 ++++++---
 .../metadata/database/schema/reviser/MetaDataReviseEntry.java    | 3 +--
 .../schema/reviser/engine/schema/SchemaMetaDataReviseEngine.java | 2 +-
 4 files changed, 13 insertions(+), 9 deletions(-)

diff --git 
a/features/sharding/core/src/main/java/org/apache/shardingsphere/sharding/metadata/reviser/ShardingMetaDataReviseEntry.java
 
b/features/sharding/core/src/main/java/org/apache/shardingsphere/sharding/metadata/reviser/ShardingMetaDataReviseEntry.java
index 7a93c168283..6d6330c1e6c 100644
--- 
a/features/sharding/core/src/main/java/org/apache/shardingsphere/sharding/metadata/reviser/ShardingMetaDataReviseEntry.java
+++ 
b/features/sharding/core/src/main/java/org/apache/shardingsphere/sharding/metadata/reviser/ShardingMetaDataReviseEntry.java
@@ -18,12 +18,14 @@
 package org.apache.shardingsphere.sharding.metadata.reviser;
 
 import org.apache.shardingsphere.infra.config.props.ConfigurationProperties;
-import 
org.apache.shardingsphere.infra.metadata.database.schema.reviser.engine.schema.SchemaTableAggregationReviser;
+import org.apache.shardingsphere.infra.config.props.ConfigurationPropertyKey;
 import 
org.apache.shardingsphere.infra.metadata.database.schema.reviser.MetaDataReviseEntry;
+import 
org.apache.shardingsphere.infra.metadata.database.schema.reviser.engine.schema.SchemaTableAggregationReviser;
 import org.apache.shardingsphere.sharding.constant.ShardingOrder;
 import 
org.apache.shardingsphere.sharding.metadata.reviser.column.ShardingColumnGeneratedReviser;
 import 
org.apache.shardingsphere.sharding.metadata.reviser.constraint.ShardingConstraintReviser;
 import 
org.apache.shardingsphere.sharding.metadata.reviser.index.ShardingIndexReviser;
+import 
org.apache.shardingsphere.sharding.metadata.reviser.schema.ShardingSchemaTableAggregationReviser;
 import 
org.apache.shardingsphere.sharding.metadata.reviser.table.ShardingTableNameReviser;
 import org.apache.shardingsphere.sharding.rule.ShardingRule;
 
@@ -35,8 +37,8 @@ import java.util.Optional;
 public final class ShardingMetaDataReviseEntry implements 
MetaDataReviseEntry<ShardingRule> {
     
     @Override
-    public Optional<? extends SchemaTableAggregationReviser<ShardingRule>> 
getSchemaTableAggregationReviser(final ShardingRule rule, final 
ConfigurationProperties props) {
-        return 
MetaDataReviseEntry.super.getSchemaTableAggregationReviser(rule, props);
+    public Optional<? extends SchemaTableAggregationReviser<ShardingRule>> 
getSchemaTableAggregationReviser(final ConfigurationProperties props) {
+        return Optional.of(new 
ShardingSchemaTableAggregationReviser(props.getValue(ConfigurationPropertyKey.CHECK_TABLE_META_DATA_ENABLED)));
     }
     
     @Override
diff --git 
a/features/sharding/core/src/test/java/org/apache/shardingsphere/sharding/metadata/ShardingMetaDataReviseEngineTest.java
 
b/features/sharding/core/src/test/java/org/apache/shardingsphere/sharding/metadata/ShardingMetaDataReviseEngineTest.java
index 4a2077a5d2f..01cb1ba41e0 100644
--- 
a/features/sharding/core/src/test/java/org/apache/shardingsphere/sharding/metadata/ShardingMetaDataReviseEngineTest.java
+++ 
b/features/sharding/core/src/test/java/org/apache/shardingsphere/sharding/metadata/ShardingMetaDataReviseEngineTest.java
@@ -17,11 +17,12 @@
 
 package org.apache.shardingsphere.sharding.metadata;
 
+import org.apache.shardingsphere.infra.config.props.ConfigurationProperties;
 import 
org.apache.shardingsphere.infra.metadata.database.schema.builder.GenericSchemaBuilderMaterial;
-import 
org.apache.shardingsphere.infra.metadata.database.schema.reviser.engine.MetaDataReviseEngine;
 import 
org.apache.shardingsphere.infra.metadata.database.schema.loader.model.ColumnMetaData;
 import 
org.apache.shardingsphere.infra.metadata.database.schema.loader.model.SchemaMetaData;
 import 
org.apache.shardingsphere.infra.metadata.database.schema.loader.model.TableMetaData;
+import 
org.apache.shardingsphere.infra.metadata.database.schema.reviser.engine.MetaDataReviseEngine;
 import org.apache.shardingsphere.sharding.rule.ShardingRule;
 import org.junit.Test;
 
@@ -32,10 +33,10 @@ import java.util.Collections;
 import java.util.Iterator;
 import java.util.Map;
 import java.util.Optional;
+import java.util.Properties;
 
 import static org.junit.Assert.assertFalse;
 import static org.junit.Assert.assertTrue;
-import static org.mockito.Mockito.RETURNS_DEEP_STUBS;
 import static org.mockito.Mockito.mock;
 import static org.mockito.Mockito.when;
 
@@ -43,8 +44,10 @@ public final class ShardingMetaDataReviseEngineTest {
     
     @Test
     public void assertReviseWithKeyGenerateStrategy() {
+        GenericSchemaBuilderMaterial material = 
mock(GenericSchemaBuilderMaterial.class);
+        when(material.getProps()).thenReturn(new ConfigurationProperties(new 
Properties()));
         Map<String, SchemaMetaData> actual = new 
MetaDataReviseEngine(Collections.singleton(mockShardingRule())).revise(Collections.singletonMap("sharding_db",
-                new SchemaMetaData("sharding_db", 
Collections.singleton(createTableMetaData()))), 
mock(GenericSchemaBuilderMaterial.class, RETURNS_DEEP_STUBS));
+                new SchemaMetaData("sharding_db", 
Collections.singleton(createTableMetaData()))), material);
         Iterator<ColumnMetaData> columns = 
actual.get("sharding_db").getTables().iterator().next().getColumns().iterator();
         assertTrue(columns.next().isGenerated());
         assertFalse(columns.next().isGenerated());
diff --git 
a/infra/common/src/main/java/org/apache/shardingsphere/infra/metadata/database/schema/reviser/MetaDataReviseEntry.java
 
b/infra/common/src/main/java/org/apache/shardingsphere/infra/metadata/database/schema/reviser/MetaDataReviseEntry.java
index 6ec994ad946..07b32f22bde 100644
--- 
a/infra/common/src/main/java/org/apache/shardingsphere/infra/metadata/database/schema/reviser/MetaDataReviseEntry.java
+++ 
b/infra/common/src/main/java/org/apache/shardingsphere/infra/metadata/database/schema/reviser/MetaDataReviseEntry.java
@@ -43,11 +43,10 @@ public interface MetaDataReviseEntry<T extends 
ShardingSphereRule> extends Order
     /**
      * Get schema table aggregation reviser.
      * 
-     * @param rule rule
      * @param props configuration properties
      * @return schema table aggregation reviser
      */
-    default Optional<? extends SchemaTableAggregationReviser<T>> 
getSchemaTableAggregationReviser(final T rule, final ConfigurationProperties 
props) {
+    default Optional<? extends SchemaTableAggregationReviser<T>> 
getSchemaTableAggregationReviser(final ConfigurationProperties props) {
         return Optional.empty();
     }
     
diff --git 
a/infra/common/src/main/java/org/apache/shardingsphere/infra/metadata/database/schema/reviser/engine/schema/SchemaMetaDataReviseEngine.java
 
b/infra/common/src/main/java/org/apache/shardingsphere/infra/metadata/database/schema/reviser/engine/schema/SchemaMetaDataReviseEngine.java
index 25c4f5d49b2..befeca29f0b 100644
--- 
a/infra/common/src/main/java/org/apache/shardingsphere/infra/metadata/database/schema/reviser/engine/schema/SchemaMetaDataReviseEngine.java
+++ 
b/infra/common/src/main/java/org/apache/shardingsphere/infra/metadata/database/schema/reviser/engine/schema/SchemaMetaDataReviseEngine.java
@@ -64,7 +64,7 @@ public final class SchemaMetaDataReviseEngine {
     
     private <T extends ShardingSphereRule> SchemaMetaData revise(final 
SchemaMetaData originalMetaData, final T rule, final MetaDataReviseEntry<T> 
reviseEntry) {
         TableMetaDataReviseEngine<T> tableMetaDataReviseEngine = new 
TableMetaDataReviseEngine<>(rule, databaseType, dataSource, reviseEntry);
-        Optional<? extends SchemaTableAggregationReviser<T>> 
aggregationReviser = reviseEntry.getSchemaTableAggregationReviser(rule, props);
+        Optional<? extends SchemaTableAggregationReviser<T>> 
aggregationReviser = reviseEntry.getSchemaTableAggregationReviser(props);
         if (!aggregationReviser.isPresent()) {
             return new SchemaMetaData(originalMetaData.getName(), 
originalMetaData.getTables().stream().map(tableMetaDataReviseEngine::revise).collect(Collectors.toList()));
         }

Reply via email to