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

chengzhang pushed a commit to branch master
in repository https://gitbox.apache.org/repos/asf/shardingsphere.git


The following commit(s) were added to refs/heads/master by this push:
     new f4a8ecf02a2 Remove useless field in TablesContext (#37956)
f4a8ecf02a2 is described below

commit f4a8ecf02a285600a86eb24e190872bb21879af6
Author: Zhengqiang Duan <[email protected]>
AuthorDate: Wed Feb 4 15:28:20 2026 +0800

    Remove useless field in TablesContext (#37956)
---
 .../connector/core/type/DatabaseTypeRegistry.java  |  2 +-
 .../core/type/DatabaseTypeRegistryTest.java        |  2 +-
 .../engine/BroadcastRouteEngineFactoryTest.java    |  2 +-
 .../sharding/rule/ShardingRuleTest.java            |  2 +-
 .../context/segment/table/TablesContext.java       | 38 +---------------------
 .../type/dml/InsertStatementBaseContext.java       |  2 +-
 .../type/dml/SelectStatementBaseContext.java       |  2 +-
 .../context/segment/table/TablesContextTest.java   |  4 +--
 8 files changed, 9 insertions(+), 45 deletions(-)

diff --git 
a/database/connector/core/src/main/java/org/apache/shardingsphere/database/connector/core/type/DatabaseTypeRegistry.java
 
b/database/connector/core/src/main/java/org/apache/shardingsphere/database/connector/core/type/DatabaseTypeRegistry.java
index ed0558d4b13..45b2ef2e58d 100644
--- 
a/database/connector/core/src/main/java/org/apache/shardingsphere/database/connector/core/type/DatabaseTypeRegistry.java
+++ 
b/database/connector/core/src/main/java/org/apache/shardingsphere/database/connector/core/type/DatabaseTypeRegistry.java
@@ -57,7 +57,7 @@ public final class DatabaseTypeRegistry {
      * @return default schema name
      */
     public String getDefaultSchemaName(final String databaseName) {
-        return 
dialectDatabaseMetaData.getSchemaOption().getDefaultSchema().orElseGet(() -> 
null == databaseName ? null : databaseName.toLowerCase());
+        return 
dialectDatabaseMetaData.getSchemaOption().getDefaultSchema().orElse(databaseName);
     }
     
     /**
diff --git 
a/database/connector/core/src/test/java/org/apache/shardingsphere/database/connector/core/type/DatabaseTypeRegistryTest.java
 
b/database/connector/core/src/test/java/org/apache/shardingsphere/database/connector/core/type/DatabaseTypeRegistryTest.java
index cdeb9bb6c7e..08622b41c4a 100644
--- 
a/database/connector/core/src/test/java/org/apache/shardingsphere/database/connector/core/type/DatabaseTypeRegistryTest.java
+++ 
b/database/connector/core/src/test/java/org/apache/shardingsphere/database/connector/core/type/DatabaseTypeRegistryTest.java
@@ -47,7 +47,7 @@ class DatabaseTypeRegistryTest {
     
     @Test
     void assertGetDefaultSchemaNameWhenDatabaseTypeNotContainsDefaultSchema() {
-        assertThat(new 
DatabaseTypeRegistry(TypedSPILoader.getService(DatabaseType.class, 
"BRANCH")).getDefaultSchemaName("FOO"), is("foo"));
+        assertThat(new 
DatabaseTypeRegistry(TypedSPILoader.getService(DatabaseType.class, 
"BRANCH")).getDefaultSchemaName("FOO"), is("FOO"));
     }
     
     @Test
diff --git 
a/features/broadcast/core/src/test/java/org/apache/shardingsphere/broadcast/route/engine/BroadcastRouteEngineFactoryTest.java
 
b/features/broadcast/core/src/test/java/org/apache/shardingsphere/broadcast/route/engine/BroadcastRouteEngineFactoryTest.java
index 44dacbb34eb..c9e2d619f3b 100644
--- 
a/features/broadcast/core/src/test/java/org/apache/shardingsphere/broadcast/route/engine/BroadcastRouteEngineFactoryTest.java
+++ 
b/features/broadcast/core/src/test/java/org/apache/shardingsphere/broadcast/route/engine/BroadcastRouteEngineFactoryTest.java
@@ -141,6 +141,6 @@ class BroadcastRouteEngineFactoryTest {
     }
     
     private TablesContext createTablesContext() {
-        return new TablesContext(Collections.singleton(new 
SimpleTableSegment(new TableNameSegment(0, 0, new 
IdentifierValue("foo_tbl")))), null);
+        return new TablesContext(Collections.singleton(new 
SimpleTableSegment(new TableNameSegment(0, 0, new 
IdentifierValue("foo_tbl")))));
     }
 }
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 a157e5fc7b5..e476d6170cd 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
@@ -677,7 +677,7 @@ class ShardingRuleTest {
         Collection<SimpleTableSegment> tableSegments = Arrays.asList(
                 new SimpleTableSegment(new TableNameSegment(0, 0, new 
IdentifierValue("LOGIC_TABLE"))),
                 new SimpleTableSegment(new TableNameSegment(0, 0, new 
IdentifierValue("SUB_LOGIC_TABLE"))));
-        TablesContext tablesContext = new TablesContext(tableSegments, 
Collections.emptyMap());
+        TablesContext tablesContext = new TablesContext(tableSegments);
         when(sqlStatementContext.getTablesContext()).thenReturn(tablesContext);
         ShardingSphereDatabase database = mock(ShardingSphereDatabase.class, 
RETURNS_DEEP_STUBS);
         when(database.getName()).thenReturn("foo_db");
diff --git 
a/infra/binder/core/src/main/java/org/apache/shardingsphere/infra/binder/context/segment/table/TablesContext.java
 
b/infra/binder/core/src/main/java/org/apache/shardingsphere/infra/binder/context/segment/table/TablesContext.java
index 1240a4fcd6b..ff418e90d7c 100644
--- 
a/infra/binder/core/src/main/java/org/apache/shardingsphere/infra/binder/context/segment/table/TablesContext.java
+++ 
b/infra/binder/core/src/main/java/org/apache/shardingsphere/infra/binder/context/segment/table/TablesContext.java
@@ -17,24 +17,17 @@
 
 package org.apache.shardingsphere.infra.binder.context.segment.table;
 
-import com.cedarsoftware.util.CaseInsensitiveMap;
 import com.cedarsoftware.util.CaseInsensitiveSet;
 import com.google.common.base.Strings;
-import lombok.AccessLevel;
 import lombok.Getter;
 import lombok.ToString;
-import 
org.apache.shardingsphere.infra.binder.context.segment.select.subquery.SubqueryTableContext;
-import 
org.apache.shardingsphere.infra.binder.context.segment.select.subquery.engine.SubqueryTableContextEngine;
-import 
org.apache.shardingsphere.infra.binder.context.statement.type.dml.SelectStatementContext;
 import 
org.apache.shardingsphere.sql.parser.statement.core.segment.generic.table.SimpleTableSegment;
-import 
org.apache.shardingsphere.sql.parser.statement.core.segment.generic.table.SubqueryTableSegment;
 import 
org.apache.shardingsphere.sql.parser.statement.core.segment.generic.table.TableNameSegment;
 import 
org.apache.shardingsphere.sql.parser.statement.core.segment.generic.table.TableSegment;
 
 import java.util.Collection;
 import java.util.Collections;
 import java.util.LinkedList;
-import java.util.Map;
 import java.util.Optional;
 
 /**
@@ -52,26 +45,12 @@ public final class TablesContext {
     
     private final Collection<String> databaseNames = new 
CaseInsensitiveSet<>();
     
-    @Getter(AccessLevel.NONE)
-    private final Map<String, Collection<SubqueryTableContext>> subqueryTables 
= new CaseInsensitiveMap<>();
-    
-    @Getter(AccessLevel.NONE)
-    private final Collection<? extends TableSegment> tables;
-    
     public TablesContext(final SimpleTableSegment table) {
         this(null == table ? Collections.emptyList() : 
Collections.singletonList(table));
     }
     
-    public TablesContext(final Collection<SimpleTableSegment> tables) {
-        this(tables, Collections.emptyMap());
-    }
-    
-    public TablesContext(final Collection<? extends TableSegment> tables, 
final Map<Integer, SelectStatementContext> subqueryContexts) {
-        this.tables = tables;
+    public TablesContext(final Collection<? extends TableSegment> tables) {
         for (TableSegment each : tables) {
-            if (each instanceof SubqueryTableSegment) {
-                subqueryTables.putAll(createSubqueryTables(subqueryContexts, 
(SubqueryTableSegment) each));
-            }
             if (!(each instanceof SimpleTableSegment)) {
                 continue;
             }
@@ -94,21 +73,6 @@ public final class TablesContext {
                 .ifPresent(optional -> 
databaseNames.add(optional.getOriginalDatabase().getValue()));
     }
     
-    private Map<String, Collection<SubqueryTableContext>> 
createSubqueryTables(final Map<Integer, SelectStatementContext> 
subqueryContexts, final SubqueryTableSegment subqueryTable) {
-        if 
(!subqueryContexts.containsKey(subqueryTable.getSubquery().getStartIndex())) {
-            return Collections.emptyMap();
-        }
-        SelectStatementContext subqueryContext = 
subqueryContexts.get(subqueryTable.getSubquery().getStartIndex());
-        Map<String, SubqueryTableContext> subqueryTableContexts = new 
SubqueryTableContextEngine().createSubqueryTableContexts(subqueryContext, 
subqueryTable.getAliasName().orElse(null));
-        Map<String, Collection<SubqueryTableContext>> result = new 
CaseInsensitiveMap<>(subqueryTableContexts.size(), 1F);
-        for (SubqueryTableContext each : subqueryTableContexts.values()) {
-            if (null != each.getAliasName()) {
-                result.computeIfAbsent(each.getAliasName(), unused -> new 
LinkedList<>()).add(each);
-            }
-        }
-        return result;
-    }
-    
     /**
      * Get database name.
      *
diff --git 
a/infra/binder/core/src/main/java/org/apache/shardingsphere/infra/binder/context/statement/type/dml/InsertStatementBaseContext.java
 
b/infra/binder/core/src/main/java/org/apache/shardingsphere/infra/binder/context/statement/type/dml/InsertStatementBaseContext.java
index fbad6e6fa19..d0fa582c702 100644
--- 
a/infra/binder/core/src/main/java/org/apache/shardingsphere/infra/binder/context/statement/type/dml/InsertStatementBaseContext.java
+++ 
b/infra/binder/core/src/main/java/org/apache/shardingsphere/infra/binder/context/statement/type/dml/InsertStatementBaseContext.java
@@ -74,7 +74,7 @@ public final class InsertStatementBaseContext implements 
SQLStatementContext {
         this.currentDatabaseName = currentDatabaseName;
         valueExpressions = getAllValueExpressions(sqlStatement);
         Collection<TableSegment> tableSegments = getAllSimpleTableSegments();
-        tablesContext = new TablesContext(tableSegments, 
Collections.emptyMap());
+        tablesContext = new TablesContext(tableSegments);
         List<String> insertColumnNames = getInsertColumnNames();
         schema = getSchema(metaData, currentDatabaseName);
         columnNames = containsInsertColumns()
diff --git 
a/infra/binder/core/src/main/java/org/apache/shardingsphere/infra/binder/context/statement/type/dml/SelectStatementBaseContext.java
 
b/infra/binder/core/src/main/java/org/apache/shardingsphere/infra/binder/context/statement/type/dml/SelectStatementBaseContext.java
index ed07eb2e817..c945349271e 100644
--- 
a/infra/binder/core/src/main/java/org/apache/shardingsphere/infra/binder/context/statement/type/dml/SelectStatementBaseContext.java
+++ 
b/infra/binder/core/src/main/java/org/apache/shardingsphere/infra/binder/context/statement/type/dml/SelectStatementBaseContext.java
@@ -114,7 +114,7 @@ public final class SelectStatementBaseContext implements 
SQLStatementContext {
         Collection<TableSegment> tableSegments = 
getAllTableSegments(inheritedTables);
         ExpressionExtractor.extractJoinConditions(joinConditions, 
whereSegments);
         subqueryContexts = createSubqueryContexts(metaData, 
currentDatabaseName, tableSegments);
-        tablesContext = new TablesContext(tableSegments, subqueryContexts);
+        tablesContext = new TablesContext(tableSegments);
         groupByContext = new 
GroupByContextEngine().createGroupByContext(sqlStatement);
         orderByContext = new 
OrderByContextEngine(sqlStatement.getDatabaseType()).createOrderBy(sqlStatement,
 groupByContext);
         projectionsContext = new 
ProjectionsContextEngine(sqlStatement.getDatabaseType()).createProjectionsContext(sqlStatement.getProjections(),
 groupByContext, orderByContext);
diff --git 
a/infra/binder/core/src/test/java/org/apache/shardingsphere/infra/binder/context/segment/table/TablesContextTest.java
 
b/infra/binder/core/src/test/java/org/apache/shardingsphere/infra/binder/context/segment/table/TablesContextTest.java
index d0510d024d6..d2d9af3ea52 100644
--- 
a/infra/binder/core/src/test/java/org/apache/shardingsphere/infra/binder/context/segment/table/TablesContextTest.java
+++ 
b/infra/binder/core/src/test/java/org/apache/shardingsphere/infra/binder/context/segment/table/TablesContextTest.java
@@ -40,12 +40,12 @@ class TablesContextTest {
     
     @Test
     void assertGetTableNamesWithoutTableSegments() {
-        assertTrue(new TablesContext(Collections.emptyList(), 
Collections.emptyMap()).getTableNames().isEmpty());
+        assertTrue(new 
TablesContext(Collections.emptyList()).getTableNames().isEmpty());
     }
     
     @Test
     void assertGetTableNamesWithoutSimpleTableSegments() {
-        assertTrue(new 
TablesContext(Collections.singleton(mock(TableSegment.class)), 
Collections.emptyMap()).getTableNames().isEmpty());
+        assertTrue(new 
TablesContext(Collections.singleton(mock(TableSegment.class))).getTableNames().isEmpty());
     }
     
     @Test

Reply via email to