This is an automated email from the ASF dual-hosted git repository.

panjuan 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 18ad266248a Add visible field in ShardingSchemaColumn metadata (#19859)
18ad266248a is described below

commit 18ad266248a0e5e9452a4dfe65bcd8e74b0a689d
Author: Zhengqiang Duan <[email protected]>
AuthorDate: Thu Aug 4 14:26:11 2022 +0800

    Add visible field in ShardingSchemaColumn metadata (#19859)
    
    * Add visible filed in ShardingSchemaColumn metadata
    
    * Fix unit test
    
    * Update MySQLSchemaMetaDataLoaderTest
---
 .../metadata/EncryptSchemaMetaDataDecorator.java   |  2 +-
 .../EncryptSchemaMetaDataDecoratorTest.java        |  6 ++---
 .../metadata/ShardingSchemaMetaDataDecorator.java  |  2 +-
 .../merge/dql/ShardingDQLResultMergerTest.java     |  6 ++---
 .../dql/groupby/GroupByStreamMergedResultTest.java |  6 ++---
 .../dql/orderby/OrderByStreamMergedResultTest.java |  4 ++--
 .../ShardingSchemaMetaDataDecoratorTest.java       |  8 +++----
 .../engine/type/standard/AbstractSQLRouteTest.java | 18 +++++++--------
 .../engine/GeneratedKeyContextEngineTest.java      |  2 +-
 .../binder/segment/table/TablesContextTest.java    |  4 ++--
 .../schema/builder/GenericSchemaBuilder.java       |  2 +-
 .../decorator/model/ShardingSphereColumn.java      |  2 ++
 .../schema/loader/common/ColumnMetaDataLoader.java | 10 +++++----
 .../loader/dialect/H2SchemaMetaDataLoader.java     |  2 +-
 .../loader/dialect/MySQLSchemaMetaDataLoader.java  |  6 +++--
 .../dialect/OpenGaussSchemaMetaDataLoader.java     |  2 +-
 .../loader/dialect/OracleSchemaMetaDataLoader.java |  2 +-
 .../dialect/PostgreSQLSchemaMetaDataLoader.java    |  2 +-
 .../dialect/SQLServerSchemaMetaDataLoader.java     |  2 +-
 .../schema/loader/model/ColumnMetaData.java        |  2 ++
 .../yaml/schema/pojo/YamlShardingSphereColumn.java |  2 ++
 .../swapper/ShardingSphereTableYamlSwapper.java    |  3 ++-
 .../database/schema/ShardingSphereSchemaTest.java  |  6 ++---
 .../loader/dialect/H2SchemaMetaDataLoaderTest.java |  4 ++--
 .../dialect/MySQLSchemaMetaDataLoaderTest.java     | 20 ++++++++---------
 .../dialect/OracleSchemaMetaDataLoaderTest.java    | 24 ++++++++++----------
 .../PostgreSQLSchemaMetaDataLoaderTest.java        |  4 ++--
 .../dialect/SQLServerSchemaMetaDataLoaderTest.java |  4 ++--
 .../database/schema/model/TableMetaDataTest.java   |  2 +-
 .../sql/context/ExecutionContextBuilderTest.java   | 26 +++++++++++-----------
 .../advanced/AdvancedFederationExecutorTest.java   | 10 ++++-----
 .../optimizer/ShardingSphereOptimizerTest.java     | 10 ++++-----
 .../SingleTableSchemaMetaDataDecoratorTest.java    | 12 +++++-----
 .../mode/manager/ContextManagerTest.java           |  2 +-
 .../jdbc/JDBCDatabaseCommunicationEngineTest.java  |  2 +-
 .../ExportDatabaseConfigurationHandlerTest.java    |  2 +-
 .../queryable/ShowTableMetadataHandlerTest.java    |  2 +-
 .../ImportDatabaseConfigurationHandlerTest.java    |  2 +-
 .../query/impl/MySQLQueryHeaderBuilderTest.java    |  2 +-
 .../PostgreSQLComDescribeExecutorTest.java         |  8 +++----
 .../pipeline/core/util/PipelineContextUtil.java    |  4 ++--
 .../scenario/MixSQLRewriterParameterizedTest.java  |  2 +-
 .../ShardingSQLRewriterParameterizedTest.java      |  2 +-
 43 files changed, 128 insertions(+), 117 deletions(-)

diff --git 
a/shardingsphere-features/shardingsphere-encrypt/shardingsphere-encrypt-core/src/main/java/org/apache/shardingsphere/encrypt/metadata/EncryptSchemaMetaDataDecorator.java
 
b/shardingsphere-features/shardingsphere-encrypt/shardingsphere-encrypt-core/src/main/java/org/apache/shardingsphere/encrypt/metadata/EncryptSchemaMetaDataDecorator.java
index 36df8591091..e3af525ebf1 100644
--- 
a/shardingsphere-features/shardingsphere-encrypt/shardingsphere-encrypt-core/src/main/java/org/apache/shardingsphere/encrypt/metadata/EncryptSchemaMetaDataDecorator.java
+++ 
b/shardingsphere-features/shardingsphere-encrypt/shardingsphere-encrypt-core/src/main/java/org/apache/shardingsphere/encrypt/metadata/EncryptSchemaMetaDataDecorator.java
@@ -78,7 +78,7 @@ public final class EncryptSchemaMetaDataDecorator implements 
RuleBasedSchemaMeta
     }
     
     private ColumnMetaData createColumnMetaData(final String columnName, final 
ColumnMetaData columnMetaData) {
-        return new ColumnMetaData(columnName, columnMetaData.getDataType(), 
columnMetaData.isPrimaryKey(), columnMetaData.isGenerated(), 
columnMetaData.isCaseSensitive());
+        return new ColumnMetaData(columnName, columnMetaData.getDataType(), 
columnMetaData.isPrimaryKey(), columnMetaData.isGenerated(), 
columnMetaData.isCaseSensitive(), columnMetaData.isVisible());
     }
     
     @Override
diff --git 
a/shardingsphere-features/shardingsphere-encrypt/shardingsphere-encrypt-core/src/test/java/org/apache/shardingsphere/encrypt/metadata/EncryptSchemaMetaDataDecoratorTest.java
 
b/shardingsphere-features/shardingsphere-encrypt/shardingsphere-encrypt-core/src/test/java/org/apache/shardingsphere/encrypt/metadata/EncryptSchemaMetaDataDecoratorTest.java
index 1e420b32a18..f43fe1bce00 100644
--- 
a/shardingsphere-features/shardingsphere-encrypt/shardingsphere-encrypt-core/src/test/java/org/apache/shardingsphere/encrypt/metadata/EncryptSchemaMetaDataDecoratorTest.java
+++ 
b/shardingsphere-features/shardingsphere-encrypt/shardingsphere-encrypt-core/src/test/java/org/apache/shardingsphere/encrypt/metadata/EncryptSchemaMetaDataDecoratorTest.java
@@ -70,9 +70,9 @@ public final class EncryptSchemaMetaDataDecoratorTest {
     }
     
     private TableMetaData createTableMetaData() {
-        Collection<ColumnMetaData> columns = Arrays.asList(new 
ColumnMetaData("id", 1, true, true, true),
-                new ColumnMetaData("pwd_cipher", 2, false, false, true),
-                new ColumnMetaData("pwd_plain", 2, false, false, true));
+        Collection<ColumnMetaData> columns = Arrays.asList(new 
ColumnMetaData("id", 1, true, true, true, true),
+                new ColumnMetaData("pwd_cipher", 2, false, false, true, true),
+                new ColumnMetaData("pwd_plain", 2, false, false, true, true));
         return new TableMetaData(TABLE_NAME, columns, Collections.emptyList(), 
Collections.emptyList());
     }
     
diff --git 
a/shardingsphere-features/shardingsphere-sharding/shardingsphere-sharding-core/src/main/java/org/apache/shardingsphere/sharding/metadata/ShardingSchemaMetaDataDecorator.java
 
b/shardingsphere-features/shardingsphere-sharding/shardingsphere-sharding-core/src/main/java/org/apache/shardingsphere/sharding/metadata/ShardingSchemaMetaDataDecorator.java
index 92935f6028a..715d3bb9a96 100644
--- 
a/shardingsphere-features/shardingsphere-sharding/shardingsphere-sharding-core/src/main/java/org/apache/shardingsphere/sharding/metadata/ShardingSchemaMetaDataDecorator.java
+++ 
b/shardingsphere-features/shardingsphere-sharding/shardingsphere-sharding-core/src/main/java/org/apache/shardingsphere/sharding/metadata/ShardingSchemaMetaDataDecorator.java
@@ -107,7 +107,7 @@ public final class ShardingSchemaMetaDataDecorator 
implements RuleBasedSchemaMet
         Collection<ColumnMetaData> result = new LinkedList<>();
         for (ColumnMetaData each : tableMetaData.getColumns()) {
             boolean generated = 
each.getName().equalsIgnoreCase(tableRule.getGenerateKeyColumn().orElse(null));
-            result.add(new ColumnMetaData(each.getName(), each.getDataType(), 
each.isPrimaryKey(), generated, each.isCaseSensitive()));
+            result.add(new ColumnMetaData(each.getName(), each.getDataType(), 
each.isPrimaryKey(), generated, each.isCaseSensitive(), each.isVisible()));
         }
         return result;
     }
diff --git 
a/shardingsphere-features/shardingsphere-sharding/shardingsphere-sharding-core/src/test/java/org/apache/shardingsphere/sharding/merge/dql/ShardingDQLResultMergerTest.java
 
b/shardingsphere-features/shardingsphere-sharding/shardingsphere-sharding-core/src/test/java/org/apache/shardingsphere/sharding/merge/dql/ShardingDQLResultMergerTest.java
index c604d69ae99..07c88e40898 100644
--- 
a/shardingsphere-features/shardingsphere-sharding/shardingsphere-sharding-core/src/test/java/org/apache/shardingsphere/sharding/merge/dql/ShardingDQLResultMergerTest.java
+++ 
b/shardingsphere-features/shardingsphere-sharding/shardingsphere-sharding-core/src/test/java/org/apache/shardingsphere/sharding/merge/dql/ShardingDQLResultMergerTest.java
@@ -501,9 +501,9 @@ public final class ShardingDQLResultMergerTest {
     }
     
     private ShardingSphereDatabase createDatabase() {
-        ShardingSphereColumn column1 = new ShardingSphereColumn("col1", 0, 
false, false, false);
-        ShardingSphereColumn column2 = new ShardingSphereColumn("col2", 0, 
false, false, false);
-        ShardingSphereColumn column3 = new ShardingSphereColumn("col3", 0, 
false, false, false);
+        ShardingSphereColumn column1 = new ShardingSphereColumn("col1", 0, 
false, false, false, true);
+        ShardingSphereColumn column2 = new ShardingSphereColumn("col2", 0, 
false, false, false, true);
+        ShardingSphereColumn column3 = new ShardingSphereColumn("col3", 0, 
false, false, false, true);
         ShardingSphereTable table = new ShardingSphereTable("tbl", 
Arrays.asList(column1, column2, column3), Collections.emptyList(), 
Collections.emptyList());
         ShardingSphereSchema schema = new 
ShardingSphereSchema(Collections.singletonMap("tbl", table));
         return new ShardingSphereDatabase(DefaultDatabase.LOGIC_NAME, 
DatabaseTypeFactory.getInstance("MySQL"), mock(ShardingSphereResource.class),
diff --git 
a/shardingsphere-features/shardingsphere-sharding/shardingsphere-sharding-core/src/test/java/org/apache/shardingsphere/sharding/merge/dql/groupby/GroupByStreamMergedResultTest.java
 
b/shardingsphere-features/shardingsphere-sharding/shardingsphere-sharding-core/src/test/java/org/apache/shardingsphere/sharding/merge/dql/groupby/GroupByStreamMergedResultTest.java
index e48afa66b7d..e34f7e44a3b 100644
--- 
a/shardingsphere-features/shardingsphere-sharding/shardingsphere-sharding-core/src/test/java/org/apache/shardingsphere/sharding/merge/dql/groupby/GroupByStreamMergedResultTest.java
+++ 
b/shardingsphere-features/shardingsphere-sharding/shardingsphere-sharding-core/src/test/java/org/apache/shardingsphere/sharding/merge/dql/groupby/GroupByStreamMergedResultTest.java
@@ -172,9 +172,9 @@ public final class GroupByStreamMergedResultTest {
     }
     
     private ShardingSphereDatabase createDatabase() {
-        ShardingSphereColumn column1 = new ShardingSphereColumn("col1", 0, 
false, false, false);
-        ShardingSphereColumn column2 = new ShardingSphereColumn("col2", 0, 
false, false, false);
-        ShardingSphereColumn column3 = new ShardingSphereColumn("col3", 0, 
false, false, false);
+        ShardingSphereColumn column1 = new ShardingSphereColumn("col1", 0, 
false, false, false, true);
+        ShardingSphereColumn column2 = new ShardingSphereColumn("col2", 0, 
false, false, false, true);
+        ShardingSphereColumn column3 = new ShardingSphereColumn("col3", 0, 
false, false, false, true);
         ShardingSphereTable table = new ShardingSphereTable("tbl", 
Arrays.asList(column1, column2, column3), Collections.emptyList(), 
Collections.emptyList());
         ShardingSphereSchema schema = new 
ShardingSphereSchema(Collections.singletonMap("tbl", table));
         return new ShardingSphereDatabase(DefaultDatabase.LOGIC_NAME, 
DatabaseTypeFactory.getInstance("MySQL"),
diff --git 
a/shardingsphere-features/shardingsphere-sharding/shardingsphere-sharding-core/src/test/java/org/apache/shardingsphere/sharding/merge/dql/orderby/OrderByStreamMergedResultTest.java
 
b/shardingsphere-features/shardingsphere-sharding/shardingsphere-sharding-core/src/test/java/org/apache/shardingsphere/sharding/merge/dql/orderby/OrderByStreamMergedResultTest.java
index 3e9d51f4ea9..3402bc788a0 100644
--- 
a/shardingsphere-features/shardingsphere-sharding/shardingsphere-sharding-core/src/test/java/org/apache/shardingsphere/sharding/merge/dql/orderby/OrderByStreamMergedResultTest.java
+++ 
b/shardingsphere-features/shardingsphere-sharding/shardingsphere-sharding-core/src/test/java/org/apache/shardingsphere/sharding/merge/dql/orderby/OrderByStreamMergedResultTest.java
@@ -195,8 +195,8 @@ public final class OrderByStreamMergedResultTest {
     }
     
     private ShardingSphereDatabase createDatabase() {
-        ShardingSphereColumn column1 = new ShardingSphereColumn("col1", 0, 
false, false, true);
-        ShardingSphereColumn column2 = new ShardingSphereColumn("col2", 0, 
false, false, false);
+        ShardingSphereColumn column1 = new ShardingSphereColumn("col1", 0, 
false, false, true, true);
+        ShardingSphereColumn column2 = new ShardingSphereColumn("col2", 0, 
false, false, false, true);
         ShardingSphereTable table = new ShardingSphereTable("tbl", 
Arrays.asList(column1, column2), Collections.emptyList(), 
Collections.emptyList());
         ShardingSphereSchema schema = new 
ShardingSphereSchema(Collections.singletonMap("tbl", table));
         return new ShardingSphereDatabase(DefaultDatabase.LOGIC_NAME,
diff --git 
a/shardingsphere-features/shardingsphere-sharding/shardingsphere-sharding-core/src/test/java/org/apache/shardingsphere/sharding/metadata/ShardingSchemaMetaDataDecoratorTest.java
 
b/shardingsphere-features/shardingsphere-sharding/shardingsphere-sharding-core/src/test/java/org/apache/shardingsphere/sharding/metadata/ShardingSchemaMetaDataDecoratorTest.java
index 9f023e592b1..0a5a3d72f73 100644
--- 
a/shardingsphere-features/shardingsphere-sharding/shardingsphere-sharding-core/src/test/java/org/apache/shardingsphere/sharding/metadata/ShardingSchemaMetaDataDecoratorTest.java
+++ 
b/shardingsphere-features/shardingsphere-sharding/shardingsphere-sharding-core/src/test/java/org/apache/shardingsphere/sharding/metadata/ShardingSchemaMetaDataDecoratorTest.java
@@ -66,10 +66,10 @@ public final class ShardingSchemaMetaDataDecoratorTest {
     }
     
     private TableMetaData createTableMetaData() {
-        Collection<ColumnMetaData> columns = Arrays.asList(new 
ColumnMetaData("id", 1, true, true, true),
-                new ColumnMetaData("pwd_cipher", 2, false, false, true),
-                new ColumnMetaData("pwd_plain", 2, false, false, true),
-                new ColumnMetaData("product_id", 2, false, false, true));
+        Collection<ColumnMetaData> columns = Arrays.asList(new 
ColumnMetaData("id", 1, true, true, true, true),
+                new ColumnMetaData("pwd_cipher", 2, false, false, true, true),
+                new ColumnMetaData("pwd_plain", 2, false, false, true, true),
+                new ColumnMetaData("product_id", 2, false, false, true, true));
         return new TableMetaData(TABLE_NAME, columns, Collections.emptyList(), 
Collections.emptyList());
     }
 }
diff --git 
a/shardingsphere-features/shardingsphere-sharding/shardingsphere-sharding-core/src/test/java/org/apache/shardingsphere/sharding/route/engine/type/standard/AbstractSQLRouteTest.java
 
b/shardingsphere-features/shardingsphere-sharding/shardingsphere-sharding-core/src/test/java/org/apache/shardingsphere/sharding/route/engine/type/standard/AbstractSQLRouteTest.java
index b1acf6c4dc7..c4ca764d9a1 100644
--- 
a/shardingsphere-features/shardingsphere-sharding/shardingsphere-sharding-core/src/test/java/org/apache/shardingsphere/sharding/route/engine/type/standard/AbstractSQLRouteTest.java
+++ 
b/shardingsphere-features/shardingsphere-sharding/shardingsphere-sharding-core/src/test/java/org/apache/shardingsphere/sharding/route/engine/type/standard/AbstractSQLRouteTest.java
@@ -71,16 +71,16 @@ public abstract class AbstractSQLRouteTest extends 
AbstractRoutingEngineTest {
     
     private Map<String, ShardingSphereSchema> buildSchemas() {
         Map<String, ShardingSphereTable> tables = new HashMap<>(3, 1);
-        tables.put("t_order", new ShardingSphereTable("t_order", 
Arrays.asList(new ShardingSphereColumn("order_id", Types.INTEGER, true, false, 
false),
-                new ShardingSphereColumn("user_id", Types.INTEGER, false, 
false, false),
-                new ShardingSphereColumn("status", Types.INTEGER, false, 
false, false)), Collections.emptyList(), Collections.emptyList()));
-        tables.put("t_order_item", new ShardingSphereTable("t_order_item", 
Arrays.asList(new ShardingSphereColumn("item_id", Types.INTEGER, true, false, 
false),
-                new ShardingSphereColumn("order_id", Types.INTEGER, false, 
false, false),
-                new ShardingSphereColumn("user_id", Types.INTEGER, false, 
false, false),
-                new ShardingSphereColumn("status", Types.VARCHAR, false, 
false, false),
-                new ShardingSphereColumn("c_date", Types.TIMESTAMP, false, 
false, false)), Collections.emptyList(), Collections.emptyList()));
+        tables.put("t_order", new ShardingSphereTable("t_order", 
Arrays.asList(new ShardingSphereColumn("order_id", Types.INTEGER, true, false, 
false, true),
+                new ShardingSphereColumn("user_id", Types.INTEGER, false, 
false, false, true),
+                new ShardingSphereColumn("status", Types.INTEGER, false, 
false, false, true)), Collections.emptyList(), Collections.emptyList()));
+        tables.put("t_order_item", new ShardingSphereTable("t_order_item", 
Arrays.asList(new ShardingSphereColumn("item_id", Types.INTEGER, true, false, 
false, true),
+                new ShardingSphereColumn("order_id", Types.INTEGER, false, 
false, false, true),
+                new ShardingSphereColumn("user_id", Types.INTEGER, false, 
false, false, true),
+                new ShardingSphereColumn("status", Types.VARCHAR, false, 
false, false, true),
+                new ShardingSphereColumn("c_date", Types.TIMESTAMP, false, 
false, false, true)), Collections.emptyList(), Collections.emptyList()));
         tables.put("t_other", new ShardingSphereTable("t_other", 
Collections.singletonList(
-                new ShardingSphereColumn("order_id", Types.INTEGER, true, 
false, false)), Collections.emptyList(), Collections.emptyList()));
+                new ShardingSphereColumn("order_id", Types.INTEGER, true, 
false, false, true)), Collections.emptyList(), Collections.emptyList()));
         tables.put("t_category", new ShardingSphereTable("t_category", 
Collections.emptyList(), Collections.emptyList(), Collections.emptyList()));
         return Collections.singletonMap(DefaultDatabase.LOGIC_NAME, new 
ShardingSphereSchema(tables));
     }
diff --git 
a/shardingsphere-infra/shardingsphere-infra-binder/src/test/java/org/apache/shardingsphere/infra/binder/segment/insert/keygen/engine/GeneratedKeyContextEngineTest.java
 
b/shardingsphere-infra/shardingsphere-infra-binder/src/test/java/org/apache/shardingsphere/infra/binder/segment/insert/keygen/engine/GeneratedKeyContextEngineTest.java
index cc93200e8bb..05b0840c878 100644
--- 
a/shardingsphere-infra/shardingsphere-infra-binder/src/test/java/org/apache/shardingsphere/infra/binder/segment/insert/keygen/engine/GeneratedKeyContextEngineTest.java
+++ 
b/shardingsphere-infra/shardingsphere-infra-binder/src/test/java/org/apache/shardingsphere/infra/binder/segment/insert/keygen/engine/GeneratedKeyContextEngineTest.java
@@ -59,7 +59,7 @@ public final class GeneratedKeyContextEngineTest {
     @Before
     public void setUp() {
         ShardingSphereTable table = new ShardingSphereTable(
-                "tbl", Collections.singletonList(new 
ShardingSphereColumn("id", Types.INTEGER, true, true, false)), 
Collections.emptyList(), Collections.emptyList());
+                "tbl", Collections.singletonList(new 
ShardingSphereColumn("id", Types.INTEGER, true, true, false, true)), 
Collections.emptyList(), Collections.emptyList());
         schema = new ShardingSphereSchema(Collections.singletonMap("tbl", 
table));
     }
     
diff --git 
a/shardingsphere-infra/shardingsphere-infra-binder/src/test/java/org/apache/shardingsphere/infra/binder/segment/table/TablesContextTest.java
 
b/shardingsphere-infra/shardingsphere-infra-binder/src/test/java/org/apache/shardingsphere/infra/binder/segment/table/TablesContextTest.java
index c9f1b466df6..49afe6d18d0 100644
--- 
a/shardingsphere-infra/shardingsphere-infra-binder/src/test/java/org/apache/shardingsphere/infra/binder/segment/table/TablesContextTest.java
+++ 
b/shardingsphere-infra/shardingsphere-infra-binder/src/test/java/org/apache/shardingsphere/infra/binder/segment/table/TablesContextTest.java
@@ -110,7 +110,7 @@ public final class TablesContextTest {
         SimpleTableSegment tableSegment1 = createTableSegment("TABLE_1", 
"TBL_1");
         SimpleTableSegment tableSegment2 = createTableSegment("TABLE_2", 
"TBL_2");
         ShardingSphereTable table = new ShardingSphereTable("TABLE_1",
-                Collections.singletonList(new ShardingSphereColumn("COL", 0, 
false, false, true)), Collections.emptyList(), Collections.emptyList());
+                Collections.singletonList(new ShardingSphereColumn("COL", 0, 
false, false, true, true)), Collections.emptyList(), Collections.emptyList());
         ShardingSphereSchema schema = new 
ShardingSphereSchema(Stream.of(table).collect(Collectors.toMap(ShardingSphereTable::getName,
 value -> value)));
         ColumnSegment columnSegment = createColumnSegment(null, "COL");
         Map<String, String> actual = new 
TablesContext(Arrays.asList(tableSegment1, tableSegment2),
@@ -168,7 +168,7 @@ public final class TablesContextTest {
         SimpleTableSegment tableSegment1 = createTableSegment("TABLE_1", 
"TBL_1");
         SimpleTableSegment tableSegment2 = createTableSegment("TABLE_2", 
"TBL_2");
         ShardingSphereTable table = new ShardingSphereTable("TABLE_1", 
Collections.singletonList(
-                new ShardingSphereColumn("COL", 0, false, false, true)), 
Collections.emptyList(), Collections.emptyList());
+                new ShardingSphereColumn("COL", 0, false, false, true, true)), 
Collections.emptyList(), Collections.emptyList());
         ShardingSphereSchema schema = new 
ShardingSphereSchema(Stream.of(table).collect(Collectors.toMap(ShardingSphereTable::getName,
 value -> value)));
         ColumnProjection columnProjection = new ColumnProjection(null, "COL", 
"CL");
         Map<String, String> actual = new 
TablesContext(Arrays.asList(tableSegment1, tableSegment2), 
DatabaseTypeEngine.getDatabaseType("MySQL"))
diff --git 
a/shardingsphere-infra/shardingsphere-infra-common/src/main/java/org/apache/shardingsphere/infra/metadata/database/schema/builder/GenericSchemaBuilder.java
 
b/shardingsphere-infra/shardingsphere-infra-common/src/main/java/org/apache/shardingsphere/infra/metadata/database/schema/builder/GenericSchemaBuilder.java
index d8b6fb049a1..951a9741d0f 100644
--- 
a/shardingsphere-infra/shardingsphere-infra-common/src/main/java/org/apache/shardingsphere/infra/metadata/database/schema/builder/GenericSchemaBuilder.java
+++ 
b/shardingsphere-infra/shardingsphere-infra-common/src/main/java/org/apache/shardingsphere/infra/metadata/database/schema/builder/GenericSchemaBuilder.java
@@ -140,7 +140,7 @@ public final class GenericSchemaBuilder {
     private static Collection<ShardingSphereColumn> convertToColumns(final 
Collection<ColumnMetaData> columnMetaDataList) {
         Collection<ShardingSphereColumn> result = new LinkedList<>();
         for (ColumnMetaData each : columnMetaDataList) {
-            result.add(new ShardingSphereColumn(each.getName(), 
each.getDataType(), each.isPrimaryKey(), each.isGenerated(), 
each.isCaseSensitive()));
+            result.add(new ShardingSphereColumn(each.getName(), 
each.getDataType(), each.isPrimaryKey(), each.isGenerated(), 
each.isCaseSensitive(), each.isVisible()));
         }
         return result;
     }
diff --git 
a/shardingsphere-infra/shardingsphere-infra-common/src/main/java/org/apache/shardingsphere/infra/metadata/database/schema/decorator/model/ShardingSphereColumn.java
 
b/shardingsphere-infra/shardingsphere-infra-common/src/main/java/org/apache/shardingsphere/infra/metadata/database/schema/decorator/model/ShardingSphereColumn.java
index f369edec575..e6db7d4c2fd 100644
--- 
a/shardingsphere-infra/shardingsphere-infra-common/src/main/java/org/apache/shardingsphere/infra/metadata/database/schema/decorator/model/ShardingSphereColumn.java
+++ 
b/shardingsphere-infra/shardingsphere-infra-common/src/main/java/org/apache/shardingsphere/infra/metadata/database/schema/decorator/model/ShardingSphereColumn.java
@@ -40,4 +40,6 @@ public final class ShardingSphereColumn {
     private final boolean generated;
     
     private final boolean caseSensitive;
+    
+    private final boolean visible;
 }
diff --git 
a/shardingsphere-infra/shardingsphere-infra-common/src/main/java/org/apache/shardingsphere/infra/metadata/database/schema/loader/common/ColumnMetaDataLoader.java
 
b/shardingsphere-infra/shardingsphere-infra-common/src/main/java/org/apache/shardingsphere/infra/metadata/database/schema/loader/common/ColumnMetaDataLoader.java
index a6cc53bca89..d38610feb54 100644
--- 
a/shardingsphere-infra/shardingsphere-infra-common/src/main/java/org/apache/shardingsphere/infra/metadata/database/schema/loader/common/ColumnMetaDataLoader.java
+++ 
b/shardingsphere-infra/shardingsphere-infra-common/src/main/java/org/apache/shardingsphere/infra/metadata/database/schema/loader/common/ColumnMetaDataLoader.java
@@ -32,6 +32,7 @@ import java.util.HashSet;
 import java.util.LinkedList;
 import java.util.List;
 import java.util.Objects;
+import java.util.stream.Collectors;
 
 /**
  * Column meta data loader.
@@ -72,18 +73,19 @@ public final class ColumnMetaDataLoader {
                 }
             }
         }
-        try (Statement statement = connection.createStatement(); ResultSet 
resultSet = statement.executeQuery(generateEmptyResultSQL(tableNamePattern, 
databaseType))) {
+        try (Statement statement = connection.createStatement(); ResultSet 
resultSet = statement.executeQuery(generateEmptyResultSQL(tableNamePattern, 
columnNames, databaseType))) {
             for (int i = 0; i < columnNames.size(); i++) {
                 boolean generated = resultSet.getMetaData().isAutoIncrement(i 
+ 1);
                 
isCaseSensitives.add(resultSet.getMetaData().isCaseSensitive(resultSet.findColumn(columnNames.get(i))));
-                result.add(new ColumnMetaData(columnNames.get(i), 
columnTypes.get(i), isPrimaryKeys.get(i), generated, isCaseSensitives.get(i)));
+                result.add(new ColumnMetaData(columnNames.get(i), 
columnTypes.get(i), isPrimaryKeys.get(i), generated, isCaseSensitives.get(i), 
true));
             }
         }
         return result;
     }
     
-    private static String generateEmptyResultSQL(final String table, final 
DatabaseType databaseType) {
-        return String.format("SELECT * FROM %s WHERE 1 != 1", 
databaseType.getQuoteCharacter().wrap(table));
+    private static String generateEmptyResultSQL(final String table, final 
List<String> columnNames, final DatabaseType databaseType) {
+        String wrappedColumnNames = columnNames.stream().map(each -> 
databaseType.getQuoteCharacter().wrap(each)).collect(Collectors.joining(","));
+        return String.format("SELECT %s FROM %s WHERE 1 != 1", 
wrappedColumnNames, databaseType.getQuoteCharacter().wrap(table));
     }
     
     private static Collection<String> loadPrimaryKeys(final Connection 
connection, final String table) throws SQLException {
diff --git 
a/shardingsphere-infra/shardingsphere-infra-common/src/main/java/org/apache/shardingsphere/infra/metadata/database/schema/loader/dialect/H2SchemaMetaDataLoader.java
 
b/shardingsphere-infra/shardingsphere-infra-common/src/main/java/org/apache/shardingsphere/infra/metadata/database/schema/loader/dialect/H2SchemaMetaDataLoader.java
index 205806fa5db..de53acf23ed 100644
--- 
a/shardingsphere-infra/shardingsphere-infra-common/src/main/java/org/apache/shardingsphere/infra/metadata/database/schema/loader/dialect/H2SchemaMetaDataLoader.java
+++ 
b/shardingsphere-infra/shardingsphere-infra-common/src/main/java/org/apache/shardingsphere/infra/metadata/database/schema/loader/dialect/H2SchemaMetaDataLoader.java
@@ -108,7 +108,7 @@ public final class H2SchemaMetaDataLoader implements 
DialectSchemaMetaDataLoader
         boolean primaryKey = primaryKeys.contains(columnName);
         boolean generated = tableGenerated.getOrDefault(columnName, 
Boolean.FALSE);
         // H2 database case sensitive is always true
-        return new ColumnMetaData(columnName, dataTypeMap.get(typeName), 
primaryKey, generated, true);
+        return new ColumnMetaData(columnName, dataTypeMap.get(typeName), 
primaryKey, generated, true, true);
     }
     
     private String getTableMetaDataSQL(final Collection<String> tables) {
diff --git 
a/shardingsphere-infra/shardingsphere-infra-common/src/main/java/org/apache/shardingsphere/infra/metadata/database/schema/loader/dialect/MySQLSchemaMetaDataLoader.java
 
b/shardingsphere-infra/shardingsphere-infra-common/src/main/java/org/apache/shardingsphere/infra/metadata/database/schema/loader/dialect/MySQLSchemaMetaDataLoader.java
index 6a65a2a2a02..2936436cd2d 100644
--- 
a/shardingsphere-infra/shardingsphere-infra-common/src/main/java/org/apache/shardingsphere/infra/metadata/database/schema/loader/dialect/MySQLSchemaMetaDataLoader.java
+++ 
b/shardingsphere-infra/shardingsphere-infra-common/src/main/java/org/apache/shardingsphere/infra/metadata/database/schema/loader/dialect/MySQLSchemaMetaDataLoader.java
@@ -124,10 +124,12 @@ public final class MySQLSchemaMetaDataLoader implements 
DialectSchemaMetaDataLoa
         String columnName = resultSet.getString("COLUMN_NAME");
         String dataType = resultSet.getString("DATA_TYPE");
         boolean primaryKey = "PRI".equals(resultSet.getString("COLUMN_KEY"));
-        boolean generated = 
"auto_increment".equals(resultSet.getString("EXTRA"));
+        String extra = resultSet.getString("EXTRA");
+        boolean generated = "auto_increment".equals(extra);
         String collationName = resultSet.getString("COLLATION_NAME");
         boolean caseSensitive = null != collationName && 
!collationName.endsWith("_ci");
-        return new ColumnMetaData(columnName, dataTypeMap.get(dataType), 
primaryKey, generated, caseSensitive);
+        boolean visible = !"INVISIBLE".equals(extra);
+        return new ColumnMetaData(columnName, dataTypeMap.get(dataType), 
primaryKey, generated, caseSensitive, visible);
     }
     
     private String getTableMetaDataSQL(final Collection<String> tables) {
diff --git 
a/shardingsphere-infra/shardingsphere-infra-common/src/main/java/org/apache/shardingsphere/infra/metadata/database/schema/loader/dialect/OpenGaussSchemaMetaDataLoader.java
 
b/shardingsphere-infra/shardingsphere-infra-common/src/main/java/org/apache/shardingsphere/infra/metadata/database/schema/loader/dialect/OpenGaussSchemaMetaDataLoader.java
index fb00aabb9cc..a507e8b704c 100644
--- 
a/shardingsphere-infra/shardingsphere-infra-common/src/main/java/org/apache/shardingsphere/infra/metadata/database/schema/loader/dialect/OpenGaussSchemaMetaDataLoader.java
+++ 
b/shardingsphere-infra/shardingsphere-infra-common/src/main/java/org/apache/shardingsphere/infra/metadata/database/schema/loader/dialect/OpenGaussSchemaMetaDataLoader.java
@@ -130,7 +130,7 @@ public final class OpenGaussSchemaMetaDataLoader implements 
DialectSchemaMetaDat
         boolean generated = null != columnDefault && 
columnDefault.startsWith("nextval(");
         // TODO user defined collation which deterministic is false
         boolean caseSensitive = true;
-        return new ColumnMetaData(columnName, dataTypeMap.get(dataType), 
isPrimaryKey, generated, caseSensitive);
+        return new ColumnMetaData(columnName, dataTypeMap.get(dataType), 
isPrimaryKey, generated, caseSensitive, true);
     }
     
     private String getColumnMetaDataSQL(final Collection<String> schemaNames, 
final Collection<String> tables) {
diff --git 
a/shardingsphere-infra/shardingsphere-infra-common/src/main/java/org/apache/shardingsphere/infra/metadata/database/schema/loader/dialect/OracleSchemaMetaDataLoader.java
 
b/shardingsphere-infra/shardingsphere-infra-common/src/main/java/org/apache/shardingsphere/infra/metadata/database/schema/loader/dialect/OracleSchemaMetaDataLoader.java
index 17a6bc399f1..8d01838fec5 100644
--- 
a/shardingsphere-infra/shardingsphere-infra-common/src/main/java/org/apache/shardingsphere/infra/metadata/database/schema/loader/dialect/OracleSchemaMetaDataLoader.java
+++ 
b/shardingsphere-infra/shardingsphere-infra-common/src/main/java/org/apache/shardingsphere/infra/metadata/database/schema/loader/dialect/OracleSchemaMetaDataLoader.java
@@ -115,7 +115,7 @@ public final class OracleSchemaMetaDataLoader implements 
DialectSchemaMetaDataLo
         boolean generated = versionContainsIdentityColumn(databaseMetaData) && 
"YES".equals(resultSet.getString("IDENTITY_COLUMN"));
         // TODO need to support caseSensitive when version < 12.2.
         boolean caseSensitive = versionContainsCollation(databaseMetaData) && 
resultSet.getString("COLLATION").endsWith("_CS");
-        return new ColumnMetaData(columnName, dataTypeMap.get(dataType), 
primaryKey, generated, caseSensitive);
+        return new ColumnMetaData(columnName, dataTypeMap.get(dataType), 
primaryKey, generated, caseSensitive, true);
     }
     
     private String getOriginalDataType(final String dataType) {
diff --git 
a/shardingsphere-infra/shardingsphere-infra-common/src/main/java/org/apache/shardingsphere/infra/metadata/database/schema/loader/dialect/PostgreSQLSchemaMetaDataLoader.java
 
b/shardingsphere-infra/shardingsphere-infra-common/src/main/java/org/apache/shardingsphere/infra/metadata/database/schema/loader/dialect/PostgreSQLSchemaMetaDataLoader.java
index 1b9150deb81..0fc335a03e2 100644
--- 
a/shardingsphere-infra/shardingsphere-infra-common/src/main/java/org/apache/shardingsphere/infra/metadata/database/schema/loader/dialect/PostgreSQLSchemaMetaDataLoader.java
+++ 
b/shardingsphere-infra/shardingsphere-infra-common/src/main/java/org/apache/shardingsphere/infra/metadata/database/schema/loader/dialect/PostgreSQLSchemaMetaDataLoader.java
@@ -138,7 +138,7 @@ public final class PostgreSQLSchemaMetaDataLoader 
implements DialectSchemaMetaDa
         boolean generated = null != columnDefault && 
columnDefault.startsWith("nextval(");
         // TODO user defined collation which deterministic is false
         boolean caseSensitive = true;
-        return new ColumnMetaData(columnName, dataTypeMap.get(dataType), 
isPrimaryKey, generated, caseSensitive);
+        return new ColumnMetaData(columnName, dataTypeMap.get(dataType), 
isPrimaryKey, generated, caseSensitive, true);
     }
     
     private String getColumnMetaDataSQL(final Collection<String> schemaNames, 
final Collection<String> tables) {
diff --git 
a/shardingsphere-infra/shardingsphere-infra-common/src/main/java/org/apache/shardingsphere/infra/metadata/database/schema/loader/dialect/SQLServerSchemaMetaDataLoader.java
 
b/shardingsphere-infra/shardingsphere-infra-common/src/main/java/org/apache/shardingsphere/infra/metadata/database/schema/loader/dialect/SQLServerSchemaMetaDataLoader.java
index e6d1e86a342..e82c5687144 100644
--- 
a/shardingsphere-infra/shardingsphere-infra-common/src/main/java/org/apache/shardingsphere/infra/metadata/database/schema/loader/dialect/SQLServerSchemaMetaDataLoader.java
+++ 
b/shardingsphere-infra/shardingsphere-infra-common/src/main/java/org/apache/shardingsphere/infra/metadata/database/schema/loader/dialect/SQLServerSchemaMetaDataLoader.java
@@ -99,7 +99,7 @@ public final class SQLServerSchemaMetaDataLoader implements 
DialectSchemaMetaDat
         boolean primaryKey = "1".equals(resultSet.getString("IS_PRIMARY_KEY"));
         boolean generated = "1".equals(resultSet.getString("IS_IDENTITY"));
         boolean caseSensitive = null != collationName && 
collationName.indexOf("_CS") > 0;
-        return new ColumnMetaData(columnName, dataTypeMap.get(dataType), 
primaryKey, generated, caseSensitive);
+        return new ColumnMetaData(columnName, dataTypeMap.get(dataType), 
primaryKey, generated, caseSensitive, true);
     }
     
     private String getTableMetaDataSQL(final Collection<String> tables) {
diff --git 
a/shardingsphere-infra/shardingsphere-infra-common/src/main/java/org/apache/shardingsphere/infra/metadata/database/schema/loader/model/ColumnMetaData.java
 
b/shardingsphere-infra/shardingsphere-infra-common/src/main/java/org/apache/shardingsphere/infra/metadata/database/schema/loader/model/ColumnMetaData.java
index 46d05da33cc..f25b887da5d 100644
--- 
a/shardingsphere-infra/shardingsphere-infra-common/src/main/java/org/apache/shardingsphere/infra/metadata/database/schema/loader/model/ColumnMetaData.java
+++ 
b/shardingsphere-infra/shardingsphere-infra-common/src/main/java/org/apache/shardingsphere/infra/metadata/database/schema/loader/model/ColumnMetaData.java
@@ -40,4 +40,6 @@ public final class ColumnMetaData {
     private final boolean generated;
     
     private final boolean caseSensitive;
+    
+    private final boolean visible;
 }
diff --git 
a/shardingsphere-infra/shardingsphere-infra-common/src/main/java/org/apache/shardingsphere/infra/yaml/schema/pojo/YamlShardingSphereColumn.java
 
b/shardingsphere-infra/shardingsphere-infra-common/src/main/java/org/apache/shardingsphere/infra/yaml/schema/pojo/YamlShardingSphereColumn.java
index 619756662b4..626e51196b2 100644
--- 
a/shardingsphere-infra/shardingsphere-infra-common/src/main/java/org/apache/shardingsphere/infra/yaml/schema/pojo/YamlShardingSphereColumn.java
+++ 
b/shardingsphere-infra/shardingsphere-infra-common/src/main/java/org/apache/shardingsphere/infra/yaml/schema/pojo/YamlShardingSphereColumn.java
@@ -37,4 +37,6 @@ public final class YamlShardingSphereColumn implements 
YamlConfiguration {
     private boolean generated;
     
     private boolean caseSensitive;
+    
+    private boolean visible;
 }
diff --git 
a/shardingsphere-infra/shardingsphere-infra-common/src/main/java/org/apache/shardingsphere/infra/yaml/schema/swapper/ShardingSphereTableYamlSwapper.java
 
b/shardingsphere-infra/shardingsphere-infra-common/src/main/java/org/apache/shardingsphere/infra/yaml/schema/swapper/ShardingSphereTableYamlSwapper.java
index 7d6de773d8a..7c953e0a256 100644
--- 
a/shardingsphere-infra/shardingsphere-infra-common/src/main/java/org/apache/shardingsphere/infra/yaml/schema/swapper/ShardingSphereTableYamlSwapper.java
+++ 
b/shardingsphere-infra/shardingsphere-infra-common/src/main/java/org/apache/shardingsphere/infra/yaml/schema/swapper/ShardingSphereTableYamlSwapper.java
@@ -74,7 +74,7 @@ public final class ShardingSphereTableYamlSwapper implements 
YamlConfigurationSw
     }
     
     private ShardingSphereColumn swapColumn(final YamlShardingSphereColumn 
column) {
-        return new ShardingSphereColumn(column.getName(), 
column.getDataType(), column.isPrimaryKey(), column.isGenerated(), 
column.isCaseSensitive());
+        return new ShardingSphereColumn(column.getName(), 
column.getDataType(), column.isPrimaryKey(), column.isGenerated(), 
column.isCaseSensitive(), column.isVisible());
     }
     
     private Map<String, YamlShardingSphereConstraint> 
swapYamlConstraints(final Map<String, ShardingSphereConstraint> constrains) {
@@ -109,6 +109,7 @@ public final class ShardingSphereTableYamlSwapper 
implements YamlConfigurationSw
         result.setGenerated(column.isGenerated());
         result.setPrimaryKey(column.isPrimaryKey());
         result.setDataType(column.getDataType());
+        result.setVisible(column.isVisible());
         return result;
     }
 }
diff --git 
a/shardingsphere-infra/shardingsphere-infra-common/src/test/java/org/apache/shardingsphere/infra/metadata/database/schema/ShardingSphereSchemaTest.java
 
b/shardingsphere-infra/shardingsphere-infra-common/src/test/java/org/apache/shardingsphere/infra/metadata/database/schema/ShardingSphereSchemaTest.java
index de7a4605803..9b5356e300c 100644
--- 
a/shardingsphere-infra/shardingsphere-infra-common/src/test/java/org/apache/shardingsphere/infra/metadata/database/schema/ShardingSphereSchemaTest.java
+++ 
b/shardingsphere-infra/shardingsphere-infra-common/src/test/java/org/apache/shardingsphere/infra/metadata/database/schema/ShardingSphereSchemaTest.java
@@ -68,21 +68,21 @@ public final class ShardingSphereSchemaTest {
     @Test
     public void assertContainsColumn() {
         ShardingSphereTable table = new ShardingSphereTable("tbl", 
Collections.singletonList(
-                new ShardingSphereColumn("col", 0, false, false, false)), 
Collections.emptyList(), Collections.emptyList());
+                new ShardingSphereColumn("col", 0, false, false, false, 
true)), Collections.emptyList(), Collections.emptyList());
         assertTrue(new ShardingSphereSchema(Collections.singletonMap("tbl", 
table)).containsColumn("tbl", "col"));
     }
     
     @Test
     public void assertGetAllColumnNamesWhenContainsKey() {
         ShardingSphereTable table = new ShardingSphereTable("tbl", 
Collections.singletonList(
-                new ShardingSphereColumn("col", 0, false, false, false)), 
Collections.emptyList(), Collections.emptyList());
+                new ShardingSphereColumn("col", 0, false, false, false, 
true)), Collections.emptyList(), Collections.emptyList());
         assertThat(new ShardingSphereSchema(Collections.singletonMap("tbl", 
table)).getAllColumnNames("tbl"), is(Collections.singletonList("col")));
     }
     
     @Test
     public void assertGetAllColumnNamesWhenNotContainsKey() {
         ShardingSphereTable table = new ShardingSphereTable("tbl", 
Collections.singletonList(
-                new ShardingSphereColumn("col", 0, false, false, false)), 
Collections.emptyList(), Collections.emptyList());
+                new ShardingSphereColumn("col", 0, false, false, false, 
true)), Collections.emptyList(), Collections.emptyList());
         assertThat(new ShardingSphereSchema(Collections.singletonMap("tbl1", 
table)).getAllColumnNames("tbl2"), is(Collections.<String>emptyList()));
     }
     
diff --git 
a/shardingsphere-infra/shardingsphere-infra-common/src/test/java/org/apache/shardingsphere/infra/metadata/database/schema/loader/dialect/H2SchemaMetaDataLoaderTest.java
 
b/shardingsphere-infra/shardingsphere-infra-common/src/test/java/org/apache/shardingsphere/infra/metadata/database/schema/loader/dialect/H2SchemaMetaDataLoaderTest.java
index 8c68becf058..cb9e532c730 100644
--- 
a/shardingsphere-infra/shardingsphere-infra-common/src/test/java/org/apache/shardingsphere/infra/metadata/database/schema/loader/dialect/H2SchemaMetaDataLoaderTest.java
+++ 
b/shardingsphere-infra/shardingsphere-infra-common/src/test/java/org/apache/shardingsphere/infra/metadata/database/schema/loader/dialect/H2SchemaMetaDataLoaderTest.java
@@ -156,8 +156,8 @@ public final class H2SchemaMetaDataLoaderTest {
         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", 4, 
true, false, true)));
-        assertThat(columnsIterator.next(), is(new ColumnMetaData("name", 12, 
false, false, true)));
+        assertThat(columnsIterator.next(), is(new ColumnMetaData("id", 4, 
true, false, true, true)));
+        assertThat(columnsIterator.next(), is(new ColumnMetaData("name", 12, 
false, false, true, true)));
         assertThat(actualTableMetaData.getIndexes().size(), is(1));
         Iterator<IndexMetaData> indexesIterator = 
actualTableMetaData.getIndexes().iterator();
         assertThat(indexesIterator.next(), is(new IndexMetaData("id")));
diff --git 
a/shardingsphere-infra/shardingsphere-infra-common/src/test/java/org/apache/shardingsphere/infra/metadata/database/schema/loader/dialect/MySQLSchemaMetaDataLoaderTest.java
 
b/shardingsphere-infra/shardingsphere-infra-common/src/test/java/org/apache/shardingsphere/infra/metadata/database/schema/loader/dialect/MySQLSchemaMetaDataLoaderTest.java
index bfdea913e28..bf8bd776499 100644
--- 
a/shardingsphere-infra/shardingsphere-infra-common/src/test/java/org/apache/shardingsphere/infra/metadata/database/schema/loader/dialect/MySQLSchemaMetaDataLoaderTest.java
+++ 
b/shardingsphere-infra/shardingsphere-infra-common/src/test/java/org/apache/shardingsphere/infra/metadata/database/schema/loader/dialect/MySQLSchemaMetaDataLoaderTest.java
@@ -94,7 +94,7 @@ public final class MySQLSchemaMetaDataLoaderTest {
         when(result.getString("COLUMN_NAME")).thenReturn("id", "name", "doc", 
"geo", "t_year", "pg", "mpg", "pt", "mpt");
         when(result.getString("DATA_TYPE")).thenReturn("int", "varchar", 
"json", "geometry", "year", "polygon", "multipolygon", "point", "multipoint");
         when(result.getString("COLUMN_KEY")).thenReturn("PRI", "", "", "", "", 
"", "", "", "");
-        when(result.getString("EXTRA")).thenReturn("auto_increment", "", "", 
"", "", "", "", "", "");
+        when(result.getString("EXTRA")).thenReturn("auto_increment", 
"INVISIBLE", "", "", "", "", "", "", "");
         when(result.getString("COLLATION_NAME")).thenReturn("utf8", 
"utf8_general_ci");
         return result;
     }
@@ -118,15 +118,15 @@ public final class MySQLSchemaMetaDataLoaderTest {
         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)));
-        assertThat(columnsIterator.next(), is(new ColumnMetaData("name", 
Types.VARCHAR, false, false, false)));
-        assertThat(columnsIterator.next(), is(new ColumnMetaData("doc", 
Types.LONGVARCHAR, false, false, false)));
-        assertThat(columnsIterator.next(), is(new ColumnMetaData("geo", 
Types.BINARY, false, false, false)));
-        assertThat(columnsIterator.next(), is(new ColumnMetaData("t_year", 
Types.DATE, false, false, false)));
-        assertThat(columnsIterator.next(), is(new ColumnMetaData("pg", 
Types.BINARY, false, false, false)));
-        assertThat(columnsIterator.next(), is(new ColumnMetaData("mpg", 
Types.BINARY, false, false, false)));
-        assertThat(columnsIterator.next(), is(new ColumnMetaData("pt", 
Types.BINARY, false, false, false)));
-        assertThat(columnsIterator.next(), is(new ColumnMetaData("mpt", 
Types.BINARY, false, false, false)));
+        assertThat(columnsIterator.next(), is(new ColumnMetaData("id", 
Types.INTEGER, true, true, true, true)));
+        assertThat(columnsIterator.next(), is(new ColumnMetaData("name", 
Types.VARCHAR, false, false, false, false)));
+        assertThat(columnsIterator.next(), is(new ColumnMetaData("doc", 
Types.LONGVARCHAR, false, false, false, true)));
+        assertThat(columnsIterator.next(), is(new ColumnMetaData("geo", 
Types.BINARY, false, false, false, true)));
+        assertThat(columnsIterator.next(), is(new ColumnMetaData("t_year", 
Types.DATE, false, false, false, true)));
+        assertThat(columnsIterator.next(), is(new ColumnMetaData("pg", 
Types.BINARY, false, false, false, true)));
+        assertThat(columnsIterator.next(), is(new ColumnMetaData("mpg", 
Types.BINARY, false, false, false, true)));
+        assertThat(columnsIterator.next(), is(new ColumnMetaData("pt", 
Types.BINARY, false, false, false, true)));
+        assertThat(columnsIterator.next(), is(new ColumnMetaData("mpt", 
Types.BINARY, false, false, false, true)));
         assertThat(actualTableMetaData.getIndexes().size(), is(1));
         Iterator<IndexMetaData> indexesIterator = 
actualTableMetaData.getIndexes().iterator();
         assertThat(indexesIterator.next(), is(new IndexMetaData("id")));
diff --git 
a/shardingsphere-infra/shardingsphere-infra-common/src/test/java/org/apache/shardingsphere/infra/metadata/database/schema/loader/dialect/OracleSchemaMetaDataLoaderTest.java
 
b/shardingsphere-infra/shardingsphere-infra-common/src/test/java/org/apache/shardingsphere/infra/metadata/database/schema/loader/dialect/OracleSchemaMetaDataLoaderTest.java
index bd4535ea797..d5c112758f1 100644
--- 
a/shardingsphere-infra/shardingsphere-infra-common/src/test/java/org/apache/shardingsphere/infra/metadata/database/schema/loader/dialect/OracleSchemaMetaDataLoaderTest.java
+++ 
b/shardingsphere-infra/shardingsphere-infra-common/src/test/java/org/apache/shardingsphere/infra/metadata/database/schema/loader/dialect/OracleSchemaMetaDataLoaderTest.java
@@ -84,8 +84,8 @@ public final class OracleSchemaMetaDataLoaderTest {
         assertTableMetaDataMap(actual);
         TableMetaData actualTableMetaData = 
actual.iterator().next().getTables().iterator().next();
         Iterator<ColumnMetaData> columnsIterator = 
actualTableMetaData.getColumns().iterator();
-        assertThat(columnsIterator.next(), is(new ColumnMetaData("id", 4, 
false, true, true)));
-        assertThat(columnsIterator.next(), is(new ColumnMetaData("name", 12, 
false, false, false)));
+        assertThat(columnsIterator.next(), is(new ColumnMetaData("id", 4, 
false, true, true, true)));
+        assertThat(columnsIterator.next(), is(new ColumnMetaData("name", 12, 
false, false, false, true)));
     }
     
     @Test
@@ -103,8 +103,8 @@ public final class OracleSchemaMetaDataLoaderTest {
         assertTableMetaDataMap(actual);
         TableMetaData actualTableMetaData = 
actual.iterator().next().getTables().iterator().next();
         Iterator<ColumnMetaData> columnsIterator = 
actualTableMetaData.getColumns().iterator();
-        assertThat(columnsIterator.next(), is(new ColumnMetaData("id", 4, 
false, true, false)));
-        assertThat(columnsIterator.next(), is(new ColumnMetaData("name", 12, 
false, false, false)));
+        assertThat(columnsIterator.next(), is(new ColumnMetaData("id", 4, 
false, true, false, true)));
+        assertThat(columnsIterator.next(), is(new ColumnMetaData("name", 12, 
false, false, false, true)));
     }
     
     @Test
@@ -122,8 +122,8 @@ public final class OracleSchemaMetaDataLoaderTest {
         assertTableMetaDataMap(actual);
         TableMetaData actualTableMetaData = 
actual.iterator().next().getTables().iterator().next();
         Iterator<ColumnMetaData> columnsIterator = 
actualTableMetaData.getColumns().iterator();
-        assertThat(columnsIterator.next(), is(new ColumnMetaData("id", 4, 
false, false, false)));
-        assertThat(columnsIterator.next(), is(new ColumnMetaData("name", 12, 
false, false, false)));
+        assertThat(columnsIterator.next(), is(new ColumnMetaData("id", 4, 
false, false, false, true)));
+        assertThat(columnsIterator.next(), is(new ColumnMetaData("name", 12, 
false, false, false, true)));
     }
     
     @Test
@@ -141,8 +141,8 @@ public final class OracleSchemaMetaDataLoaderTest {
         assertTableMetaDataMap(actual);
         TableMetaData actualTableMetaData = 
actual.iterator().next().getTables().iterator().next();
         Iterator<ColumnMetaData> columnsIterator = 
actualTableMetaData.getColumns().iterator();
-        assertThat(columnsIterator.next(), is(new ColumnMetaData("id", 4, 
true, true, true)));
-        assertThat(columnsIterator.next(), is(new ColumnMetaData("name", 12, 
false, false, false)));
+        assertThat(columnsIterator.next(), is(new ColumnMetaData("id", 4, 
true, true, true, true)));
+        assertThat(columnsIterator.next(), is(new ColumnMetaData("name", 12, 
false, false, false, true)));
     }
     
     @Test
@@ -160,8 +160,8 @@ public final class OracleSchemaMetaDataLoaderTest {
         assertTableMetaDataMap(actual);
         TableMetaData actualTableMetaData = 
actual.iterator().next().getTables().iterator().next();
         Iterator<ColumnMetaData> columnsIterator = 
actualTableMetaData.getColumns().iterator();
-        assertThat(columnsIterator.next(), is(new ColumnMetaData("id", 4, 
true, true, false)));
-        assertThat(columnsIterator.next(), is(new ColumnMetaData("name", 12, 
false, false, false)));
+        assertThat(columnsIterator.next(), is(new ColumnMetaData("id", 4, 
true, true, false, true)));
+        assertThat(columnsIterator.next(), is(new ColumnMetaData("name", 12, 
false, false, false, true)));
     }
     
     @Test
@@ -179,8 +179,8 @@ public final class OracleSchemaMetaDataLoaderTest {
         assertTableMetaDataMap(actual);
         TableMetaData actualTableMetaData = 
actual.iterator().next().getTables().iterator().next();
         Iterator<ColumnMetaData> columnsIterator = 
actualTableMetaData.getColumns().iterator();
-        assertThat(columnsIterator.next(), is(new ColumnMetaData("id", 4, 
true, false, false)));
-        assertThat(columnsIterator.next(), is(new ColumnMetaData("name", 12, 
false, false, false)));
+        assertThat(columnsIterator.next(), is(new ColumnMetaData("id", 4, 
true, false, false, true)));
+        assertThat(columnsIterator.next(), is(new ColumnMetaData("name", 12, 
false, false, false, true)));
     }
     
     private DataSource mockDataSource() throws SQLException {
diff --git 
a/shardingsphere-infra/shardingsphere-infra-common/src/test/java/org/apache/shardingsphere/infra/metadata/database/schema/loader/dialect/PostgreSQLSchemaMetaDataLoaderTest.java
 
b/shardingsphere-infra/shardingsphere-infra-common/src/test/java/org/apache/shardingsphere/infra/metadata/database/schema/loader/dialect/PostgreSQLSchemaMetaDataLoaderTest.java
index 588a5277889..0e66e7f888c 100644
--- 
a/shardingsphere-infra/shardingsphere-infra-common/src/test/java/org/apache/shardingsphere/infra/metadata/database/schema/loader/dialect/PostgreSQLSchemaMetaDataLoaderTest.java
+++ 
b/shardingsphere-infra/shardingsphere-infra-common/src/test/java/org/apache/shardingsphere/infra/metadata/database/schema/loader/dialect/PostgreSQLSchemaMetaDataLoaderTest.java
@@ -163,8 +163,8 @@ public final class PostgreSQLSchemaMetaDataLoaderTest {
         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)));
-        assertThat(columnsIterator.next(), is(new ColumnMetaData("name", 
Types.VARCHAR, false, false, true)));
+        assertThat(columnsIterator.next(), is(new ColumnMetaData("id", 
Types.INTEGER, true, true, true, true)));
+        assertThat(columnsIterator.next(), is(new ColumnMetaData("name", 
Types.VARCHAR, false, false, true, true)));
         assertThat(actualTableMetaData.getIndexes().size(), is(1));
         Iterator<IndexMetaData> indexesIterator = 
actualTableMetaData.getIndexes().iterator();
         assertThat(indexesIterator.next(), is(new IndexMetaData("id")));
diff --git 
a/shardingsphere-infra/shardingsphere-infra-common/src/test/java/org/apache/shardingsphere/infra/metadata/database/schema/loader/dialect/SQLServerSchemaMetaDataLoaderTest.java
 
b/shardingsphere-infra/shardingsphere-infra-common/src/test/java/org/apache/shardingsphere/infra/metadata/database/schema/loader/dialect/SQLServerSchemaMetaDataLoaderTest.java
index 3d60cc4c7b4..82dda8e3e3c 100644
--- 
a/shardingsphere-infra/shardingsphere-infra-common/src/test/java/org/apache/shardingsphere/infra/metadata/database/schema/loader/dialect/SQLServerSchemaMetaDataLoaderTest.java
+++ 
b/shardingsphere-infra/shardingsphere-infra-common/src/test/java/org/apache/shardingsphere/infra/metadata/database/schema/loader/dialect/SQLServerSchemaMetaDataLoaderTest.java
@@ -128,8 +128,8 @@ public final class SQLServerSchemaMetaDataLoaderTest {
         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", 4, 
false, true, true)));
-        assertThat(columnsIterator.next(), is(new ColumnMetaData("name", 12, 
false, false, false)));
+        assertThat(columnsIterator.next(), is(new ColumnMetaData("id", 4, 
false, true, true, true)));
+        assertThat(columnsIterator.next(), is(new ColumnMetaData("name", 12, 
false, false, false, true)));
         assertThat(actualTableMetaData.getIndexes().size(), is(1));
         Iterator<IndexMetaData> indexesIterator = 
actualTableMetaData.getIndexes().iterator();
         assertThat(indexesIterator.next(), is(new IndexMetaData("id")));
diff --git 
a/shardingsphere-infra/shardingsphere-infra-common/src/test/java/org/apache/shardingsphere/infra/metadata/database/schema/model/TableMetaDataTest.java
 
b/shardingsphere-infra/shardingsphere-infra-common/src/test/java/org/apache/shardingsphere/infra/metadata/database/schema/model/TableMetaDataTest.java
index 47ff5a8a701..cbcac5bd3dc 100644
--- 
a/shardingsphere-infra/shardingsphere-infra-common/src/test/java/org/apache/shardingsphere/infra/metadata/database/schema/model/TableMetaDataTest.java
+++ 
b/shardingsphere-infra/shardingsphere-infra-common/src/test/java/org/apache/shardingsphere/infra/metadata/database/schema/model/TableMetaDataTest.java
@@ -36,7 +36,7 @@ public final class TableMetaDataTest {
     
     @Before
     public void setUp() {
-        tableMetaData = new TableMetaData(null, Collections.singletonList(new 
ColumnMetaData("test", Types.INTEGER, true, false, true)), 
Collections.emptyList(), Collections.emptyList());
+        tableMetaData = new TableMetaData(null, Collections.singletonList(new 
ColumnMetaData("test", Types.INTEGER, true, false, true, true)), 
Collections.emptyList(), Collections.emptyList());
     }
     
     @Test
diff --git 
a/shardingsphere-infra/shardingsphere-infra-executor/src/test/java/org/apache/shardingsphere/infra/executor/sql/context/ExecutionContextBuilderTest.java
 
b/shardingsphere-infra/shardingsphere-infra-executor/src/test/java/org/apache/shardingsphere/infra/executor/sql/context/ExecutionContextBuilderTest.java
index eaede335b64..1926fb3ef66 100644
--- 
a/shardingsphere-infra/shardingsphere-infra-executor/src/test/java/org/apache/shardingsphere/infra/executor/sql/context/ExecutionContextBuilderTest.java
+++ 
b/shardingsphere-infra/shardingsphere-infra-executor/src/test/java/org/apache/shardingsphere/infra/executor/sql/context/ExecutionContextBuilderTest.java
@@ -103,26 +103,26 @@ public final class ExecutionContextBuilderTest {
     
     private Map<String, ShardingSphereSchema> buildDatabaseWithoutPrimaryKey() 
{
         Map<String, ShardingSphereTable> tables = new HashMap<>(3, 1);
-        tables.put("logicName1", new ShardingSphereTable("logicName1", 
Arrays.asList(new ShardingSphereColumn("order_id", Types.INTEGER, true, false, 
false),
-                new ShardingSphereColumn("user_id", Types.INTEGER, false, 
false, false),
-                new ShardingSphereColumn("status", Types.INTEGER, false, 
false, false)), Collections.emptySet(), Collections.emptyList()));
+        tables.put("logicName1", new ShardingSphereTable("logicName1", 
Arrays.asList(new ShardingSphereColumn("order_id", Types.INTEGER, true, false, 
false, true),
+                new ShardingSphereColumn("user_id", Types.INTEGER, false, 
false, false, true),
+                new ShardingSphereColumn("status", Types.INTEGER, false, 
false, false, true)), Collections.emptySet(), Collections.emptyList()));
         tables.put("t_other", new ShardingSphereTable("t_other", 
Collections.singletonList(
-                new ShardingSphereColumn("order_id", Types.INTEGER, true, 
false, false)), Collections.emptySet(), Collections.emptyList()));
+                new ShardingSphereColumn("order_id", Types.INTEGER, true, 
false, false, true)), Collections.emptySet(), Collections.emptyList()));
         return Collections.singletonMap("name", new 
ShardingSphereSchema(tables));
     }
     
     private Map<String, ShardingSphereSchema> buildDatabase() {
         Map<String, ShardingSphereTable> tables = new HashMap<>(3, 1);
-        tables.put("logicName1", new ShardingSphereTable("logicName1", 
Arrays.asList(new ShardingSphereColumn("order_id", Types.INTEGER, true, false, 
false),
-                new ShardingSphereColumn("user_id", Types.INTEGER, false, 
false, false),
-                new ShardingSphereColumn("status", Types.INTEGER, false, 
false, false)), Collections.emptySet(), Collections.emptyList()));
-        tables.put("logicName2", new ShardingSphereTable("logicName2", 
Arrays.asList(new ShardingSphereColumn("item_id", Types.INTEGER, true, false, 
false),
-                new ShardingSphereColumn("order_id", Types.INTEGER, false, 
false, false),
-                new ShardingSphereColumn("user_id", Types.INTEGER, false, 
false, false),
-                new ShardingSphereColumn("status", Types.VARCHAR, false, 
false, false),
-                new ShardingSphereColumn("c_date", Types.TIMESTAMP, false, 
false, false)), Collections.emptySet(), Collections.emptyList()));
+        tables.put("logicName1", new ShardingSphereTable("logicName1", 
Arrays.asList(new ShardingSphereColumn("order_id", Types.INTEGER, true, false, 
false, true),
+                new ShardingSphereColumn("user_id", Types.INTEGER, false, 
false, false, true),
+                new ShardingSphereColumn("status", Types.INTEGER, false, 
false, false, true)), Collections.emptySet(), Collections.emptyList()));
+        tables.put("logicName2", new ShardingSphereTable("logicName2", 
Arrays.asList(new ShardingSphereColumn("item_id", Types.INTEGER, true, false, 
false, true),
+                new ShardingSphereColumn("order_id", Types.INTEGER, false, 
false, false, true),
+                new ShardingSphereColumn("user_id", Types.INTEGER, false, 
false, false, true),
+                new ShardingSphereColumn("status", Types.VARCHAR, false, 
false, false, true),
+                new ShardingSphereColumn("c_date", Types.TIMESTAMP, false, 
false, false, true)), Collections.emptySet(), Collections.emptyList()));
         tables.put("t_other", new ShardingSphereTable("t_other", 
Collections.singletonList(
-                new ShardingSphereColumn("order_id", Types.INTEGER, true, 
false, false)), Collections.emptySet(), Collections.emptyList()));
+                new ShardingSphereColumn("order_id", Types.INTEGER, true, 
false, false, true)), Collections.emptySet(), Collections.emptyList()));
         return Collections.singletonMap("name", new 
ShardingSphereSchema(tables));
     }
 }
diff --git 
a/shardingsphere-infra/shardingsphere-infra-federation/shardingsphere-infra-federation-executor/src/test/java/org/apache/shardingsphere/infra/federation/executor/advanced/AdvancedFederationExecutorTest.java
 
b/shardingsphere-infra/shardingsphere-infra-federation/shardingsphere-infra-federation-executor/src/test/java/org/apache/shardingsphere/infra/federation/executor/advanced/AdvancedFederationExecutorTest.java
index ee3f2a2c530..16491c862a5 100644
--- 
a/shardingsphere-infra/shardingsphere-infra-federation/shardingsphere-infra-federation-executor/src/test/java/org/apache/shardingsphere/infra/federation/executor/advanced/AdvancedFederationExecutorTest.java
+++ 
b/shardingsphere-infra/shardingsphere-infra-federation/shardingsphere-infra-federation-executor/src/test/java/org/apache/shardingsphere/infra/federation/executor/advanced/AdvancedFederationExecutorTest.java
@@ -76,15 +76,15 @@ public class AdvancedFederationExecutorTest {
     }
     
     private ShardingSphereTable createOrderTableMetaData() {
-        ShardingSphereColumn orderIdColumn = new 
ShardingSphereColumn("order_id", Types.VARCHAR, true, false, false);
-        ShardingSphereColumn userIdColumn = new 
ShardingSphereColumn("user_id", Types.VARCHAR, false, false, false);
-        ShardingSphereColumn statusColumn = new ShardingSphereColumn("status", 
Types.VARCHAR, false, false, false);
+        ShardingSphereColumn orderIdColumn = new 
ShardingSphereColumn("order_id", Types.VARCHAR, true, false, false, true);
+        ShardingSphereColumn userIdColumn = new 
ShardingSphereColumn("user_id", Types.VARCHAR, false, false, false, true);
+        ShardingSphereColumn statusColumn = new ShardingSphereColumn("status", 
Types.VARCHAR, false, false, false, true);
         return new ShardingSphereTable("t_order_federate", 
Arrays.asList(orderIdColumn, userIdColumn, statusColumn), 
Collections.emptyList(), Collections.emptyList());
     }
     
     private ShardingSphereTable createUserInfoTableMetaData() {
-        ShardingSphereColumn userIdColumn = new 
ShardingSphereColumn("user_id", Types.VARCHAR, true, false, false);
-        ShardingSphereColumn informationColumn = new 
ShardingSphereColumn("information", Types.VARCHAR, false, false, false);
+        ShardingSphereColumn userIdColumn = new 
ShardingSphereColumn("user_id", Types.VARCHAR, true, false, false, true);
+        ShardingSphereColumn informationColumn = new 
ShardingSphereColumn("information", Types.VARCHAR, false, false, false, true);
         return new ShardingSphereTable("t_user_info", 
Arrays.asList(userIdColumn, informationColumn), Collections.emptyList(), 
Collections.emptyList());
     }
     
diff --git 
a/shardingsphere-infra/shardingsphere-infra-federation/shardingsphere-infra-federation-optimizer/src/test/java/org/apache/shardingsphere/infra/federation/optimizer/ShardingSphereOptimizerTest.java
 
b/shardingsphere-infra/shardingsphere-infra-federation/shardingsphere-infra-federation-optimizer/src/test/java/org/apache/shardingsphere/infra/federation/optimizer/ShardingSphereOptimizerTest.java
index 5ada76319ff..11621c5981c 100644
--- 
a/shardingsphere-infra/shardingsphere-infra-federation/shardingsphere-infra-federation-optimizer/src/test/java/org/apache/shardingsphere/infra/federation/optimizer/ShardingSphereOptimizerTest.java
+++ 
b/shardingsphere-infra/shardingsphere-infra-federation/shardingsphere-infra-federation-optimizer/src/test/java/org/apache/shardingsphere/infra/federation/optimizer/ShardingSphereOptimizerTest.java
@@ -113,15 +113,15 @@ public final class ShardingSphereOptimizerTest {
     }
     
     private ShardingSphereTable createOrderTableMetaData() {
-        ShardingSphereColumn orderIdColumn = new 
ShardingSphereColumn("order_id", Types.VARCHAR, true, false, false);
-        ShardingSphereColumn userIdColumn = new 
ShardingSphereColumn("user_id", Types.VARCHAR, false, false, false);
-        ShardingSphereColumn statusColumn = new ShardingSphereColumn("status", 
Types.VARCHAR, false, false, false);
+        ShardingSphereColumn orderIdColumn = new 
ShardingSphereColumn("order_id", Types.VARCHAR, true, false, false, true);
+        ShardingSphereColumn userIdColumn = new 
ShardingSphereColumn("user_id", Types.VARCHAR, false, false, false, true);
+        ShardingSphereColumn statusColumn = new ShardingSphereColumn("status", 
Types.VARCHAR, false, false, false, true);
         return new ShardingSphereTable("t_order_federate", 
Arrays.asList(orderIdColumn, userIdColumn, statusColumn), 
Collections.emptyList(), Collections.emptyList());
     }
     
     private ShardingSphereTable createUserInfoTableMetaData() {
-        ShardingSphereColumn userIdColumn = new 
ShardingSphereColumn("user_id", Types.VARCHAR, true, false, false);
-        ShardingSphereColumn informationColumn = new 
ShardingSphereColumn("information", Types.VARCHAR, false, false, false);
+        ShardingSphereColumn userIdColumn = new 
ShardingSphereColumn("user_id", Types.VARCHAR, true, false, false, true);
+        ShardingSphereColumn informationColumn = new 
ShardingSphereColumn("information", Types.VARCHAR, false, false, false, true);
         return new ShardingSphereTable("t_user_info", 
Arrays.asList(userIdColumn, informationColumn), Collections.emptyList(), 
Collections.emptyList());
     }
     
diff --git 
a/shardingsphere-kernel/shardingsphere-single-table/shardingsphere-single-table-core/src/test/java/org/apache/shardingsphere/singletable/metadata/SingleTableSchemaMetaDataDecoratorTest.java
 
b/shardingsphere-kernel/shardingsphere-single-table/shardingsphere-single-table-core/src/test/java/org/apache/shardingsphere/singletable/metadata/SingleTableSchemaMetaDataDecoratorTest.java
index e95e226647e..3d80be727fe 100644
--- 
a/shardingsphere-kernel/shardingsphere-single-table/shardingsphere-single-table-core/src/test/java/org/apache/shardingsphere/singletable/metadata/SingleTableSchemaMetaDataDecoratorTest.java
+++ 
b/shardingsphere-kernel/shardingsphere-single-table/shardingsphere-single-table-core/src/test/java/org/apache/shardingsphere/singletable/metadata/SingleTableSchemaMetaDataDecoratorTest.java
@@ -50,9 +50,9 @@ public final class SingleTableSchemaMetaDataDecoratorTest {
         Map<String, SchemaMetaData> schemaMetaDataMap = 
mockSchemaMetaDataMap();
         TableMetaData tableMetaData = builder.decorate(schemaMetaDataMap, 
singleTableRule, 
mock(GenericSchemaBuilderMaterials.class)).get("sharding_db").getTables().iterator().next();
         Iterator<ColumnMetaData> columnsIterator = 
tableMetaData.getColumns().iterator();
-        assertThat(columnsIterator.next(), is(new ColumnMetaData("id", 4, 
true, false, false)));
-        assertThat(columnsIterator.next(), is(new ColumnMetaData("name", 12, 
false, false, false)));
-        assertThat(columnsIterator.next(), is(new ColumnMetaData("doc", -1, 
false, false, false)));
+        assertThat(columnsIterator.next(), is(new ColumnMetaData("id", 4, 
true, false, false, true)));
+        assertThat(columnsIterator.next(), is(new ColumnMetaData("name", 12, 
false, false, false, true)));
+        assertThat(columnsIterator.next(), is(new ColumnMetaData("doc", -1, 
false, false, false, true)));
         assertThat(tableMetaData.getIndexes().size(), is(2));
         Iterator<IndexMetaData> indexesIterator = 
tableMetaData.getIndexes().iterator();
         assertThat(indexesIterator.next(), is(new IndexMetaData("id")));
@@ -60,9 +60,9 @@ public final class SingleTableSchemaMetaDataDecoratorTest {
     }
     
     private Map<String, SchemaMetaData> mockSchemaMetaDataMap() {
-        Collection<ColumnMetaData> columns = Arrays.asList(new 
ColumnMetaData("id", 4, true, false, false),
-                new ColumnMetaData("name", 12, false, false, false),
-                new ColumnMetaData("doc", -1, false, false, false));
+        Collection<ColumnMetaData> columns = Arrays.asList(new 
ColumnMetaData("id", 4, true, false, false, true),
+                new ColumnMetaData("name", 12, false, false, false, true),
+                new ColumnMetaData("doc", -1, false, false, false, true));
         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()));
diff --git 
a/shardingsphere-mode/shardingsphere-mode-core/src/test/java/org/apache/shardingsphere/mode/manager/ContextManagerTest.java
 
b/shardingsphere-mode/shardingsphere-mode-core/src/test/java/org/apache/shardingsphere/mode/manager/ContextManagerTest.java
index dfc5f581650..58bbd9a3ba5 100644
--- 
a/shardingsphere-mode/shardingsphere-mode-core/src/test/java/org/apache/shardingsphere/mode/manager/ContextManagerTest.java
+++ 
b/shardingsphere-mode/shardingsphere-mode-core/src/test/java/org/apache/shardingsphere/mode/manager/ContextManagerTest.java
@@ -155,7 +155,7 @@ public final class ContextManagerTest {
         ShardingSphereSchema toBeAlteredSchema = createToBeAlteredSchema();
         
when(metaDataContexts.getMetaData().getDatabase("foo_db").getSchemas()).thenReturn(Collections.singletonMap("foo_schema",
 toBeAlteredSchema));
         
when(metaDataContexts.getMetaData().getDatabase("foo_db").getSchema("foo_schema")).thenReturn(toBeAlteredSchema);
-        ShardingSphereColumn toBeChangedColumn = new 
ShardingSphereColumn("foo_col", Types.VARCHAR, false, false, false);
+        ShardingSphereColumn toBeChangedColumn = new 
ShardingSphereColumn("foo_col", Types.VARCHAR, false, false, false, true);
         ShardingSphereTable toBeChangedTable = new 
ShardingSphereTable("foo_tbl", Collections.singleton(toBeChangedColumn), 
Collections.emptyList(), Collections.emptyList());
         contextManager.alterSchema("foo_db", "foo_schema", toBeChangedTable);
         ShardingSphereTable table = 
contextManager.getMetaDataContexts().getMetaData().getDatabase("foo_db").getSchema("foo_schema").getTables().get("foo_tbl");
diff --git 
a/shardingsphere-proxy/shardingsphere-proxy-backend/src/test/java/org/apache/shardingsphere/proxy/backend/communication/jdbc/JDBCDatabaseCommunicationEngineTest.java
 
b/shardingsphere-proxy/shardingsphere-proxy-backend/src/test/java/org/apache/shardingsphere/proxy/backend/communication/jdbc/JDBCDatabaseCommunicationEngineTest.java
index 35c5d57c704..30b5739cccd 100644
--- 
a/shardingsphere-proxy/shardingsphere-proxy-backend/src/test/java/org/apache/shardingsphere/proxy/backend/communication/jdbc/JDBCDatabaseCommunicationEngineTest.java
+++ 
b/shardingsphere-proxy/shardingsphere-proxy-backend/src/test/java/org/apache/shardingsphere/proxy/backend/communication/jdbc/JDBCDatabaseCommunicationEngineTest.java
@@ -200,7 +200,7 @@ public final class JDBCDatabaseCommunicationEngineTest 
extends ProxyContextResto
     
     private ShardingSphereDatabase createDatabaseMetaData() {
         ShardingSphereDatabase result = mock(ShardingSphereDatabase.class, 
RETURNS_DEEP_STUBS);
-        ShardingSphereColumn column = new ShardingSphereColumn("order_id", 
Types.INTEGER, true, false, false);
+        ShardingSphereColumn column = new ShardingSphereColumn("order_id", 
Types.INTEGER, true, false, false, true);
         
when(result.getSchema(DefaultDatabase.LOGIC_NAME).get("t_logic_order")).thenReturn(
                 new ShardingSphereTable("t_logic_order", 
Collections.singletonList(column), Collections.singletonList(new 
ShardingSphereIndex("order_id")), Collections.emptyList()));
         
when(result.getRuleMetaData().getRules()).thenReturn(Collections.singletonList(mock(ShardingRule.class)));
diff --git 
a/shardingsphere-proxy/shardingsphere-proxy-backend/src/test/java/org/apache/shardingsphere/proxy/backend/handler/distsql/ral/queryable/ExportDatabaseConfigurationHandlerTest.java
 
b/shardingsphere-proxy/shardingsphere-proxy-backend/src/test/java/org/apache/shardingsphere/proxy/backend/handler/distsql/ral/queryable/ExportDatabaseConfigurationHandlerTest.java
index b53230f8aff..9da05567c22 100644
--- 
a/shardingsphere-proxy/shardingsphere-proxy-backend/src/test/java/org/apache/shardingsphere/proxy/backend/handler/distsql/ral/queryable/ExportDatabaseConfigurationHandlerTest.java
+++ 
b/shardingsphere-proxy/shardingsphere-proxy-backend/src/test/java/org/apache/shardingsphere/proxy/backend/handler/distsql/ral/queryable/ExportDatabaseConfigurationHandlerTest.java
@@ -137,7 +137,7 @@ public final class ExportDatabaseConfigurationHandlerTest 
extends ProxyContextRe
     }
     
     private Map<String, ShardingSphereTable> createTables() {
-        Collection<ShardingSphereColumn> columns = Collections.singleton(new 
ShardingSphereColumn("order_id", 0, false, false, false));
+        Collection<ShardingSphereColumn> columns = Collections.singleton(new 
ShardingSphereColumn("order_id", 0, false, false, false, true));
         Collection<ShardingSphereIndex> indexes = Collections.singleton(new 
ShardingSphereIndex("primary"));
         return Collections.singletonMap("t_order", new 
ShardingSphereTable("t_order", columns, indexes, Collections.emptyList()));
     }
diff --git 
a/shardingsphere-proxy/shardingsphere-proxy-backend/src/test/java/org/apache/shardingsphere/proxy/backend/handler/distsql/ral/queryable/ShowTableMetadataHandlerTest.java
 
b/shardingsphere-proxy/shardingsphere-proxy-backend/src/test/java/org/apache/shardingsphere/proxy/backend/handler/distsql/ral/queryable/ShowTableMetadataHandlerTest.java
index bb1f693efad..5ff9665d1cb 100644
--- 
a/shardingsphere-proxy/shardingsphere-proxy-backend/src/test/java/org/apache/shardingsphere/proxy/backend/handler/distsql/ral/queryable/ShowTableMetadataHandlerTest.java
+++ 
b/shardingsphere-proxy/shardingsphere-proxy-backend/src/test/java/org/apache/shardingsphere/proxy/backend/handler/distsql/ral/queryable/ShowTableMetadataHandlerTest.java
@@ -78,7 +78,7 @@ public final class ShowTableMetadataHandlerTest extends 
ProxyContextRestorer {
     
     private Map<String, ShardingSphereTable> createTableMap() {
         Map<String, ShardingSphereTable> result = new HashMap<>();
-        Collection<ShardingSphereColumn> columns = 
Collections.singletonList(new ShardingSphereColumn("order_id", 0, false, false, 
false));
+        Collection<ShardingSphereColumn> columns = 
Collections.singletonList(new ShardingSphereColumn("order_id", 0, false, false, 
false, true));
         Collection<ShardingSphereIndex> indexes = 
Collections.singletonList(new ShardingSphereIndex("primary"));
         result.put("t_order", new ShardingSphereTable("t_order", columns, 
indexes, Collections.emptyList()));
         return result;
diff --git 
a/shardingsphere-proxy/shardingsphere-proxy-backend/src/test/java/org/apache/shardingsphere/proxy/backend/handler/distsql/ral/updatable/ImportDatabaseConfigurationHandlerTest.java
 
b/shardingsphere-proxy/shardingsphere-proxy-backend/src/test/java/org/apache/shardingsphere/proxy/backend/handler/distsql/ral/updatable/ImportDatabaseConfigurationHandlerTest.java
index 376c04fdd71..60a0da73029 100644
--- 
a/shardingsphere-proxy/shardingsphere-proxy-backend/src/test/java/org/apache/shardingsphere/proxy/backend/handler/distsql/ral/updatable/ImportDatabaseConfigurationHandlerTest.java
+++ 
b/shardingsphere-proxy/shardingsphere-proxy-backend/src/test/java/org/apache/shardingsphere/proxy/backend/handler/distsql/ral/updatable/ImportDatabaseConfigurationHandlerTest.java
@@ -152,7 +152,7 @@ public final class ImportDatabaseConfigurationHandlerTest 
extends ProxyContextRe
     }
     
     private Map<String, ShardingSphereTable> createTableMap() {
-        Collection<ShardingSphereColumn> columns = Collections.singleton(new 
ShardingSphereColumn("order_id", 0, false, false, false));
+        Collection<ShardingSphereColumn> columns = Collections.singleton(new 
ShardingSphereColumn("order_id", 0, false, false, false, true));
         Collection<ShardingSphereIndex> indexes = Collections.singleton(new 
ShardingSphereIndex("primary"));
         return Collections.singletonMap("t_order", new 
ShardingSphereTable("t_order", columns, indexes, Collections.emptyList()));
     }
diff --git 
a/shardingsphere-proxy/shardingsphere-proxy-backend/src/test/java/org/apache/shardingsphere/proxy/backend/response/header/query/impl/MySQLQueryHeaderBuilderTest.java
 
b/shardingsphere-proxy/shardingsphere-proxy-backend/src/test/java/org/apache/shardingsphere/proxy/backend/response/header/query/impl/MySQLQueryHeaderBuilderTest.java
index 3ab870f59b0..4a85070f181 100644
--- 
a/shardingsphere-proxy/shardingsphere-proxy-backend/src/test/java/org/apache/shardingsphere/proxy/backend/response/header/query/impl/MySQLQueryHeaderBuilderTest.java
+++ 
b/shardingsphere-proxy/shardingsphere-proxy-backend/src/test/java/org/apache/shardingsphere/proxy/backend/response/header/query/impl/MySQLQueryHeaderBuilderTest.java
@@ -99,7 +99,7 @@ public final class MySQLQueryHeaderBuilderTest {
     
     private ShardingSphereDatabase createDatabase() {
         ShardingSphereDatabase result = mock(ShardingSphereDatabase.class, 
RETURNS_DEEP_STUBS);
-        ShardingSphereColumn column = new ShardingSphereColumn("order_id", 
Types.INTEGER, true, false, false);
+        ShardingSphereColumn column = new ShardingSphereColumn("order_id", 
Types.INTEGER, true, false, false, true);
         ShardingSphereSchema schema = mock(ShardingSphereSchema.class);
         when(schema.get("t_logic_order")).thenReturn(
                 new ShardingSphereTable("t_logic_order", 
Collections.singleton(column), Collections.singleton(new 
ShardingSphereIndex("order_id")), Collections.emptyList()));
diff --git 
a/shardingsphere-proxy/shardingsphere-proxy-frontend/shardingsphere-proxy-frontend-postgresql/src/test/java/org/apache/shardingsphere/proxy/frontend/postgresql/command/query/extended/describe/PostgreSQLComDescribeExecutorTest.java
 
b/shardingsphere-proxy/shardingsphere-proxy-frontend/shardingsphere-proxy-frontend-postgresql/src/test/java/org/apache/shardingsphere/proxy/frontend/postgresql/command/query/extended/describe/PostgreSQLComDescribeExecutorTest.java
index 96f79e82c41..62ff39f22e4 100644
--- 
a/shardingsphere-proxy/shardingsphere-proxy-frontend/shardingsphere-proxy-frontend-postgresql/src/test/java/org/apache/shardingsphere/proxy/frontend/postgresql/command/query/extended/describe/PostgreSQLComDescribeExecutorTest.java
+++ 
b/shardingsphere-proxy/shardingsphere-proxy-frontend/shardingsphere-proxy-frontend-postgresql/src/test/java/org/apache/shardingsphere/proxy/frontend/postgresql/command/query/extended/describe/PostgreSQLComDescribeExecutorTest.java
@@ -120,10 +120,10 @@ public final class PostgreSQLComDescribeExecutorTest 
extends ProxyContextRestore
     
     private void prepareTableMetaData() {
         Collection<ShardingSphereColumn> columnMetaData = Arrays.asList(
-                new ShardingSphereColumn("id", Types.INTEGER, true, false, 
false),
-                new ShardingSphereColumn("k", Types.INTEGER, true, false, 
false),
-                new ShardingSphereColumn("c", Types.CHAR, true, false, false),
-                new ShardingSphereColumn("pad", Types.CHAR, true, false, 
false));
+                new ShardingSphereColumn("id", Types.INTEGER, true, false, 
false, true),
+                new ShardingSphereColumn("k", Types.INTEGER, true, false, 
false, true),
+                new ShardingSphereColumn("c", Types.CHAR, true, false, false, 
true),
+                new ShardingSphereColumn("pad", Types.CHAR, true, false, 
false, true));
         ShardingSphereTable table = new ShardingSphereTable(TABLE_NAME, 
columnMetaData, Collections.emptyList(), Collections.emptyList());
         
when(contextManager.getMetaDataContexts().getMetaData().getDatabase(DATABASE_NAME).getSchema("public").get(TABLE_NAME)).thenReturn(table);
         
when(contextManager.getMetaDataContexts().getMetaData().getDatabase(DATABASE_NAME).getResource().getDatabaseType()).thenReturn(new
 PostgreSQLDatabaseType());
diff --git 
a/shardingsphere-test/shardingsphere-pipeline-test/src/test/java/org/apache/shardingsphere/data/pipeline/core/util/PipelineContextUtil.java
 
b/shardingsphere-test/shardingsphere-pipeline-test/src/test/java/org/apache/shardingsphere/data/pipeline/core/util/PipelineContextUtil.java
index 570c5497b51..79b8e6c587c 100644
--- 
a/shardingsphere-test/shardingsphere-pipeline-test/src/test/java/org/apache/shardingsphere/data/pipeline/core/util/PipelineContextUtil.java
+++ 
b/shardingsphere-test/shardingsphere-pipeline-test/src/test/java/org/apache/shardingsphere/data/pipeline/core/util/PipelineContextUtil.java
@@ -115,8 +115,8 @@ public final class PipelineContextUtil {
     
     private static MetaDataContexts renewMetaDataContexts(final 
MetaDataContexts old, final MetaDataPersistService persistService) {
         Map<String, ShardingSphereTable> tables = new HashMap<>(3, 1);
-        tables.put("t_order", new ShardingSphereTable("t_order", 
Arrays.asList(new ShardingSphereColumn("order_id", Types.INTEGER, true, false, 
false),
-                new ShardingSphereColumn("user_id", Types.VARCHAR, false, 
false, false)), Collections.emptyList(), Collections.emptyList()));
+        tables.put("t_order", new ShardingSphereTable("t_order", 
Arrays.asList(new ShardingSphereColumn("order_id", Types.INTEGER, true, false, 
false, true),
+                new ShardingSphereColumn("user_id", Types.VARCHAR, false, 
false, false, true)), Collections.emptyList(), Collections.emptyList()));
         
old.getMetaData().getDatabase(DefaultDatabase.LOGIC_NAME).getSchema(DefaultDatabase.LOGIC_NAME).putAll(tables);
         return new MetaDataContexts(persistService, old.getMetaData());
     }
diff --git 
a/shardingsphere-test/shardingsphere-rewrite-test/src/test/java/org/apache/shardingsphere/sharding/rewrite/parameterized/scenario/MixSQLRewriterParameterizedTest.java
 
b/shardingsphere-test/shardingsphere-rewrite-test/src/test/java/org/apache/shardingsphere/sharding/rewrite/parameterized/scenario/MixSQLRewriterParameterizedTest.java
index 6422bdf7b02..1f2f7fb772d 100644
--- 
a/shardingsphere-test/shardingsphere-rewrite-test/src/test/java/org/apache/shardingsphere/sharding/rewrite/parameterized/scenario/MixSQLRewriterParameterizedTest.java
+++ 
b/shardingsphere-test/shardingsphere-rewrite-test/src/test/java/org/apache/shardingsphere/sharding/rewrite/parameterized/scenario/MixSQLRewriterParameterizedTest.java
@@ -94,7 +94,7 @@ public final class MixSQLRewriterParameterizedTest extends 
AbstractSQLRewriterPa
     
     private Map<String, ShardingSphereColumn> createColumns() {
         Map<String, ShardingSphereColumn> result = new LinkedHashMap<>(4, 1);
-        result.put("account_id", new ShardingSphereColumn("account_id", 
Types.INTEGER, true, true, false));
+        result.put("account_id", new ShardingSphereColumn("account_id", 
Types.INTEGER, true, true, false, true));
         result.put("password", mock(ShardingSphereColumn.class));
         result.put("amount", mock(ShardingSphereColumn.class));
         result.put("status", mock(ShardingSphereColumn.class));
diff --git 
a/shardingsphere-test/shardingsphere-rewrite-test/src/test/java/org/apache/shardingsphere/sharding/rewrite/parameterized/scenario/ShardingSQLRewriterParameterizedTest.java
 
b/shardingsphere-test/shardingsphere-rewrite-test/src/test/java/org/apache/shardingsphere/sharding/rewrite/parameterized/scenario/ShardingSQLRewriterParameterizedTest.java
index c10c22f25d4..e382355218a 100644
--- 
a/shardingsphere-test/shardingsphere-rewrite-test/src/test/java/org/apache/shardingsphere/sharding/rewrite/parameterized/scenario/ShardingSQLRewriterParameterizedTest.java
+++ 
b/shardingsphere-test/shardingsphere-rewrite-test/src/test/java/org/apache/shardingsphere/sharding/rewrite/parameterized/scenario/ShardingSQLRewriterParameterizedTest.java
@@ -97,7 +97,7 @@ public final class ShardingSQLRewriterParameterizedTest 
extends AbstractSQLRewri
     
     private Map<String, ShardingSphereColumn> createColumnMetaDataMap() {
         Map<String, ShardingSphereColumn> result = new LinkedHashMap<>(3, 1);
-        result.put("account_id", new ShardingSphereColumn("account_id", 
Types.INTEGER, true, true, false));
+        result.put("account_id", new ShardingSphereColumn("account_id", 
Types.INTEGER, true, true, false, true));
         result.put("amount", mock(ShardingSphereColumn.class));
         result.put("status", mock(ShardingSphereColumn.class));
         return result;

Reply via email to