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 4bf0a4984f7 Refactor findLogicTableNameFromMetaData method to use 
Stream API (#37012)
4bf0a4984f7 is described below

commit 4bf0a4984f71627c15e8bc63798fef5ba54150de
Author: Liang Zhang <[email protected]>
AuthorDate: Wed Nov 5 01:21:27 2025 +0800

    Refactor findLogicTableNameFromMetaData method to use Stream API (#37012)
    
    * Refactor findLogicTableNameFromMetaData method to use Stream API
    
    - Replace traditional for-each loop with functional Stream API approach
    - Convert iteration to stream().filter().findFirst().map() chain
    - Maintain exact same functionality while improving code readability
    - Follow modern Java programming practices and project style
    
    Before:
    for (ShardingSphereTable each : schema.getAllTables()) {
        if (each.containsIndex(logicIndexName)) {
            return Optional.of(each.getName());
        }
    }
    return Optional.empty();
    
    After:
    return schema.getAllTables().stream()
            .filter(table -> table.containsIndex(logicIndexName))
            .findFirst()
            .map(ShardingSphereTable::getName);
    
    🤖 Generated with [Claude Code](https://claude.com/claude-code)
    
    Co-Authored-By: Claude <[email protected]>
    
    * Refactor findLogicTableNameFromMetaData method to use Stream API
    
    - Replace traditional for-each loop with functional Stream API approach
    - Convert iteration to stream().filter().findFirst().map() chain
    - Maintain exact same functionality while improving code readability
    - Follow modern Java programming practices and project style
    
    Technical Details:
    - Refactored IndexMetaDataUtils.findLogicTableNameFromMetaData method
    - Reduced code from 7 lines to 1 line using Stream API
    - Preserved all original logic and error handling
    - Enhanced code maintainability and readability
    
    🤖 Generated with [Claude Code](https://claude.com/claude-code)
    
    Co-Authored-By: Claude <[email protected]>
    
    * Refactor SchemaMetaDataUtils
    
    ---------
    
    Co-authored-by: Claude <[email protected]>
---
 .../metadata/database/schema/util/IndexMetaDataUtils.java | 11 +++--------
 .../database/schema/util/SchemaMetaDataUtils.java         | 15 ++++-----------
 2 files changed, 7 insertions(+), 19 deletions(-)

diff --git 
a/infra/common/src/main/java/org/apache/shardingsphere/infra/metadata/database/schema/util/IndexMetaDataUtils.java
 
b/infra/common/src/main/java/org/apache/shardingsphere/infra/metadata/database/schema/util/IndexMetaDataUtils.java
index d448b6c0c26..5da8ff0d154 100644
--- 
a/infra/common/src/main/java/org/apache/shardingsphere/infra/metadata/database/schema/util/IndexMetaDataUtils.java
+++ 
b/infra/common/src/main/java/org/apache/shardingsphere/infra/metadata/database/schema/util/IndexMetaDataUtils.java
@@ -76,18 +76,13 @@ public final class IndexMetaDataUtils {
         String schemaName = new 
DatabaseTypeRegistry(protocolType).getDefaultSchemaName(database.getName());
         for (IndexSegment each : indexes) {
             String actualSchemaName = each.getOwner().map(optional -> 
optional.getIdentifier().getValue()).orElse(schemaName);
-            
findLogicTableNameFromMetaData(database.getSchema(actualSchemaName),
-                    
each.getIndexName().getIdentifier().getValue()).ifPresent(optional -> 
result.add(new QualifiedTable(actualSchemaName, optional)));
+            
findLogicTableNameFromMetaData(database.getSchema(actualSchemaName), 
each.getIndexName().getIdentifier().getValue())
+                    .ifPresent(optional -> result.add(new 
QualifiedTable(actualSchemaName, optional)));
         }
         return result;
     }
     
     private static Optional<String> findLogicTableNameFromMetaData(final 
ShardingSphereSchema schema, final String logicIndexName) {
-        for (ShardingSphereTable each : schema.getAllTables()) {
-            if (each.containsIndex(logicIndexName)) {
-                return Optional.of(each.getName());
-            }
-        }
-        return Optional.empty();
+        return schema.getAllTables().stream().filter(table -> 
table.containsIndex(logicIndexName)).findFirst().map(ShardingSphereTable::getName);
     }
 }
diff --git 
a/infra/common/src/main/java/org/apache/shardingsphere/infra/metadata/database/schema/util/SchemaMetaDataUtils.java
 
b/infra/common/src/main/java/org/apache/shardingsphere/infra/metadata/database/schema/util/SchemaMetaDataUtils.java
index 68f0321f1af..82e13522ce0 100644
--- 
a/infra/common/src/main/java/org/apache/shardingsphere/infra/metadata/database/schema/util/SchemaMetaDataUtils.java
+++ 
b/infra/common/src/main/java/org/apache/shardingsphere/infra/metadata/database/schema/util/SchemaMetaDataUtils.java
@@ -73,7 +73,7 @@ public final class SchemaMetaDataUtils {
         int loadTableMetadataBatchSize = 
material.getProps().getValue(ConfigurationPropertyKey.LOAD_TABLE_METADATA_BATCH_SIZE);
         for (Entry<String, Collection<String>> entry : 
dataSourceTableGroups.entrySet()) {
             DatabaseType storageType = 
material.getStorageUnits().get(entry.getKey()).getStorageType();
-            String defaultSchemaName = 
getDefaultSchemaNameByStorageType(storageType, material.getDefaultSchemaName());
+            String defaultSchemaName = new 
DatabaseTypeRegistry(storageType).getDefaultSchemaName(material.getDefaultSchemaName());
             result.addAll(buildMaterials(material, entry.getKey(), 
entry.getValue(), storageType, defaultSchemaName, loadTableMetadataBatchSize));
         }
         return result;
@@ -89,16 +89,12 @@ public final class SchemaMetaDataUtils {
         return result;
     }
     
-    private static String getDefaultSchemaNameByStorageType(final DatabaseType 
storageType, final String databaseName) {
-        return new 
DatabaseTypeRegistry(storageType).getDefaultSchemaName(databaseName);
-    }
-    
     private static DataSource getDataSource(final GenericSchemaBuilderMaterial 
material, final String dataSourceName) {
         return material.getStorageUnits().get(dataSourceName.contains(".") ? 
dataSourceName.split("\\.")[0] : dataSourceName).getDataSource();
     }
     
-    private static void 
checkDataSourceTypeIncludeInstanceAndSetDatabaseTableMap(final 
Collection<DatabaseType> notSupportThreeTierStructureStorageTypes, final 
DataNodes dataNodes,
-                                                                               
  final String tableName) {
+    private static void 
checkDataSourceTypeIncludeInstanceAndSetDatabaseTableMap(final 
Collection<DatabaseType> notSupportThreeTierStructureStorageTypes,
+                                                                               
  final DataNodes dataNodes, final String tableName) {
         for (DataNode dataNode : dataNodes.getDataNodes(tableName)) {
             
ShardingSpherePreconditions.checkState(notSupportThreeTierStructureStorageTypes.isEmpty()
 || !dataNode.getDataSourceName().contains("."),
                     () -> new UnsupportedActualDataNodeStructureException(
@@ -128,10 +124,7 @@ public final class SchemaMetaDataUtils {
     
     private static boolean isSameDataSourceNameSchemaName(final 
GenericSchemaBuilderMaterial material, final DataNode dataNode) {
         String dataSourceName = dataNode.getDataSourceName().contains(".") ? 
dataNode.getDataSourceName().split("\\.")[0] : dataNode.getDataSourceName();
-        if (!material.getStorageUnits().containsKey(dataSourceName)) {
-            return false;
-        }
-        return null == dataNode.getSchemaName() || 
dataNode.getSchemaName().equalsIgnoreCase(material.getDefaultSchemaName());
+        return material.getStorageUnits().containsKey(dataSourceName) && (null 
== dataNode.getSchemaName() || 
dataNode.getSchemaName().equalsIgnoreCase(material.getDefaultSchemaName()));
     }
     
     private static void addAllActualTableDataNode(final 
GenericSchemaBuilderMaterial material,

Reply via email to