This is an automated email from the ASF dual-hosted git repository.
chengzhang 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 52f021aabdc Remove useless EqualsAndHashCode in ColumnMetaData,
ShardingSphereColumn and other objects (#34007)
52f021aabdc is described below
commit 52f021aabdcf607481825fced230f537d06bd1e2
Author: Zhengqiang Duan <[email protected]>
AuthorDate: Wed Dec 11 15:13:09 2024 +0800
Remove useless EqualsAndHashCode in ColumnMetaData, ShardingSphereColumn
and other objects (#34007)
* Remove useless EqualsAndHashCode in ColumnMetaData, ShardingSphereColumn
and other objects
* fix unit test
* fix unit test
* fix unit test
---
.../metadata/EncryptMetaDataReviseEngineTest.java | 15 +++++--
.../metadata/ShardingMetaDataReviseEngineTest.java | 15 +++++--
.../schema/builder/GenericSchemaBuilder.java | 44 ++-----------------
.../schema/model/ShardingSphereColumn.java | 2 -
.../schema/model/ShardingSphereConstraint.java | 3 --
.../database/schema/model/ShardingSphereIndex.java | 2 -
.../database/schema/model/ShardingSphereTable.java | 5 ++-
.../database/schema/model/ShardingSphereView.java | 2 -
.../schema/reviser/MetaDataReviseEngine.java | 43 ++++++++++++++++---
.../schema/reviser/column/ColumnReviseEngine.java | 4 +-
.../reviser/constraint/ConstraintReviseEngine.java | 5 +--
.../schema/reviser/index/IndexReviseEngine.java | 5 +--
.../schema/model/ShardingSphereTableTest.java | 11 -----
.../constraint/ConstraintReviseEngineTest.java | 10 ++++-
.../reviser/index/IndexReviseEngineTest.java | 13 +++++-
.../schema/SchemaMetaDataReviseEngineTest.java | 40 +++++++++++++++++-
.../core/metadata/data/model/ColumnMetaData.java | 2 -
.../metadata/data/model/ConstraintMetaData.java | 2 -
.../core/metadata/data/model/IndexMetaData.java | 2 -
.../core/metadata/data/model/SchemaMetaData.java | 2 -
.../core/metadata/data/model/TableMetaData.java | 2 -
.../metadata/data/loader/H2MetaDataLoaderTest.java | 23 ++++++++--
.../data/loader/MySQLMetaDataLoaderTest.java | 37 +++++++++++-----
.../data/loader/OpenGaussMetaDataLoaderTest.java | 23 ++++++++--
.../data/loader/OracleMetaDataLoaderTest.java | 49 +++++++++++++++-------
.../data/loader/PostgreSQLMetaDataLoaderTest.java | 30 +++++++++++--
.../data/loader/SQLServerMetaDataLoaderTest.java | 35 ++++++++++++----
.../metadata/SingleMetaDataReviseEngineTest.java | 45 +++++++++++++++-----
28 files changed, 318 insertions(+), 153 deletions(-)
diff --git
a/features/encrypt/core/src/test/java/org/apache/shardingsphere/encrypt/metadata/EncryptMetaDataReviseEngineTest.java
b/features/encrypt/core/src/test/java/org/apache/shardingsphere/encrypt/metadata/EncryptMetaDataReviseEngineTest.java
index 527a8a70995..ab13b21a876 100644
---
a/features/encrypt/core/src/test/java/org/apache/shardingsphere/encrypt/metadata/EncryptMetaDataReviseEngineTest.java
+++
b/features/encrypt/core/src/test/java/org/apache/shardingsphere/encrypt/metadata/EncryptMetaDataReviseEngineTest.java
@@ -23,6 +23,9 @@ import
org.apache.shardingsphere.infra.database.core.metadata.data.model.ColumnM
import
org.apache.shardingsphere.infra.database.core.metadata.data.model.SchemaMetaData;
import
org.apache.shardingsphere.infra.database.core.metadata.data.model.TableMetaData;
import
org.apache.shardingsphere.infra.metadata.database.schema.builder.GenericSchemaBuilderMaterial;
+import
org.apache.shardingsphere.infra.metadata.database.schema.model.ShardingSphereColumn;
+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.reviser.MetaDataReviseEngine;
import org.junit.jupiter.api.Test;
@@ -37,6 +40,7 @@ import java.util.Optional;
import static org.hamcrest.CoreMatchers.is;
import static org.hamcrest.MatcherAssert.assertThat;
+import static org.junit.jupiter.api.Assertions.assertTrue;
import static org.mockito.Mockito.RETURNS_DEEP_STUBS;
import static org.mockito.Mockito.mock;
import static org.mockito.Mockito.when;
@@ -46,10 +50,13 @@ class EncryptMetaDataReviseEngineTest {
@Test
void assertRevise() {
Map<String, SchemaMetaData> schemaMetaData =
Collections.singletonMap("foo_db", new SchemaMetaData("foo_db",
Collections.singleton(createTableMetaData())));
- TableMetaData actual = new MetaDataReviseEngine(
-
Collections.singleton(mockEncryptRule())).revise(schemaMetaData,
mock(GenericSchemaBuilderMaterial.class)).get("foo_db").getTables().iterator().next();
- assertThat(actual.getColumns().size(), is(2));
- List<ColumnMetaData> columns = new ArrayList<>(actual.getColumns());
+ Map<String, ShardingSphereSchema> actual = new
MetaDataReviseEngine(Collections.singleton(mockEncryptRule())).revise(schemaMetaData,
mock(GenericSchemaBuilderMaterial.class));
+ assertThat(actual.size(), is(1));
+ assertTrue(actual.containsKey("foo_db"));
+ assertThat(actual.get("foo_db").getAllTables().size(), is(1));
+ ShardingSphereTable table =
actual.get("foo_db").getAllTables().iterator().next();
+ assertThat(table.getAllColumns().size(), is(2));
+ List<ShardingSphereColumn> columns = new
ArrayList<>(table.getAllColumns());
assertThat(columns.get(0).getName(), is("id"));
assertThat(columns.get(1).getName(), is("pwd"));
}
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 ead7f28b81c..9adb5e57611 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
@@ -22,6 +22,9 @@ import
org.apache.shardingsphere.infra.database.core.metadata.data.model.ColumnM
import
org.apache.shardingsphere.infra.database.core.metadata.data.model.SchemaMetaData;
import
org.apache.shardingsphere.infra.database.core.metadata.data.model.TableMetaData;
import
org.apache.shardingsphere.infra.metadata.database.schema.builder.GenericSchemaBuilderMaterial;
+import
org.apache.shardingsphere.infra.metadata.database.schema.model.ShardingSphereColumn;
+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.reviser.MetaDataReviseEngine;
import org.apache.shardingsphere.infra.rule.attribute.RuleAttributes;
import
org.apache.shardingsphere.infra.rule.attribute.datanode.DataNodeRuleAttribute;
@@ -37,6 +40,8 @@ import java.util.Map;
import java.util.Optional;
import java.util.Properties;
+import static org.hamcrest.CoreMatchers.is;
+import static org.hamcrest.MatcherAssert.assertThat;
import static org.junit.jupiter.api.Assertions.assertFalse;
import static org.junit.jupiter.api.Assertions.assertTrue;
import static org.mockito.Mockito.mock;
@@ -48,9 +53,13 @@ class ShardingMetaDataReviseEngineTest {
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()))), material);
- Iterator<ColumnMetaData> columns =
actual.get("sharding_db").getTables().iterator().next().getColumns().iterator();
+ Map<String, ShardingSphereSchema> actual = new
MetaDataReviseEngine(Collections.singleton(mockShardingRule()))
+ .revise(Collections.singletonMap("sharding_db", new
SchemaMetaData("sharding_db", Collections.singleton(createTableMetaData()))),
material);
+ assertThat(actual.size(), is(1));
+ assertTrue(actual.containsKey("sharding_db"));
+ assertThat(actual.get("sharding_db").getAllTables().size(), is(1));
+ ShardingSphereTable table =
actual.get("sharding_db").getAllTables().iterator().next();
+ Iterator<ShardingSphereColumn> columns =
table.getAllColumns().iterator();
assertTrue(columns.next().isGenerated());
assertFalse(columns.next().isGenerated());
assertFalse(columns.next().isGenerated());
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 4d8fb929da5..603c1be4ed3 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
@@ -22,19 +22,12 @@ import lombok.NoArgsConstructor;
import org.apache.shardingsphere.infra.config.props.ConfigurationPropertyKey;
import
org.apache.shardingsphere.infra.database.core.metadata.data.loader.MetaDataLoader;
import
org.apache.shardingsphere.infra.database.core.metadata.data.loader.MetaDataLoaderMaterial;
-import
org.apache.shardingsphere.infra.database.core.metadata.data.model.ColumnMetaData;
-import
org.apache.shardingsphere.infra.database.core.metadata.data.model.ConstraintMetaData;
-import
org.apache.shardingsphere.infra.database.core.metadata.data.model.IndexMetaData;
import
org.apache.shardingsphere.infra.database.core.metadata.data.model.SchemaMetaData;
import
org.apache.shardingsphere.infra.database.core.metadata.data.model.TableMetaData;
import org.apache.shardingsphere.infra.database.core.type.DatabaseType;
import org.apache.shardingsphere.infra.database.core.type.DatabaseTypeRegistry;
import
org.apache.shardingsphere.infra.metadata.database.resource.unit.StorageUnit;
-import
org.apache.shardingsphere.infra.metadata.database.schema.model.ShardingSphereColumn;
-import
org.apache.shardingsphere.infra.metadata.database.schema.model.ShardingSphereConstraint;
-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.reviser.MetaDataReviseEngine;
import
org.apache.shardingsphere.infra.metadata.database.schema.util.SchemaMetaDataUtils;
import org.apache.shardingsphere.infra.rule.ShardingSphereRule;
@@ -47,9 +40,7 @@ import java.util.HashSet;
import java.util.LinkedHashMap;
import java.util.LinkedList;
import java.util.Map;
-import java.util.Map.Entry;
import java.util.Optional;
-import java.util.concurrent.ConcurrentHashMap;
import java.util.stream.Collectors;
/**
@@ -118,37 +109,8 @@ public final class GenericSchemaBuilder {
}
private static Map<String, ShardingSphereSchema> revise(final Map<String,
SchemaMetaData> schemaMetaDataMap, final GenericSchemaBuilderMaterial material)
{
- Map<String, SchemaMetaData> result = new
LinkedHashMap<>(schemaMetaDataMap);
- result.putAll(new MetaDataReviseEngine(material.getRules().stream()
- .filter(each ->
each.getAttributes().findAttribute(TableMapperRuleAttribute.class).isPresent()).collect(Collectors.toList())).revise(result,
material));
- return convertToSchemaMap(result, material);
- }
-
- private static Map<String, ShardingSphereSchema> convertToSchemaMap(final
Map<String, SchemaMetaData> schemaMetaDataMap, final
GenericSchemaBuilderMaterial material) {
- if (schemaMetaDataMap.isEmpty()) {
- return Collections.singletonMap(material.getDefaultSchemaName(),
new ShardingSphereSchema(material.getDefaultSchemaName()));
- }
- Map<String, ShardingSphereSchema> result = new
ConcurrentHashMap<>(schemaMetaDataMap.size(), 1F);
- for (Entry<String, SchemaMetaData> entry :
schemaMetaDataMap.entrySet()) {
- result.put(entry.getKey().toLowerCase(), new
ShardingSphereSchema(entry.getKey(),
convertToTables(entry.getValue().getTables()), new LinkedList<>()));
- }
- return result;
- }
-
- private static Collection<ShardingSphereTable> convertToTables(final
Collection<TableMetaData> tableMetaDataList) {
- return tableMetaDataList.stream().map(each -> new ShardingSphereTable(
- each.getName(), convertToColumns(each.getColumns()),
convertToIndexes(each.getIndexes()),
convertToConstraints(each.getConstraints()),
each.getType())).collect(Collectors.toList());
- }
-
- private static Collection<ShardingSphereColumn> convertToColumns(final
Collection<ColumnMetaData> columnMetaDataList) {
- return
columnMetaDataList.stream().map(ShardingSphereColumn::new).collect(Collectors.toList());
- }
-
- private static Collection<ShardingSphereIndex> convertToIndexes(final
Collection<IndexMetaData> indexMetaDataList) {
- return
indexMetaDataList.stream().map(ShardingSphereIndex::new).collect(Collectors.toList());
- }
-
- private static Collection<ShardingSphereConstraint>
convertToConstraints(final Collection<ConstraintMetaData>
constraintMetaDataList) {
- return
constraintMetaDataList.stream().map(ShardingSphereConstraint::new).collect(Collectors.toList());
+ Collection<ShardingSphereRule> rules = material.getRules().stream()
+ .filter(each ->
each.getAttributes().findAttribute(TableMapperRuleAttribute.class).isPresent()).collect(Collectors.toList());
+ return new MetaDataReviseEngine(rules).revise(schemaMetaDataMap,
material);
}
}
diff --git
a/infra/common/src/main/java/org/apache/shardingsphere/infra/metadata/database/schema/model/ShardingSphereColumn.java
b/infra/common/src/main/java/org/apache/shardingsphere/infra/metadata/database/schema/model/ShardingSphereColumn.java
index 35c69931b77..d34c39a8716 100644
---
a/infra/common/src/main/java/org/apache/shardingsphere/infra/metadata/database/schema/model/ShardingSphereColumn.java
+++
b/infra/common/src/main/java/org/apache/shardingsphere/infra/metadata/database/schema/model/ShardingSphereColumn.java
@@ -17,7 +17,6 @@
package org.apache.shardingsphere.infra.metadata.database.schema.model;
-import lombok.EqualsAndHashCode;
import lombok.Getter;
import lombok.RequiredArgsConstructor;
import lombok.ToString;
@@ -28,7 +27,6 @@ import
org.apache.shardingsphere.infra.database.core.metadata.data.model.ColumnM
*/
@RequiredArgsConstructor
@Getter
-@EqualsAndHashCode
@ToString
public final class ShardingSphereColumn {
diff --git
a/infra/common/src/main/java/org/apache/shardingsphere/infra/metadata/database/schema/model/ShardingSphereConstraint.java
b/infra/common/src/main/java/org/apache/shardingsphere/infra/metadata/database/schema/model/ShardingSphereConstraint.java
index 914a6621b85..2edc4ea45d9 100644
---
a/infra/common/src/main/java/org/apache/shardingsphere/infra/metadata/database/schema/model/ShardingSphereConstraint.java
+++
b/infra/common/src/main/java/org/apache/shardingsphere/infra/metadata/database/schema/model/ShardingSphereConstraint.java
@@ -17,7 +17,6 @@
package org.apache.shardingsphere.infra.metadata.database.schema.model;
-import lombok.EqualsAndHashCode;
import lombok.Getter;
import lombok.RequiredArgsConstructor;
import lombok.ToString;
@@ -28,7 +27,6 @@ import
org.apache.shardingsphere.infra.database.core.metadata.data.model.Constra
*/
@RequiredArgsConstructor
@Getter
-@EqualsAndHashCode
@ToString
public final class ShardingSphereConstraint {
@@ -39,6 +37,5 @@ public final class ShardingSphereConstraint {
public ShardingSphereConstraint(final ConstraintMetaData
constraintMetaData) {
name = constraintMetaData.getName();
referencedTableName = constraintMetaData.getReferencedTableName();
-
}
}
diff --git
a/infra/common/src/main/java/org/apache/shardingsphere/infra/metadata/database/schema/model/ShardingSphereIndex.java
b/infra/common/src/main/java/org/apache/shardingsphere/infra/metadata/database/schema/model/ShardingSphereIndex.java
index 9ab59867ad4..8835a151093 100644
---
a/infra/common/src/main/java/org/apache/shardingsphere/infra/metadata/database/schema/model/ShardingSphereIndex.java
+++
b/infra/common/src/main/java/org/apache/shardingsphere/infra/metadata/database/schema/model/ShardingSphereIndex.java
@@ -17,7 +17,6 @@
package org.apache.shardingsphere.infra.metadata.database.schema.model;
-import lombok.EqualsAndHashCode;
import lombok.Getter;
import lombok.RequiredArgsConstructor;
import lombok.ToString;
@@ -30,7 +29,6 @@ import java.util.Collection;
*/
@RequiredArgsConstructor
@Getter
-@EqualsAndHashCode
@ToString
public final class ShardingSphereIndex {
diff --git
a/infra/common/src/main/java/org/apache/shardingsphere/infra/metadata/database/schema/model/ShardingSphereTable.java
b/infra/common/src/main/java/org/apache/shardingsphere/infra/metadata/database/schema/model/ShardingSphereTable.java
index 25ec5d33a0a..ac4c9ee3702 100644
---
a/infra/common/src/main/java/org/apache/shardingsphere/infra/metadata/database/schema/model/ShardingSphereTable.java
+++
b/infra/common/src/main/java/org/apache/shardingsphere/infra/metadata/database/schema/model/ShardingSphereTable.java
@@ -19,7 +19,6 @@ package
org.apache.shardingsphere.infra.metadata.database.schema.model;
import com.cedarsoftware.util.CaseInsensitiveMap;
import lombok.AccessLevel;
-import lombok.EqualsAndHashCode;
import lombok.Getter;
import lombok.ToString;
import
org.apache.shardingsphere.infra.database.core.metadata.database.enums.TableType;
@@ -38,7 +37,6 @@ import java.util.stream.Collectors;
* ShardingSphere table.
*/
@Getter
-@EqualsAndHashCode
@ToString
public final class ShardingSphereTable {
@@ -82,6 +80,9 @@ public final class ShardingSphereTable {
int index = 0;
for (ShardingSphereColumn each : columns) {
ShardingSphereIdentifier columnName = new
ShardingSphereIdentifier(each.getName());
+ if (result.containsKey(columnName)) {
+ continue;
+ }
result.put(columnName, each);
columnNames.add(columnName);
if (each.isPrimaryKey()) {
diff --git
a/infra/common/src/main/java/org/apache/shardingsphere/infra/metadata/database/schema/model/ShardingSphereView.java
b/infra/common/src/main/java/org/apache/shardingsphere/infra/metadata/database/schema/model/ShardingSphereView.java
index e03d1a3918d..f90c97fb103 100644
---
a/infra/common/src/main/java/org/apache/shardingsphere/infra/metadata/database/schema/model/ShardingSphereView.java
+++
b/infra/common/src/main/java/org/apache/shardingsphere/infra/metadata/database/schema/model/ShardingSphereView.java
@@ -17,7 +17,6 @@
package org.apache.shardingsphere.infra.metadata.database.schema.model;
-import lombok.EqualsAndHashCode;
import lombok.Getter;
import lombok.RequiredArgsConstructor;
import lombok.ToString;
@@ -27,7 +26,6 @@ import lombok.ToString;
*/
@RequiredArgsConstructor
@Getter
-@EqualsAndHashCode
@ToString
public final class ShardingSphereView {
diff --git
a/infra/common/src/main/java/org/apache/shardingsphere/infra/metadata/database/schema/reviser/MetaDataReviseEngine.java
b/infra/common/src/main/java/org/apache/shardingsphere/infra/metadata/database/schema/reviser/MetaDataReviseEngine.java
index 798922e32b8..5b6e72cba6d 100644
---
a/infra/common/src/main/java/org/apache/shardingsphere/infra/metadata/database/schema/reviser/MetaDataReviseEngine.java
+++
b/infra/common/src/main/java/org/apache/shardingsphere/infra/metadata/database/schema/reviser/MetaDataReviseEngine.java
@@ -18,15 +18,27 @@
package org.apache.shardingsphere.infra.metadata.database.schema.reviser;
import lombok.RequiredArgsConstructor;
+import
org.apache.shardingsphere.infra.database.core.metadata.data.model.ColumnMetaData;
+import
org.apache.shardingsphere.infra.database.core.metadata.data.model.ConstraintMetaData;
+import
org.apache.shardingsphere.infra.database.core.metadata.data.model.IndexMetaData;
import
org.apache.shardingsphere.infra.database.core.metadata.data.model.SchemaMetaData;
+import
org.apache.shardingsphere.infra.database.core.metadata.data.model.TableMetaData;
import
org.apache.shardingsphere.infra.metadata.database.schema.builder.GenericSchemaBuilderMaterial;
+import
org.apache.shardingsphere.infra.metadata.database.schema.model.ShardingSphereColumn;
+import
org.apache.shardingsphere.infra.metadata.database.schema.model.ShardingSphereConstraint;
+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.reviser.schema.SchemaMetaDataReviseEngine;
import org.apache.shardingsphere.infra.rule.ShardingSphereRule;
import java.util.Collection;
-import java.util.LinkedHashMap;
+import java.util.Collections;
+import java.util.HashMap;
+import java.util.LinkedList;
import java.util.Map;
import java.util.Map.Entry;
+import java.util.stream.Collectors;
/**
* Meta data revise engine.
@@ -41,13 +53,34 @@ public final class MetaDataReviseEngine {
*
* @param schemaMetaDataMap schema meta data map
* @param material generic schema builder material
- * @return revised meta data
+ * @return ShardingSphere schema map
*/
- public Map<String, SchemaMetaData> revise(final Map<String,
SchemaMetaData> schemaMetaDataMap, final GenericSchemaBuilderMaterial material)
{
- Map<String, SchemaMetaData> result = new
LinkedHashMap<>(schemaMetaDataMap.size(), 1F);
+ public Map<String, ShardingSphereSchema> revise(final Map<String,
SchemaMetaData> schemaMetaDataMap, final GenericSchemaBuilderMaterial material)
{
+ if (schemaMetaDataMap.isEmpty()) {
+ return Collections.singletonMap(material.getDefaultSchemaName(),
new ShardingSphereSchema(material.getDefaultSchemaName()));
+ }
+ Map<String, ShardingSphereSchema> result = new
HashMap<>(schemaMetaDataMap.size(), 1F);
for (Entry<String, SchemaMetaData> entry :
schemaMetaDataMap.entrySet()) {
- result.put(entry.getKey(), new SchemaMetaDataReviseEngine(rules,
material.getProps()).revise(entry.getValue()));
+ SchemaMetaData schemaMetaData = new
SchemaMetaDataReviseEngine(rules, material.getProps()).revise(entry.getValue());
+ result.put(entry.getKey(), new
ShardingSphereSchema(entry.getKey(),
convertToTables(schemaMetaData.getTables()), new LinkedList<>()));
}
return result;
}
+
+ private Collection<ShardingSphereTable> convertToTables(final
Collection<TableMetaData> tableMetaDataList) {
+ return tableMetaDataList.stream().map(each -> new ShardingSphereTable(
+ each.getName(), convertToColumns(each.getColumns()),
convertToIndexes(each.getIndexes()),
convertToConstraints(each.getConstraints()),
each.getType())).collect(Collectors.toList());
+ }
+
+ private Collection<ShardingSphereColumn> convertToColumns(final
Collection<ColumnMetaData> columnMetaDataList) {
+ return
columnMetaDataList.stream().map(ShardingSphereColumn::new).collect(Collectors.toList());
+ }
+
+ private Collection<ShardingSphereIndex> convertToIndexes(final
Collection<IndexMetaData> indexMetaDataList) {
+ return
indexMetaDataList.stream().map(ShardingSphereIndex::new).collect(Collectors.toList());
+ }
+
+ private Collection<ShardingSphereConstraint> convertToConstraints(final
Collection<ConstraintMetaData> constraintMetaDataList) {
+ return
constraintMetaDataList.stream().map(ShardingSphereConstraint::new).collect(Collectors.toList());
+ }
}
diff --git
a/infra/common/src/main/java/org/apache/shardingsphere/infra/metadata/database/schema/reviser/column/ColumnReviseEngine.java
b/infra/common/src/main/java/org/apache/shardingsphere/infra/metadata/database/schema/reviser/column/ColumnReviseEngine.java
index dc744ef076b..0ea76a8e714 100644
---
a/infra/common/src/main/java/org/apache/shardingsphere/infra/metadata/database/schema/reviser/column/ColumnReviseEngine.java
+++
b/infra/common/src/main/java/org/apache/shardingsphere/infra/metadata/database/schema/reviser/column/ColumnReviseEngine.java
@@ -23,7 +23,7 @@ import
org.apache.shardingsphere.infra.metadata.database.schema.reviser.MetaData
import org.apache.shardingsphere.infra.rule.ShardingSphereRule;
import java.util.Collection;
-import java.util.LinkedHashSet;
+import java.util.LinkedList;
import java.util.Optional;
/**
@@ -49,7 +49,7 @@ public final class ColumnReviseEngine<T extends
ShardingSphereRule> {
Optional<? extends ColumnExistedReviser> existedReviser =
reviseEntry.getColumnExistedReviser(rule, tableName);
Optional<? extends ColumnNameReviser> nameReviser =
reviseEntry.getColumnNameReviser(rule, tableName);
Optional<? extends ColumnGeneratedReviser> generatedReviser =
reviseEntry.getColumnGeneratedReviser(rule, tableName);
- Collection<ColumnMetaData> result = new LinkedHashSet<>();
+ Collection<ColumnMetaData> result = new LinkedList<>();
for (ColumnMetaData each : originalMetaDataList) {
if (existedReviser.isPresent() &&
!existedReviser.get().isExisted(each.getName())) {
continue;
diff --git
a/infra/common/src/main/java/org/apache/shardingsphere/infra/metadata/database/schema/reviser/constraint/ConstraintReviseEngine.java
b/infra/common/src/main/java/org/apache/shardingsphere/infra/metadata/database/schema/reviser/constraint/ConstraintReviseEngine.java
index e6a79060c18..20c4187b3a9 100644
---
a/infra/common/src/main/java/org/apache/shardingsphere/infra/metadata/database/schema/reviser/constraint/ConstraintReviseEngine.java
+++
b/infra/common/src/main/java/org/apache/shardingsphere/infra/metadata/database/schema/reviser/constraint/ConstraintReviseEngine.java
@@ -18,12 +18,11 @@
package
org.apache.shardingsphere.infra.metadata.database.schema.reviser.constraint;
import lombok.RequiredArgsConstructor;
-import
org.apache.shardingsphere.infra.metadata.database.schema.reviser.MetaDataReviseEntry;
import
org.apache.shardingsphere.infra.database.core.metadata.data.model.ConstraintMetaData;
+import
org.apache.shardingsphere.infra.metadata.database.schema.reviser.MetaDataReviseEntry;
import org.apache.shardingsphere.infra.rule.ShardingSphereRule;
import java.util.Collection;
-import java.util.LinkedHashSet;
import java.util.Optional;
import java.util.stream.Collectors;
@@ -50,7 +49,7 @@ public final class ConstraintReviseEngine<T extends
ShardingSphereRule> {
Optional<? extends ConstraintReviser<T>> reviser =
reviseEntry.getConstraintReviser(rule, tableName);
return reviser.isPresent()
? originalMetaDataList.stream()
- .map(each -> reviser.get().revise(tableName, each,
rule)).filter(Optional::isPresent).map(Optional::get).collect(Collectors.toCollection(LinkedHashSet::new))
+ .map(each -> reviser.get().revise(tableName, each,
rule)).filter(Optional::isPresent).map(Optional::get).collect(Collectors.toList())
: originalMetaDataList;
}
}
diff --git
a/infra/common/src/main/java/org/apache/shardingsphere/infra/metadata/database/schema/reviser/index/IndexReviseEngine.java
b/infra/common/src/main/java/org/apache/shardingsphere/infra/metadata/database/schema/reviser/index/IndexReviseEngine.java
index b260cad25c7..0e4ae1492ca 100644
---
a/infra/common/src/main/java/org/apache/shardingsphere/infra/metadata/database/schema/reviser/index/IndexReviseEngine.java
+++
b/infra/common/src/main/java/org/apache/shardingsphere/infra/metadata/database/schema/reviser/index/IndexReviseEngine.java
@@ -18,12 +18,11 @@
package org.apache.shardingsphere.infra.metadata.database.schema.reviser.index;
import lombok.RequiredArgsConstructor;
-import
org.apache.shardingsphere.infra.metadata.database.schema.reviser.MetaDataReviseEntry;
import
org.apache.shardingsphere.infra.database.core.metadata.data.model.IndexMetaData;
+import
org.apache.shardingsphere.infra.metadata.database.schema.reviser.MetaDataReviseEntry;
import org.apache.shardingsphere.infra.rule.ShardingSphereRule;
import java.util.Collection;
-import java.util.LinkedHashSet;
import java.util.Optional;
import java.util.stream.Collectors;
@@ -50,7 +49,7 @@ public final class IndexReviseEngine<T extends
ShardingSphereRule> {
Optional<? extends IndexReviser<T>> reviser =
reviseEntry.getIndexReviser(rule, tableName);
return reviser.isPresent()
? originalMetaDataList.stream()
- .map(each -> reviser.get().revise(tableName, each,
rule)).filter(Optional::isPresent).map(Optional::get).collect(Collectors.toCollection(LinkedHashSet::new))
+ .map(each -> reviser.get().revise(tableName, each,
rule)).filter(Optional::isPresent).map(Optional::get).collect(Collectors.toList())
: originalMetaDataList;
}
}
diff --git
a/infra/common/src/test/java/org/apache/shardingsphere/infra/metadata/database/schema/model/ShardingSphereTableTest.java
b/infra/common/src/test/java/org/apache/shardingsphere/infra/metadata/database/schema/model/ShardingSphereTableTest.java
index 3090050d707..cbc07095b33 100644
---
a/infra/common/src/test/java/org/apache/shardingsphere/infra/metadata/database/schema/model/ShardingSphereTableTest.java
+++
b/infra/common/src/test/java/org/apache/shardingsphere/infra/metadata/database/schema/model/ShardingSphereTableTest.java
@@ -132,15 +132,4 @@ class ShardingSphereTableTest {
assertThat(table.getAllConstraints(), hasItems(constraint));
assertThat(table.getAllConstraints().size(), is(1));
}
-
- @Test
- void assertEquals() {
- ShardingSphereTable table1 = new ShardingSphereTable("foo_tbl",
- Collections.singleton(new ShardingSphereColumn("foo_col",
Types.INTEGER, true, true, false, true, false, false)),
- Collections.singleton(new ShardingSphereIndex("foo_idx",
Collections.emptyList(), false)), Collections.emptyList());
- ShardingSphereTable table2 = new ShardingSphereTable("foo_tbl",
- Collections.singleton(new ShardingSphereColumn("foo_col",
Types.INTEGER, true, true, false, true, false, false)),
- Collections.singleton(new ShardingSphereIndex("foo_idx",
Collections.emptyList(), false)), Collections.emptyList());
- assertThat(table1, is(table2));
- }
}
diff --git
a/infra/common/src/test/java/org/apache/shardingsphere/infra/metadata/database/schema/reviser/constraint/ConstraintReviseEngineTest.java
b/infra/common/src/test/java/org/apache/shardingsphere/infra/metadata/database/schema/reviser/constraint/ConstraintReviseEngineTest.java
index c629d74fa57..b104dd93fc6 100644
---
a/infra/common/src/test/java/org/apache/shardingsphere/infra/metadata/database/schema/reviser/constraint/ConstraintReviseEngineTest.java
+++
b/infra/common/src/test/java/org/apache/shardingsphere/infra/metadata/database/schema/reviser/constraint/ConstraintReviseEngineTest.java
@@ -28,7 +28,6 @@ import org.mockito.junit.jupiter.MockitoExtension;
import java.util.Arrays;
import java.util.Collection;
-import java.util.Collections;
import java.util.Optional;
import static org.hamcrest.CoreMatchers.is;
@@ -68,6 +67,13 @@ class ConstraintReviseEngineTest {
ConstraintMetaData constraint3 = new ConstraintMetaData("constraint3",
tableName);
when(reviser.revise(tableName, constraint1,
mockRule)).thenReturn(Optional.of(constraint3));
when(reviser.revise(tableName, constraint2,
mockRule)).thenReturn(Optional.empty());
- assertThat(engine.revise(tableName, Arrays.asList(constraint1,
constraint2)), is(Collections.singleton(constraint3)));
+ Collection<ConstraintMetaData> actual = engine.revise(tableName,
Arrays.asList(constraint1, constraint2));
+ assertThat(actual.size(), is(1));
+ assertConstraintMetaData(actual.iterator().next(), constraint3);
+ }
+
+ private void assertConstraintMetaData(final ConstraintMetaData actual,
final ConstraintMetaData expected) {
+ assertThat(actual.getName(), is(expected.getName()));
+ assertThat(actual.getReferencedTableName(),
is(expected.getReferencedTableName()));
}
}
diff --git
a/infra/common/src/test/java/org/apache/shardingsphere/infra/metadata/database/schema/reviser/index/IndexReviseEngineTest.java
b/infra/common/src/test/java/org/apache/shardingsphere/infra/metadata/database/schema/reviser/index/IndexReviseEngineTest.java
index 6f06b802cbe..b90263b67f1 100644
---
a/infra/common/src/test/java/org/apache/shardingsphere/infra/metadata/database/schema/reviser/index/IndexReviseEngineTest.java
+++
b/infra/common/src/test/java/org/apache/shardingsphere/infra/metadata/database/schema/reviser/index/IndexReviseEngineTest.java
@@ -51,7 +51,8 @@ class IndexReviseEngineTest {
void assertReviseWithoutIndexReviser() {
when(metaDataReviseEntry.getIndexReviser(any(),
eq("foo_tbl"))).thenReturn(Optional.empty());
Collection<IndexMetaData> actual = indexReviseEngine.revise("foo_tbl",
Collections.singleton(new IndexMetaData("foo_idx")));
- assertThat(actual, is(Collections.singleton(new
IndexMetaData("foo_idx"))));
+ assertThat(actual.size(), is(1));
+ assertIndexMetaData(actual.iterator().next(), new
IndexMetaData("foo_idx"));
}
@Test
@@ -60,6 +61,14 @@ class IndexReviseEngineTest {
when(reviser.revise(eq("foo_tbl"), any(),
any())).thenReturn(Optional.of(new IndexMetaData("foo_idx")));
when(metaDataReviseEntry.getIndexReviser(any(),
eq("foo_tbl"))).thenReturn(Optional.of(reviser));
Collection<IndexMetaData> actual = indexReviseEngine.revise("foo_tbl",
Arrays.asList(new IndexMetaData("idx_0"), new IndexMetaData("idx_1")));
- assertThat(actual, is(Collections.singleton(new
IndexMetaData("foo_idx"))));
+ assertThat(actual.size(), is(2));
+ assertIndexMetaData(actual.iterator().next(), new
IndexMetaData("foo_idx"));
+ assertIndexMetaData(actual.iterator().next(), new
IndexMetaData("foo_idx"));
+ }
+
+ private void assertIndexMetaData(final IndexMetaData actual, final
IndexMetaData expected) {
+ assertThat(actual.getName(), is(expected.getName()));
+ assertThat(actual.getColumns(), is(expected.getColumns()));
+ assertThat(actual.isUnique(), is(expected.isUnique()));
}
}
diff --git
a/infra/common/src/test/java/org/apache/shardingsphere/infra/metadata/database/schema/reviser/schema/SchemaMetaDataReviseEngineTest.java
b/infra/common/src/test/java/org/apache/shardingsphere/infra/metadata/database/schema/reviser/schema/SchemaMetaDataReviseEngineTest.java
index b9b2f4e6efc..bb3fd5282d6 100644
---
a/infra/common/src/test/java/org/apache/shardingsphere/infra/metadata/database/schema/reviser/schema/SchemaMetaDataReviseEngineTest.java
+++
b/infra/common/src/test/java/org/apache/shardingsphere/infra/metadata/database/schema/reviser/schema/SchemaMetaDataReviseEngineTest.java
@@ -30,6 +30,7 @@ import java.sql.Types;
import java.util.Arrays;
import java.util.Collection;
import java.util.Collections;
+import java.util.Iterator;
import java.util.LinkedHashSet;
import java.util.Properties;
@@ -54,7 +55,9 @@ class SchemaMetaDataReviseEngineTest {
SchemaMetaData actual = new SchemaMetaDataReviseEngine(
Collections.singleton(new FixtureGlobalRule()), new
ConfigurationProperties(new Properties())).revise(schemaMetaData);
assertThat(actual.getName(), is(schemaMetaData.getName()));
- assertThat(actual.getTables(), is(schemaMetaData.getTables()));
+ assertThat(actual.getTables().size(),
is(schemaMetaData.getTables().size()));
+ Iterator<TableMetaData> expectedTableIterator =
schemaMetaData.getTables().iterator();
+ actual.getTables().forEach(each -> assertTableMetaData(each,
expectedTableIterator.next()));
}
private TableMetaData createTableMetaData() {
@@ -66,4 +69,39 @@ class SchemaMetaDataReviseEngineTest {
return new TableMetaData("table_name", columns,
Collections.singletonList(indexMetaData),
Collections.singleton(constraintMetaData));
}
+ private void assertTableMetaData(final TableMetaData actual, final
TableMetaData expected) {
+ assertThat(actual.getName(), is(expected.getName()));
+ assertThat(actual.getColumns().size(),
is(expected.getColumns().size()));
+ assertThat(actual.getIndexes().size(),
is(expected.getIndexes().size()));
+ assertThat(actual.getConstraints().size(),
is(expected.getConstraints().size()));
+ assertThat(actual.getType(), is(expected.getType()));
+ Iterator<ColumnMetaData> expectedColumnIterator =
expected.getColumns().iterator();
+ actual.getColumns().forEach(each -> assertColumnMetaData(each,
expectedColumnIterator.next()));
+ Iterator<IndexMetaData> expectedIndexIterator =
expected.getIndexes().iterator();
+ actual.getIndexes().forEach(each -> assertIndexMetaData(each,
expectedIndexIterator.next()));
+ Iterator<ConstraintMetaData> expectedConstraintIterator =
expected.getConstraints().iterator();
+ actual.getConstraints().forEach(each -> assertConstraintMetaData(each,
expectedConstraintIterator.next()));
+ }
+
+ private void assertColumnMetaData(final ColumnMetaData actual, final
ColumnMetaData expected) {
+ assertThat(actual.getName(), is(expected.getName()));
+ assertThat(actual.getDataType(), is(expected.getDataType()));
+ assertThat(actual.isPrimaryKey(), is(expected.isPrimaryKey()));
+ assertThat(actual.isGenerated(), is(expected.isGenerated()));
+ assertThat(actual.isCaseSensitive(), is(expected.isCaseSensitive()));
+ assertThat(actual.isVisible(), is(expected.isVisible()));
+ assertThat(actual.isUnsigned(), is(expected.isUnsigned()));
+ assertThat(actual.isNullable(), is(expected.isNullable()));
+ }
+
+ private void assertIndexMetaData(final IndexMetaData actual, final
IndexMetaData expected) {
+ assertThat(actual.getName(), is(expected.getName()));
+ assertThat(actual.getColumns(), is(expected.getColumns()));
+ assertThat(actual.isUnique(), is(expected.isUnique()));
+ }
+
+ private void assertConstraintMetaData(final ConstraintMetaData actual,
final ConstraintMetaData expected) {
+ assertThat(actual.getName(), is(expected.getName()));
+ assertThat(actual.getReferencedTableName(),
is(expected.getReferencedTableName()));
+ }
}
diff --git
a/infra/database/core/src/main/java/org/apache/shardingsphere/infra/database/core/metadata/data/model/ColumnMetaData.java
b/infra/database/core/src/main/java/org/apache/shardingsphere/infra/database/core/metadata/data/model/ColumnMetaData.java
index 00f6c6b42af..cdc6c8930e5 100644
---
a/infra/database/core/src/main/java/org/apache/shardingsphere/infra/database/core/metadata/data/model/ColumnMetaData.java
+++
b/infra/database/core/src/main/java/org/apache/shardingsphere/infra/database/core/metadata/data/model/ColumnMetaData.java
@@ -17,7 +17,6 @@
package org.apache.shardingsphere.infra.database.core.metadata.data.model;
-import lombok.EqualsAndHashCode;
import lombok.Getter;
import lombok.RequiredArgsConstructor;
import lombok.ToString;
@@ -27,7 +26,6 @@ import lombok.ToString;
*/
@RequiredArgsConstructor
@Getter
-@EqualsAndHashCode
@ToString
public final class ColumnMetaData {
diff --git
a/infra/database/core/src/main/java/org/apache/shardingsphere/infra/database/core/metadata/data/model/ConstraintMetaData.java
b/infra/database/core/src/main/java/org/apache/shardingsphere/infra/database/core/metadata/data/model/ConstraintMetaData.java
index fded837be65..946d45c4ec6 100644
---
a/infra/database/core/src/main/java/org/apache/shardingsphere/infra/database/core/metadata/data/model/ConstraintMetaData.java
+++
b/infra/database/core/src/main/java/org/apache/shardingsphere/infra/database/core/metadata/data/model/ConstraintMetaData.java
@@ -17,7 +17,6 @@
package org.apache.shardingsphere.infra.database.core.metadata.data.model;
-import lombok.EqualsAndHashCode;
import lombok.Getter;
import lombok.RequiredArgsConstructor;
import lombok.ToString;
@@ -27,7 +26,6 @@ import lombok.ToString;
*/
@RequiredArgsConstructor
@Getter
-@EqualsAndHashCode
@ToString
public final class ConstraintMetaData {
diff --git
a/infra/database/core/src/main/java/org/apache/shardingsphere/infra/database/core/metadata/data/model/IndexMetaData.java
b/infra/database/core/src/main/java/org/apache/shardingsphere/infra/database/core/metadata/data/model/IndexMetaData.java
index d50313e80c5..139e35b5c07 100644
---
a/infra/database/core/src/main/java/org/apache/shardingsphere/infra/database/core/metadata/data/model/IndexMetaData.java
+++
b/infra/database/core/src/main/java/org/apache/shardingsphere/infra/database/core/metadata/data/model/IndexMetaData.java
@@ -17,7 +17,6 @@
package org.apache.shardingsphere.infra.database.core.metadata.data.model;
-import lombok.EqualsAndHashCode;
import lombok.Getter;
import lombok.RequiredArgsConstructor;
import lombok.Setter;
@@ -32,7 +31,6 @@ import java.util.LinkedList;
@RequiredArgsConstructor
@Getter
@Setter
-@EqualsAndHashCode
@ToString
public final class IndexMetaData {
diff --git
a/infra/database/core/src/main/java/org/apache/shardingsphere/infra/database/core/metadata/data/model/SchemaMetaData.java
b/infra/database/core/src/main/java/org/apache/shardingsphere/infra/database/core/metadata/data/model/SchemaMetaData.java
index c8efe6d8065..844fdecea40 100644
---
a/infra/database/core/src/main/java/org/apache/shardingsphere/infra/database/core/metadata/data/model/SchemaMetaData.java
+++
b/infra/database/core/src/main/java/org/apache/shardingsphere/infra/database/core/metadata/data/model/SchemaMetaData.java
@@ -17,7 +17,6 @@
package org.apache.shardingsphere.infra.database.core.metadata.data.model;
-import lombok.EqualsAndHashCode;
import lombok.Getter;
import lombok.RequiredArgsConstructor;
import lombok.ToString;
@@ -29,7 +28,6 @@ import java.util.Collection;
*/
@RequiredArgsConstructor
@Getter
-@EqualsAndHashCode
@ToString
public final class SchemaMetaData {
diff --git
a/infra/database/core/src/main/java/org/apache/shardingsphere/infra/database/core/metadata/data/model/TableMetaData.java
b/infra/database/core/src/main/java/org/apache/shardingsphere/infra/database/core/metadata/data/model/TableMetaData.java
index 7652306dbba..bdc5a491839 100644
---
a/infra/database/core/src/main/java/org/apache/shardingsphere/infra/database/core/metadata/data/model/TableMetaData.java
+++
b/infra/database/core/src/main/java/org/apache/shardingsphere/infra/database/core/metadata/data/model/TableMetaData.java
@@ -17,7 +17,6 @@
package org.apache.shardingsphere.infra.database.core.metadata.data.model;
-import lombok.EqualsAndHashCode;
import lombok.Getter;
import lombok.RequiredArgsConstructor;
import lombok.ToString;
@@ -30,7 +29,6 @@ import java.util.Collection;
*/
@RequiredArgsConstructor
@Getter
-@EqualsAndHashCode
@ToString
public final class TableMetaData {
diff --git
a/infra/database/type/h2/src/test/java/org/apache/shardingsphere/infra/database/h2/metadata/data/loader/H2MetaDataLoaderTest.java
b/infra/database/type/h2/src/test/java/org/apache/shardingsphere/infra/database/h2/metadata/data/loader/H2MetaDataLoaderTest.java
index d670edec93e..a445bfcc5ac 100644
---
a/infra/database/type/h2/src/test/java/org/apache/shardingsphere/infra/database/h2/metadata/data/loader/H2MetaDataLoaderTest.java
+++
b/infra/database/type/h2/src/test/java/org/apache/shardingsphere/infra/database/h2/metadata/data/loader/H2MetaDataLoaderTest.java
@@ -162,12 +162,29 @@ class H2MetaDataLoaderTest {
TableMetaData actualTableMetaData =
schemaMetaDataList.iterator().next().getTables().iterator().next();
assertThat(actualTableMetaData.getColumns().size(), is(2));
Iterator<ColumnMetaData> columnsIterator =
actualTableMetaData.getColumns().iterator();
- assertThat(columnsIterator.next(), is(new ColumnMetaData("id",
Types.INTEGER, true, false, false, true, false, false)));
- assertThat(columnsIterator.next(), is(new ColumnMetaData("name",
Types.VARCHAR, false, false, false, false, false, true)));
+ assertColumnMetaData(columnsIterator.next(), new ColumnMetaData("id",
Types.INTEGER, true, false, false, true, false, false));
+ assertColumnMetaData(columnsIterator.next(), new
ColumnMetaData("name", Types.VARCHAR, false, false, false, false, false, true));
assertThat(actualTableMetaData.getIndexes().size(), is(1));
Iterator<IndexMetaData> indexesIterator =
actualTableMetaData.getIndexes().iterator();
IndexMetaData indexMetaData = new IndexMetaData("id");
indexMetaData.setUnique(true);
- assertThat(indexesIterator.next(), is(indexMetaData));
+ assertIndexMetaData(indexesIterator.next(), indexMetaData);
+ }
+
+ private void assertColumnMetaData(final ColumnMetaData actual, final
ColumnMetaData expected) {
+ assertThat(actual.getName(), is(expected.getName()));
+ assertThat(actual.getDataType(), is(expected.getDataType()));
+ assertThat(actual.isPrimaryKey(), is(expected.isPrimaryKey()));
+ assertThat(actual.isGenerated(), is(expected.isGenerated()));
+ assertThat(actual.isCaseSensitive(), is(expected.isCaseSensitive()));
+ assertThat(actual.isVisible(), is(expected.isVisible()));
+ assertThat(actual.isUnsigned(), is(expected.isUnsigned()));
+ assertThat(actual.isNullable(), is(expected.isNullable()));
+ }
+
+ private void assertIndexMetaData(final IndexMetaData actual, final
IndexMetaData expected) {
+ assertThat(actual.getName(), is(expected.getName()));
+ assertThat(actual.getColumns(), is(expected.getColumns()));
+ assertThat(actual.isUnique(), is(expected.isUnique()));
}
}
diff --git
a/infra/database/type/mysql/src/test/java/org/apache/shardingsphere/infra/database/mysql/metadata/data/loader/MySQLMetaDataLoaderTest.java
b/infra/database/type/mysql/src/test/java/org/apache/shardingsphere/infra/database/mysql/metadata/data/loader/MySQLMetaDataLoaderTest.java
index 562e8675721..ff796177d82 100644
---
a/infra/database/type/mysql/src/test/java/org/apache/shardingsphere/infra/database/mysql/metadata/data/loader/MySQLMetaDataLoaderTest.java
+++
b/infra/database/type/mysql/src/test/java/org/apache/shardingsphere/infra/database/mysql/metadata/data/loader/MySQLMetaDataLoaderTest.java
@@ -121,19 +121,36 @@ class MySQLMetaDataLoaderTest {
TableMetaData actualTableMetaData =
schemaMetaDataList.iterator().next().getTables().iterator().next();
assertThat(actualTableMetaData.getColumns().size(), is(9));
Iterator<ColumnMetaData> columnsIterator =
actualTableMetaData.getColumns().iterator();
- assertThat(columnsIterator.next(), is(new ColumnMetaData("id",
Types.INTEGER, true, true, true, true, false, false)));
- assertThat(columnsIterator.next(), is(new ColumnMetaData("name",
Types.VARCHAR, false, false, false, false, false, true)));
- assertThat(columnsIterator.next(), is(new ColumnMetaData("doc",
Types.LONGVARCHAR, false, false, false, true, false, true)));
- assertThat(columnsIterator.next(), is(new ColumnMetaData("geo",
Types.BINARY, false, false, false, true, false, true)));
- assertThat(columnsIterator.next(), is(new ColumnMetaData("t_year",
Types.DATE, false, false, false, true, false, true)));
- assertThat(columnsIterator.next(), is(new ColumnMetaData("pg",
Types.BINARY, false, false, false, true, false, true)));
- assertThat(columnsIterator.next(), is(new ColumnMetaData("mpg",
Types.BINARY, false, false, false, true, false, true)));
- assertThat(columnsIterator.next(), is(new ColumnMetaData("pt",
Types.BINARY, false, false, false, true, false, true)));
- assertThat(columnsIterator.next(), is(new ColumnMetaData("mpt",
Types.BINARY, false, false, false, true, false, true)));
+ assertColumnMetaData(columnsIterator.next(), new ColumnMetaData("id",
Types.INTEGER, true, true, true, true, false, false));
+ assertColumnMetaData(columnsIterator.next(), new
ColumnMetaData("name", Types.VARCHAR, false, false, false, false, false, true));
+ assertColumnMetaData(columnsIterator.next(), new ColumnMetaData("doc",
Types.LONGVARCHAR, false, false, false, true, false, true));
+ assertColumnMetaData(columnsIterator.next(), new ColumnMetaData("geo",
Types.BINARY, false, false, false, true, false, true));
+ assertColumnMetaData(columnsIterator.next(), new
ColumnMetaData("t_year", Types.DATE, false, false, false, true, false, true));
+ assertColumnMetaData(columnsIterator.next(), new ColumnMetaData("pg",
Types.BINARY, false, false, false, true, false, true));
+ assertColumnMetaData(columnsIterator.next(), new ColumnMetaData("mpg",
Types.BINARY, false, false, false, true, false, true));
+ assertColumnMetaData(columnsIterator.next(), new ColumnMetaData("pt",
Types.BINARY, false, false, false, true, false, true));
+ assertColumnMetaData(columnsIterator.next(), new ColumnMetaData("mpt",
Types.BINARY, false, false, false, true, false, true));
assertThat(actualTableMetaData.getIndexes().size(), is(1));
Iterator<IndexMetaData> indexesIterator =
actualTableMetaData.getIndexes().iterator();
IndexMetaData expected = new IndexMetaData("id",
Collections.singletonList("id"));
expected.setUnique(true);
- assertThat(indexesIterator.next(), is(expected));
+ assertIndexMetaData(indexesIterator.next(), expected);
+ }
+
+ private void assertColumnMetaData(final ColumnMetaData actual, final
ColumnMetaData expected) {
+ assertThat(actual.getName(), is(expected.getName()));
+ assertThat(actual.getDataType(), is(expected.getDataType()));
+ assertThat(actual.isPrimaryKey(), is(expected.isPrimaryKey()));
+ assertThat(actual.isGenerated(), is(expected.isGenerated()));
+ assertThat(actual.isCaseSensitive(), is(expected.isCaseSensitive()));
+ assertThat(actual.isVisible(), is(expected.isVisible()));
+ assertThat(actual.isUnsigned(), is(expected.isUnsigned()));
+ assertThat(actual.isNullable(), is(expected.isNullable()));
+ }
+
+ private void assertIndexMetaData(final IndexMetaData actual, final
IndexMetaData expected) {
+ assertThat(actual.getName(), is(expected.getName()));
+ assertThat(actual.getColumns(), is(expected.getColumns()));
+ assertThat(actual.isUnique(), is(expected.isUnique()));
}
}
diff --git
a/infra/database/type/opengauss/src/test/java/org/apache/shardingsphere/infra/database/opengauss/metadata/data/loader/OpenGaussMetaDataLoaderTest.java
b/infra/database/type/opengauss/src/test/java/org/apache/shardingsphere/infra/database/opengauss/metadata/data/loader/OpenGaussMetaDataLoaderTest.java
index a5f07aef4cb..94d44c61620 100644
---
a/infra/database/type/opengauss/src/test/java/org/apache/shardingsphere/infra/database/opengauss/metadata/data/loader/OpenGaussMetaDataLoaderTest.java
+++
b/infra/database/type/opengauss/src/test/java/org/apache/shardingsphere/infra/database/opengauss/metadata/data/loader/OpenGaussMetaDataLoaderTest.java
@@ -176,12 +176,29 @@ class OpenGaussMetaDataLoaderTest {
TableMetaData actualTableMetaData =
schemaMetaDataList.iterator().next().getTables().iterator().next();
assertThat(actualTableMetaData.getColumns().size(), is(2));
Iterator<ColumnMetaData> columnsIterator =
actualTableMetaData.getColumns().iterator();
- assertThat(columnsIterator.next(), is(new ColumnMetaData("id",
Types.INTEGER, true, true, true, true, false, false)));
- assertThat(columnsIterator.next(), is(new ColumnMetaData("name",
Types.VARCHAR, false, false, true, true, false, true)));
+ assertColumnMetaData(columnsIterator.next(), new ColumnMetaData("id",
Types.INTEGER, true, true, true, true, false, false));
+ assertColumnMetaData(columnsIterator.next(), new
ColumnMetaData("name", Types.VARCHAR, false, false, true, true, false, true));
assertThat(actualTableMetaData.getIndexes().size(), is(1));
Iterator<IndexMetaData> indexesIterator =
actualTableMetaData.getIndexes().iterator();
IndexMetaData indexMetaData = new IndexMetaData("id",
Collections.singletonList("id"));
indexMetaData.setUnique(true);
- assertThat(indexesIterator.next(), is(indexMetaData));
+ assertIndexMetaData(indexesIterator.next(), indexMetaData);
+ }
+
+ private void assertColumnMetaData(final ColumnMetaData actual, final
ColumnMetaData expected) {
+ assertThat(actual.getName(), is(expected.getName()));
+ assertThat(actual.getDataType(), is(expected.getDataType()));
+ assertThat(actual.isPrimaryKey(), is(expected.isPrimaryKey()));
+ assertThat(actual.isGenerated(), is(expected.isGenerated()));
+ assertThat(actual.isCaseSensitive(), is(expected.isCaseSensitive()));
+ assertThat(actual.isVisible(), is(expected.isVisible()));
+ assertThat(actual.isUnsigned(), is(expected.isUnsigned()));
+ assertThat(actual.isNullable(), is(expected.isNullable()));
+ }
+
+ private void assertIndexMetaData(final IndexMetaData actual, final
IndexMetaData expected) {
+ assertThat(actual.getName(), is(expected.getName()));
+ assertThat(actual.getColumns(), is(expected.getColumns()));
+ assertThat(actual.isUnique(), is(expected.isUnique()));
}
}
diff --git
a/infra/database/type/oracle/src/test/java/org/apache/shardingsphere/infra/database/oracle/metadata/data/loader/OracleMetaDataLoaderTest.java
b/infra/database/type/oracle/src/test/java/org/apache/shardingsphere/infra/database/oracle/metadata/data/loader/OracleMetaDataLoaderTest.java
index 3a2304eb097..64c2a430c74 100644
---
a/infra/database/type/oracle/src/test/java/org/apache/shardingsphere/infra/database/oracle/metadata/data/loader/OracleMetaDataLoaderTest.java
+++
b/infra/database/type/oracle/src/test/java/org/apache/shardingsphere/infra/database/oracle/metadata/data/loader/OracleMetaDataLoaderTest.java
@@ -95,8 +95,8 @@ class OracleMetaDataLoaderTest {
assertTableMetaDataMap(actual);
TableMetaData actualTableMetaData =
actual.iterator().next().getTables().iterator().next();
Iterator<ColumnMetaData> columnsIterator =
actualTableMetaData.getColumns().iterator();
- assertThat(columnsIterator.next(), is(new ColumnMetaData("id",
Types.INTEGER, false, true, true, true, false, false)));
- assertThat(columnsIterator.next(), is(new ColumnMetaData("name",
Types.VARCHAR, false, false, false, false, false, true)));
+ assertColumnMetaData(columnsIterator.next(), new ColumnMetaData("id",
Types.INTEGER, false, true, true, true, false, false));
+ assertColumnMetaData(columnsIterator.next(), new
ColumnMetaData("name", Types.VARCHAR, false, false, false, false, false, true));
}
@Test
@@ -116,8 +116,8 @@ class OracleMetaDataLoaderTest {
assertTableMetaDataMap(actual);
TableMetaData actualTableMetaData =
actual.iterator().next().getTables().iterator().next();
Iterator<ColumnMetaData> columnsIterator =
actualTableMetaData.getColumns().iterator();
- assertThat(columnsIterator.next(), is(new ColumnMetaData("id",
Types.INTEGER, false, true, false, true, false, false)));
- assertThat(columnsIterator.next(), is(new ColumnMetaData("name",
Types.VARCHAR, false, false, false, false, false, true)));
+ assertColumnMetaData(columnsIterator.next(), new ColumnMetaData("id",
Types.INTEGER, false, true, false, true, false, false));
+ assertColumnMetaData(columnsIterator.next(), new
ColumnMetaData("name", Types.VARCHAR, false, false, false, false, false, true));
}
@Test
@@ -137,8 +137,8 @@ class OracleMetaDataLoaderTest {
assertTableMetaDataMap(actual);
TableMetaData actualTableMetaData =
actual.iterator().next().getTables().iterator().next();
Iterator<ColumnMetaData> columnsIterator =
actualTableMetaData.getColumns().iterator();
- assertThat(columnsIterator.next(), is(new ColumnMetaData("id",
Types.INTEGER, false, false, false, true, false, false)));
- assertThat(columnsIterator.next(), is(new ColumnMetaData("name",
Types.VARCHAR, false, false, false, false, false, true)));
+ assertColumnMetaData(columnsIterator.next(), new ColumnMetaData("id",
Types.INTEGER, false, false, false, true, false, false));
+ assertColumnMetaData(columnsIterator.next(), new
ColumnMetaData("name", Types.VARCHAR, false, false, false, false, false, true));
}
@Test
@@ -159,8 +159,8 @@ class OracleMetaDataLoaderTest {
assertTableMetaDataMap(actual);
TableMetaData actualTableMetaData =
actual.iterator().next().getTables().iterator().next();
Iterator<ColumnMetaData> columnsIterator =
actualTableMetaData.getColumns().iterator();
- assertThat(columnsIterator.next(), is(new ColumnMetaData("id",
Types.INTEGER, true, true, true, true, false, false)));
- assertThat(columnsIterator.next(), is(new ColumnMetaData("name",
Types.VARCHAR, false, false, false, false, false, true)));
+ assertColumnMetaData(columnsIterator.next(), new ColumnMetaData("id",
Types.INTEGER, true, true, true, true, false, false));
+ assertColumnMetaData(columnsIterator.next(), new
ColumnMetaData("name", Types.VARCHAR, false, false, false, false, false, true));
}
@Test
@@ -181,8 +181,8 @@ class OracleMetaDataLoaderTest {
assertTableMetaDataMap(actual);
TableMetaData actualTableMetaData =
actual.iterator().next().getTables().iterator().next();
Iterator<ColumnMetaData> columnsIterator =
actualTableMetaData.getColumns().iterator();
- assertThat(columnsIterator.next(), is(new ColumnMetaData("id",
Types.INTEGER, true, true, false, true, false, false)));
- assertThat(columnsIterator.next(), is(new ColumnMetaData("name",
Types.VARCHAR, false, false, false, false, false, true)));
+ assertColumnMetaData(columnsIterator.next(), new ColumnMetaData("id",
Types.INTEGER, true, true, false, true, false, false));
+ assertColumnMetaData(columnsIterator.next(), new
ColumnMetaData("name", Types.VARCHAR, false, false, false, false, false, true));
}
@Test
@@ -203,8 +203,8 @@ class OracleMetaDataLoaderTest {
assertTableMetaDataMap(actual);
TableMetaData actualTableMetaData =
actual.iterator().next().getTables().iterator().next();
Iterator<ColumnMetaData> columnsIterator =
actualTableMetaData.getColumns().iterator();
- assertThat(columnsIterator.next(), is(new ColumnMetaData("id",
Types.INTEGER, true, false, false, true, false, false)));
- assertThat(columnsIterator.next(), is(new ColumnMetaData("name",
Types.VARCHAR, false, false, false, false, false, true)));
+ assertColumnMetaData(columnsIterator.next(), new ColumnMetaData("id",
Types.INTEGER, true, false, false, true, false, false));
+ assertColumnMetaData(columnsIterator.next(), new
ColumnMetaData("name", Types.VARCHAR, false, false, false, false, false, true));
}
@Test
@@ -225,9 +225,9 @@ class OracleMetaDataLoaderTest {
assertTableMetaDataMap(actual);
TableMetaData actualTableMetaData =
actual.iterator().next().getTables().iterator().next();
Iterator<ColumnMetaData> columnsIterator =
actualTableMetaData.getColumns().iterator();
- assertThat(columnsIterator.next(), is(new ColumnMetaData("id",
Types.INTEGER, true, true, true, true, false, false)));
- assertThat(columnsIterator.next(), is(new ColumnMetaData("name",
Types.VARCHAR, false, false, false, false, false, true)));
- assertThat(columnsIterator.next(), is(new ColumnMetaData("address",
Types.VARCHAR, false, false, false, false, false, true)));
+ assertColumnMetaData(columnsIterator.next(), new ColumnMetaData("id",
Types.INTEGER, true, true, true, true, false, false));
+ assertColumnMetaData(columnsIterator.next(), new
ColumnMetaData("name", Types.VARCHAR, false, false, false, false, false, true));
+ assertColumnMetaData(columnsIterator.next(), new
ColumnMetaData("address", Types.VARCHAR, false, false, false, false, false,
true));
}
private DataSource mockDataSource() throws SQLException {
@@ -302,6 +302,23 @@ class OracleMetaDataLoaderTest {
Iterator<IndexMetaData> indexesIterator =
actualTableMetaData.getIndexes().iterator();
IndexMetaData indexMetaData = new IndexMetaData("id");
indexMetaData.setUnique(true);
- assertThat(indexesIterator.next(), is(indexMetaData));
+ assertIndexMetaData(indexesIterator.next(), indexMetaData);
+ }
+
+ private void assertColumnMetaData(final ColumnMetaData actual, final
ColumnMetaData expected) {
+ assertThat(actual.getName(), is(expected.getName()));
+ assertThat(actual.getDataType(), is(expected.getDataType()));
+ assertThat(actual.isPrimaryKey(), is(expected.isPrimaryKey()));
+ assertThat(actual.isGenerated(), is(expected.isGenerated()));
+ assertThat(actual.isCaseSensitive(), is(expected.isCaseSensitive()));
+ assertThat(actual.isVisible(), is(expected.isVisible()));
+ assertThat(actual.isUnsigned(), is(expected.isUnsigned()));
+ assertThat(actual.isNullable(), is(expected.isNullable()));
+ }
+
+ private void assertIndexMetaData(final IndexMetaData actual, final
IndexMetaData expected) {
+ assertThat(actual.getName(), is(expected.getName()));
+ assertThat(actual.getColumns(), is(expected.getColumns()));
+ assertThat(actual.isUnique(), is(expected.isUnique()));
}
}
diff --git
a/infra/database/type/postgresql/src/test/java/org/apache/shardingsphere/infra/database/postgresql/metadata/data/loader/PostgreSQLMetaDataLoaderTest.java
b/infra/database/type/postgresql/src/test/java/org/apache/shardingsphere/infra/database/postgresql/metadata/data/loader/PostgreSQLMetaDataLoaderTest.java
index d758126e141..6f9ae19805f 100644
---
a/infra/database/type/postgresql/src/test/java/org/apache/shardingsphere/infra/database/postgresql/metadata/data/loader/PostgreSQLMetaDataLoaderTest.java
+++
b/infra/database/type/postgresql/src/test/java/org/apache/shardingsphere/infra/database/postgresql/metadata/data/loader/PostgreSQLMetaDataLoaderTest.java
@@ -210,15 +210,37 @@ class PostgreSQLMetaDataLoaderTest {
TableMetaData actualTableMetaData =
schemaMetaDataList.iterator().next().getTables().iterator().next();
assertThat(actualTableMetaData.getColumns().size(), is(2));
Iterator<ColumnMetaData> columnsIterator =
actualTableMetaData.getColumns().iterator();
- assertThat(columnsIterator.next(), is(new ColumnMetaData("id",
Types.INTEGER, true, true, true, true, false, false)));
- assertThat(columnsIterator.next(), is(new ColumnMetaData("name",
Types.VARCHAR, false, false, true, true, false, true)));
+ assertColumnMetaData(columnsIterator.next(), new ColumnMetaData("id",
Types.INTEGER, true, true, true, true, false, false));
+ assertColumnMetaData(columnsIterator.next(), new
ColumnMetaData("name", Types.VARCHAR, false, false, true, true, false, true));
assertThat(actualTableMetaData.getIndexes().size(), is(1));
Iterator<IndexMetaData> indexesIterator =
actualTableMetaData.getIndexes().iterator();
IndexMetaData indexMetaData = new IndexMetaData("id",
Collections.singletonList("id"));
indexMetaData.setUnique(true);
- assertThat(indexesIterator.next(), is(indexMetaData));
+ assertIndexMetaData(indexesIterator.next(), indexMetaData);
assertThat(actualTableMetaData.getConstraints().size(), is(1));
Iterator<ConstraintMetaData> constrainsMetaDataList =
actualTableMetaData.getConstraints().iterator();
- assertThat(constrainsMetaDataList.next(), is(new
ConstraintMetaData("tbl_con", "refer_tbl")));
+ assertConstraintMetaData(constrainsMetaDataList.next(), new
ConstraintMetaData("tbl_con", "refer_tbl"));
+ }
+
+ private void assertColumnMetaData(final ColumnMetaData actual, final
ColumnMetaData expected) {
+ assertThat(actual.getName(), is(expected.getName()));
+ assertThat(actual.getDataType(), is(expected.getDataType()));
+ assertThat(actual.isPrimaryKey(), is(expected.isPrimaryKey()));
+ assertThat(actual.isGenerated(), is(expected.isGenerated()));
+ assertThat(actual.isCaseSensitive(), is(expected.isCaseSensitive()));
+ assertThat(actual.isVisible(), is(expected.isVisible()));
+ assertThat(actual.isUnsigned(), is(expected.isUnsigned()));
+ assertThat(actual.isNullable(), is(expected.isNullable()));
+ }
+
+ private void assertIndexMetaData(final IndexMetaData actual, final
IndexMetaData expected) {
+ assertThat(actual.getName(), is(expected.getName()));
+ assertThat(actual.getColumns(), is(expected.getColumns()));
+ assertThat(actual.isUnique(), is(expected.isUnique()));
+ }
+
+ private void assertConstraintMetaData(final ConstraintMetaData actual,
final ConstraintMetaData expected) {
+ assertThat(actual.getName(), is(expected.getName()));
+ assertThat(actual.getReferencedTableName(),
is(expected.getReferencedTableName()));
}
}
diff --git
a/infra/database/type/sqlserver/src/test/java/org/apache/shardingsphere/infra/database/sqlserver/metadata/data/loader/SQLServerMetaDataLoaderTest.java
b/infra/database/type/sqlserver/src/test/java/org/apache/shardingsphere/infra/database/sqlserver/metadata/data/loader/SQLServerMetaDataLoaderTest.java
index 2804120e1aa..87babd6e0f1 100644
---
a/infra/database/type/sqlserver/src/test/java/org/apache/shardingsphere/infra/database/sqlserver/metadata/data/loader/SQLServerMetaDataLoaderTest.java
+++
b/infra/database/type/sqlserver/src/test/java/org/apache/shardingsphere/infra/database/sqlserver/metadata/data/loader/SQLServerMetaDataLoaderTest.java
@@ -96,8 +96,8 @@ class SQLServerMetaDataLoaderTest {
assertTableMetaDataMap(actual);
TableMetaData actualTableMetaData =
actual.iterator().next().getTables().iterator().next();
Iterator<ColumnMetaData> columnsIterator =
actualTableMetaData.getColumns().iterator();
- assertThat(columnsIterator.next(), is(new ColumnMetaData("id",
Types.INTEGER, false, true, true, true, false, false)));
- assertThat(columnsIterator.next(), is(new ColumnMetaData("name",
Types.VARCHAR, false, false, false, false, false, true)));
+ assertColumnMetaData(columnsIterator.next(), new ColumnMetaData("id",
Types.INTEGER, false, true, true, true, false, false));
+ assertColumnMetaData(columnsIterator.next(), new
ColumnMetaData("name", Types.VARCHAR, false, false, false, false, false, true));
}
@Test
@@ -116,8 +116,8 @@ class SQLServerMetaDataLoaderTest {
assertTableMetaDataMap(actual);
TableMetaData actualTableMetaData =
actual.iterator().next().getTables().iterator().next();
Iterator<ColumnMetaData> columnsIterator =
actualTableMetaData.getColumns().iterator();
- assertThat(columnsIterator.next(), is(new ColumnMetaData("id",
Types.INTEGER, false, true, true, true, false, false)));
- assertThat(columnsIterator.next(), is(new ColumnMetaData("name",
Types.VARCHAR, false, false, false, true, false, true)));
+ assertColumnMetaData(columnsIterator.next(), new ColumnMetaData("id",
Types.INTEGER, false, true, true, true, false, false));
+ assertColumnMetaData(columnsIterator.next(), new
ColumnMetaData("name", Types.VARCHAR, false, false, false, true, false, true));
}
@Test
@@ -135,8 +135,8 @@ class SQLServerMetaDataLoaderTest {
assertTableMetaDataMap(actual);
TableMetaData actualTableMetaData =
actual.iterator().next().getTables().iterator().next();
Iterator<ColumnMetaData> columnsIterator =
actualTableMetaData.getColumns().iterator();
- assertThat(columnsIterator.next(), is(new ColumnMetaData("id",
Types.INTEGER, false, true, true, true, false, false)));
- assertThat(columnsIterator.next(), is(new ColumnMetaData("name",
Types.VARCHAR, false, false, false, false, false, true)));
+ assertColumnMetaData(columnsIterator.next(), new ColumnMetaData("id",
Types.INTEGER, false, true, true, true, false, false));
+ assertColumnMetaData(columnsIterator.next(), new
ColumnMetaData("name", Types.VARCHAR, false, false, false, false, false, true));
}
@Test
@@ -154,8 +154,8 @@ class SQLServerMetaDataLoaderTest {
assertTableMetaDataMap(actual);
TableMetaData actualTableMetaData =
actual.iterator().next().getTables().iterator().next();
Iterator<ColumnMetaData> columnsIterator =
actualTableMetaData.getColumns().iterator();
- assertThat(columnsIterator.next(), is(new ColumnMetaData("id",
Types.INTEGER, false, true, true, true, false, false)));
- assertThat(columnsIterator.next(), is(new ColumnMetaData("name",
Types.VARCHAR, false, false, false, true, false, true)));
+ assertColumnMetaData(columnsIterator.next(), new ColumnMetaData("id",
Types.INTEGER, false, true, true, true, false, false));
+ assertColumnMetaData(columnsIterator.next(), new
ColumnMetaData("name", Types.VARCHAR, false, false, false, true, false, true));
}
private DataSource mockDataSource() throws SQLException {
@@ -211,6 +211,23 @@ class SQLServerMetaDataLoaderTest {
Iterator<IndexMetaData> indexesIterator =
actualTableMetaData.getIndexes().iterator();
IndexMetaData expected = new IndexMetaData("id",
Collections.singletonList("id"));
expected.setUnique(true);
- assertThat(indexesIterator.next(), is(expected));
+ assertIndexMetaData(indexesIterator.next(), expected);
+ }
+
+ private void assertColumnMetaData(final ColumnMetaData actual, final
ColumnMetaData expected) {
+ assertThat(actual.getName(), is(expected.getName()));
+ assertThat(actual.getDataType(), is(expected.getDataType()));
+ assertThat(actual.isPrimaryKey(), is(expected.isPrimaryKey()));
+ assertThat(actual.isGenerated(), is(expected.isGenerated()));
+ assertThat(actual.isCaseSensitive(), is(expected.isCaseSensitive()));
+ assertThat(actual.isVisible(), is(expected.isVisible()));
+ assertThat(actual.isUnsigned(), is(expected.isUnsigned()));
+ assertThat(actual.isNullable(), is(expected.isNullable()));
+ }
+
+ private void assertIndexMetaData(final IndexMetaData actual, final
IndexMetaData expected) {
+ assertThat(actual.getName(), is(expected.getName()));
+ assertThat(actual.getColumns(), is(expected.getColumns()));
+ assertThat(actual.isUnique(), is(expected.isUnique()));
}
}
diff --git
a/kernel/single/core/src/test/java/org/apache/shardingsphere/single/metadata/SingleMetaDataReviseEngineTest.java
b/kernel/single/core/src/test/java/org/apache/shardingsphere/single/metadata/SingleMetaDataReviseEngineTest.java
index 4c3ca24865b..12799278e0c 100644
---
a/kernel/single/core/src/test/java/org/apache/shardingsphere/single/metadata/SingleMetaDataReviseEngineTest.java
+++
b/kernel/single/core/src/test/java/org/apache/shardingsphere/single/metadata/SingleMetaDataReviseEngineTest.java
@@ -22,6 +22,10 @@ import
org.apache.shardingsphere.infra.database.core.metadata.data.model.IndexMe
import
org.apache.shardingsphere.infra.database.core.metadata.data.model.SchemaMetaData;
import
org.apache.shardingsphere.infra.database.core.metadata.data.model.TableMetaData;
import
org.apache.shardingsphere.infra.metadata.database.schema.builder.GenericSchemaBuilderMaterial;
+import
org.apache.shardingsphere.infra.metadata.database.schema.model.ShardingSphereColumn;
+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.reviser.MetaDataReviseEngine;
import org.apache.shardingsphere.single.rule.SingleRule;
import org.junit.jupiter.api.Test;
@@ -35,6 +39,7 @@ import java.util.Map;
import static org.hamcrest.CoreMatchers.is;
import static org.hamcrest.MatcherAssert.assertThat;
+import static org.junit.jupiter.api.Assertions.assertTrue;
import static org.mockito.Mockito.mock;
class SingleMetaDataReviseEngineTest {
@@ -44,16 +49,19 @@ class SingleMetaDataReviseEngineTest {
@Test
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, true)));
- assertThat(columns.next(), is(new ColumnMetaData("name",
Types.VARCHAR, false, false, false, true, false, false)));
- assertThat(columns.next(), is(new ColumnMetaData("doc",
Types.LONGVARCHAR, false, false, false, true, false, false)));
- assertThat(tableMetaData.getIndexes().size(), is(2));
- Iterator<IndexMetaData> indexes =
tableMetaData.getIndexes().iterator();
- assertThat(indexes.next(), is(new IndexMetaData("id")));
- assertThat(indexes.next(), is(new IndexMetaData("idx_name")));
+ Map<String, ShardingSphereSchema> actual = new
MetaDataReviseEngine(Collections.singleton(mock(SingleRule.class))).revise(schemaMetaDataMap,
mock(GenericSchemaBuilderMaterial.class));
+ assertThat(actual.size(), is(1));
+ assertTrue(actual.containsKey("sharding_db"));
+ assertThat(actual.get("sharding_db").getAllTables().size(), is(1));
+ ShardingSphereTable table =
actual.get("sharding_db").getAllTables().iterator().next();
+ Iterator<ShardingSphereColumn> columns =
table.getAllColumns().iterator();
+ assertShardingSphereColumn(columns.next(), new
ShardingSphereColumn("id", Types.INTEGER, true, false, false, true, false,
true));
+ assertShardingSphereColumn(columns.next(), new
ShardingSphereColumn("name", Types.VARCHAR, false, false, false, true, false,
false));
+ assertShardingSphereColumn(columns.next(), new
ShardingSphereColumn("doc", Types.LONGVARCHAR, false, false, false, true,
false, false));
+ assertThat(table.getAllIndexes().size(), is(2));
+ Iterator<ShardingSphereIndex> indexes =
table.getAllIndexes().iterator();
+ assertShardingSphereIndex(indexes.next(), new
ShardingSphereIndex("id", Collections.emptyList(), false));
+ assertShardingSphereIndex(indexes.next(), new
ShardingSphereIndex("idx_name", Collections.emptyList(), false));
}
private TableMetaData createTableMetaData() {
@@ -63,4 +71,21 @@ class SingleMetaDataReviseEngineTest {
Collection<IndexMetaData> indexMetaDataList = Arrays.asList(new
IndexMetaData("id"), new IndexMetaData("idx_name"));
return new TableMetaData(TABLE_NAME, columns, indexMetaDataList,
Collections.emptyList());
}
+
+ private void assertShardingSphereColumn(final ShardingSphereColumn actual,
final ShardingSphereColumn expected) {
+ assertThat(actual.getName(), is(expected.getName()));
+ assertThat(actual.getDataType(), is(expected.getDataType()));
+ assertThat(actual.isPrimaryKey(), is(expected.isPrimaryKey()));
+ assertThat(actual.isGenerated(), is(expected.isGenerated()));
+ assertThat(actual.isCaseSensitive(), is(expected.isCaseSensitive()));
+ assertThat(actual.isVisible(), is(expected.isVisible()));
+ assertThat(actual.isUnsigned(), is(expected.isUnsigned()));
+ assertThat(actual.isNullable(), is(expected.isNullable()));
+ }
+
+ private void assertShardingSphereIndex(final ShardingSphereIndex actual,
final ShardingSphereIndex expected) {
+ assertThat(actual.getName(), is(expected.getName()));
+ assertThat(actual.getColumns(), is(expected.getColumns()));
+ assertThat(actual.isUnique(), is(expected.isUnique()));
+ }
}