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 23fa32d2ba8 Refactor SQLStatementContext (#35697)
23fa32d2ba8 is described below

commit 23fa32d2ba87cdf97dc50be54f330d34a379b8ed
Author: Liang Zhang <zhangli...@apache.org>
AuthorDate: Fri Jun 13 17:30:51 2025 +0800

    Refactor SQLStatementContext (#35697)
---
 .../statement/type/ddl/AlterIndexStatementContext.java  | 14 ++++++--------
 .../statement/type/ddl/AlterTableStatementContext.java  | 10 +++++-----
 .../statement/type/ddl/AlterViewStatementContext.java   | 10 +++++-----
 .../statement/type/ddl/CloseStatementContext.java       | 10 +++++-----
 .../statement/type/ddl/CreateIndexStatementContext.java | 10 +++++-----
 .../statement/type/ddl/CreateTableStatementContext.java | 17 +++++++----------
 .../statement/type/ddl/CreateViewStatementContext.java  | 10 +++++-----
 .../statement/type/ddl/CursorStatementContext.java      | 10 +++++-----
 .../statement/type/ddl/DropIndexStatementContext.java   | 10 +++++-----
 .../statement/type/ddl/FetchStatementContext.java       | 10 +++++-----
 .../statement/type/ddl/MoveStatementContext.java        | 10 +++++-----
 11 files changed, 58 insertions(+), 63 deletions(-)

diff --git 
a/infra/binder/core/src/main/java/org/apache/shardingsphere/infra/binder/context/statement/type/ddl/AlterIndexStatementContext.java
 
b/infra/binder/core/src/main/java/org/apache/shardingsphere/infra/binder/context/statement/type/ddl/AlterIndexStatementContext.java
index 4829e2ea7aa..5e308f064b9 100644
--- 
a/infra/binder/core/src/main/java/org/apache/shardingsphere/infra/binder/context/statement/type/ddl/AlterIndexStatementContext.java
+++ 
b/infra/binder/core/src/main/java/org/apache/shardingsphere/infra/binder/context/statement/type/ddl/AlterIndexStatementContext.java
@@ -25,7 +25,6 @@ import 
org.apache.shardingsphere.infra.binder.context.type.TableAvailable;
 import org.apache.shardingsphere.infra.database.core.type.DatabaseType;
 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.segment.generic.table.SimpleTableSegment;
 import 
org.apache.shardingsphere.sql.parser.statement.core.statement.ddl.AlterIndexStatement;
 
 import java.util.Collection;
@@ -42,13 +41,7 @@ public final class AlterIndexStatementContext extends 
CommonSQLStatementContext
     
     public AlterIndexStatementContext(final DatabaseType databaseType, final 
AlterIndexStatement sqlStatement) {
         super(databaseType, sqlStatement);
-        SimpleTableSegment simpleTableSegment = 
sqlStatement.getSimpleTable().orElse(null);
-        tablesContext = new TablesContext(simpleTableSegment);
-    }
-    
-    @Override
-    public AlterIndexStatement getSqlStatement() {
-        return (AlterIndexStatement) super.getSqlStatement();
+        tablesContext = new 
TablesContext(sqlStatement.getSimpleTable().orElse(null));
     }
     
     @Override
@@ -65,4 +58,9 @@ public final class AlterIndexStatementContext extends 
CommonSQLStatementContext
     public Collection<ColumnSegment> getIndexColumns() {
         return Collections.emptyList();
     }
+    
+    @Override
+    public AlterIndexStatement getSqlStatement() {
+        return (AlterIndexStatement) super.getSqlStatement();
+    }
 }
diff --git 
a/infra/binder/core/src/main/java/org/apache/shardingsphere/infra/binder/context/statement/type/ddl/AlterTableStatementContext.java
 
b/infra/binder/core/src/main/java/org/apache/shardingsphere/infra/binder/context/statement/type/ddl/AlterTableStatementContext.java
index 0af2a76b4ea..8c2617b5777 100644
--- 
a/infra/binder/core/src/main/java/org/apache/shardingsphere/infra/binder/context/statement/type/ddl/AlterTableStatementContext.java
+++ 
b/infra/binder/core/src/main/java/org/apache/shardingsphere/infra/binder/context/statement/type/ddl/AlterTableStatementContext.java
@@ -74,11 +74,6 @@ public final class AlterTableStatementContext extends 
CommonSQLStatementContext
         return result;
     }
     
-    @Override
-    public AlterTableStatement getSqlStatement() {
-        return (AlterTableStatement) super.getSqlStatement();
-    }
-    
     @Override
     public Collection<IndexSegment> getIndexes() {
         Collection<IndexSegment> result = new LinkedList<>();
@@ -112,4 +107,9 @@ public final class AlterTableStatementContext extends 
CommonSQLStatementContext
         }
         return result;
     }
+    
+    @Override
+    public AlterTableStatement getSqlStatement() {
+        return (AlterTableStatement) super.getSqlStatement();
+    }
 }
diff --git 
a/infra/binder/core/src/main/java/org/apache/shardingsphere/infra/binder/context/statement/type/ddl/AlterViewStatementContext.java
 
b/infra/binder/core/src/main/java/org/apache/shardingsphere/infra/binder/context/statement/type/ddl/AlterViewStatementContext.java
index 302eafa9168..31ddbd9487d 100644
--- 
a/infra/binder/core/src/main/java/org/apache/shardingsphere/infra/binder/context/statement/type/ddl/AlterViewStatementContext.java
+++ 
b/infra/binder/core/src/main/java/org/apache/shardingsphere/infra/binder/context/statement/type/ddl/AlterViewStatementContext.java
@@ -84,11 +84,6 @@ public final class AlterViewStatementContext extends 
CommonSQLStatementContext i
         return Optional.ofNullable(selectStatementContext);
     }
     
-    @Override
-    public AlterViewStatement getSqlStatement() {
-        return (AlterViewStatement) super.getSqlStatement();
-    }
-    
     @Override
     public Collection<WhereSegment> getWhereSegments() {
         return getSelectStatementContext().isPresent() ? 
getSelectStatementContext().get().getWhereSegments() : Collections.emptyList();
@@ -103,4 +98,9 @@ public final class AlterViewStatementContext extends 
CommonSQLStatementContext i
     public Collection<BinaryOperationExpression> getJoinConditions() {
         return getSelectStatementContext().isPresent() ? 
getSelectStatementContext().get().getJoinConditions() : Collections.emptyList();
     }
+    
+    @Override
+    public AlterViewStatement getSqlStatement() {
+        return (AlterViewStatement) super.getSqlStatement();
+    }
 }
diff --git 
a/infra/binder/core/src/main/java/org/apache/shardingsphere/infra/binder/context/statement/type/ddl/CloseStatementContext.java
 
b/infra/binder/core/src/main/java/org/apache/shardingsphere/infra/binder/context/statement/type/ddl/CloseStatementContext.java
index 96f2ac2f5e9..7cb5053af5e 100644
--- 
a/infra/binder/core/src/main/java/org/apache/shardingsphere/infra/binder/context/statement/type/ddl/CloseStatementContext.java
+++ 
b/infra/binder/core/src/main/java/org/apache/shardingsphere/infra/binder/context/statement/type/ddl/CloseStatementContext.java
@@ -50,11 +50,6 @@ public final class CloseStatementContext extends 
CommonSQLStatementContext imple
         tablesContext = new TablesContext(Collections.emptyList());
     }
     
-    @Override
-    public CloseStatement getSqlStatement() {
-        return (CloseStatement) super.getSqlStatement();
-    }
-    
     @Override
     public Optional<CursorNameSegment> getCursorName() {
         return getSqlStatement().getCursorName();
@@ -80,4 +75,9 @@ public final class CloseStatementContext extends 
CommonSQLStatementContext imple
     public Collection<BinaryOperationExpression> getJoinConditions() {
         return null == cursorStatementContext ? Collections.emptyList() : 
cursorStatementContext.getJoinConditions();
     }
+    
+    @Override
+    public CloseStatement getSqlStatement() {
+        return (CloseStatement) super.getSqlStatement();
+    }
 }
diff --git 
a/infra/binder/core/src/main/java/org/apache/shardingsphere/infra/binder/context/statement/type/ddl/CreateIndexStatementContext.java
 
b/infra/binder/core/src/main/java/org/apache/shardingsphere/infra/binder/context/statement/type/ddl/CreateIndexStatementContext.java
index e329125c8fe..a7d129fdf9d 100644
--- 
a/infra/binder/core/src/main/java/org/apache/shardingsphere/infra/binder/context/statement/type/ddl/CreateIndexStatementContext.java
+++ 
b/infra/binder/core/src/main/java/org/apache/shardingsphere/infra/binder/context/statement/type/ddl/CreateIndexStatementContext.java
@@ -49,11 +49,6 @@ public final class CreateIndexStatementContext extends 
CommonSQLStatementContext
         generatedIndex = null == sqlStatement.getIndex();
     }
     
-    @Override
-    public CreateIndexStatement getSqlStatement() {
-        return (CreateIndexStatement) super.getSqlStatement();
-    }
-    
     @Override
     public Collection<IndexSegment> getIndexes() {
         if (null == getSqlStatement().getIndex()) {
@@ -67,4 +62,9 @@ public final class CreateIndexStatementContext extends 
CommonSQLStatementContext
     public Collection<ColumnSegment> getIndexColumns() {
         return getSqlStatement().getColumns();
     }
+    
+    @Override
+    public CreateIndexStatement getSqlStatement() {
+        return (CreateIndexStatement) super.getSqlStatement();
+    }
 }
diff --git 
a/infra/binder/core/src/main/java/org/apache/shardingsphere/infra/binder/context/statement/type/ddl/CreateTableStatementContext.java
 
b/infra/binder/core/src/main/java/org/apache/shardingsphere/infra/binder/context/statement/type/ddl/CreateTableStatementContext.java
index 3e09c21fef4..6cdb6f57970 100644
--- 
a/infra/binder/core/src/main/java/org/apache/shardingsphere/infra/binder/context/statement/type/ddl/CreateTableStatementContext.java
+++ 
b/infra/binder/core/src/main/java/org/apache/shardingsphere/infra/binder/context/statement/type/ddl/CreateTableStatementContext.java
@@ -34,6 +34,7 @@ import 
org.apache.shardingsphere.sql.parser.statement.core.statement.ddl.CreateT
 
 import java.util.Collection;
 import java.util.LinkedList;
+import java.util.stream.Collectors;
 
 /**
  * Create table statement context.
@@ -62,11 +63,6 @@ public final class CreateTableStatementContext extends 
CommonSQLStatementContext
         return result;
     }
     
-    @Override
-    public CreateTableStatement getSqlStatement() {
-        return (CreateTableStatement) super.getSqlStatement();
-    }
-    
     @Override
     public Collection<IndexSegment> getIndexes() {
         Collection<IndexSegment> result = new LinkedList<>();
@@ -87,10 +83,11 @@ public final class CreateTableStatementContext extends 
CommonSQLStatementContext
     
     @Override
     public Collection<ColumnSegment> getIndexColumns() {
-        Collection<ColumnSegment> result = new LinkedList<>();
-        for (ConstraintDefinitionSegment each : 
getSqlStatement().getConstraintDefinitions()) {
-            result.addAll(each.getIndexColumns());
-        }
-        return result;
+        return 
getSqlStatement().getConstraintDefinitions().stream().flatMap(each -> 
each.getIndexColumns().stream()).collect(Collectors.toList());
+    }
+    
+    @Override
+    public CreateTableStatement getSqlStatement() {
+        return (CreateTableStatement) super.getSqlStatement();
     }
 }
diff --git 
a/infra/binder/core/src/main/java/org/apache/shardingsphere/infra/binder/context/statement/type/ddl/CreateViewStatementContext.java
 
b/infra/binder/core/src/main/java/org/apache/shardingsphere/infra/binder/context/statement/type/ddl/CreateViewStatementContext.java
index 9f1ff2c1cfc..e8ad0aaeb43 100644
--- 
a/infra/binder/core/src/main/java/org/apache/shardingsphere/infra/binder/context/statement/type/ddl/CreateViewStatementContext.java
+++ 
b/infra/binder/core/src/main/java/org/apache/shardingsphere/infra/binder/context/statement/type/ddl/CreateViewStatementContext.java
@@ -56,11 +56,6 @@ public final class CreateViewStatementContext extends 
CommonSQLStatementContext
         selectStatementContext.setSubqueryType(SubqueryType.VIEW_DEFINITION);
     }
     
-    @Override
-    public CreateViewStatement getSqlStatement() {
-        return (CreateViewStatement) super.getSqlStatement();
-    }
-    
     @Override
     public Collection<WhereSegment> getWhereSegments() {
         return selectStatementContext.getWhereSegments();
@@ -75,4 +70,9 @@ public final class CreateViewStatementContext extends 
CommonSQLStatementContext
     public Collection<BinaryOperationExpression> getJoinConditions() {
         return selectStatementContext.getJoinConditions();
     }
+    
+    @Override
+    public CreateViewStatement getSqlStatement() {
+        return (CreateViewStatement) super.getSqlStatement();
+    }
 }
diff --git 
a/infra/binder/core/src/main/java/org/apache/shardingsphere/infra/binder/context/statement/type/ddl/CursorStatementContext.java
 
b/infra/binder/core/src/main/java/org/apache/shardingsphere/infra/binder/context/statement/type/ddl/CursorStatementContext.java
index 61856f79d74..c8cd94d4254 100644
--- 
a/infra/binder/core/src/main/java/org/apache/shardingsphere/infra/binder/context/statement/type/ddl/CursorStatementContext.java
+++ 
b/infra/binder/core/src/main/java/org/apache/shardingsphere/infra/binder/context/statement/type/ddl/CursorStatementContext.java
@@ -72,11 +72,6 @@ public final class CursorStatementContext extends 
CommonSQLStatementContext impl
         return tableExtractor.getRewriteTables();
     }
     
-    @Override
-    public CursorStatement getSqlStatement() {
-        return (CursorStatement) super.getSqlStatement();
-    }
-    
     @Override
     public Optional<CursorNameSegment> getCursorName() {
         return Optional.of(getSqlStatement().getCursorName());
@@ -96,4 +91,9 @@ public final class CursorStatementContext extends 
CommonSQLStatementContext impl
     public Collection<BinaryOperationExpression> getJoinConditions() {
         return joinConditions;
     }
+    
+    @Override
+    public CursorStatement getSqlStatement() {
+        return (CursorStatement) super.getSqlStatement();
+    }
 }
diff --git 
a/infra/binder/core/src/main/java/org/apache/shardingsphere/infra/binder/context/statement/type/ddl/DropIndexStatementContext.java
 
b/infra/binder/core/src/main/java/org/apache/shardingsphere/infra/binder/context/statement/type/ddl/DropIndexStatementContext.java
index 50999b12ea2..9c545580007 100644
--- 
a/infra/binder/core/src/main/java/org/apache/shardingsphere/infra/binder/context/statement/type/ddl/DropIndexStatementContext.java
+++ 
b/infra/binder/core/src/main/java/org/apache/shardingsphere/infra/binder/context/statement/type/ddl/DropIndexStatementContext.java
@@ -45,11 +45,6 @@ public final class DropIndexStatementContext extends 
CommonSQLStatementContext i
         tablesContext = new TablesContext(simpleTableSegment);
     }
     
-    @Override
-    public DropIndexStatement getSqlStatement() {
-        return (DropIndexStatement) super.getSqlStatement();
-    }
-    
     @Override
     public Collection<IndexSegment> getIndexes() {
         return getSqlStatement().getIndexes();
@@ -59,4 +54,9 @@ public final class DropIndexStatementContext extends 
CommonSQLStatementContext i
     public Collection<ColumnSegment> getIndexColumns() {
         return Collections.emptyList();
     }
+    
+    @Override
+    public DropIndexStatement getSqlStatement() {
+        return (DropIndexStatement) super.getSqlStatement();
+    }
 }
diff --git 
a/infra/binder/core/src/main/java/org/apache/shardingsphere/infra/binder/context/statement/type/ddl/FetchStatementContext.java
 
b/infra/binder/core/src/main/java/org/apache/shardingsphere/infra/binder/context/statement/type/ddl/FetchStatementContext.java
index 52d8c3f1106..e3eda4ebdf1 100644
--- 
a/infra/binder/core/src/main/java/org/apache/shardingsphere/infra/binder/context/statement/type/ddl/FetchStatementContext.java
+++ 
b/infra/binder/core/src/main/java/org/apache/shardingsphere/infra/binder/context/statement/type/ddl/FetchStatementContext.java
@@ -50,11 +50,6 @@ public final class FetchStatementContext extends 
CommonSQLStatementContext imple
         tablesContext = new TablesContext(Collections.emptyList());
     }
     
-    @Override
-    public FetchStatement getSqlStatement() {
-        return (FetchStatement) super.getSqlStatement();
-    }
-    
     @Override
     public Optional<CursorNameSegment> getCursorName() {
         return Optional.of(getSqlStatement().getCursorName());
@@ -80,4 +75,9 @@ public final class FetchStatementContext extends 
CommonSQLStatementContext imple
     public Collection<BinaryOperationExpression> getJoinConditions() {
         return null == cursorStatementContext ? Collections.emptyList() : 
cursorStatementContext.getJoinConditions();
     }
+    
+    @Override
+    public FetchStatement getSqlStatement() {
+        return (FetchStatement) super.getSqlStatement();
+    }
 }
diff --git 
a/infra/binder/core/src/main/java/org/apache/shardingsphere/infra/binder/context/statement/type/ddl/MoveStatementContext.java
 
b/infra/binder/core/src/main/java/org/apache/shardingsphere/infra/binder/context/statement/type/ddl/MoveStatementContext.java
index f3f01abbdb8..e987b12fea6 100644
--- 
a/infra/binder/core/src/main/java/org/apache/shardingsphere/infra/binder/context/statement/type/ddl/MoveStatementContext.java
+++ 
b/infra/binder/core/src/main/java/org/apache/shardingsphere/infra/binder/context/statement/type/ddl/MoveStatementContext.java
@@ -50,11 +50,6 @@ public final class MoveStatementContext extends 
CommonSQLStatementContext implem
         tablesContext = new TablesContext(Collections.emptyList());
     }
     
-    @Override
-    public MoveStatement getSqlStatement() {
-        return (MoveStatement) super.getSqlStatement();
-    }
-    
     @Override
     public Optional<CursorNameSegment> getCursorName() {
         return Optional.of(getSqlStatement().getCursorName());
@@ -80,4 +75,9 @@ public final class MoveStatementContext extends 
CommonSQLStatementContext implem
     public Collection<BinaryOperationExpression> getJoinConditions() {
         return null == cursorStatementContext ? Collections.emptyList() : 
cursorStatementContext.getJoinConditions();
     }
+    
+    @Override
+    public MoveStatement getSqlStatement() {
+        return (MoveStatement) super.getSqlStatement();
+    }
 }

Reply via email to