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

terrymanu 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 c9d5d7c550a Refactor CreateTablePushDownMetaDataRefresher (#38892)
c9d5d7c550a is described below

commit c9d5d7c550af570545b12af09f8f14aa3c282978
Author: Liang Zhang <[email protected]>
AuthorDate: Tue Jun 23 02:39:11 2026 +0800

    Refactor CreateTablePushDownMetaDataRefresher (#38892)
---
 .../table/CreateTablePushDownMetaDataRefresher.java | 21 ++++++++++++---------
 1 file changed, 12 insertions(+), 9 deletions(-)

diff --git 
a/mode/core/src/main/java/org/apache/shardingsphere/mode/metadata/refresher/pushdown/type/table/CreateTablePushDownMetaDataRefresher.java
 
b/mode/core/src/main/java/org/apache/shardingsphere/mode/metadata/refresher/pushdown/type/table/CreateTablePushDownMetaDataRefresher.java
index 7eed50c75aa..3a371bcc323 100644
--- 
a/mode/core/src/main/java/org/apache/shardingsphere/mode/metadata/refresher/pushdown/type/table/CreateTablePushDownMetaDataRefresher.java
+++ 
b/mode/core/src/main/java/org/apache/shardingsphere/mode/metadata/refresher/pushdown/type/table/CreateTablePushDownMetaDataRefresher.java
@@ -27,6 +27,7 @@ import 
org.apache.shardingsphere.mode.metadata.refresher.pushdown.PushDownMetaDa
 import 
org.apache.shardingsphere.mode.metadata.refresher.util.TableRefreshUtils;
 import 
org.apache.shardingsphere.mode.persist.service.MetaDataManagerPersistService;
 import 
org.apache.shardingsphere.sql.parser.statement.core.segment.ddl.constraint.ConstraintDefinitionSegment;
+import 
org.apache.shardingsphere.sql.parser.statement.core.segment.ddl.index.IndexSegment;
 import 
org.apache.shardingsphere.sql.parser.statement.core.segment.dml.column.ColumnSegment;
 import 
org.apache.shardingsphere.sql.parser.statement.core.statement.type.ddl.table.CreateTableStatement;
 import 
org.apache.shardingsphere.sql.parser.statement.core.value.identifier.IdentifierValue;
@@ -52,11 +53,6 @@ public final class CreateTablePushDownMetaDataRefresher 
implements PushDownMetaD
         metaDataManagerPersistService.createTable(database, schemaName, 
loadedTable);
     }
     
-    @Override
-    public Class<CreateTableStatement> getType() {
-        return CreateTableStatement.class;
-    }
-    
     private Collection<ShardingSphereSchema> 
createRevisionCandidateSchemas(final ShardingSphereDatabase database, final 
String schemaName,
                                                                             
final CreateTableStatement sqlStatement, final ConfigurationProperties props) {
         Collection<ShardingSphereIndex> indexes = 
createRevisionCandidateIndexes(sqlStatement);
@@ -73,11 +69,18 @@ public final class CreateTablePushDownMetaDataRefresher 
implements PushDownMetaD
     private Collection<ShardingSphereIndex> 
createRevisionCandidateIndexes(final CreateTableStatement sqlStatement) {
         Collection<ShardingSphereIndex> result = new LinkedList<>();
         for (ConstraintDefinitionSegment each : 
sqlStatement.getConstraintDefinitions()) {
-            each.getIndexName().ifPresent(optional -> result.add(new 
ShardingSphereIndex(
-                    optional.getIndexName().getIdentifier().getValue(), 
each.getIndexColumns().stream()
-                            
.map(ColumnSegment::getIdentifier).map(IdentifierValue::getValue).collect(Collectors.toList()),
-                    each.isUniqueKey() || optional.isUniqueKey())));
+            if (!each.getIndexName().isPresent()) {
+                continue;
+            }
+            IndexSegment indexSegment = each.getIndexName().get();
+            Collection<String> columns = 
each.getIndexColumns().stream().map(ColumnSegment::getIdentifier).map(IdentifierValue::getValue).collect(Collectors.toList());
+            result.add(new 
ShardingSphereIndex(indexSegment.getIndexName().getIdentifier().getValue(), 
columns, each.isUniqueKey() || indexSegment.isUniqueKey()));
         }
         return result;
     }
+    
+    @Override
+    public Class<CreateTableStatement> getType() {
+        return CreateTableStatement.class;
+    }
 }

Reply via email to