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

zhangliang 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 1be1a8538e6 Refactor TablesContext (#31619)
1be1a8538e6 is described below

commit 1be1a8538e607b9dfade98292ee3bbfd209d33d7
Author: Liang Zhang <[email protected]>
AuthorDate: Fri Jun 7 14:51:11 2024 +0800

    Refactor TablesContext (#31619)
    
    * Refactor DriverJDBCExecutor
    
    * Refactor TablesContext
---
 .../rewrite/condition/EncryptConditionEngine.java  |  2 +-
 .../EncryptGroupByItemTokenGenerator.java          |  2 +-
 .../EncryptOrderByItemTokenGenerator.java          |  2 +-
 .../EncryptPredicateColumnTokenGenerator.java      |  2 +-
 .../ShardingSQLRewriteContextDecorator.java        |  2 +-
 .../engine/WhereClauseShardingConditionEngine.java |  2 +-
 .../impl/ShardingDropTableStatementValidator.java  |  4 +-
 .../shardingsphere/sharding/rule/ShardingRule.java |  2 +-
 .../WhereClauseShardingConditionEngineTest.java    |  2 +-
 .../sharding/rule/ShardingRuleTest.java            |  6 +--
 .../engine/SubqueryTableContextEngine.java         |  2 +-
 .../context/segment/table/TablesContext.java       | 56 ++++++++++++----------
 .../statement/ddl/AlterViewStatementContext.java   |  2 +-
 .../statement/ddl/CommentStatementContext.java     |  2 +-
 .../statement/ddl/CreateViewStatementContext.java  |  2 +-
 .../statement/ddl/CursorStatementContext.java      |  2 +-
 .../statement/ddl/DropViewStatementContext.java    |  2 +-
 .../statement/dml/CopyStatementContext.java        |  2 +-
 .../statement/dml/DeleteStatementContext.java      |  2 +-
 .../statement/dml/InsertStatementContext.java      |  2 +-
 .../statement/dml/LoadDataStatementContext.java    |  2 +-
 .../statement/dml/LoadXMLStatementContext.java     |  2 +-
 .../statement/dml/SelectStatementContext.java      |  4 +-
 .../statement/dml/UpdateStatementContext.java      |  2 +-
 .../context/segment/table/TablesContextTest.java   | 11 ++---
 .../metadata/generator/PipelineDDLGenerator.java   |  8 ++--
 .../shardingsphere/single/rule/SingleRule.java     |  2 +-
 27 files changed, 67 insertions(+), 64 deletions(-)

diff --git 
a/features/encrypt/core/src/main/java/org/apache/shardingsphere/encrypt/rewrite/condition/EncryptConditionEngine.java
 
b/features/encrypt/core/src/main/java/org/apache/shardingsphere/encrypt/rewrite/condition/EncryptConditionEngine.java
index 4f4e5067710..499d2dcd081 100644
--- 
a/features/encrypt/core/src/main/java/org/apache/shardingsphere/encrypt/rewrite/condition/EncryptConditionEngine.java
+++ 
b/features/encrypt/core/src/main/java/org/apache/shardingsphere/encrypt/rewrite/condition/EncryptConditionEngine.java
@@ -94,7 +94,7 @@ public final class EncryptConditionEngine {
         Collection<EncryptCondition> result = new LinkedList<>();
         String defaultSchema = new 
DatabaseTypeRegistry(sqlStatementContext.getDatabaseType()).getDefaultSchemaName(databaseName);
         ShardingSphereSchema schema = 
sqlStatementContext.getTablesContext().getSchemaName().map(schemas::get).orElseGet(()
 -> schemas.get(defaultSchema));
-        Map<String, String> expressionTableNames = 
sqlStatementContext.getTablesContext().findTableNamesByColumnSegment(columnSegments,
 schema);
+        Map<String, String> expressionTableNames = 
sqlStatementContext.getTablesContext().findTableNames(columnSegments, schema);
         for (WhereSegment each : whereSegments) {
             Collection<AndPredicate> andPredicates = 
ExpressionExtractUtils.getAndPredicates(each.getExpr());
             for (AndPredicate predicate : andPredicates) {
diff --git 
a/features/encrypt/core/src/main/java/org/apache/shardingsphere/encrypt/rewrite/token/generator/EncryptGroupByItemTokenGenerator.java
 
b/features/encrypt/core/src/main/java/org/apache/shardingsphere/encrypt/rewrite/token/generator/EncryptGroupByItemTokenGenerator.java
index 5838b9b1d60..6b50264a5d7 100644
--- 
a/features/encrypt/core/src/main/java/org/apache/shardingsphere/encrypt/rewrite/token/generator/EncryptGroupByItemTokenGenerator.java
+++ 
b/features/encrypt/core/src/main/java/org/apache/shardingsphere/encrypt/rewrite/token/generator/EncryptGroupByItemTokenGenerator.java
@@ -74,7 +74,7 @@ public final class EncryptGroupByItemTokenGenerator 
implements CollectionSQLToke
         for (OrderByItem each : getGroupByItems(sqlStatementContext)) {
             if (each.getSegment() instanceof ColumnOrderByItemSegment) {
                 ColumnSegment columnSegment = ((ColumnOrderByItemSegment) 
each.getSegment()).getColumn();
-                Map<String, String> columnTableNames = 
sqlStatementContext.getTablesContext().findTableNamesByColumnSegment(Collections.singleton(columnSegment),
 schema);
+                Map<String, String> columnTableNames = 
sqlStatementContext.getTablesContext().findTableNames(Collections.singleton(columnSegment),
 schema);
                 
result.addAll(generateSQLTokensWithColumnSegments(Collections.singleton(columnSegment),
 columnTableNames));
             }
         }
diff --git 
a/features/encrypt/core/src/main/java/org/apache/shardingsphere/encrypt/rewrite/token/generator/EncryptOrderByItemTokenGenerator.java
 
b/features/encrypt/core/src/main/java/org/apache/shardingsphere/encrypt/rewrite/token/generator/EncryptOrderByItemTokenGenerator.java
index 4e1acb3a29f..d1d69589d52 100644
--- 
a/features/encrypt/core/src/main/java/org/apache/shardingsphere/encrypt/rewrite/token/generator/EncryptOrderByItemTokenGenerator.java
+++ 
b/features/encrypt/core/src/main/java/org/apache/shardingsphere/encrypt/rewrite/token/generator/EncryptOrderByItemTokenGenerator.java
@@ -67,7 +67,7 @@ public final class EncryptOrderByItemTokenGenerator 
implements CollectionSQLToke
         for (OrderByItem each : getOrderByItems(sqlStatementContext)) {
             if (each.getSegment() instanceof ColumnOrderByItemSegment) {
                 ColumnSegment columnSegment = ((ColumnOrderByItemSegment) 
each.getSegment()).getColumn();
-                Map<String, String> columnTableNames = 
sqlStatementContext.getTablesContext().findTableNamesByColumnSegment(Collections.singleton(columnSegment),
 schema);
+                Map<String, String> columnTableNames = 
sqlStatementContext.getTablesContext().findTableNames(Collections.singleton(columnSegment),
 schema);
                 
result.addAll(generateSQLTokensWithColumnSegments(Collections.singleton(columnSegment),
 columnTableNames));
             }
         }
diff --git 
a/features/encrypt/core/src/main/java/org/apache/shardingsphere/encrypt/rewrite/token/generator/EncryptPredicateColumnTokenGenerator.java
 
b/features/encrypt/core/src/main/java/org/apache/shardingsphere/encrypt/rewrite/token/generator/EncryptPredicateColumnTokenGenerator.java
index c8cd717cd3e..184678ea785 100644
--- 
a/features/encrypt/core/src/main/java/org/apache/shardingsphere/encrypt/rewrite/token/generator/EncryptPredicateColumnTokenGenerator.java
+++ 
b/features/encrypt/core/src/main/java/org/apache/shardingsphere/encrypt/rewrite/token/generator/EncryptPredicateColumnTokenGenerator.java
@@ -86,7 +86,7 @@ public final class EncryptPredicateColumnTokenGenerator 
implements CollectionSQL
                 () -> new UnsupportedSQLOperationException("Can not use 
different encryptor in join condition"));
         String defaultSchema = new 
DatabaseTypeRegistry(sqlStatementContext.getDatabaseType()).getDefaultSchemaName(databaseName);
         ShardingSphereSchema schema = 
sqlStatementContext.getTablesContext().getSchemaName().map(schemas::get).orElseGet(()
 -> schemas.get(defaultSchema));
-        Map<String, String> columnExpressionTableNames = 
sqlStatementContext.getTablesContext().findTableNamesByColumnSegment(columnSegments,
 schema);
+        Map<String, String> columnExpressionTableNames = 
sqlStatementContext.getTablesContext().findTableNames(columnSegments, schema);
         return generateSQLTokens(columnSegments, columnExpressionTableNames, 
whereSegments);
     }
     
diff --git 
a/features/sharding/core/src/main/java/org/apache/shardingsphere/sharding/rewrite/context/ShardingSQLRewriteContextDecorator.java
 
b/features/sharding/core/src/main/java/org/apache/shardingsphere/sharding/rewrite/context/ShardingSQLRewriteContextDecorator.java
index aab576a563d..6cd2601294d 100644
--- 
a/features/sharding/core/src/main/java/org/apache/shardingsphere/sharding/rewrite/context/ShardingSQLRewriteContextDecorator.java
+++ 
b/features/sharding/core/src/main/java/org/apache/shardingsphere/sharding/rewrite/context/ShardingSQLRewriteContextDecorator.java
@@ -68,7 +68,7 @@ public final class ShardingSQLRewriteContextDecorator 
implements SQLRewriteConte
     
     private boolean containsShardingTable(final ShardingRule shardingRule, 
final SQLStatementContext sqlStatementContext) {
         Collection<SimpleTableSegment> tableSegments =
-                sqlStatementContext instanceof TableAvailable ? 
((TableAvailable) sqlStatementContext).getAllTables() : 
sqlStatementContext.getTablesContext().getSimpleTableSegments();
+                sqlStatementContext instanceof TableAvailable ? 
((TableAvailable) sqlStatementContext).getAllTables() : 
sqlStatementContext.getTablesContext().getSimpleTables();
         for (SimpleTableSegment each : tableSegments) {
             if 
(shardingRule.isShardingTable(each.getTableName().getIdentifier().getValue())) {
                 return true;
diff --git 
a/features/sharding/core/src/main/java/org/apache/shardingsphere/sharding/route/engine/condition/engine/WhereClauseShardingConditionEngine.java
 
b/features/sharding/core/src/main/java/org/apache/shardingsphere/sharding/route/engine/condition/engine/WhereClauseShardingConditionEngine.java
index 96e0b56915b..7acfb38c889 100644
--- 
a/features/sharding/core/src/main/java/org/apache/shardingsphere/sharding/route/engine/condition/engine/WhereClauseShardingConditionEngine.java
+++ 
b/features/sharding/core/src/main/java/org/apache/shardingsphere/sharding/route/engine/condition/engine/WhereClauseShardingConditionEngine.java
@@ -82,7 +82,7 @@ public final class WhereClauseShardingConditionEngine {
         String defaultSchemaName = new 
DatabaseTypeRegistry(sqlStatementContext.getDatabaseType()).getDefaultSchemaName(database.getName());
         ShardingSphereSchema schema = 
sqlStatementContext.getTablesContext().getSchemaName()
                 .map(database::getSchema).orElseGet(() -> 
database.getSchema(defaultSchemaName));
-        Map<String, String> columnExpressionTableNames = 
sqlStatementContext.getTablesContext().findTableNamesByColumnSegment(columnSegments,
 schema);
+        Map<String, String> columnExpressionTableNames = 
sqlStatementContext.getTablesContext().findTableNames(columnSegments, schema);
         List<ShardingCondition> result = new ArrayList<>();
         for (WhereSegment each : ((WhereAvailable) 
sqlStatementContext).getWhereSegments()) {
             result.addAll(createShardingConditions(each.getExpr(), params, 
columnExpressionTableNames));
diff --git 
a/features/sharding/core/src/main/java/org/apache/shardingsphere/sharding/route/engine/validator/ddl/impl/ShardingDropTableStatementValidator.java
 
b/features/sharding/core/src/main/java/org/apache/shardingsphere/sharding/route/engine/validator/ddl/impl/ShardingDropTableStatementValidator.java
index 07e2e59c635..266659c397d 100644
--- 
a/features/sharding/core/src/main/java/org/apache/shardingsphere/sharding/route/engine/validator/ddl/impl/ShardingDropTableStatementValidator.java
+++ 
b/features/sharding/core/src/main/java/org/apache/shardingsphere/sharding/route/engine/validator/ddl/impl/ShardingDropTableStatementValidator.java
@@ -55,11 +55,11 @@ public final class ShardingDropTableStatementValidator 
extends ShardingDDLStatem
             String defaultSchemaName = new 
DatabaseTypeRegistry(sqlStatementContext.getDatabaseType()).getDefaultSchemaName(database.getName());
             ShardingSphereSchema schema = 
sqlStatementContext.getTablesContext().getSchemaName()
                     .map(database::getSchema).orElseGet(() -> 
database.getSchema(defaultSchemaName));
-            validateTableExist(schema, 
sqlStatementContext.getTablesContext().getSimpleTableSegments());
+            validateTableExist(schema, 
sqlStatementContext.getTablesContext().getSimpleTables());
         }
         if (DropTableStatementHandler.containsCascade(dropTableStatement)) {
             throw new UnsupportedShardingOperationException("DROP TABLE ... 
CASCADE",
-                    
sqlStatementContext.getTablesContext().getSimpleTableSegments().iterator().next().getTableName().getIdentifier().getValue());
+                    
sqlStatementContext.getTablesContext().getSimpleTables().iterator().next().getTableName().getIdentifier().getValue());
         }
     }
     
diff --git 
a/features/sharding/core/src/main/java/org/apache/shardingsphere/sharding/rule/ShardingRule.java
 
b/features/sharding/core/src/main/java/org/apache/shardingsphere/sharding/rule/ShardingRule.java
index 63b08731ac7..ad992a7f9d6 100644
--- 
a/features/sharding/core/src/main/java/org/apache/shardingsphere/sharding/rule/ShardingRule.java
+++ 
b/features/sharding/core/src/main/java/org/apache/shardingsphere/sharding/rule/ShardingRule.java
@@ -610,7 +610,7 @@ public final class ShardingRule implements DatabaseRule {
             }
             ColumnSegment leftColumn = (ColumnSegment) 
((BinaryOperationExpression) each).getLeft();
             ColumnSegment rightColumn = (ColumnSegment) 
((BinaryOperationExpression) each).getRight();
-            Map<String, String> columnExpressionTableNames = 
select.getTablesContext().findTableNamesByColumnSegment(Arrays.asList(leftColumn,
 rightColumn), schema);
+            Map<String, String> columnExpressionTableNames = 
select.getTablesContext().findTableNames(Arrays.asList(leftColumn, 
rightColumn), schema);
             Optional<ShardingTable> leftShardingTable = 
findShardingTable(columnExpressionTableNames.get(leftColumn.getExpression()));
             Optional<ShardingTable> rightShardingTable = 
findShardingTable(columnExpressionTableNames.get(rightColumn.getExpression()));
             if (!leftShardingTable.isPresent() || 
!rightShardingTable.isPresent()) {
diff --git 
a/features/sharding/core/src/test/java/org/apache/shardingsphere/sharding/route/engine/condition/engine/WhereClauseShardingConditionEngineTest.java
 
b/features/sharding/core/src/test/java/org/apache/shardingsphere/sharding/route/engine/condition/engine/WhereClauseShardingConditionEngineTest.java
index 2c93d8e22f1..00eafa6b15b 100644
--- 
a/features/sharding/core/src/test/java/org/apache/shardingsphere/sharding/route/engine/condition/engine/WhereClauseShardingConditionEngineTest.java
+++ 
b/features/sharding/core/src/test/java/org/apache/shardingsphere/sharding/route/engine/condition/engine/WhereClauseShardingConditionEngineTest.java
@@ -80,7 +80,7 @@ class WhereClauseShardingConditionEngineTest {
         
when(sqlStatementContext.getWhereSegments()).thenReturn(Collections.singleton(whereSegment));
         when(sqlStatementContext.getTablesContext()).thenReturn(tablesContext);
         
when(sqlStatementContext.getDatabaseType()).thenReturn(TypedSPILoader.getService(DatabaseType.class,
 "FIXTURE"));
-        when(tablesContext.findTableNamesByColumnSegment(anyCollection(), 
any())).thenReturn(Maps.of("foo_sharding_col", "table_1"));
+        when(tablesContext.findTableNames(anyCollection(), 
any())).thenReturn(Maps.of("foo_sharding_col", "table_1"));
     }
     
     @Test
diff --git 
a/features/sharding/core/src/test/java/org/apache/shardingsphere/sharding/rule/ShardingRuleTest.java
 
b/features/sharding/core/src/test/java/org/apache/shardingsphere/sharding/rule/ShardingRuleTest.java
index aaa8fde75a3..b13898316a9 100644
--- 
a/features/sharding/core/src/test/java/org/apache/shardingsphere/sharding/rule/ShardingRuleTest.java
+++ 
b/features/sharding/core/src/test/java/org/apache/shardingsphere/sharding/rule/ShardingRuleTest.java
@@ -646,7 +646,7 @@ class ShardingRuleTest {
         
when(sqlStatementContext.getDatabaseType()).thenReturn(TypedSPILoader.getService(DatabaseType.class,
 "FIXTURE"));
         
when(sqlStatementContext.getTablesContext().getSchemaName()).thenReturn(Optional.empty());
         ShardingSphereSchema schema = mock(ShardingSphereSchema.class);
-        
when(sqlStatementContext.getTablesContext().findTableNamesByColumnSegment(Arrays.asList(leftDatabaseJoin,
 rightDatabaseJoin), schema)).thenReturn(createColumnTableNameMap());
+        
when(sqlStatementContext.getTablesContext().findTableNames(Arrays.asList(leftDatabaseJoin,
 rightDatabaseJoin), schema)).thenReturn(createColumnTableNameMap());
         ShardingSphereDatabase database = mock(ShardingSphereDatabase.class, 
RETURNS_DEEP_STUBS);
         when(database.getName()).thenReturn(DefaultDatabase.LOGIC_NAME);
         
when(database.getSchema(DefaultDatabase.LOGIC_NAME)).thenReturn(schema);
@@ -698,8 +698,8 @@ class ShardingRuleTest {
         
when(sqlStatementContext.getTablesContext().getSchemaName()).thenReturn(Optional.empty());
         
when(sqlStatementContext.getWhereSegments()).thenReturn(Collections.singleton(new
 WhereSegment(0, 0, condition)));
         ShardingSphereSchema schema = mock(ShardingSphereSchema.class);
-        
when(sqlStatementContext.getTablesContext().findTableNamesByColumnSegment(Arrays.asList(leftDatabaseJoin,
 rightDatabaseJoin), schema)).thenReturn(createColumnTableNameMap());
-        
when(sqlStatementContext.getTablesContext().findTableNamesByColumnSegment(Arrays.asList(leftTableJoin,
 rightTableJoin), schema)).thenReturn(createColumnTableNameMap());
+        
when(sqlStatementContext.getTablesContext().findTableNames(Arrays.asList(leftDatabaseJoin,
 rightDatabaseJoin), schema)).thenReturn(createColumnTableNameMap());
+        
when(sqlStatementContext.getTablesContext().findTableNames(Arrays.asList(leftTableJoin,
 rightTableJoin), schema)).thenReturn(createColumnTableNameMap());
         ShardingSphereDatabase database = mock(ShardingSphereDatabase.class, 
RETURNS_DEEP_STUBS);
         when(database.getName()).thenReturn(DefaultDatabase.LOGIC_NAME);
         
when(database.getSchema(DefaultDatabase.LOGIC_NAME)).thenReturn(schema);
diff --git 
a/infra/binder/src/main/java/org/apache/shardingsphere/infra/binder/context/segment/select/subquery/engine/SubqueryTableContextEngine.java
 
b/infra/binder/src/main/java/org/apache/shardingsphere/infra/binder/context/segment/select/subquery/engine/SubqueryTableContextEngine.java
index 5e4eead5da6..ee761968b33 100644
--- 
a/infra/binder/src/main/java/org/apache/shardingsphere/infra/binder/context/segment/select/subquery/engine/SubqueryTableContextEngine.java
+++ 
b/infra/binder/src/main/java/org/apache/shardingsphere/infra/binder/context/segment/select/subquery/engine/SubqueryTableContextEngine.java
@@ -55,7 +55,7 @@ public final class SubqueryTableContextEngine {
                 result.computeIfAbsent(tableName.toLowerCase(), unused -> new 
SubqueryTableContext(tableName, aliasName)).getColumnNames().add(columnName);
             }
             if (tableSegment instanceof JoinTableSegment && 
((ColumnProjection) each).getOwner().isPresent()) {
-                Optional<String> tableName = 
getTableNameByOwner(subqueryContext.getTablesContext().getSimpleTableSegments(),
 ((ColumnProjection) each).getOwner().get().getValue());
+                Optional<String> tableName = 
getTableNameByOwner(subqueryContext.getTablesContext().getSimpleTables(), 
((ColumnProjection) each).getOwner().get().getValue());
                 tableName.ifPresent(optional -> 
result.computeIfAbsent(optional.toLowerCase(), unused -> new 
SubqueryTableContext(optional, aliasName)).getColumnNames().add(columnName));
             }
         }
diff --git 
a/infra/binder/src/main/java/org/apache/shardingsphere/infra/binder/context/segment/table/TablesContext.java
 
b/infra/binder/src/main/java/org/apache/shardingsphere/infra/binder/context/segment/table/TablesContext.java
index e9e0157c8b0..5fa7e27ba51 100644
--- 
a/infra/binder/src/main/java/org/apache/shardingsphere/infra/binder/context/segment/table/TablesContext.java
+++ 
b/infra/binder/src/main/java/org/apache/shardingsphere/infra/binder/context/segment/table/TablesContext.java
@@ -20,6 +20,7 @@ package 
org.apache.shardingsphere.infra.binder.context.segment.table;
 import com.cedarsoftware.util.CaseInsensitiveMap;
 import com.cedarsoftware.util.CaseInsensitiveSet;
 import com.google.common.base.Preconditions;
+import lombok.AccessLevel;
 import lombok.Getter;
 import lombok.ToString;
 import 
org.apache.shardingsphere.infra.binder.context.segment.select.subquery.SubqueryTableContext;
@@ -52,16 +53,19 @@ import java.util.TreeSet;
 @ToString
 public final class TablesContext {
     
-    private final Collection<TableSegment> tableSegments = new LinkedList<>();
+    @Getter(AccessLevel.NONE)
+    private final Collection<TableSegment> tables = new LinkedList<>();
     
-    private final Collection<SimpleTableSegment> simpleTableSegments = new 
LinkedList<>();
+    private final Collection<SimpleTableSegment> simpleTables = new 
LinkedList<>();
     
     private final Collection<String> tableNames = new CaseInsensitiveSet<>();
     
     private final Collection<String> schemaNames = new CaseInsensitiveSet<>();
     
+    @Getter(AccessLevel.NONE)
     private final Collection<String> databaseNames = new 
CaseInsensitiveSet<>();
     
+    @Getter(AccessLevel.NONE)
     private final Map<String, Collection<SubqueryTableContext>> subqueryTables 
= new HashMap<>();
     
     private final Map<String, IdentifierValue> tableNameAliasMap = new 
HashMap<>();
@@ -70,19 +74,19 @@ public final class TablesContext {
         this(Collections.singletonList(tableSegment), databaseType);
     }
     
-    public TablesContext(final Collection<SimpleTableSegment> tableSegments, 
final DatabaseType databaseType) {
-        this(tableSegments, Collections.emptyMap(), databaseType);
+    public TablesContext(final Collection<SimpleTableSegment> tables, final 
DatabaseType databaseType) {
+        this(tables, Collections.emptyMap(), databaseType);
     }
     
-    public TablesContext(final Collection<? extends TableSegment> 
tableSegments, final Map<Integer, SelectStatementContext> subqueryContexts, 
final DatabaseType databaseType) {
-        if (tableSegments.isEmpty()) {
+    public TablesContext(final Collection<? extends TableSegment> tables, 
final Map<Integer, SelectStatementContext> subqueryContexts, final DatabaseType 
databaseType) {
+        if (tables.isEmpty()) {
             return;
         }
-        this.tableSegments.addAll(tableSegments);
-        for (TableSegment each : tableSegments) {
+        this.tables.addAll(tables);
+        for (TableSegment each : tables) {
             if (each instanceof SimpleTableSegment) {
                 SimpleTableSegment simpleTableSegment = (SimpleTableSegment) 
each;
-                simpleTableSegments.add(simpleTableSegment);
+                simpleTables.add(simpleTableSegment);
                 
tableNames.add(simpleTableSegment.getTableName().getIdentifier().getValue());
                 simpleTableSegment.getOwner().ifPresent(optional -> 
schemaNames.add(optional.getIdentifier().getValue()));
                 findDatabaseName(simpleTableSegment, 
databaseType).ifPresent(databaseNames::add);
@@ -113,26 +117,26 @@ public final class TablesContext {
     }
     
     /**
-     * Find expression table name map by column segment.
+     * Find expression table name map.
      *
-     * @param columns column segment collection
-     * @param schema schema meta data
+     * @param columns column segments
+     * @param schema schema
      * @return expression table name map
      */
-    public Map<String, String> findTableNamesByColumnSegment(final 
Collection<ColumnSegment> columns, final ShardingSphereSchema schema) {
-        if (1 == simpleTableSegments.size()) {
-            return findTableNameFromSingleTableByColumnSegment(columns);
+    public Map<String, String> findTableNames(final Collection<ColumnSegment> 
columns, final ShardingSphereSchema schema) {
+        if (1 == simpleTables.size()) {
+            return findTableNameFromSingleTable(columns);
         }
         Map<String, String> result = new CaseInsensitiveMap<>();
-        Map<String, Collection<String>> ownerColumnNames = 
getOwnerColumnNamesByColumnSegment(columns);
+        Map<String, Collection<String>> ownerColumnNames = 
getOwnerColumnNames(columns);
         result.putAll(findTableNameFromSQL(ownerColumnNames));
-        Collection<String> noOwnerColumnNames = 
getNoOwnerColumnNamesByColumnSegment(columns);
+        Collection<String> noOwnerColumnNames = getNoOwnerColumnNames(columns);
         result.putAll(findTableNameFromMetaData(noOwnerColumnNames, schema));
-        result.putAll(findTableNameFromSubqueryByColumnSegment(columns, 
result));
+        result.putAll(findTableNameFromSubquery(columns, result));
         return result;
     }
     
-    private Map<String, String> findTableNameFromSubqueryByColumnSegment(final 
Collection<ColumnSegment> columns, final Map<String, String> ownerTableNames) {
+    private Map<String, String> findTableNameFromSubquery(final 
Collection<ColumnSegment> columns, final Map<String, String> ownerTableNames) {
         if (ownerTableNames.size() == columns.size() || 
subqueryTables.isEmpty()) {
             return Collections.emptyMap();
         }
@@ -152,8 +156,8 @@ public final class TablesContext {
         return result;
     }
     
-    private Map<String, String> 
findTableNameFromSingleTableByColumnSegment(final Collection<ColumnSegment> 
columns) {
-        String tableName = 
simpleTableSegments.iterator().next().getTableName().getIdentifier().getValue();
+    private Map<String, String> findTableNameFromSingleTable(final 
Collection<ColumnSegment> columns) {
+        String tableName = 
simpleTables.iterator().next().getTableName().getIdentifier().getValue();
         Map<String, String> result = new CaseInsensitiveMap<>();
         for (ColumnSegment each : columns) {
             result.putIfAbsent(each.getExpression(), tableName);
@@ -161,7 +165,7 @@ public final class TablesContext {
         return result;
     }
     
-    private Map<String, Collection<String>> 
getOwnerColumnNamesByColumnSegment(final Collection<ColumnSegment> columns) {
+    private Map<String, Collection<String>> getOwnerColumnNames(final 
Collection<ColumnSegment> columns) {
         Map<String, Collection<String>> result = new CaseInsensitiveMap<>();
         for (ColumnSegment each : columns) {
             if (!each.getOwner().isPresent()) {
@@ -176,8 +180,8 @@ public final class TablesContext {
         if (ownerColumnNames.isEmpty()) {
             return Collections.emptyMap();
         }
-        Map<String, String> result = new 
LinkedHashMap<>(simpleTableSegments.size(), 1F);
-        for (SimpleTableSegment each : simpleTableSegments) {
+        Map<String, String> result = new LinkedHashMap<>(simpleTables.size(), 
1F);
+        for (SimpleTableSegment each : simpleTables) {
             String tableName = each.getTableName().getIdentifier().getValue();
             if (ownerColumnNames.containsKey(tableName)) {
                 ownerColumnNames.get(tableName).forEach(column -> 
result.put(column, tableName));
@@ -195,7 +199,7 @@ public final class TablesContext {
             return Collections.emptyMap();
         }
         Map<String, String> result = new 
LinkedHashMap<>(noOwnerColumnNames.size(), 1F);
-        for (SimpleTableSegment each : simpleTableSegments) {
+        for (SimpleTableSegment each : simpleTables) {
             String tableName = each.getTableName().getIdentifier().getValue();
             for (String columnName : schema.getAllColumnNames(tableName)) {
                 if (noOwnerColumnNames.contains(columnName)) {
@@ -206,7 +210,7 @@ public final class TablesContext {
         return result;
     }
     
-    private Collection<String> getNoOwnerColumnNamesByColumnSegment(final 
Collection<ColumnSegment> columns) {
+    private Collection<String> getNoOwnerColumnNames(final 
Collection<ColumnSegment> columns) {
         Collection<String> result = new 
TreeSet<>(String.CASE_INSENSITIVE_ORDER);
         for (ColumnSegment each : columns) {
             if (!each.getOwner().isPresent()) {
diff --git 
a/infra/binder/src/main/java/org/apache/shardingsphere/infra/binder/context/statement/ddl/AlterViewStatementContext.java
 
b/infra/binder/src/main/java/org/apache/shardingsphere/infra/binder/context/statement/ddl/AlterViewStatementContext.java
index 3326cf5297c..c01608ce44d 100644
--- 
a/infra/binder/src/main/java/org/apache/shardingsphere/infra/binder/context/statement/ddl/AlterViewStatementContext.java
+++ 
b/infra/binder/src/main/java/org/apache/shardingsphere/infra/binder/context/statement/ddl/AlterViewStatementContext.java
@@ -60,6 +60,6 @@ public final class AlterViewStatementContext extends 
CommonSQLStatementContext i
     
     @Override
     public Collection<SimpleTableSegment> getAllTables() {
-        return tablesContext.getSimpleTableSegments();
+        return tablesContext.getSimpleTables();
     }
 }
diff --git 
a/infra/binder/src/main/java/org/apache/shardingsphere/infra/binder/context/statement/ddl/CommentStatementContext.java
 
b/infra/binder/src/main/java/org/apache/shardingsphere/infra/binder/context/statement/ddl/CommentStatementContext.java
index cf7fba1caa7..b53abb7e518 100644
--- 
a/infra/binder/src/main/java/org/apache/shardingsphere/infra/binder/context/statement/ddl/CommentStatementContext.java
+++ 
b/infra/binder/src/main/java/org/apache/shardingsphere/infra/binder/context/statement/ddl/CommentStatementContext.java
@@ -47,6 +47,6 @@ public final class CommentStatementContext extends 
CommonSQLStatementContext imp
     
     @Override
     public Collection<SimpleTableSegment> getAllTables() {
-        return tablesContext.getSimpleTableSegments();
+        return tablesContext.getSimpleTables();
     }
 }
diff --git 
a/infra/binder/src/main/java/org/apache/shardingsphere/infra/binder/context/statement/ddl/CreateViewStatementContext.java
 
b/infra/binder/src/main/java/org/apache/shardingsphere/infra/binder/context/statement/ddl/CreateViewStatementContext.java
index 1335febc248..c5098bdeda0 100644
--- 
a/infra/binder/src/main/java/org/apache/shardingsphere/infra/binder/context/statement/ddl/CreateViewStatementContext.java
+++ 
b/infra/binder/src/main/java/org/apache/shardingsphere/infra/binder/context/statement/ddl/CreateViewStatementContext.java
@@ -49,6 +49,6 @@ public final class CreateViewStatementContext extends 
CommonSQLStatementContext
     
     @Override
     public Collection<SimpleTableSegment> getAllTables() {
-        return tablesContext.getSimpleTableSegments();
+        return tablesContext.getSimpleTables();
     }
 }
diff --git 
a/infra/binder/src/main/java/org/apache/shardingsphere/infra/binder/context/statement/ddl/CursorStatementContext.java
 
b/infra/binder/src/main/java/org/apache/shardingsphere/infra/binder/context/statement/ddl/CursorStatementContext.java
index f27ddd2f6aa..e6fa0406f4f 100644
--- 
a/infra/binder/src/main/java/org/apache/shardingsphere/infra/binder/context/statement/ddl/CursorStatementContext.java
+++ 
b/infra/binder/src/main/java/org/apache/shardingsphere/infra/binder/context/statement/ddl/CursorStatementContext.java
@@ -78,7 +78,7 @@ public final class CursorStatementContext extends 
CommonSQLStatementContext impl
     
     @Override
     public Collection<SimpleTableSegment> getAllTables() {
-        return tablesContext.getSimpleTableSegments();
+        return tablesContext.getSimpleTables();
     }
     
     @Override
diff --git 
a/infra/binder/src/main/java/org/apache/shardingsphere/infra/binder/context/statement/ddl/DropViewStatementContext.java
 
b/infra/binder/src/main/java/org/apache/shardingsphere/infra/binder/context/statement/ddl/DropViewStatementContext.java
index beadc699222..d33b54e431f 100644
--- 
a/infra/binder/src/main/java/org/apache/shardingsphere/infra/binder/context/statement/ddl/DropViewStatementContext.java
+++ 
b/infra/binder/src/main/java/org/apache/shardingsphere/infra/binder/context/statement/ddl/DropViewStatementContext.java
@@ -46,6 +46,6 @@ public final class DropViewStatementContext extends 
CommonSQLStatementContext im
     
     @Override
     public Collection<SimpleTableSegment> getAllTables() {
-        return tablesContext.getSimpleTableSegments();
+        return tablesContext.getSimpleTables();
     }
 }
diff --git 
a/infra/binder/src/main/java/org/apache/shardingsphere/infra/binder/context/statement/dml/CopyStatementContext.java
 
b/infra/binder/src/main/java/org/apache/shardingsphere/infra/binder/context/statement/dml/CopyStatementContext.java
index b38791cae73..00445376265 100644
--- 
a/infra/binder/src/main/java/org/apache/shardingsphere/infra/binder/context/statement/dml/CopyStatementContext.java
+++ 
b/infra/binder/src/main/java/org/apache/shardingsphere/infra/binder/context/statement/dml/CopyStatementContext.java
@@ -46,6 +46,6 @@ public final class CopyStatementContext extends 
CommonSQLStatementContext implem
     
     @Override
     public Collection<SimpleTableSegment> getAllTables() {
-        return tablesContext.getSimpleTableSegments();
+        return tablesContext.getSimpleTables();
     }
 }
diff --git 
a/infra/binder/src/main/java/org/apache/shardingsphere/infra/binder/context/statement/dml/DeleteStatementContext.java
 
b/infra/binder/src/main/java/org/apache/shardingsphere/infra/binder/context/statement/dml/DeleteStatementContext.java
index 3fb5868ec3e..9d3a830b405 100644
--- 
a/infra/binder/src/main/java/org/apache/shardingsphere/infra/binder/context/statement/dml/DeleteStatementContext.java
+++ 
b/infra/binder/src/main/java/org/apache/shardingsphere/infra/binder/context/statement/dml/DeleteStatementContext.java
@@ -91,7 +91,7 @@ public final class DeleteStatementContext extends 
CommonSQLStatementContext impl
     
     @Override
     public Collection<SimpleTableSegment> getAllTables() {
-        return tablesContext.getSimpleTableSegments();
+        return tablesContext.getSimpleTables();
     }
     
     @Override
diff --git 
a/infra/binder/src/main/java/org/apache/shardingsphere/infra/binder/context/statement/dml/InsertStatementContext.java
 
b/infra/binder/src/main/java/org/apache/shardingsphere/infra/binder/context/statement/dml/InsertStatementContext.java
index 6e0227be195..9406cb3fac5 100644
--- 
a/infra/binder/src/main/java/org/apache/shardingsphere/infra/binder/context/statement/dml/InsertStatementContext.java
+++ 
b/infra/binder/src/main/java/org/apache/shardingsphere/infra/binder/context/statement/dml/InsertStatementContext.java
@@ -266,7 +266,7 @@ public final class InsertStatementContext extends 
CommonSQLStatementContext impl
     
     @Override
     public Collection<SimpleTableSegment> getAllTables() {
-        return tablesContext.getSimpleTableSegments();
+        return tablesContext.getSimpleTables();
     }
     
     @Override
diff --git 
a/infra/binder/src/main/java/org/apache/shardingsphere/infra/binder/context/statement/dml/LoadDataStatementContext.java
 
b/infra/binder/src/main/java/org/apache/shardingsphere/infra/binder/context/statement/dml/LoadDataStatementContext.java
index efe9ef8b561..5e174a9cb72 100644
--- 
a/infra/binder/src/main/java/org/apache/shardingsphere/infra/binder/context/statement/dml/LoadDataStatementContext.java
+++ 
b/infra/binder/src/main/java/org/apache/shardingsphere/infra/binder/context/statement/dml/LoadDataStatementContext.java
@@ -46,6 +46,6 @@ public final class LoadDataStatementContext extends 
CommonSQLStatementContext im
     
     @Override
     public Collection<SimpleTableSegment> getAllTables() {
-        return tablesContext.getSimpleTableSegments();
+        return tablesContext.getSimpleTables();
     }
 }
diff --git 
a/infra/binder/src/main/java/org/apache/shardingsphere/infra/binder/context/statement/dml/LoadXMLStatementContext.java
 
b/infra/binder/src/main/java/org/apache/shardingsphere/infra/binder/context/statement/dml/LoadXMLStatementContext.java
index 856786db040..96a2de8fc06 100644
--- 
a/infra/binder/src/main/java/org/apache/shardingsphere/infra/binder/context/statement/dml/LoadXMLStatementContext.java
+++ 
b/infra/binder/src/main/java/org/apache/shardingsphere/infra/binder/context/statement/dml/LoadXMLStatementContext.java
@@ -46,6 +46,6 @@ public final class LoadXMLStatementContext extends 
CommonSQLStatementContext imp
     
     @Override
     public Collection<SimpleTableSegment> getAllTables() {
-        return tablesContext.getSimpleTableSegments();
+        return tablesContext.getSimpleTables();
     }
 }
diff --git 
a/infra/binder/src/main/java/org/apache/shardingsphere/infra/binder/context/statement/dml/SelectStatementContext.java
 
b/infra/binder/src/main/java/org/apache/shardingsphere/infra/binder/context/statement/dml/SelectStatementContext.java
index b8749baea25..d9cc9bd3c2b 100644
--- 
a/infra/binder/src/main/java/org/apache/shardingsphere/infra/binder/context/statement/dml/SelectStatementContext.java
+++ 
b/infra/binder/src/main/java/org/apache/shardingsphere/infra/binder/context/statement/dml/SelectStatementContext.java
@@ -140,7 +140,7 @@ public final class SelectStatementContext extends 
CommonSQLStatementContext impl
     
     private Collection<TableMapperRuleAttribute> 
getTableMapperRuleAttributes(final ShardingSphereMetaData metaData, final 
String databaseName) {
         if (null == databaseName) {
-            
ShardingSpherePreconditions.checkMustEmpty(tablesContext.getSimpleTableSegments(),
 NoDatabaseSelectedException::new);
+            
ShardingSpherePreconditions.checkMustEmpty(tablesContext.getSimpleTables(), 
NoDatabaseSelectedException::new);
             return Collections.emptyList();
         }
         ShardingSphereDatabase database = metaData.getDatabase(databaseName);
@@ -346,7 +346,7 @@ public final class SelectStatementContext extends 
CommonSQLStatementContext impl
     
     @Override
     public Collection<SimpleTableSegment> getAllTables() {
-        return tablesContext.getSimpleTableSegments();
+        return tablesContext.getSimpleTables();
     }
     
     @Override
diff --git 
a/infra/binder/src/main/java/org/apache/shardingsphere/infra/binder/context/statement/dml/UpdateStatementContext.java
 
b/infra/binder/src/main/java/org/apache/shardingsphere/infra/binder/context/statement/dml/UpdateStatementContext.java
index da44a84703c..ee35aba9313 100644
--- 
a/infra/binder/src/main/java/org/apache/shardingsphere/infra/binder/context/statement/dml/UpdateStatementContext.java
+++ 
b/infra/binder/src/main/java/org/apache/shardingsphere/infra/binder/context/statement/dml/UpdateStatementContext.java
@@ -69,7 +69,7 @@ public final class UpdateStatementContext extends 
CommonSQLStatementContext impl
     
     @Override
     public Collection<SimpleTableSegment> getAllTables() {
-        return tablesContext.getSimpleTableSegments();
+        return tablesContext.getSimpleTables();
     }
     
     @Override
diff --git 
a/infra/binder/src/test/java/org/apache/shardingsphere/infra/binder/context/segment/table/TablesContextTest.java
 
b/infra/binder/src/test/java/org/apache/shardingsphere/infra/binder/context/segment/table/TablesContextTest.java
index 7669110ca53..71f0c9d323c 100644
--- 
a/infra/binder/src/test/java/org/apache/shardingsphere/infra/binder/context/segment/table/TablesContextTest.java
+++ 
b/infra/binder/src/test/java/org/apache/shardingsphere/infra/binder/context/segment/table/TablesContextTest.java
@@ -63,7 +63,6 @@ class TablesContextTest {
         assertThat(tablesContext.getDatabaseName(), is(Optional.of("schema")));
         assertThat(tablesContext.getSchemaName(), is(Optional.of("schema")));
         assertThat(tablesContext.getTableNames(), 
is(Collections.singleton("tbl")));
-        assertTrue(tablesContext.getSubqueryTables().isEmpty());
     }
     
     @Test
@@ -71,7 +70,7 @@ class TablesContextTest {
         SimpleTableSegment tableSegment = createTableSegment("table_1", 
"tbl_1");
         ColumnSegment columnSegment = createColumnSegment(null, "col");
         Map<String, String> actual = new 
TablesContext(Collections.singletonList(tableSegment), 
TypedSPILoader.getService(DatabaseType.class, "FIXTURE"))
-                
.findTableNamesByColumnSegment(Collections.singletonList(columnSegment), 
mock(ShardingSphereSchema.class));
+                .findTableNames(Collections.singletonList(columnSegment), 
mock(ShardingSphereSchema.class));
         assertFalse(actual.isEmpty());
         assertThat(actual.get("col"), is("table_1"));
     }
@@ -82,7 +81,7 @@ class TablesContextTest {
         SimpleTableSegment tableSegment2 = createTableSegment("table_2", 
"tbl_2");
         ColumnSegment columnSegment = createColumnSegment("table_1", "col");
         Map<String, String> actual = new 
TablesContext(Arrays.asList(tableSegment1, tableSegment2), 
TypedSPILoader.getService(DatabaseType.class, "FIXTURE"))
-                
.findTableNamesByColumnSegment(Collections.singletonList(columnSegment), 
mock(ShardingSphereSchema.class));
+                .findTableNames(Collections.singletonList(columnSegment), 
mock(ShardingSphereSchema.class));
         assertFalse(actual.isEmpty());
         assertThat(actual.get("table_1.col"), is("table_1"));
     }
@@ -93,7 +92,7 @@ class TablesContextTest {
         SimpleTableSegment tableSegment2 = createTableSegment("table_2", 
"tbl_2");
         ColumnSegment columnSegment = createColumnSegment(null, "col");
         Map<String, String> actual = new 
TablesContext(Arrays.asList(tableSegment1, tableSegment2), 
TypedSPILoader.getService(DatabaseType.class, "FIXTURE"))
-                
.findTableNamesByColumnSegment(Collections.singletonList(columnSegment), 
mock(ShardingSphereSchema.class));
+                .findTableNames(Collections.singletonList(columnSegment), 
mock(ShardingSphereSchema.class));
         assertTrue(actual.isEmpty());
     }
     
@@ -105,7 +104,7 @@ class TablesContextTest {
         
when(schema.getAllColumnNames("table_1")).thenReturn(Collections.singletonList("col"));
         ColumnSegment columnSegment = createColumnSegment(null, "col");
         Map<String, String> actual = new 
TablesContext(Arrays.asList(tableSegment1, tableSegment2),
-                TypedSPILoader.getService(DatabaseType.class, 
"FIXTURE")).findTableNamesByColumnSegment(Collections.singletonList(columnSegment),
 schema);
+                TypedSPILoader.getService(DatabaseType.class, 
"FIXTURE")).findTableNames(Collections.singletonList(columnSegment), schema);
         assertFalse(actual.isEmpty());
         assertThat(actual.get("col"), is("table_1"));
     }
@@ -119,7 +118,7 @@ class TablesContextTest {
         ShardingSphereSchema schema = new 
ShardingSphereSchema(Stream.of(table).collect(Collectors.toMap(ShardingSphereTable::getName,
 value -> value)), Collections.emptyMap());
         ColumnSegment columnSegment = createColumnSegment(null, "COL");
         Map<String, String> actual = new 
TablesContext(Arrays.asList(tableSegment1, tableSegment2),
-                TypedSPILoader.getService(DatabaseType.class, 
"FIXTURE")).findTableNamesByColumnSegment(Collections.singletonList(columnSegment),
 schema);
+                TypedSPILoader.getService(DatabaseType.class, 
"FIXTURE")).findTableNames(Collections.singletonList(columnSegment), schema);
         assertFalse(actual.isEmpty());
         assertThat(actual.get("col"), is("TABLE_1"));
     }
diff --git 
a/kernel/data-pipeline/core/src/main/java/org/apache/shardingsphere/data/pipeline/core/metadata/generator/PipelineDDLGenerator.java
 
b/kernel/data-pipeline/core/src/main/java/org/apache/shardingsphere/data/pipeline/core/metadata/generator/PipelineDDLGenerator.java
index 83c318d8fde..586dc208e0c 100644
--- 
a/kernel/data-pipeline/core/src/main/java/org/apache/shardingsphere/data/pipeline/core/metadata/generator/PipelineDDLGenerator.java
+++ 
b/kernel/data-pipeline/core/src/main/java/org/apache/shardingsphere/data/pipeline/core/metadata/generator/PipelineDDLGenerator.java
@@ -131,10 +131,10 @@ public final class PipelineDDLGenerator {
     }
     
     private void appendFromIndexAndConstraint(final Map<SQLSegment, String> 
replaceMap, final String targetTableName, final SQLStatementContext 
sqlStatementContext) {
-        if (!(sqlStatementContext instanceof TableAvailable) || 
((TableAvailable) 
sqlStatementContext).getTablesContext().getSimpleTableSegments().isEmpty()) {
+        if (!(sqlStatementContext instanceof TableAvailable) || 
((TableAvailable) 
sqlStatementContext).getTablesContext().getSimpleTables().isEmpty()) {
             return;
         }
-        TableNameSegment tableNameSegment = ((TableAvailable) 
sqlStatementContext).getTablesContext().getSimpleTableSegments().iterator().next().getTableName();
+        TableNameSegment tableNameSegment = ((TableAvailable) 
sqlStatementContext).getTablesContext().getSimpleTables().iterator().next().getTableName();
         if 
(!tableNameSegment.getIdentifier().getValue().equals(targetTableName)) {
             if (sqlStatementContext instanceof IndexAvailable) {
                 for (IndexSegment each : ((IndexAvailable) 
sqlStatementContext).getIndexes()) {
@@ -187,14 +187,14 @@ public final class PipelineDDLGenerator {
         SQLStatementContext sqlStatementContext = 
queryContext.getSqlStatementContext();
         if (sqlStatementContext instanceof CreateTableStatementContext || 
sqlStatementContext instanceof CommentStatementContext
                 || sqlStatementContext instanceof CreateIndexStatementContext 
|| sqlStatementContext instanceof AlterTableStatementContext) {
-            if 
(sqlStatementContext.getTablesContext().getSimpleTableSegments().isEmpty()) {
+            if 
(sqlStatementContext.getTablesContext().getSimpleTables().isEmpty()) {
                 return sql;
             }
             if 
(sqlStatementContext.getTablesContext().getSchemaName().isPresent()) {
                 return sql;
             }
             Map<SQLSegment, String> replaceMap = new 
TreeMap<>(Comparator.comparing(SQLSegment::getStartIndex));
-            TableNameSegment tableNameSegment = 
sqlStatementContext.getTablesContext().getSimpleTableSegments().iterator().next().getTableName();
+            TableNameSegment tableNameSegment = 
sqlStatementContext.getTablesContext().getSimpleTables().iterator().next().getTableName();
             replaceMap.put(tableNameSegment, prefix + 
tableNameSegment.getIdentifier().getValue());
             return doDecorateActualTable(replaceMap, sql);
         }
diff --git 
a/kernel/single/core/src/main/java/org/apache/shardingsphere/single/rule/SingleRule.java
 
b/kernel/single/core/src/main/java/org/apache/shardingsphere/single/rule/SingleRule.java
index 9866f43b904..92eba705e0a 100644
--- 
a/kernel/single/core/src/main/java/org/apache/shardingsphere/single/rule/SingleRule.java
+++ 
b/kernel/single/core/src/main/java/org/apache/shardingsphere/single/rule/SingleRule.java
@@ -166,7 +166,7 @@ public final class SingleRule implements DatabaseRule {
      * @return qualified tables
      */
     public Collection<QualifiedTable> getQualifiedTables(final 
SQLStatementContext sqlStatementContext, final ShardingSphereDatabase database) 
{
-        Collection<QualifiedTable> result = getQualifiedTables(database, 
protocolType, sqlStatementContext.getTablesContext().getSimpleTableSegments());
+        Collection<QualifiedTable> result = getQualifiedTables(database, 
protocolType, sqlStatementContext.getTablesContext().getSimpleTables());
         if (result.isEmpty() && sqlStatementContext instanceof IndexAvailable) 
{
             result = IndexMetaDataUtils.getTableNames(database, protocolType, 
((IndexAvailable) sqlStatementContext).getIndexes());
         }


Reply via email to