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,