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()));
}