You are viewing a plain text version of this content. The canonical link for it is here.
Posted to notifications@shardingsphere.apache.org by zh...@apache.org on 2023/02/09 14:12:45 UTC
[shardingsphere] branch master updated: Use MetaDataReviseEngine instead of RuleBasedSchemaMetaDataDecorator totally (#24084)
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 225c1539b37 Use MetaDataReviseEngine instead of RuleBasedSchemaMetaDataDecorator totally (#24084)
225c1539b37 is described below
commit 225c1539b37479da57884920a0d68485ca8a10c1
Author: Liang Zhang <zh...@apache.org>
AuthorDate: Thu Feb 9 22:12:38 2023 +0800
Use MetaDataReviseEngine instead of RuleBasedSchemaMetaDataDecorator totally (#24084)
* Use MetaDataReviseEngine instead of RuleBasedSchemaMetaDataDecorator totally
* Refactor GenericSchemaBuilder
* Fix checkstyle
---
.../metadata/EncryptSchemaMetaDataDecorator.java | 58 ----------------------
.../reviser/EncryptMetaDataReviseEntry.java | 10 +++-
....decorator.spi.RuleBasedSchemaMetaDataDecorator | 18 -------
...t.java => EncryptMetaDataReviseEngineTest.java} | 32 +++++-------
.../metadata/ShardingSchemaMetaDataDecorator.java | 58 ----------------------
.../reviser/ShardingMetaDataReviseEntry.java | 10 +++-
....decorator.spi.RuleBasedSchemaMetaDataDecorator | 18 -------
....java => ShardingMetaDataReviseEngineTest.java} | 45 +++++++----------
.../schema/builder/GenericSchemaBuilder.java | 15 ++----
.../decorator/reviser/MetaDataReviseEngine.java | 37 +++++++-------
.../reviser/schema/SchemaMetaDataReviseEngine.java | 32 ++++++------
.../schema/decorator/spi/MetaDataReviseEntry.java | 6 ++-
.../spi/RuleBasedSchemaMetaDataDecorator.java | 45 -----------------
.../reviser/SingleMetaDataReviseEntry.java | 10 +++-
....decorator.spi.RuleBasedSchemaMetaDataDecorator | 18 -------
...st.java => SingleMetaDataReviseEngineTest.java} | 37 ++++++--------
16 files changed, 112 insertions(+), 337 deletions(-)
diff --git a/features/encrypt/core/src/main/java/org/apache/shardingsphere/encrypt/metadata/EncryptSchemaMetaDataDecorator.java b/features/encrypt/core/src/main/java/org/apache/shardingsphere/encrypt/metadata/EncryptSchemaMetaDataDecorator.java
deleted file mode 100644
index 061ba32a226..00000000000
--- a/features/encrypt/core/src/main/java/org/apache/shardingsphere/encrypt/metadata/EncryptSchemaMetaDataDecorator.java
+++ /dev/null
@@ -1,58 +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.encrypt.metadata;
-
-import org.apache.shardingsphere.encrypt.constant.EncryptOrder;
-import org.apache.shardingsphere.encrypt.rule.EncryptRule;
-import org.apache.shardingsphere.infra.database.type.DatabaseType;
-import org.apache.shardingsphere.infra.metadata.database.schema.builder.GenericSchemaBuilderMaterial;
-import org.apache.shardingsphere.infra.metadata.database.schema.decorator.reviser.schema.SchemaMetaDataReviseEngine;
-import org.apache.shardingsphere.infra.metadata.database.schema.decorator.spi.RuleBasedSchemaMetaDataDecorator;
-import org.apache.shardingsphere.infra.metadata.database.schema.loader.model.SchemaMetaData;
-
-import javax.sql.DataSource;
-import java.util.LinkedHashMap;
-import java.util.Map;
-import java.util.Map.Entry;
-
-/**
- * Schema meta data decorator for encrypt.
- */
-public final class EncryptSchemaMetaDataDecorator implements RuleBasedSchemaMetaDataDecorator<EncryptRule> {
-
- @Override
- public Map<String, SchemaMetaData> decorate(final Map<String, SchemaMetaData> schemaMetaDataMap, final EncryptRule rule, final GenericSchemaBuilderMaterial material) {
- Map<String, SchemaMetaData> result = new LinkedHashMap<>(schemaMetaDataMap.size(), 1);
- for (Entry<String, SchemaMetaData> entry : schemaMetaDataMap.entrySet()) {
- DatabaseType databaseType = material.getStorageTypes().get(entry.getKey());
- DataSource dataSource = material.getDataSourceMap().get(entry.getKey());
- result.put(entry.getKey(), new SchemaMetaDataReviseEngine<>(rule, material.getProps(), databaseType, dataSource).revise(entry.getValue()));
- }
- return result;
- }
-
- @Override
- public int getOrder() {
- return EncryptOrder.ORDER;
- }
-
- @Override
- public Class<EncryptRule> getTypeClass() {
- return EncryptRule.class;
- }
-}
diff --git a/features/encrypt/core/src/main/java/org/apache/shardingsphere/encrypt/metadata/reviser/EncryptMetaDataReviseEntry.java b/features/encrypt/core/src/main/java/org/apache/shardingsphere/encrypt/metadata/reviser/EncryptMetaDataReviseEntry.java
index d9cc520dff0..dfb8901b882 100644
--- a/features/encrypt/core/src/main/java/org/apache/shardingsphere/encrypt/metadata/reviser/EncryptMetaDataReviseEntry.java
+++ b/features/encrypt/core/src/main/java/org/apache/shardingsphere/encrypt/metadata/reviser/EncryptMetaDataReviseEntry.java
@@ -17,6 +17,7 @@
package org.apache.shardingsphere.encrypt.metadata.reviser;
+import org.apache.shardingsphere.encrypt.constant.EncryptOrder;
import org.apache.shardingsphere.encrypt.rule.EncryptRule;
import org.apache.shardingsphere.infra.metadata.database.schema.decorator.spi.MetaDataReviseEntry;
@@ -38,7 +39,12 @@ public final class EncryptMetaDataReviseEntry implements MetaDataReviseEntry<Enc
}
@Override
- public String getType() {
- return EncryptRule.class.getSimpleName();
+ public int getOrder() {
+ return EncryptOrder.ORDER;
+ }
+
+ @Override
+ public Class<EncryptRule> getTypeClass() {
+ return EncryptRule.class;
}
}
diff --git a/features/encrypt/core/src/main/resources/META-INF/services/org.apache.shardingsphere.infra.metadata.database.schema.decorator.spi.RuleBasedSchemaMetaDataDecorator b/features/encrypt/core/src/main/resources/META-INF/services/org.apache.shardingsphere.infra.metadata.database.schema.decorator.spi.RuleBasedSchemaMetaDataDecorator
deleted file mode 100644
index d256c286bbc..00000000000
--- a/features/encrypt/core/src/main/resources/META-INF/services/org.apache.shardingsphere.infra.metadata.database.schema.decorator.spi.RuleBasedSchemaMetaDataDecorator
+++ /dev/null
@@ -1,18 +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.
-#
-
-org.apache.shardingsphere.encrypt.metadata.EncryptSchemaMetaDataDecorator
diff --git a/features/encrypt/core/src/test/java/org/apache/shardingsphere/encrypt/metadata/EncryptSchemaMetaDataDecoratorTest.java b/features/encrypt/core/src/test/java/org/apache/shardingsphere/encrypt/metadata/EncryptMetaDataReviseEngineTest.java
similarity index 69%
rename from features/encrypt/core/src/test/java/org/apache/shardingsphere/encrypt/metadata/EncryptSchemaMetaDataDecoratorTest.java
rename to features/encrypt/core/src/test/java/org/apache/shardingsphere/encrypt/metadata/EncryptMetaDataReviseEngineTest.java
index e3bc39ecdaa..73996881756 100644
--- a/features/encrypt/core/src/test/java/org/apache/shardingsphere/encrypt/metadata/EncryptSchemaMetaDataDecoratorTest.java
+++ b/features/encrypt/core/src/test/java/org/apache/shardingsphere/encrypt/metadata/EncryptMetaDataReviseEngineTest.java
@@ -21,12 +21,10 @@ import org.apache.shardingsphere.encrypt.rule.EncryptRule;
import org.apache.shardingsphere.encrypt.rule.EncryptTable;
import org.apache.shardingsphere.infra.database.DefaultDatabase;
import org.apache.shardingsphere.infra.metadata.database.schema.builder.GenericSchemaBuilderMaterial;
-import org.apache.shardingsphere.infra.metadata.database.schema.decorator.spi.RuleBasedSchemaMetaDataDecorator;
+import org.apache.shardingsphere.infra.metadata.database.schema.decorator.reviser.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.rule.ShardingSphereRule;
-import org.apache.shardingsphere.infra.util.spi.type.ordered.OrderedSPILoader;
import org.junit.Test;
import java.sql.Types;
@@ -34,7 +32,7 @@ import java.util.Arrays;
import java.util.Collection;
import java.util.Collections;
import java.util.Iterator;
-import java.util.LinkedList;
+import java.util.Map;
import java.util.Optional;
import static org.hamcrest.CoreMatchers.is;
@@ -42,25 +40,23 @@ import static org.hamcrest.MatcherAssert.assertThat;
import static org.mockito.Mockito.mock;
import static org.mockito.Mockito.when;
-public final class EncryptSchemaMetaDataDecoratorTest {
+public final class EncryptMetaDataReviseEngineTest {
private static final String TABLE_NAME = "t_encrypt";
@Test
- public void assertDecorate() {
- EncryptRule rule = createEncryptRule();
- EncryptSchemaMetaDataDecorator loader = getEncryptMetaDataBuilder(rule, Collections.singleton(rule));
- Collection<TableMetaData> tableMetaDataList = new LinkedList<>();
- tableMetaDataList.add(createTableMetaData());
- TableMetaData actual = loader.decorate(Collections.singletonMap(DefaultDatabase.LOGIC_NAME,
- new SchemaMetaData(DefaultDatabase.LOGIC_NAME, tableMetaDataList)), rule, mock(GenericSchemaBuilderMaterial.class)).get(DefaultDatabase.LOGIC_NAME).getTables().iterator().next();
+ public void assertRevise() {
+ Map<String, SchemaMetaData> schemaMetaData = Collections.singletonMap(
+ DefaultDatabase.LOGIC_NAME, new SchemaMetaData(DefaultDatabase.LOGIC_NAME, Collections.singleton(createTableMetaData())));
+ TableMetaData actual = new MetaDataReviseEngine(Collections.singleton(mockEncryptRule())).revise(
+ schemaMetaData, mock(GenericSchemaBuilderMaterial.class)).get(DefaultDatabase.LOGIC_NAME).getTables().iterator().next();
assertThat(actual.getColumns().size(), is(2));
- Iterator<ColumnMetaData> columnsIterator = actual.getColumns().iterator();
- assertThat(columnsIterator.next().getName(), is("id"));
- assertThat(columnsIterator.next().getName(), is("pwd"));
+ Iterator<ColumnMetaData> columns = actual.getColumns().iterator();
+ assertThat(columns.next().getName(), is("id"));
+ assertThat(columns.next().getName(), is("pwd"));
}
- private EncryptRule createEncryptRule() {
+ private EncryptRule mockEncryptRule() {
EncryptRule result = mock(EncryptRule.class);
EncryptTable encryptTable = mock(EncryptTable.class);
when(result.findEncryptTable(TABLE_NAME)).thenReturn(Optional.of(encryptTable));
@@ -80,8 +76,4 @@ public final class EncryptSchemaMetaDataDecoratorTest {
new ColumnMetaData("pwd_like", Types.VARCHAR, false, false, true, true, false));
return new TableMetaData(TABLE_NAME, columns, Collections.emptyList(), Collections.emptyList());
}
-
- private EncryptSchemaMetaDataDecorator getEncryptMetaDataBuilder(final EncryptRule encryptRule, final Collection<ShardingSphereRule> rules) {
- return (EncryptSchemaMetaDataDecorator) OrderedSPILoader.getServices(RuleBasedSchemaMetaDataDecorator.class, rules).get(encryptRule);
- }
}
diff --git a/features/sharding/core/src/main/java/org/apache/shardingsphere/sharding/metadata/ShardingSchemaMetaDataDecorator.java b/features/sharding/core/src/main/java/org/apache/shardingsphere/sharding/metadata/ShardingSchemaMetaDataDecorator.java
deleted file mode 100644
index 07514c7d43a..00000000000
--- a/features/sharding/core/src/main/java/org/apache/shardingsphere/sharding/metadata/ShardingSchemaMetaDataDecorator.java
+++ /dev/null
@@ -1,58 +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.sharding.metadata;
-
-import org.apache.shardingsphere.infra.database.type.DatabaseType;
-import org.apache.shardingsphere.infra.metadata.database.schema.builder.GenericSchemaBuilderMaterial;
-import org.apache.shardingsphere.infra.metadata.database.schema.decorator.reviser.schema.SchemaMetaDataReviseEngine;
-import org.apache.shardingsphere.infra.metadata.database.schema.decorator.spi.RuleBasedSchemaMetaDataDecorator;
-import org.apache.shardingsphere.infra.metadata.database.schema.loader.model.SchemaMetaData;
-import org.apache.shardingsphere.sharding.constant.ShardingOrder;
-import org.apache.shardingsphere.sharding.rule.ShardingRule;
-
-import javax.sql.DataSource;
-import java.util.LinkedHashMap;
-import java.util.Map;
-import java.util.Map.Entry;
-
-/**
- * Schema meta data decorator for sharding.
- */
-public final class ShardingSchemaMetaDataDecorator implements RuleBasedSchemaMetaDataDecorator<ShardingRule> {
-
- @Override
- public Map<String, SchemaMetaData> decorate(final Map<String, SchemaMetaData> schemaMetaDataMap, final ShardingRule rule, final GenericSchemaBuilderMaterial material) {
- Map<String, SchemaMetaData> result = new LinkedHashMap<>(schemaMetaDataMap.size(), 1);
- for (Entry<String, SchemaMetaData> entry : schemaMetaDataMap.entrySet()) {
- DatabaseType databaseType = material.getStorageTypes().get(entry.getKey());
- DataSource dataSource = material.getDataSourceMap().get(entry.getKey());
- result.put(entry.getKey(), new SchemaMetaDataReviseEngine<>(rule, material.getProps(), databaseType, dataSource).revise(entry.getValue()));
- }
- return result;
- }
-
- @Override
- public int getOrder() {
- return ShardingOrder.ORDER;
- }
-
- @Override
- public Class<ShardingRule> getTypeClass() {
- return ShardingRule.class;
- }
-}
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 662b490b8f5..60e3791cdf1 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
@@ -20,6 +20,7 @@ package org.apache.shardingsphere.sharding.metadata.reviser;
import org.apache.shardingsphere.infra.config.props.ConfigurationProperties;
import org.apache.shardingsphere.infra.metadata.database.schema.decorator.reviser.schema.SchemaTableAggregationReviser;
import org.apache.shardingsphere.infra.metadata.database.schema.decorator.spi.MetaDataReviseEntry;
+import org.apache.shardingsphere.sharding.constant.ShardingOrder;
import org.apache.shardingsphere.sharding.rule.ShardingRule;
import java.util.Optional;
@@ -55,7 +56,12 @@ public final class ShardingMetaDataReviseEntry implements MetaDataReviseEntry<Sh
}
@Override
- public String getType() {
- return ShardingRule.class.getSimpleName();
+ public int getOrder() {
+ return ShardingOrder.ORDER;
+ }
+
+ @Override
+ public Class<ShardingRule> getTypeClass() {
+ return ShardingRule.class;
}
}
diff --git a/features/sharding/core/src/main/resources/META-INF/services/org.apache.shardingsphere.infra.metadata.database.schema.decorator.spi.RuleBasedSchemaMetaDataDecorator b/features/sharding/core/src/main/resources/META-INF/services/org.apache.shardingsphere.infra.metadata.database.schema.decorator.spi.RuleBasedSchemaMetaDataDecorator
deleted file mode 100644
index 0f004107c12..00000000000
--- a/features/sharding/core/src/main/resources/META-INF/services/org.apache.shardingsphere.infra.metadata.database.schema.decorator.spi.RuleBasedSchemaMetaDataDecorator
+++ /dev/null
@@ -1,18 +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.
-#
-
-org.apache.shardingsphere.sharding.metadata.ShardingSchemaMetaDataDecorator
diff --git a/features/sharding/core/src/test/java/org/apache/shardingsphere/sharding/metadata/ShardingSchemaMetaDataDecoratorTest.java b/features/sharding/core/src/test/java/org/apache/shardingsphere/sharding/metadata/ShardingMetaDataReviseEngineTest.java
similarity index 53%
rename from features/sharding/core/src/test/java/org/apache/shardingsphere/sharding/metadata/ShardingSchemaMetaDataDecoratorTest.java
rename to features/sharding/core/src/test/java/org/apache/shardingsphere/sharding/metadata/ShardingMetaDataReviseEngineTest.java
index eece8b93d56..3c126a422d3 100644
--- a/features/sharding/core/src/test/java/org/apache/shardingsphere/sharding/metadata/ShardingSchemaMetaDataDecoratorTest.java
+++ b/features/sharding/core/src/test/java/org/apache/shardingsphere/sharding/metadata/ShardingMetaDataReviseEngineTest.java
@@ -17,14 +17,11 @@
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.decorator.spi.RuleBasedSchemaMetaDataDecorator;
+import org.apache.shardingsphere.infra.metadata.database.schema.decorator.reviser.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.rule.ShardingSphereRule;
-import org.apache.shardingsphere.infra.util.spi.type.ordered.OrderedSPILoader;
import org.apache.shardingsphere.sharding.rule.ShardingRule;
import org.junit.Test;
@@ -33,38 +30,32 @@ import java.util.Arrays;
import java.util.Collection;
import java.util.Collections;
import java.util.Iterator;
-import java.util.LinkedList;
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;
-public final class ShardingSchemaMetaDataDecoratorTest {
-
- private static final String TABLE_NAME = "t_order";
+public final class ShardingMetaDataReviseEngineTest {
@Test
- public void assertDecorateWithKeyGenerateStrategy() {
- ShardingRule shardingRule = mock(ShardingRule.class);
- when(shardingRule.findLogicTableByActualTable(TABLE_NAME)).thenReturn(Optional.of(TABLE_NAME));
- Collection<ShardingSphereRule> rules = Collections.singletonList(shardingRule);
- ShardingSchemaMetaDataDecorator builder = (ShardingSchemaMetaDataDecorator) OrderedSPILoader.getServices(RuleBasedSchemaMetaDataDecorator.class, rules).get(shardingRule);
- Collection<TableMetaData> tableMetaDataList = new LinkedList<>();
- tableMetaDataList.add(createTableMetaData());
- GenericSchemaBuilderMaterial material = mock(GenericSchemaBuilderMaterial.class);
- when(material.getProps()).thenReturn(new ConfigurationProperties(new Properties()));
- Map<String, SchemaMetaData> actual = builder.decorate(Collections.singletonMap("sharding_db",
- new SchemaMetaData("sharding_db", tableMetaDataList)), shardingRule, material);
- Collection<ColumnMetaData> columns = actual.get("sharding_db").getTables().iterator().next().getColumns();
- Iterator<ColumnMetaData> iterator = columns.iterator();
- assertTrue(iterator.next().isGenerated());
- assertFalse(iterator.next().isGenerated());
- assertFalse(iterator.next().isGenerated());
- assertFalse(iterator.next().isGenerated());
+ public void assertReviseWithKeyGenerateStrategy() {
+ 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));
+ Iterator<ColumnMetaData> columns = actual.get("sharding_db").getTables().iterator().next().getColumns().iterator();
+ assertTrue(columns.next().isGenerated());
+ assertFalse(columns.next().isGenerated());
+ assertFalse(columns.next().isGenerated());
+ assertFalse(columns.next().isGenerated());
+ }
+
+ private ShardingRule mockShardingRule() {
+ ShardingRule result = mock(ShardingRule.class);
+ when(result.findLogicTableByActualTable("t_order")).thenReturn(Optional.of("t_order"));
+ return result;
}
private TableMetaData createTableMetaData() {
@@ -72,6 +63,6 @@ public final class ShardingSchemaMetaDataDecoratorTest {
new ColumnMetaData("pwd_cipher", Types.VARCHAR, false, false, true, true, false),
new ColumnMetaData("pwd_plain", Types.VARCHAR, false, false, true, true, false),
new ColumnMetaData("product_id", Types.INTEGER, false, false, true, true, false));
- return new TableMetaData(TABLE_NAME, columns, Collections.emptyList(), Collections.emptyList());
+ return new TableMetaData("t_order", columns, Collections.emptyList(), Collections.emptyList());
}
}
diff --git a/infra/common/src/main/java/org/apache/shardingsphere/infra/metadata/database/schema/builder/GenericSchemaBuilder.java b/infra/common/src/main/java/org/apache/shardingsphere/infra/metadata/database/schema/builder/GenericSchemaBuilder.java
index fc6284b261c..974a03d37fa 100644
--- a/infra/common/src/main/java/org/apache/shardingsphere/infra/metadata/database/schema/builder/GenericSchemaBuilder.java
+++ b/infra/common/src/main/java/org/apache/shardingsphere/infra/metadata/database/schema/builder/GenericSchemaBuilder.java
@@ -25,7 +25,7 @@ import org.apache.shardingsphere.infra.metadata.database.schema.decorator.model.
import org.apache.shardingsphere.infra.metadata.database.schema.decorator.model.ShardingSphereIndex;
import org.apache.shardingsphere.infra.metadata.database.schema.decorator.model.ShardingSphereSchema;
import org.apache.shardingsphere.infra.metadata.database.schema.decorator.model.ShardingSphereTable;
-import org.apache.shardingsphere.infra.metadata.database.schema.decorator.spi.RuleBasedSchemaMetaDataDecorator;
+import org.apache.shardingsphere.infra.metadata.database.schema.decorator.reviser.MetaDataReviseEngine;
import org.apache.shardingsphere.infra.metadata.database.schema.loader.metadata.SchemaMetaDataLoaderEngine;
import org.apache.shardingsphere.infra.metadata.database.schema.loader.metadata.SchemaMetaDataLoaderMaterial;
import org.apache.shardingsphere.infra.metadata.database.schema.loader.model.ColumnMetaData;
@@ -36,7 +36,6 @@ import org.apache.shardingsphere.infra.metadata.database.schema.loader.model.Tab
import org.apache.shardingsphere.infra.metadata.database.schema.util.SchemaMetaDataUtil;
import org.apache.shardingsphere.infra.rule.ShardingSphereRule;
import org.apache.shardingsphere.infra.rule.identifier.type.TableContainedRule;
-import org.apache.shardingsphere.infra.util.spi.type.ordered.OrderedSPILoader;
import java.sql.SQLException;
import java.util.Collection;
@@ -78,7 +77,7 @@ public final class GenericSchemaBuilder {
if (!isProtocolTypeSameWithStorageType(material)) {
result = translate(result, material);
}
- return decorate(result, material);
+ return revise(result, material);
}
private static boolean isProtocolTypeSameWithStorageType(final GenericSchemaBuilderMaterial material) {
@@ -115,15 +114,9 @@ public final class GenericSchemaBuilder {
return result;
}
- @SuppressWarnings({"unchecked", "rawtypes"})
- private static Map<String, ShardingSphereSchema> decorate(final Map<String, SchemaMetaData> schemaMetaDataMap, final GenericSchemaBuilderMaterial material) {
+ private static Map<String, ShardingSphereSchema> revise(final Map<String, SchemaMetaData> schemaMetaDataMap, final GenericSchemaBuilderMaterial material) {
Map<String, SchemaMetaData> result = new LinkedHashMap<>(schemaMetaDataMap);
- for (Entry<ShardingSphereRule, RuleBasedSchemaMetaDataDecorator> entry : OrderedSPILoader.getServices(RuleBasedSchemaMetaDataDecorator.class, material.getRules()).entrySet()) {
- if (!(entry.getKey() instanceof TableContainedRule)) {
- continue;
- }
- result.putAll(entry.getValue().decorate(result, (TableContainedRule) entry.getKey(), material));
- }
+ result.putAll(new MetaDataReviseEngine(material.getRules().stream().filter(each -> each instanceof TableContainedRule).collect(Collectors.toList())).revise(result, material));
return convertToSchemaMap(result, material);
}
diff --git a/kernel/single/core/src/main/java/org/apache/shardingsphere/single/metadata/SingleSchemaMetaDataDecorator.java b/infra/common/src/main/java/org/apache/shardingsphere/infra/metadata/database/schema/decorator/reviser/MetaDataReviseEngine.java
similarity index 66%
rename from kernel/single/core/src/main/java/org/apache/shardingsphere/single/metadata/SingleSchemaMetaDataDecorator.java
rename to infra/common/src/main/java/org/apache/shardingsphere/infra/metadata/database/schema/decorator/reviser/MetaDataReviseEngine.java
index ec656ca065b..c9696d1497c 100644
--- a/kernel/single/core/src/main/java/org/apache/shardingsphere/single/metadata/SingleSchemaMetaDataDecorator.java
+++ b/infra/common/src/main/java/org/apache/shardingsphere/infra/metadata/database/schema/decorator/reviser/MetaDataReviseEngine.java
@@ -15,44 +15,43 @@
* limitations under the License.
*/
-package org.apache.shardingsphere.single.metadata;
+package org.apache.shardingsphere.infra.metadata.database.schema.decorator.reviser;
+import lombok.RequiredArgsConstructor;
import org.apache.shardingsphere.infra.database.type.DatabaseType;
import org.apache.shardingsphere.infra.metadata.database.schema.builder.GenericSchemaBuilderMaterial;
import org.apache.shardingsphere.infra.metadata.database.schema.decorator.reviser.schema.SchemaMetaDataReviseEngine;
-import org.apache.shardingsphere.infra.metadata.database.schema.decorator.spi.RuleBasedSchemaMetaDataDecorator;
import org.apache.shardingsphere.infra.metadata.database.schema.loader.model.SchemaMetaData;
-import org.apache.shardingsphere.single.constant.SingleOrder;
-import org.apache.shardingsphere.single.rule.SingleRule;
+import org.apache.shardingsphere.infra.rule.ShardingSphereRule;
import javax.sql.DataSource;
+import java.util.Collection;
import java.util.LinkedHashMap;
import java.util.Map;
import java.util.Map.Entry;
/**
- * Schema meta data decorator for single.
+ * Meta data revise engine.
*/
-public final class SingleSchemaMetaDataDecorator implements RuleBasedSchemaMetaDataDecorator<SingleRule> {
+@RequiredArgsConstructor
+public final class MetaDataReviseEngine {
- @Override
- public Map<String, SchemaMetaData> decorate(final Map<String, SchemaMetaData> schemaMetaDataMap, final SingleRule rule, final GenericSchemaBuilderMaterial material) {
+ private final Collection<ShardingSphereRule> rules;
+
+ /**
+ * Revise meta data.
+ *
+ * @param schemaMetaDataMap schema meta data map
+ * @param material generic schema builder material
+ * @return revised meta data
+ */
+ public Map<String, SchemaMetaData> revise(final Map<String, SchemaMetaData> schemaMetaDataMap, final GenericSchemaBuilderMaterial material) {
Map<String, SchemaMetaData> result = new LinkedHashMap<>(schemaMetaDataMap.size(), 1);
for (Entry<String, SchemaMetaData> entry : schemaMetaDataMap.entrySet()) {
DatabaseType databaseType = material.getStorageTypes().get(entry.getKey());
DataSource dataSource = material.getDataSourceMap().get(entry.getKey());
- result.put(entry.getKey(), new SchemaMetaDataReviseEngine<>(rule, material.getProps(), databaseType, dataSource).revise(entry.getValue()));
+ result.put(entry.getKey(), new SchemaMetaDataReviseEngine(rules, material.getProps(), databaseType, dataSource).revise(entry.getValue()));
}
return result;
}
-
- @Override
- public int getOrder() {
- return SingleOrder.ORDER;
- }
-
- @Override
- public Class<SingleRule> getTypeClass() {
- return SingleRule.class;
- }
}
diff --git a/infra/common/src/main/java/org/apache/shardingsphere/infra/metadata/database/schema/decorator/reviser/schema/SchemaMetaDataReviseEngine.java b/infra/common/src/main/java/org/apache/shardingsphere/infra/metadata/database/schema/decorator/reviser/schema/SchemaMetaDataReviseEngine.java
index 4b855f27cbb..afc49857da0 100644
--- a/infra/common/src/main/java/org/apache/shardingsphere/infra/metadata/database/schema/decorator/reviser/schema/SchemaMetaDataReviseEngine.java
+++ b/infra/common/src/main/java/org/apache/shardingsphere/infra/metadata/database/schema/decorator/reviser/schema/SchemaMetaDataReviseEngine.java
@@ -25,21 +25,21 @@ import org.apache.shardingsphere.infra.metadata.database.schema.decorator.spi.Me
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.rule.ShardingSphereRule;
-import org.apache.shardingsphere.infra.util.spi.type.typed.TypedSPILoader;
+import org.apache.shardingsphere.infra.util.spi.type.ordered.OrderedSPILoader;
import javax.sql.DataSource;
+import java.util.Collection;
+import java.util.Map.Entry;
import java.util.Optional;
import java.util.stream.Collectors;
/**
* Schema meta data revise engine.
- *
- * @param <T> type of rule
*/
@RequiredArgsConstructor
-public final class SchemaMetaDataReviseEngine<T extends ShardingSphereRule> {
+public final class SchemaMetaDataReviseEngine {
- private final T rule;
+ private final Collection<ShardingSphereRule> rules;
private final ConfigurationProperties props;
@@ -49,20 +49,22 @@ public final class SchemaMetaDataReviseEngine<T extends ShardingSphereRule> {
/**
* Revise schema meta data.
- *
+ *
* @param originalMetaData original schema meta data
- * @return revised schema data
+ * @return revised schema meta data
*/
- @SuppressWarnings("unchecked")
+ @SuppressWarnings({"rawtypes", "unchecked"})
public SchemaMetaData revise(final SchemaMetaData originalMetaData) {
- @SuppressWarnings("rawtypes")
- Optional<MetaDataReviseEntry> reviseEntry = TypedSPILoader.findService(MetaDataReviseEntry.class, rule.getClass().getSimpleName());
- if (!reviseEntry.isPresent()) {
- return originalMetaData;
+ SchemaMetaData result = originalMetaData;
+ for (Entry<ShardingSphereRule, MetaDataReviseEntry> entry : OrderedSPILoader.getServices(MetaDataReviseEntry.class, rules).entrySet()) {
+ result = revise(result, entry.getKey(), entry.getValue());
}
- @SuppressWarnings("rawtypes")
- TableMetaDataReviseEngine<T> tableMetaDataReviseEngine = new TableMetaDataReviseEngine<>(rule, databaseType, dataSource, reviseEntry.get());
- Optional<? extends SchemaTableAggregationReviser<T>> aggregationReviser = reviseEntry.get().getSchemaTableAggregationReviser(rule, props);
+ return result;
+ }
+
+ 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);
if (!aggregationReviser.isPresent()) {
return new SchemaMetaData(originalMetaData.getName(), originalMetaData.getTables().stream().map(tableMetaDataReviseEngine::revise).collect(Collectors.toList()));
}
diff --git a/infra/common/src/main/java/org/apache/shardingsphere/infra/metadata/database/schema/decorator/spi/MetaDataReviseEntry.java b/infra/common/src/main/java/org/apache/shardingsphere/infra/metadata/database/schema/decorator/spi/MetaDataReviseEntry.java
index 338b76a1136..9a12364e38a 100644
--- a/infra/common/src/main/java/org/apache/shardingsphere/infra/metadata/database/schema/decorator/spi/MetaDataReviseEntry.java
+++ b/infra/common/src/main/java/org/apache/shardingsphere/infra/metadata/database/schema/decorator/spi/MetaDataReviseEntry.java
@@ -27,7 +27,8 @@ import org.apache.shardingsphere.infra.metadata.database.schema.decorator.revise
import org.apache.shardingsphere.infra.metadata.database.schema.decorator.reviser.schema.SchemaTableAggregationReviser;
import org.apache.shardingsphere.infra.metadata.database.schema.decorator.reviser.table.TableNameReviser;
import org.apache.shardingsphere.infra.rule.ShardingSphereRule;
-import org.apache.shardingsphere.infra.util.spi.type.typed.TypedSPI;
+import org.apache.shardingsphere.infra.util.spi.annotation.SingletonSPI;
+import org.apache.shardingsphere.infra.util.spi.type.ordered.OrderedSPI;
import java.util.Optional;
@@ -36,7 +37,8 @@ import java.util.Optional;
*
* @param <T> type of rule
*/
-public interface MetaDataReviseEntry<T extends ShardingSphereRule> extends TypedSPI {
+@SingletonSPI
+public interface MetaDataReviseEntry<T extends ShardingSphereRule> extends OrderedSPI<T> {
/**
* Get schema table aggregation reviser.
diff --git a/infra/common/src/main/java/org/apache/shardingsphere/infra/metadata/database/schema/decorator/spi/RuleBasedSchemaMetaDataDecorator.java b/infra/common/src/main/java/org/apache/shardingsphere/infra/metadata/database/schema/decorator/spi/RuleBasedSchemaMetaDataDecorator.java
deleted file mode 100644
index c09954b0982..00000000000
--- a/infra/common/src/main/java/org/apache/shardingsphere/infra/metadata/database/schema/decorator/spi/RuleBasedSchemaMetaDataDecorator.java
+++ /dev/null
@@ -1,45 +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.decorator.spi;
-
-import org.apache.shardingsphere.infra.metadata.database.schema.builder.GenericSchemaBuilderMaterial;
-import org.apache.shardingsphere.infra.metadata.database.schema.loader.model.SchemaMetaData;
-import org.apache.shardingsphere.infra.rule.identifier.type.TableContainedRule;
-import org.apache.shardingsphere.infra.util.spi.annotation.SingletonSPI;
-import org.apache.shardingsphere.infra.util.spi.type.ordered.OrderedSPI;
-
-import java.util.Map;
-
-/**
- * Rule based schema meta data decorator.
- *
- * @param <T> type of ShardingSphere rule
- */
-@SingletonSPI
-public interface RuleBasedSchemaMetaDataDecorator<T extends TableContainedRule> extends OrderedSPI<T> {
-
- /**
- * Decorate schema meta data.
- *
- * @param schemaMetaDataMap schema meta data map
- * @param rule ShardingSphere rule
- * @param material generic schema builder material
- * @return schema meta data map
- */
- Map<String, SchemaMetaData> decorate(Map<String, SchemaMetaData> schemaMetaDataMap, T rule, GenericSchemaBuilderMaterial material);
-}
diff --git a/kernel/single/core/src/main/java/org/apache/shardingsphere/single/metadata/reviser/SingleMetaDataReviseEntry.java b/kernel/single/core/src/main/java/org/apache/shardingsphere/single/metadata/reviser/SingleMetaDataReviseEntry.java
index 10e2b1b6291..a530e749f53 100644
--- a/kernel/single/core/src/main/java/org/apache/shardingsphere/single/metadata/reviser/SingleMetaDataReviseEntry.java
+++ b/kernel/single/core/src/main/java/org/apache/shardingsphere/single/metadata/reviser/SingleMetaDataReviseEntry.java
@@ -18,6 +18,7 @@
package org.apache.shardingsphere.single.metadata.reviser;
import org.apache.shardingsphere.infra.metadata.database.schema.decorator.spi.MetaDataReviseEntry;
+import org.apache.shardingsphere.single.constant.SingleOrder;
import org.apache.shardingsphere.single.rule.SingleRule;
import java.util.Optional;
@@ -38,7 +39,12 @@ public final class SingleMetaDataReviseEntry implements MetaDataReviseEntry<Sing
}
@Override
- public String getType() {
- return SingleRule.class.getSimpleName();
+ public int getOrder() {
+ return SingleOrder.ORDER;
+ }
+
+ @Override
+ public Class<SingleRule> getTypeClass() {
+ return SingleRule.class;
}
}
diff --git a/kernel/single/core/src/main/resources/META-INF/services/org.apache.shardingsphere.infra.metadata.database.schema.decorator.spi.RuleBasedSchemaMetaDataDecorator b/kernel/single/core/src/main/resources/META-INF/services/org.apache.shardingsphere.infra.metadata.database.schema.decorator.spi.RuleBasedSchemaMetaDataDecorator
deleted file mode 100644
index a3f0f576f90..00000000000
--- a/kernel/single/core/src/main/resources/META-INF/services/org.apache.shardingsphere.infra.metadata.database.schema.decorator.spi.RuleBasedSchemaMetaDataDecorator
+++ /dev/null
@@ -1,18 +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.
-#
-
-org.apache.shardingsphere.single.metadata.SingleSchemaMetaDataDecorator
diff --git a/kernel/single/core/src/test/java/org/apache/shardingsphere/single/metadata/SingleSchemaMetaDataDecoratorTest.java b/kernel/single/core/src/test/java/org/apache/shardingsphere/single/metadata/SingleMetaDataReviseEngineTest.java
similarity index 55%
rename from kernel/single/core/src/test/java/org/apache/shardingsphere/single/metadata/SingleSchemaMetaDataDecoratorTest.java
rename to kernel/single/core/src/test/java/org/apache/shardingsphere/single/metadata/SingleMetaDataReviseEngineTest.java
index 7064e862bee..9c86c0a9260 100644
--- a/kernel/single/core/src/test/java/org/apache/shardingsphere/single/metadata/SingleSchemaMetaDataDecoratorTest.java
+++ b/kernel/single/core/src/test/java/org/apache/shardingsphere/single/metadata/SingleMetaDataReviseEngineTest.java
@@ -18,13 +18,11 @@
package org.apache.shardingsphere.single.metadata;
import org.apache.shardingsphere.infra.metadata.database.schema.builder.GenericSchemaBuilderMaterial;
-import org.apache.shardingsphere.infra.metadata.database.schema.decorator.spi.RuleBasedSchemaMetaDataDecorator;
+import org.apache.shardingsphere.infra.metadata.database.schema.decorator.reviser.MetaDataReviseEngine;
import org.apache.shardingsphere.infra.metadata.database.schema.loader.model.ColumnMetaData;
import org.apache.shardingsphere.infra.metadata.database.schema.loader.model.IndexMetaData;
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.rule.ShardingSphereRule;
-import org.apache.shardingsphere.infra.util.spi.type.ordered.OrderedSPILoader;
import org.apache.shardingsphere.single.rule.SingleRule;
import org.junit.Test;
@@ -33,41 +31,36 @@ import java.util.Arrays;
import java.util.Collection;
import java.util.Collections;
import java.util.Iterator;
-import java.util.LinkedList;
import java.util.Map;
import static org.hamcrest.CoreMatchers.is;
import static org.hamcrest.MatcherAssert.assertThat;
import static org.mockito.Mockito.mock;
-public final class SingleSchemaMetaDataDecoratorTest {
+public final class SingleMetaDataReviseEngineTest {
private static final String TABLE_NAME = "t_single";
@Test
- public void assertDecorate() {
- SingleRule singleRule = mock(SingleRule.class);
- Collection<ShardingSphereRule> rules = Collections.singletonList(singleRule);
- SingleSchemaMetaDataDecorator builder = (SingleSchemaMetaDataDecorator) OrderedSPILoader.getServices(RuleBasedSchemaMetaDataDecorator.class, rules).get(singleRule);
- Map<String, SchemaMetaData> schemaMetaDataMap = mockSchemaMetaDataMap();
- TableMetaData tableMetaData = builder.decorate(schemaMetaDataMap, singleRule, mock(GenericSchemaBuilderMaterial.class)).get("sharding_db").getTables().iterator().next();
- Iterator<ColumnMetaData> columnsIterator = tableMetaData.getColumns().iterator();
- assertThat(columnsIterator.next(), is(new ColumnMetaData("id", Types.INTEGER, true, false, false, true, false)));
- assertThat(columnsIterator.next(), is(new ColumnMetaData("name", Types.VARCHAR, false, false, false, true, false)));
- assertThat(columnsIterator.next(), is(new ColumnMetaData("doc", Types.LONGVARCHAR, false, false, false, true, false)));
+ public void assertRevise() {
+ Map<String, SchemaMetaData> schemaMetaDataMap = Collections.singletonMap("sharding_db", new SchemaMetaData("sharding_db", Collections.singleton(createTableMetaData())));
+ TableMetaData tableMetaData = new MetaDataReviseEngine(Collections.singleton(mock(SingleRule.class))).revise(
+ schemaMetaDataMap, mock(GenericSchemaBuilderMaterial.class)).get("sharding_db").getTables().iterator().next();
+ Iterator<ColumnMetaData> columns = tableMetaData.getColumns().iterator();
+ assertThat(columns.next(), is(new ColumnMetaData("id", Types.INTEGER, true, false, false, true, false)));
+ assertThat(columns.next(), is(new ColumnMetaData("name", Types.VARCHAR, false, false, false, true, false)));
+ assertThat(columns.next(), is(new ColumnMetaData("doc", Types.LONGVARCHAR, false, false, false, true, false)));
assertThat(tableMetaData.getIndexes().size(), is(2));
- Iterator<IndexMetaData> indexesIterator = tableMetaData.getIndexes().iterator();
- assertThat(indexesIterator.next(), is(new IndexMetaData("id")));
- assertThat(indexesIterator.next(), is(new IndexMetaData("idx_name")));
+ Iterator<IndexMetaData> indexes = tableMetaData.getIndexes().iterator();
+ assertThat(indexes.next(), is(new IndexMetaData("id")));
+ assertThat(indexes.next(), is(new IndexMetaData("idx_name")));
}
- private Map<String, SchemaMetaData> mockSchemaMetaDataMap() {
+ private TableMetaData createTableMetaData() {
Collection<ColumnMetaData> columns = Arrays.asList(new ColumnMetaData("id", Types.INTEGER, true, false, false, true, false),
new ColumnMetaData("name", Types.VARCHAR, false, false, false, true, false),
new ColumnMetaData("doc", Types.LONGVARCHAR, false, false, false, true, false));
Collection<IndexMetaData> indexMetaDataList = Arrays.asList(new IndexMetaData("id_" + TABLE_NAME), new IndexMetaData("idx_name_" + TABLE_NAME));
- Collection<TableMetaData> tableMetaDataList = new LinkedList<>();
- tableMetaDataList.add(new TableMetaData(TABLE_NAME, columns, indexMetaDataList, Collections.emptyList()));
- return Collections.singletonMap("sharding_db", new SchemaMetaData("sharding_db", tableMetaDataList));
+ return new TableMetaData(TABLE_NAME, columns, indexMetaDataList, Collections.emptyList());
}
}