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 1afc200c6d9 Refactor SelectStatementBinder (#32048)
1afc200c6d9 is described below

commit 1afc200c6d915f6c400864749f25f73b435c51ea
Author: Liang Zhang <zhangli...@apache.org>
AuthorDate: Tue Jul 9 23:25:42 2024 +0800

    Refactor SelectStatementBinder (#32048)
---
 .../segment/combine/CombineSegmentBinder.java      |  4 +-
 .../infra/binder/statement/SQLStatementBinder.java |  4 +-
 .../statement/dml/SelectStatementBinder.java       | 58 +++++++++++-----------
 3 files changed, 33 insertions(+), 33 deletions(-)

diff --git 
a/infra/binder/src/main/java/org/apache/shardingsphere/infra/binder/segment/combine/CombineSegmentBinder.java
 
b/infra/binder/src/main/java/org/apache/shardingsphere/infra/binder/segment/combine/CombineSegmentBinder.java
index cc76a637d8a..d2e83429fe8 100644
--- 
a/infra/binder/src/main/java/org/apache/shardingsphere/infra/binder/segment/combine/CombineSegmentBinder.java
+++ 
b/infra/binder/src/main/java/org/apache/shardingsphere/infra/binder/segment/combine/CombineSegmentBinder.java
@@ -46,8 +46,8 @@ public final class CombineSegmentBinder {
         ShardingSphereMetaData metaData = statementBinderContext.getMetaData();
         String currentDatabaseName = 
statementBinderContext.getCurrentDatabaseName();
         Map<String, TableSegmentBinderContext> externalTableBinderContexts = 
statementBinderContext.getExternalTableBinderContexts();
-        SelectStatement boundedLeftSelect = new 
SelectStatementBinder().bindWithExternalTableContexts(segment.getLeft().getSelect(),
 metaData, currentDatabaseName, externalTableBinderContexts);
-        SelectStatement boundedRightSelect = new 
SelectStatementBinder().bindWithExternalTableContexts(segment.getRight().getSelect(),
 metaData, currentDatabaseName, externalTableBinderContexts);
+        SelectStatement boundedLeftSelect = new 
SelectStatementBinder().bind(segment.getLeft().getSelect(), metaData, 
currentDatabaseName, externalTableBinderContexts);
+        SelectStatement boundedRightSelect = new 
SelectStatementBinder().bind(segment.getRight().getSelect(), metaData, 
currentDatabaseName, externalTableBinderContexts);
         SubquerySegment boundedLeft = new 
SubquerySegment(segment.getLeft().getStartIndex(), 
segment.getLeft().getStopIndex(), segment.getLeft().getText());
         boundedLeft.setSelect(boundedLeftSelect);
         boundedLeft.setSubqueryType(segment.getLeft().getSubqueryType());
diff --git 
a/infra/binder/src/main/java/org/apache/shardingsphere/infra/binder/statement/SQLStatementBinder.java
 
b/infra/binder/src/main/java/org/apache/shardingsphere/infra/binder/statement/SQLStatementBinder.java
index a6fc368f2c5..54280df826e 100644
--- 
a/infra/binder/src/main/java/org/apache/shardingsphere/infra/binder/statement/SQLStatementBinder.java
+++ 
b/infra/binder/src/main/java/org/apache/shardingsphere/infra/binder/statement/SQLStatementBinder.java
@@ -28,12 +28,12 @@ import 
org.apache.shardingsphere.sql.parser.statement.core.statement.SQLStatemen
 public interface SQLStatementBinder<T extends SQLStatement> {
     
     /**
-     * Bind SQL statement with metadata.
+     * Bind SQL statement.
      *
      * @param sqlStatement SQL statement
      * @param metaData meta data
      * @param currentDatabaseName current database name
-     * @return bounded SQL statement
+     * @return bound SQL statement
      */
     T bind(T sqlStatement, ShardingSphereMetaData metaData, String 
currentDatabaseName);
 }
diff --git 
a/infra/binder/src/main/java/org/apache/shardingsphere/infra/binder/statement/dml/SelectStatementBinder.java
 
b/infra/binder/src/main/java/org/apache/shardingsphere/infra/binder/statement/dml/SelectStatementBinder.java
index 66b8867e762..a663d2f6945 100644
--- 
a/infra/binder/src/main/java/org/apache/shardingsphere/infra/binder/statement/dml/SelectStatementBinder.java
+++ 
b/infra/binder/src/main/java/org/apache/shardingsphere/infra/binder/statement/dml/SelectStatementBinder.java
@@ -41,6 +41,35 @@ import java.util.Optional;
  */
 public final class SelectStatementBinder implements 
SQLStatementBinder<SelectStatement> {
     
+    /**
+     * Bind correlate subquery select statement.
+     *
+     * @param sqlStatement subquery select statement
+     * @param metaData meta data
+     * @param currentDatabaseName current database name
+     * @param outerTableBinderContexts outer select statement table binder 
contexts
+     * @param externalTableBinderContexts external table binder contexts
+     * @return bounded correlate subquery select statement
+     */
+    public SelectStatement bindCorrelateSubquery(final SelectStatement 
sqlStatement, final ShardingSphereMetaData metaData, final String 
currentDatabaseName,
+                                                 final Map<String, 
TableSegmentBinderContext> outerTableBinderContexts, final Map<String, 
TableSegmentBinderContext> externalTableBinderContexts) {
+        return bind(sqlStatement, metaData, currentDatabaseName, 
outerTableBinderContexts, externalTableBinderContexts);
+    }
+    
+    /**
+     * Bind with external table contexts.
+     *
+     * @param statement select statement
+     * @param metaData meta data
+     * @param currentDatabaseName current database name
+     * @param externalTableContexts external table contexts
+     * @return select statement
+     */
+    public SelectStatement bind(final SelectStatement statement, final 
ShardingSphereMetaData metaData, final String currentDatabaseName,
+                                final Map<String, TableSegmentBinderContext> 
externalTableContexts) {
+        return bind(statement, metaData, currentDatabaseName, 
Collections.emptyMap(), externalTableContexts);
+    }
+    
     @Override
     public SelectStatement bind(final SelectStatement sqlStatement, final 
ShardingSphereMetaData metaData, final String currentDatabaseName) {
         return bind(sqlStatement, metaData, currentDatabaseName, 
Collections.emptyMap(), Collections.emptyMap());
@@ -77,33 +106,4 @@ public final class SelectStatementBinder implements 
SQLStatementBinder<SelectSta
         result.getCommentSegments().addAll(sqlStatement.getCommentSegments());
         return result;
     }
-    
-    /**
-     * Bind correlate subquery select statement.
-     *
-     * @param sqlStatement subquery select statement
-     * @param metaData meta data
-     * @param currentDatabaseName current database name
-     * @param outerTableBinderContexts outer select statement table binder 
contexts
-     * @param externalTableBinderContexts external table binder contexts
-     * @return bounded correlate subquery select statement
-     */
-    public SelectStatement bindCorrelateSubquery(final SelectStatement 
sqlStatement, final ShardingSphereMetaData metaData, final String 
currentDatabaseName,
-                                                 final Map<String, 
TableSegmentBinderContext> outerTableBinderContexts, final Map<String, 
TableSegmentBinderContext> externalTableBinderContexts) {
-        return bind(sqlStatement, metaData, currentDatabaseName, 
outerTableBinderContexts, externalTableBinderContexts);
-    }
-    
-    /**
-     * Bind with external table contexts.
-     *
-     * @param statement select statement
-     * @param metaData meta data
-     * @param currentDatabaseName current database name
-     * @param externalTableContexts external table contexts
-     * @return select statement
-     */
-    public SelectStatement bindWithExternalTableContexts(final SelectStatement 
statement, final ShardingSphereMetaData metaData, final String 
currentDatabaseName,
-                                                         final Map<String, 
TableSegmentBinderContext> externalTableContexts) {
-        return bind(statement, metaData, currentDatabaseName, 
Collections.emptyMap(), externalTableContexts);
-    }
 }

Reply via email to