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

sunnianjun 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 d88bb11ad09 Refactor ExpressionSegmentBinder (#32090)
d88bb11ad09 is described below

commit d88bb11ad09debb6034cac1f3d0b09513077ee5f
Author: Liang Zhang <[email protected]>
AuthorDate: Sat Jul 13 15:46:39 2024 +0800

    Refactor ExpressionSegmentBinder (#32090)
    
    * Refactor ExpressionSegmentBinder
    
    * Refactor ExpressionSegmentBinder
    
    * Refactor ExpressionSegmentBinder
---
 .../segment/assign/AssignmentSegmentBinder.java    |  2 +-
 .../segment/column/InsertColumnsSegmentBinder.java |  2 +-
 .../expression/ExpressionSegmentBinder.java        | 18 +++----
 .../impl/SubqueryExpressionSegmentBinder.java      | 46 -----------------
 .../BinaryOperationExpressionBinder.java           |  4 +-
 .../{impl => type}/ColumnSegmentBinder.java        |  2 +-
 .../ExistsSubqueryExpressionBinder.java            |  4 +-
 .../FunctionExpressionSegmentBinder.java           | 13 +++--
 .../{impl => type}/InExpressionBinder.java         |  2 +-
 .../{impl => type}/NotExpressionBinder.java        |  6 +--
 .../{impl => type}/SubquerySegmentBinder.java      |  2 +-
 .../segment/from/type/JoinTableSegmentBinder.java  |  2 +-
 .../binder/segment/lock/LockSegmentBinder.java     |  2 +-
 .../type/ColumnProjectionSegmentBinder.java        |  2 +-
 .../type/SubqueryProjectionSegmentBinder.java      |  2 +-
 .../with/CommonTableExpressionSegmentBinder.java   |  2 +-
 .../statement/dml/InsertStatementBinder.java       |  2 +-
 .../impl/SubqueryExpressionSegmentBinderTest.java  | 60 ----------------------
 .../BinaryOperationExpressionBinderTest.java       |  2 +-
 .../{impl => type}/ColumnSegmentBinderTest.java    |  2 +-
 .../ExistsSubqueryExpressionBinderTest.java        |  2 +-
 .../FunctionExpressionSegmentBinderTest.java       |  2 +-
 .../{impl => type}/InExpressionBinderTest.java     |  5 +-
 .../{impl => type}/NotExpressionBinderTest.java    |  2 +-
 .../{impl => type}/SubquerySegmentBinderTest.java  | 14 ++---
 25 files changed, 47 insertions(+), 155 deletions(-)

diff --git 
a/infra/binder/src/main/java/org/apache/shardingsphere/infra/binder/segment/assign/AssignmentSegmentBinder.java
 
b/infra/binder/src/main/java/org/apache/shardingsphere/infra/binder/segment/assign/AssignmentSegmentBinder.java
index e97c18e2d53..545af242184 100644
--- 
a/infra/binder/src/main/java/org/apache/shardingsphere/infra/binder/segment/assign/AssignmentSegmentBinder.java
+++ 
b/infra/binder/src/main/java/org/apache/shardingsphere/infra/binder/segment/assign/AssignmentSegmentBinder.java
@@ -21,7 +21,7 @@ import lombok.AccessLevel;
 import lombok.NoArgsConstructor;
 import org.apache.shardingsphere.infra.binder.segment.SegmentType;
 import 
org.apache.shardingsphere.infra.binder.segment.expression.ExpressionSegmentBinder;
-import 
org.apache.shardingsphere.infra.binder.segment.expression.impl.ColumnSegmentBinder;
+import 
org.apache.shardingsphere.infra.binder.segment.expression.type.ColumnSegmentBinder;
 import 
org.apache.shardingsphere.infra.binder.segment.from.context.TableSegmentBinderContext;
 import 
org.apache.shardingsphere.infra.binder.statement.SQLStatementBinderContext;
 import 
org.apache.shardingsphere.sql.parser.statement.core.segment.dml.assignment.ColumnAssignmentSegment;
diff --git 
a/infra/binder/src/main/java/org/apache/shardingsphere/infra/binder/segment/column/InsertColumnsSegmentBinder.java
 
b/infra/binder/src/main/java/org/apache/shardingsphere/infra/binder/segment/column/InsertColumnsSegmentBinder.java
index 23c5ab15ec5..783a450f6aa 100644
--- 
a/infra/binder/src/main/java/org/apache/shardingsphere/infra/binder/segment/column/InsertColumnsSegmentBinder.java
+++ 
b/infra/binder/src/main/java/org/apache/shardingsphere/infra/binder/segment/column/InsertColumnsSegmentBinder.java
@@ -20,7 +20,7 @@ package org.apache.shardingsphere.infra.binder.segment.column;
 import lombok.AccessLevel;
 import lombok.NoArgsConstructor;
 import org.apache.shardingsphere.infra.binder.segment.SegmentType;
-import 
org.apache.shardingsphere.infra.binder.segment.expression.impl.ColumnSegmentBinder;
+import 
org.apache.shardingsphere.infra.binder.segment.expression.type.ColumnSegmentBinder;
 import 
org.apache.shardingsphere.infra.binder.segment.from.context.TableSegmentBinderContext;
 import 
org.apache.shardingsphere.infra.binder.statement.SQLStatementBinderContext;
 import 
org.apache.shardingsphere.sql.parser.statement.core.segment.dml.column.ColumnSegment;
diff --git 
a/infra/binder/src/main/java/org/apache/shardingsphere/infra/binder/segment/expression/ExpressionSegmentBinder.java
 
b/infra/binder/src/main/java/org/apache/shardingsphere/infra/binder/segment/expression/ExpressionSegmentBinder.java
index 28aa5769b41..54706c31d1d 100644
--- 
a/infra/binder/src/main/java/org/apache/shardingsphere/infra/binder/segment/expression/ExpressionSegmentBinder.java
+++ 
b/infra/binder/src/main/java/org/apache/shardingsphere/infra/binder/segment/expression/ExpressionSegmentBinder.java
@@ -20,13 +20,13 @@ package 
org.apache.shardingsphere.infra.binder.segment.expression;
 import lombok.AccessLevel;
 import lombok.NoArgsConstructor;
 import org.apache.shardingsphere.infra.binder.segment.SegmentType;
-import 
org.apache.shardingsphere.infra.binder.segment.expression.impl.BinaryOperationExpressionBinder;
-import 
org.apache.shardingsphere.infra.binder.segment.expression.impl.ColumnSegmentBinder;
-import 
org.apache.shardingsphere.infra.binder.segment.expression.impl.ExistsSubqueryExpressionBinder;
-import 
org.apache.shardingsphere.infra.binder.segment.expression.impl.FunctionExpressionSegmentBinder;
-import 
org.apache.shardingsphere.infra.binder.segment.expression.impl.InExpressionBinder;
-import 
org.apache.shardingsphere.infra.binder.segment.expression.impl.NotExpressionBinder;
-import 
org.apache.shardingsphere.infra.binder.segment.expression.impl.SubqueryExpressionSegmentBinder;
+import 
org.apache.shardingsphere.infra.binder.segment.expression.type.BinaryOperationExpressionBinder;
+import 
org.apache.shardingsphere.infra.binder.segment.expression.type.ColumnSegmentBinder;
+import 
org.apache.shardingsphere.infra.binder.segment.expression.type.ExistsSubqueryExpressionBinder;
+import 
org.apache.shardingsphere.infra.binder.segment.expression.type.FunctionExpressionSegmentBinder;
+import 
org.apache.shardingsphere.infra.binder.segment.expression.type.InExpressionBinder;
+import 
org.apache.shardingsphere.infra.binder.segment.expression.type.NotExpressionBinder;
+import 
org.apache.shardingsphere.infra.binder.segment.expression.type.SubquerySegmentBinder;
 import 
org.apache.shardingsphere.infra.binder.segment.from.context.TableSegmentBinderContext;
 import 
org.apache.shardingsphere.infra.binder.statement.SQLStatementBinderContext;
 import 
org.apache.shardingsphere.sql.parser.statement.core.segment.dml.column.ColumnSegment;
@@ -69,7 +69,7 @@ public final class ExpressionSegmentBinder {
             Map<String, TableSegmentBinderContext> newOuterTableBinderContexts 
= new LinkedHashMap<>();
             newOuterTableBinderContexts.putAll(outerTableBinderContexts);
             newOuterTableBinderContexts.putAll(tableBinderContexts);
-            return 
SubqueryExpressionSegmentBinder.bind((SubqueryExpressionSegment) segment, 
binderContext, newOuterTableBinderContexts);
+            return new 
SubqueryExpressionSegment(SubquerySegmentBinder.bind(((SubqueryExpressionSegment)
 segment).getSubquery(), binderContext, newOuterTableBinderContexts));
         }
         if (segment instanceof InExpression) {
             return InExpressionBinder.bind((InExpression) segment, 
parentSegmentType, binderContext, tableBinderContexts, 
outerTableBinderContexts);
@@ -83,7 +83,7 @@ public final class ExpressionSegmentBinder {
         if (segment instanceof FunctionSegment) {
             return FunctionExpressionSegmentBinder.bind((FunctionSegment) 
segment, parentSegmentType, binderContext, tableBinderContexts, 
outerTableBinderContexts);
         }
-        // TODO support more ExpressionSegment bind
+        // TODO support more ExpressionSegment bound
         return segment;
     }
 }
diff --git 
a/infra/binder/src/main/java/org/apache/shardingsphere/infra/binder/segment/expression/impl/SubqueryExpressionSegmentBinder.java
 
b/infra/binder/src/main/java/org/apache/shardingsphere/infra/binder/segment/expression/impl/SubqueryExpressionSegmentBinder.java
deleted file mode 100644
index 3baa1c464af..00000000000
--- 
a/infra/binder/src/main/java/org/apache/shardingsphere/infra/binder/segment/expression/impl/SubqueryExpressionSegmentBinder.java
+++ /dev/null
@@ -1,46 +0,0 @@
-/*
- * Licensed to the Apache Software Foundation (ASF) under one or more
- * contributor license agreements.  See the NOTICE file distributed with
- * this work for additional information regarding copyright ownership.
- * The ASF licenses this file to You under the Apache License, Version 2.0
- * (the "License"); you may not use this file except in compliance with
- * the License.  You may obtain a copy of the License at
- *
- *     http://www.apache.org/licenses/LICENSE-2.0
- *
- * Unless required by applicable law or agreed to in writing, software
- * distributed under the License is distributed on an "AS IS" BASIS,
- * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
- * See the License for the specific language governing permissions and
- * limitations under the License.
- */
-
-package org.apache.shardingsphere.infra.binder.segment.expression.impl;
-
-import lombok.AccessLevel;
-import lombok.NoArgsConstructor;
-import 
org.apache.shardingsphere.infra.binder.segment.from.context.TableSegmentBinderContext;
-import 
org.apache.shardingsphere.infra.binder.statement.SQLStatementBinderContext;
-import 
org.apache.shardingsphere.sql.parser.statement.core.segment.dml.expr.subquery.SubqueryExpressionSegment;
-
-import java.util.Map;
-
-/**
- * Subquery expression segment binder.
- */
-@NoArgsConstructor(access = AccessLevel.PRIVATE)
-public final class SubqueryExpressionSegmentBinder {
-    
-    /**
-     * Bind subquery expression segment.
-     *
-     * @param segment subquery expression segment
-     * @param binderContext SQL statement binder context
-     * @param tableBinderContexts table binder contexts
-     * @return bound subquery expression segment
-     */
-    public static SubqueryExpressionSegment bind(final 
SubqueryExpressionSegment segment, final SQLStatementBinderContext 
binderContext,
-                                                 final Map<String, 
TableSegmentBinderContext> tableBinderContexts) {
-        return new 
SubqueryExpressionSegment(SubquerySegmentBinder.bind(segment.getSubquery(), 
binderContext, tableBinderContexts));
-    }
-}
diff --git 
a/infra/binder/src/main/java/org/apache/shardingsphere/infra/binder/segment/expression/impl/BinaryOperationExpressionBinder.java
 
b/infra/binder/src/main/java/org/apache/shardingsphere/infra/binder/segment/expression/type/BinaryOperationExpressionBinder.java
similarity index 97%
rename from 
infra/binder/src/main/java/org/apache/shardingsphere/infra/binder/segment/expression/impl/BinaryOperationExpressionBinder.java
rename to 
infra/binder/src/main/java/org/apache/shardingsphere/infra/binder/segment/expression/type/BinaryOperationExpressionBinder.java
index 9cfa5f44236..38b9e75c21f 100644
--- 
a/infra/binder/src/main/java/org/apache/shardingsphere/infra/binder/segment/expression/impl/BinaryOperationExpressionBinder.java
+++ 
b/infra/binder/src/main/java/org/apache/shardingsphere/infra/binder/segment/expression/type/BinaryOperationExpressionBinder.java
@@ -15,7 +15,7 @@
  * limitations under the License.
  */
 
-package org.apache.shardingsphere.infra.binder.segment.expression.impl;
+package org.apache.shardingsphere.infra.binder.segment.expression.type;
 
 import lombok.AccessLevel;
 import lombok.NoArgsConstructor;
@@ -35,7 +35,7 @@ import java.util.Map;
 public final class BinaryOperationExpressionBinder {
     
     /**
-     * Bind binary operation expression with metadata.
+     * Bind binary operation expression.
      *
      * @param segment binary operation expression segment
      * @param parentSegmentType parent segment type
diff --git 
a/infra/binder/src/main/java/org/apache/shardingsphere/infra/binder/segment/expression/impl/ColumnSegmentBinder.java
 
b/infra/binder/src/main/java/org/apache/shardingsphere/infra/binder/segment/expression/type/ColumnSegmentBinder.java
similarity index 99%
rename from 
infra/binder/src/main/java/org/apache/shardingsphere/infra/binder/segment/expression/impl/ColumnSegmentBinder.java
rename to 
infra/binder/src/main/java/org/apache/shardingsphere/infra/binder/segment/expression/type/ColumnSegmentBinder.java
index a30447d269a..16880e73d98 100644
--- 
a/infra/binder/src/main/java/org/apache/shardingsphere/infra/binder/segment/expression/impl/ColumnSegmentBinder.java
+++ 
b/infra/binder/src/main/java/org/apache/shardingsphere/infra/binder/segment/expression/type/ColumnSegmentBinder.java
@@ -15,7 +15,7 @@
  * limitations under the License.
  */
 
-package org.apache.shardingsphere.infra.binder.segment.expression.impl;
+package org.apache.shardingsphere.infra.binder.segment.expression.type;
 
 import com.google.common.base.Strings;
 import lombok.AccessLevel;
diff --git 
a/infra/binder/src/main/java/org/apache/shardingsphere/infra/binder/segment/expression/impl/ExistsSubqueryExpressionBinder.java
 
b/infra/binder/src/main/java/org/apache/shardingsphere/infra/binder/segment/expression/type/ExistsSubqueryExpressionBinder.java
similarity index 97%
rename from 
infra/binder/src/main/java/org/apache/shardingsphere/infra/binder/segment/expression/impl/ExistsSubqueryExpressionBinder.java
rename to 
infra/binder/src/main/java/org/apache/shardingsphere/infra/binder/segment/expression/type/ExistsSubqueryExpressionBinder.java
index 450db44d563..050fe98d430 100644
--- 
a/infra/binder/src/main/java/org/apache/shardingsphere/infra/binder/segment/expression/impl/ExistsSubqueryExpressionBinder.java
+++ 
b/infra/binder/src/main/java/org/apache/shardingsphere/infra/binder/segment/expression/type/ExistsSubqueryExpressionBinder.java
@@ -15,7 +15,7 @@
  * limitations under the License.
  */
 
-package org.apache.shardingsphere.infra.binder.segment.expression.impl;
+package org.apache.shardingsphere.infra.binder.segment.expression.type;
 
 import lombok.AccessLevel;
 import lombok.NoArgsConstructor;
@@ -33,7 +33,7 @@ import java.util.Map;
 public final class ExistsSubqueryExpressionBinder {
     
     /**
-     * Bind exists subquery expression with metadata.
+     * Bind exists subquery expression.
      *
      * @param segment exists subquery expression segment
      * @param binderContext SQL statement binder context
diff --git 
a/infra/binder/src/main/java/org/apache/shardingsphere/infra/binder/segment/expression/impl/FunctionExpressionSegmentBinder.java
 
b/infra/binder/src/main/java/org/apache/shardingsphere/infra/binder/segment/expression/type/FunctionExpressionSegmentBinder.java
similarity index 85%
rename from 
infra/binder/src/main/java/org/apache/shardingsphere/infra/binder/segment/expression/impl/FunctionExpressionSegmentBinder.java
rename to 
infra/binder/src/main/java/org/apache/shardingsphere/infra/binder/segment/expression/type/FunctionExpressionSegmentBinder.java
index 157be3e2640..a10b1cfceb9 100644
--- 
a/infra/binder/src/main/java/org/apache/shardingsphere/infra/binder/segment/expression/impl/FunctionExpressionSegmentBinder.java
+++ 
b/infra/binder/src/main/java/org/apache/shardingsphere/infra/binder/segment/expression/type/FunctionExpressionSegmentBinder.java
@@ -15,7 +15,7 @@
  * limitations under the License.
  */
 
-package org.apache.shardingsphere.infra.binder.segment.expression.impl;
+package org.apache.shardingsphere.infra.binder.segment.expression.type;
 
 import lombok.AccessLevel;
 import lombok.NoArgsConstructor;
@@ -23,10 +23,10 @@ import 
org.apache.shardingsphere.infra.binder.segment.SegmentType;
 import 
org.apache.shardingsphere.infra.binder.segment.expression.ExpressionSegmentBinder;
 import 
org.apache.shardingsphere.infra.binder.segment.from.context.TableSegmentBinderContext;
 import 
org.apache.shardingsphere.infra.binder.statement.SQLStatementBinderContext;
-import 
org.apache.shardingsphere.sql.parser.statement.core.segment.dml.expr.ExpressionSegment;
 import 
org.apache.shardingsphere.sql.parser.statement.core.segment.dml.expr.FunctionSegment;
 
 import java.util.Map;
+import java.util.stream.Collectors;
 
 /**
  * Function expression binder.
@@ -35,22 +35,21 @@ import java.util.Map;
 public final class FunctionExpressionSegmentBinder {
     
     /**
-     * Bind function expression with metadata.
+     * Bind function expression.
      *
      * @param segment function expression segment
      * @param parentSegmentType parent segment type
      * @param binderContext SQL statement binder context
      * @param tableBinderContexts table binder contexts
      * @param outerTableBinderContexts outer table binder contexts
-     * @return function segment
+     * @return bound function segment
      */
     public static FunctionSegment bind(final FunctionSegment segment, final 
SegmentType parentSegmentType, final SQLStatementBinderContext binderContext,
                                        final Map<String, 
TableSegmentBinderContext> tableBinderContexts, final Map<String, 
TableSegmentBinderContext> outerTableBinderContexts) {
         FunctionSegment result = new FunctionSegment(segment.getStartIndex(), 
segment.getStopIndex(), segment.getFunctionName(), segment.getText());
         result.setOwner(segment.getOwner());
-        for (ExpressionSegment each : segment.getParameters()) {
-            result.getParameters().add(ExpressionSegmentBinder.bind(each, 
parentSegmentType, binderContext, tableBinderContexts, 
outerTableBinderContexts));
-        }
+        result.getParameters().addAll(segment.getParameters().stream()
+                .map(each -> ExpressionSegmentBinder.bind(each, 
parentSegmentType, binderContext, tableBinderContexts, 
outerTableBinderContexts)).collect(Collectors.toList()));
         return result;
     }
 }
diff --git 
a/infra/binder/src/main/java/org/apache/shardingsphere/infra/binder/segment/expression/impl/InExpressionBinder.java
 
b/infra/binder/src/main/java/org/apache/shardingsphere/infra/binder/segment/expression/type/InExpressionBinder.java
similarity index 99%
rename from 
infra/binder/src/main/java/org/apache/shardingsphere/infra/binder/segment/expression/impl/InExpressionBinder.java
rename to 
infra/binder/src/main/java/org/apache/shardingsphere/infra/binder/segment/expression/type/InExpressionBinder.java
index d416b98e921..f0d3d228426 100644
--- 
a/infra/binder/src/main/java/org/apache/shardingsphere/infra/binder/segment/expression/impl/InExpressionBinder.java
+++ 
b/infra/binder/src/main/java/org/apache/shardingsphere/infra/binder/segment/expression/type/InExpressionBinder.java
@@ -15,7 +15,7 @@
  * limitations under the License.
  */
 
-package org.apache.shardingsphere.infra.binder.segment.expression.impl;
+package org.apache.shardingsphere.infra.binder.segment.expression.type;
 
 import lombok.AccessLevel;
 import lombok.NoArgsConstructor;
diff --git 
a/infra/binder/src/main/java/org/apache/shardingsphere/infra/binder/segment/expression/impl/NotExpressionBinder.java
 
b/infra/binder/src/main/java/org/apache/shardingsphere/infra/binder/segment/expression/type/NotExpressionBinder.java
similarity index 92%
rename from 
infra/binder/src/main/java/org/apache/shardingsphere/infra/binder/segment/expression/impl/NotExpressionBinder.java
rename to 
infra/binder/src/main/java/org/apache/shardingsphere/infra/binder/segment/expression/type/NotExpressionBinder.java
index 61397019bef..1b48d82632b 100644
--- 
a/infra/binder/src/main/java/org/apache/shardingsphere/infra/binder/segment/expression/impl/NotExpressionBinder.java
+++ 
b/infra/binder/src/main/java/org/apache/shardingsphere/infra/binder/segment/expression/type/NotExpressionBinder.java
@@ -15,7 +15,7 @@
  * limitations under the License.
  */
 
-package org.apache.shardingsphere.infra.binder.segment.expression.impl;
+package org.apache.shardingsphere.infra.binder.segment.expression.type;
 
 import lombok.AccessLevel;
 import lombok.NoArgsConstructor;
@@ -44,8 +44,8 @@ public final class NotExpressionBinder {
      * @param tableBinderContexts table binder contexts
      * @return bound not expression
      */
-    public static NotExpression bind(final NotExpression segment, final 
SegmentType parentSegmentType, final SQLStatementBinderContext binderContext,
-                                     final Map<String, 
TableSegmentBinderContext> tableBinderContexts) {
+    public static NotExpression bind(final NotExpression segment, final 
SegmentType parentSegmentType,
+                                     final SQLStatementBinderContext 
binderContext, final Map<String, TableSegmentBinderContext> 
tableBinderContexts) {
         ExpressionSegment boundExpression = 
ExpressionSegmentBinder.bind(segment.getExpression(), parentSegmentType, 
binderContext, tableBinderContexts, Collections.emptyMap());
         return new NotExpression(segment.getStartIndex(), 
segment.getStopIndex(), boundExpression, segment.getNotSign());
     }
diff --git 
a/infra/binder/src/main/java/org/apache/shardingsphere/infra/binder/segment/expression/impl/SubquerySegmentBinder.java
 
b/infra/binder/src/main/java/org/apache/shardingsphere/infra/binder/segment/expression/type/SubquerySegmentBinder.java
similarity index 99%
rename from 
infra/binder/src/main/java/org/apache/shardingsphere/infra/binder/segment/expression/impl/SubquerySegmentBinder.java
rename to 
infra/binder/src/main/java/org/apache/shardingsphere/infra/binder/segment/expression/type/SubquerySegmentBinder.java
index 41de81d286f..c0b8f1a2bac 100644
--- 
a/infra/binder/src/main/java/org/apache/shardingsphere/infra/binder/segment/expression/impl/SubquerySegmentBinder.java
+++ 
b/infra/binder/src/main/java/org/apache/shardingsphere/infra/binder/segment/expression/type/SubquerySegmentBinder.java
@@ -15,7 +15,7 @@
  * limitations under the License.
  */
 
-package org.apache.shardingsphere.infra.binder.segment.expression.impl;
+package org.apache.shardingsphere.infra.binder.segment.expression.type;
 
 import lombok.AccessLevel;
 import lombok.NoArgsConstructor;
diff --git 
a/infra/binder/src/main/java/org/apache/shardingsphere/infra/binder/segment/from/type/JoinTableSegmentBinder.java
 
b/infra/binder/src/main/java/org/apache/shardingsphere/infra/binder/segment/from/type/JoinTableSegmentBinder.java
index a91d5c99ade..5a5aa53a83e 100644
--- 
a/infra/binder/src/main/java/org/apache/shardingsphere/infra/binder/segment/from/type/JoinTableSegmentBinder.java
+++ 
b/infra/binder/src/main/java/org/apache/shardingsphere/infra/binder/segment/from/type/JoinTableSegmentBinder.java
@@ -23,7 +23,7 @@ import lombok.AccessLevel;
 import lombok.NoArgsConstructor;
 import org.apache.shardingsphere.infra.binder.segment.SegmentType;
 import 
org.apache.shardingsphere.infra.binder.segment.expression.ExpressionSegmentBinder;
-import 
org.apache.shardingsphere.infra.binder.segment.expression.impl.ColumnSegmentBinder;
+import 
org.apache.shardingsphere.infra.binder.segment.expression.type.ColumnSegmentBinder;
 import org.apache.shardingsphere.infra.binder.segment.from.TableSegmentBinder;
 import 
org.apache.shardingsphere.infra.binder.segment.from.context.TableSegmentBinderContext;
 import 
org.apache.shardingsphere.infra.binder.statement.SQLStatementBinderContext;
diff --git 
a/infra/binder/src/main/java/org/apache/shardingsphere/infra/binder/segment/lock/LockSegmentBinder.java
 
b/infra/binder/src/main/java/org/apache/shardingsphere/infra/binder/segment/lock/LockSegmentBinder.java
index 4ce31c6a731..67ae5f28431 100644
--- 
a/infra/binder/src/main/java/org/apache/shardingsphere/infra/binder/segment/lock/LockSegmentBinder.java
+++ 
b/infra/binder/src/main/java/org/apache/shardingsphere/infra/binder/segment/lock/LockSegmentBinder.java
@@ -20,7 +20,7 @@ package org.apache.shardingsphere.infra.binder.segment.lock;
 import lombok.AccessLevel;
 import lombok.NoArgsConstructor;
 import org.apache.shardingsphere.infra.binder.segment.SegmentType;
-import 
org.apache.shardingsphere.infra.binder.segment.expression.impl.ColumnSegmentBinder;
+import 
org.apache.shardingsphere.infra.binder.segment.expression.type.ColumnSegmentBinder;
 import 
org.apache.shardingsphere.infra.binder.segment.from.context.TableSegmentBinderContext;
 import 
org.apache.shardingsphere.infra.binder.statement.SQLStatementBinderContext;
 import 
org.apache.shardingsphere.sql.parser.statement.core.segment.dml.predicate.LockSegment;
diff --git 
a/infra/binder/src/main/java/org/apache/shardingsphere/infra/binder/segment/projection/type/ColumnProjectionSegmentBinder.java
 
b/infra/binder/src/main/java/org/apache/shardingsphere/infra/binder/segment/projection/type/ColumnProjectionSegmentBinder.java
index 73ac0b2f445..5c661bdb918 100644
--- 
a/infra/binder/src/main/java/org/apache/shardingsphere/infra/binder/segment/projection/type/ColumnProjectionSegmentBinder.java
+++ 
b/infra/binder/src/main/java/org/apache/shardingsphere/infra/binder/segment/projection/type/ColumnProjectionSegmentBinder.java
@@ -20,7 +20,7 @@ package 
org.apache.shardingsphere.infra.binder.segment.projection.type;
 import lombok.AccessLevel;
 import lombok.NoArgsConstructor;
 import org.apache.shardingsphere.infra.binder.segment.SegmentType;
-import 
org.apache.shardingsphere.infra.binder.segment.expression.impl.ColumnSegmentBinder;
+import 
org.apache.shardingsphere.infra.binder.segment.expression.type.ColumnSegmentBinder;
 import 
org.apache.shardingsphere.infra.binder.segment.from.context.TableSegmentBinderContext;
 import 
org.apache.shardingsphere.infra.binder.statement.SQLStatementBinderContext;
 import 
org.apache.shardingsphere.sql.parser.statement.core.segment.dml.column.ColumnSegment;
diff --git 
a/infra/binder/src/main/java/org/apache/shardingsphere/infra/binder/segment/projection/type/SubqueryProjectionSegmentBinder.java
 
b/infra/binder/src/main/java/org/apache/shardingsphere/infra/binder/segment/projection/type/SubqueryProjectionSegmentBinder.java
index a6343c98102..a7a7a193e85 100644
--- 
a/infra/binder/src/main/java/org/apache/shardingsphere/infra/binder/segment/projection/type/SubqueryProjectionSegmentBinder.java
+++ 
b/infra/binder/src/main/java/org/apache/shardingsphere/infra/binder/segment/projection/type/SubqueryProjectionSegmentBinder.java
@@ -19,7 +19,7 @@ package 
org.apache.shardingsphere.infra.binder.segment.projection.type;
 
 import lombok.AccessLevel;
 import lombok.NoArgsConstructor;
-import 
org.apache.shardingsphere.infra.binder.segment.expression.impl.SubquerySegmentBinder;
+import 
org.apache.shardingsphere.infra.binder.segment.expression.type.SubquerySegmentBinder;
 import 
org.apache.shardingsphere.infra.binder.segment.from.context.TableSegmentBinderContext;
 import 
org.apache.shardingsphere.infra.binder.statement.SQLStatementBinderContext;
 import 
org.apache.shardingsphere.sql.parser.statement.core.segment.dml.expr.subquery.SubquerySegment;
diff --git 
a/infra/binder/src/main/java/org/apache/shardingsphere/infra/binder/segment/with/CommonTableExpressionSegmentBinder.java
 
b/infra/binder/src/main/java/org/apache/shardingsphere/infra/binder/segment/with/CommonTableExpressionSegmentBinder.java
index 59f569a4c71..f868ff2a688 100644
--- 
a/infra/binder/src/main/java/org/apache/shardingsphere/infra/binder/segment/with/CommonTableExpressionSegmentBinder.java
+++ 
b/infra/binder/src/main/java/org/apache/shardingsphere/infra/binder/segment/with/CommonTableExpressionSegmentBinder.java
@@ -19,7 +19,7 @@ package org.apache.shardingsphere.infra.binder.segment.with;
 
 import lombok.AccessLevel;
 import lombok.NoArgsConstructor;
-import 
org.apache.shardingsphere.infra.binder.segment.expression.impl.SubquerySegmentBinder;
+import 
org.apache.shardingsphere.infra.binder.segment.expression.type.SubquerySegmentBinder;
 import 
org.apache.shardingsphere.infra.binder.segment.from.context.TableSegmentBinderContext;
 import 
org.apache.shardingsphere.infra.binder.statement.SQLStatementBinderContext;
 import 
org.apache.shardingsphere.sql.parser.statement.core.segment.dml.expr.complex.CommonTableExpressionSegment;
diff --git 
a/infra/binder/src/main/java/org/apache/shardingsphere/infra/binder/statement/dml/InsertStatementBinder.java
 
b/infra/binder/src/main/java/org/apache/shardingsphere/infra/binder/statement/dml/InsertStatementBinder.java
index 71925f476ff..0285f04fa88 100644
--- 
a/infra/binder/src/main/java/org/apache/shardingsphere/infra/binder/statement/dml/InsertStatementBinder.java
+++ 
b/infra/binder/src/main/java/org/apache/shardingsphere/infra/binder/statement/dml/InsertStatementBinder.java
@@ -19,7 +19,7 @@ package org.apache.shardingsphere.infra.binder.statement.dml;
 
 import lombok.SneakyThrows;
 import 
org.apache.shardingsphere.infra.binder.segment.column.InsertColumnsSegmentBinder;
-import 
org.apache.shardingsphere.infra.binder.segment.expression.impl.SubquerySegmentBinder;
+import 
org.apache.shardingsphere.infra.binder.segment.expression.type.SubquerySegmentBinder;
 import 
org.apache.shardingsphere.infra.binder.segment.from.context.TableSegmentBinderContext;
 import 
org.apache.shardingsphere.infra.binder.segment.from.type.SimpleTableSegmentBinder;
 import org.apache.shardingsphere.infra.binder.statement.SQLStatementBinder;
diff --git 
a/infra/binder/src/test/java/org/apache/shardingsphere/infra/binder/segment/expression/impl/SubqueryExpressionSegmentBinderTest.java
 
b/infra/binder/src/test/java/org/apache/shardingsphere/infra/binder/segment/expression/impl/SubqueryExpressionSegmentBinderTest.java
deleted file mode 100644
index fe7bbc4dfc3..00000000000
--- 
a/infra/binder/src/test/java/org/apache/shardingsphere/infra/binder/segment/expression/impl/SubqueryExpressionSegmentBinderTest.java
+++ /dev/null
@@ -1,60 +0,0 @@
-/*
- * Licensed to the Apache Software Foundation (ASF) under one or more
- * contributor license agreements.  See the NOTICE file distributed with
- * this work for additional information regarding copyright ownership.
- * The ASF licenses this file to You under the Apache License, Version 2.0
- * (the "License"); you may not use this file except in compliance with
- * the License.  You may obtain a copy of the License at
- *
- *     http://www.apache.org/licenses/LICENSE-2.0
- *
- * Unless required by applicable law or agreed to in writing, software
- * distributed under the License is distributed on an "AS IS" BASIS,
- * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
- * See the License for the specific language governing permissions and
- * limitations under the License.
- */
-
-package org.apache.shardingsphere.infra.binder.segment.expression.impl;
-
-import 
org.apache.shardingsphere.sql.parser.statement.core.segment.dml.expr.subquery.SubqueryExpressionSegment;
-import 
org.apache.shardingsphere.sql.parser.statement.core.segment.dml.expr.subquery.SubquerySegment;
-import 
org.apache.shardingsphere.sql.parser.statement.core.segment.dml.item.ProjectionsSegment;
-import 
org.apache.shardingsphere.sql.parser.statement.core.statement.dml.SelectStatement;
-import 
org.apache.shardingsphere.sql.parser.statement.sqlserver.dml.SQLServerSelectStatement;
-import 
org.apache.shardingsphere.infra.binder.segment.from.context.TableSegmentBinderContext;
-import 
org.apache.shardingsphere.infra.binder.statement.SQLStatementBinderContext;
-
-import org.junit.jupiter.api.Test;
-
-import java.util.HashMap;
-import java.util.Map;
-
-import static org.hamcrest.CoreMatchers.isA;
-import static org.hamcrest.CoreMatchers.is;
-import static org.hamcrest.MatcherAssert.assertThat;
-
-class SubqueryExpressionSegmentBinderTest {
-    
-    @Test
-    void assertBind() {
-        SelectStatement selectStatement = new SQLServerSelectStatement();
-        selectStatement.setProjections(new ProjectionsSegment(0, 0));
-        SubquerySegment subquery = new SubquerySegment(0, 10, selectStatement, 
"subquery");
-        SubqueryExpressionSegment segment = new 
SubqueryExpressionSegment(subquery);
-        SQLStatementBinderContext binderContext = new 
SQLStatementBinderContext(null, null, null, null);
-        Map<String, TableSegmentBinderContext> tableBinderContexts = new 
HashMap<>();
-        SubqueryExpressionSegment actual = 
SubqueryExpressionSegmentBinder.bind(segment, binderContext, 
tableBinderContexts);
-        SubqueryExpressionSegment expected = new 
SubqueryExpressionSegment(SubquerySegmentBinder.bind(segment.getSubquery(), 
binderContext, tableBinderContexts));
-        assertThat(actual, isA(SubqueryExpressionSegment.class));
-        assertThat(actual.getStartIndex(), is(expected.getStartIndex()));
-        assertThat(actual.getStopIndex(), is(expected.getStopIndex()));
-        assertThat(actual.getText(), is(expected.getText()));
-        assertThat(actual.getSubquery().getStartIndex(), 
is(expected.getSubquery().getStartIndex()));
-        assertThat(actual.getSubquery().getStopIndex(), 
is(expected.getSubquery().getStopIndex()));
-        assertThat(actual.getSubquery().getSubqueryType(), 
is(expected.getSubquery().getSubqueryType()));
-        assertThat(actual.getSubquery().getText(), 
is(expected.getSubquery().getText()));
-        assertThat(actual.getSubquery().getSelect().getDatabaseType(), 
is(expected.getSubquery().getSelect().getDatabaseType()));
-        
assertThat(actual.getSubquery().getSelect().getProjections().getProjections(), 
is(expected.getSubquery().getSelect().getProjections().getProjections()));
-    }
-}
diff --git 
a/infra/binder/src/test/java/org/apache/shardingsphere/infra/binder/segment/expression/impl/BinaryOperationExpressionBinderTest.java
 
b/infra/binder/src/test/java/org/apache/shardingsphere/infra/binder/segment/expression/type/BinaryOperationExpressionBinderTest.java
similarity index 99%
rename from 
infra/binder/src/test/java/org/apache/shardingsphere/infra/binder/segment/expression/impl/BinaryOperationExpressionBinderTest.java
rename to 
infra/binder/src/test/java/org/apache/shardingsphere/infra/binder/segment/expression/type/BinaryOperationExpressionBinderTest.java
index d3937cccfbe..1f23575a61c 100644
--- 
a/infra/binder/src/test/java/org/apache/shardingsphere/infra/binder/segment/expression/impl/BinaryOperationExpressionBinderTest.java
+++ 
b/infra/binder/src/test/java/org/apache/shardingsphere/infra/binder/segment/expression/type/BinaryOperationExpressionBinderTest.java
@@ -15,7 +15,7 @@
  * limitations under the License.
  */
 
-package org.apache.shardingsphere.infra.binder.segment.expression.impl;
+package org.apache.shardingsphere.infra.binder.segment.expression.type;
 
 import org.apache.shardingsphere.infra.binder.segment.SegmentType;
 import 
org.apache.shardingsphere.infra.binder.statement.SQLStatementBinderContext;
diff --git 
a/infra/binder/src/test/java/org/apache/shardingsphere/infra/binder/segment/expression/impl/ColumnSegmentBinderTest.java
 
b/infra/binder/src/test/java/org/apache/shardingsphere/infra/binder/segment/expression/type/ColumnSegmentBinderTest.java
similarity index 99%
rename from 
infra/binder/src/test/java/org/apache/shardingsphere/infra/binder/segment/expression/impl/ColumnSegmentBinderTest.java
rename to 
infra/binder/src/test/java/org/apache/shardingsphere/infra/binder/segment/expression/type/ColumnSegmentBinderTest.java
index d4ce6decb40..630ba5e9cf3 100644
--- 
a/infra/binder/src/test/java/org/apache/shardingsphere/infra/binder/segment/expression/impl/ColumnSegmentBinderTest.java
+++ 
b/infra/binder/src/test/java/org/apache/shardingsphere/infra/binder/segment/expression/type/ColumnSegmentBinderTest.java
@@ -15,7 +15,7 @@
  * limitations under the License.
  */
 
-package org.apache.shardingsphere.infra.binder.segment.expression.impl;
+package org.apache.shardingsphere.infra.binder.segment.expression.type;
 
 import org.apache.shardingsphere.infra.binder.segment.SegmentType;
 import 
org.apache.shardingsphere.infra.binder.segment.from.context.type.SimpleTableSegmentBinderContext;
diff --git 
a/infra/binder/src/test/java/org/apache/shardingsphere/infra/binder/segment/expression/impl/ExistsSubqueryExpressionBinderTest.java
 
b/infra/binder/src/test/java/org/apache/shardingsphere/infra/binder/segment/expression/type/ExistsSubqueryExpressionBinderTest.java
similarity index 99%
rename from 
infra/binder/src/test/java/org/apache/shardingsphere/infra/binder/segment/expression/impl/ExistsSubqueryExpressionBinderTest.java
rename to 
infra/binder/src/test/java/org/apache/shardingsphere/infra/binder/segment/expression/type/ExistsSubqueryExpressionBinderTest.java
index e4033eaf4e7..51dc57d9cc2 100644
--- 
a/infra/binder/src/test/java/org/apache/shardingsphere/infra/binder/segment/expression/impl/ExistsSubqueryExpressionBinderTest.java
+++ 
b/infra/binder/src/test/java/org/apache/shardingsphere/infra/binder/segment/expression/type/ExistsSubqueryExpressionBinderTest.java
@@ -15,7 +15,7 @@
  * limitations under the License.
  */
 
-package org.apache.shardingsphere.infra.binder.segment.expression.impl;
+package org.apache.shardingsphere.infra.binder.segment.expression.type;
 
 import 
org.apache.shardingsphere.infra.binder.statement.SQLStatementBinderContext;
 import org.apache.shardingsphere.infra.database.core.DefaultDatabase;
diff --git 
a/infra/binder/src/test/java/org/apache/shardingsphere/infra/binder/segment/expression/impl/FunctionExpressionSegmentBinderTest.java
 
b/infra/binder/src/test/java/org/apache/shardingsphere/infra/binder/segment/expression/type/FunctionExpressionSegmentBinderTest.java
similarity index 99%
rename from 
infra/binder/src/test/java/org/apache/shardingsphere/infra/binder/segment/expression/impl/FunctionExpressionSegmentBinderTest.java
rename to 
infra/binder/src/test/java/org/apache/shardingsphere/infra/binder/segment/expression/type/FunctionExpressionSegmentBinderTest.java
index 4b5aad0069e..b2182c2ebcb 100644
--- 
a/infra/binder/src/test/java/org/apache/shardingsphere/infra/binder/segment/expression/impl/FunctionExpressionSegmentBinderTest.java
+++ 
b/infra/binder/src/test/java/org/apache/shardingsphere/infra/binder/segment/expression/type/FunctionExpressionSegmentBinderTest.java
@@ -15,7 +15,7 @@
  * limitations under the License.
  */
 
-package org.apache.shardingsphere.infra.binder.segment.expression.impl;
+package org.apache.shardingsphere.infra.binder.segment.expression.type;
 
 import org.apache.shardingsphere.infra.binder.segment.SegmentType;
 import 
org.apache.shardingsphere.infra.binder.statement.SQLStatementBinderContext;
diff --git 
a/infra/binder/src/test/java/org/apache/shardingsphere/infra/binder/segment/expression/impl/InExpressionBinderTest.java
 
b/infra/binder/src/test/java/org/apache/shardingsphere/infra/binder/segment/expression/type/InExpressionBinderTest.java
similarity index 94%
rename from 
infra/binder/src/test/java/org/apache/shardingsphere/infra/binder/segment/expression/impl/InExpressionBinderTest.java
rename to 
infra/binder/src/test/java/org/apache/shardingsphere/infra/binder/segment/expression/type/InExpressionBinderTest.java
index ac0eacea22f..dbad5937bcf 100644
--- 
a/infra/binder/src/test/java/org/apache/shardingsphere/infra/binder/segment/expression/impl/InExpressionBinderTest.java
+++ 
b/infra/binder/src/test/java/org/apache/shardingsphere/infra/binder/segment/expression/type/InExpressionBinderTest.java
@@ -15,7 +15,7 @@
  * limitations under the License.
  */
 
-package org.apache.shardingsphere.infra.binder.segment.expression.impl;
+package org.apache.shardingsphere.infra.binder.segment.expression.type;
 
 import org.apache.shardingsphere.infra.binder.segment.SegmentType;
 import 
org.apache.shardingsphere.infra.binder.statement.SQLStatementBinderContext;
@@ -38,8 +38,7 @@ class InExpressionBinderTest {
                 new LiteralExpressionSegment(0, 0, "left"),
                 new LiteralExpressionSegment(0, 0, "right"), true);
         SQLStatementBinderContext binderContext = 
mock(SQLStatementBinderContext.class);
-        InExpression actual = InExpressionBinder.bind(inExpression, 
SegmentType.PROJECTION,
-                binderContext, Collections.emptyMap(), Collections.emptyMap());
+        InExpression actual = InExpressionBinder.bind(inExpression, 
SegmentType.PROJECTION, binderContext, Collections.emptyMap(), 
Collections.emptyMap());
         assertThat(actual.getText(), is("leftright"));
         assertTrue(actual.isNot());
     }
diff --git 
a/infra/binder/src/test/java/org/apache/shardingsphere/infra/binder/segment/expression/impl/NotExpressionBinderTest.java
 
b/infra/binder/src/test/java/org/apache/shardingsphere/infra/binder/segment/expression/type/NotExpressionBinderTest.java
similarity index 99%
rename from 
infra/binder/src/test/java/org/apache/shardingsphere/infra/binder/segment/expression/impl/NotExpressionBinderTest.java
rename to 
infra/binder/src/test/java/org/apache/shardingsphere/infra/binder/segment/expression/type/NotExpressionBinderTest.java
index 1fd70e510ea..04850b16a48 100644
--- 
a/infra/binder/src/test/java/org/apache/shardingsphere/infra/binder/segment/expression/impl/NotExpressionBinderTest.java
+++ 
b/infra/binder/src/test/java/org/apache/shardingsphere/infra/binder/segment/expression/type/NotExpressionBinderTest.java
@@ -15,7 +15,7 @@
  * limitations under the License.
  */
 
-package org.apache.shardingsphere.infra.binder.segment.expression.impl;
+package org.apache.shardingsphere.infra.binder.segment.expression.type;
 
 import org.apache.shardingsphere.infra.binder.segment.SegmentType;
 import 
org.apache.shardingsphere.infra.binder.statement.SQLStatementBinderContext;
diff --git 
a/infra/binder/src/test/java/org/apache/shardingsphere/infra/binder/segment/expression/impl/SubquerySegmentBinderTest.java
 
b/infra/binder/src/test/java/org/apache/shardingsphere/infra/binder/segment/expression/type/SubquerySegmentBinderTest.java
similarity index 95%
rename from 
infra/binder/src/test/java/org/apache/shardingsphere/infra/binder/segment/expression/impl/SubquerySegmentBinderTest.java
rename to 
infra/binder/src/test/java/org/apache/shardingsphere/infra/binder/segment/expression/type/SubquerySegmentBinderTest.java
index ae8569e2f1a..fff9016a170 100644
--- 
a/infra/binder/src/test/java/org/apache/shardingsphere/infra/binder/segment/expression/impl/SubquerySegmentBinderTest.java
+++ 
b/infra/binder/src/test/java/org/apache/shardingsphere/infra/binder/segment/expression/type/SubquerySegmentBinderTest.java
@@ -15,7 +15,7 @@
  * limitations under the License.
  */
 
-package org.apache.shardingsphere.infra.binder.segment.expression.impl;
+package org.apache.shardingsphere.infra.binder.segment.expression.type;
 
 import 
org.apache.shardingsphere.infra.binder.segment.from.context.type.SimpleTableSegmentBinderContext;
 import 
org.apache.shardingsphere.infra.binder.segment.from.context.TableSegmentBinderContext;
@@ -72,11 +72,11 @@ class SubquerySegmentBinderTest {
         ExpressionSegment whereExpressionSegment = new ColumnSegment(86, 91, 
new IdentifierValue("status"));
         mysqlSelectStatement.setWhere(new WhereSegment(80, 102, 
whereExpressionSegment));
         SubquerySegment subquerySegment = new SubquerySegment(39, 103, 
mysqlSelectStatement, "order_id = (SELECT order_id FROM t_order WHERE status = 
'SUBMIT')");
-        SQLStatementBinderContext sqlStatementBinderContext =
-                new SQLStatementBinderContext(createMetaData(), 
DefaultDatabase.LOGIC_NAME, TypedSPILoader.getService(DatabaseType.class, 
"FIXTURE"), Collections.emptySet());
+        SQLStatementBinderContext sqlStatementBinderContext = new 
SQLStatementBinderContext(
+                createMetaData(), DefaultDatabase.LOGIC_NAME, 
TypedSPILoader.getService(DatabaseType.class, "FIXTURE"), 
Collections.emptySet());
         ColumnSegment boundNameColumn = new ColumnSegment(7, 13, new 
IdentifierValue("user_id"));
-        boundNameColumn.setColumnBoundInfo(new ColumnSegmentBoundInfo(new 
IdentifierValue(DefaultDatabase.LOGIC_NAME), new 
IdentifierValue(DefaultDatabase.LOGIC_NAME),
-                new IdentifierValue("t_order_item"), new 
IdentifierValue("user_id")));
+        boundNameColumn.setColumnBoundInfo(new ColumnSegmentBoundInfo(
+                new IdentifierValue(DefaultDatabase.LOGIC_NAME), new 
IdentifierValue(DefaultDatabase.LOGIC_NAME), new 
IdentifierValue("t_order_item"), new IdentifierValue("user_id")));
         
sqlStatementBinderContext.getExternalTableBinderContexts().put("t_order_item", 
new SimpleTableSegmentBinderContext(Collections.singleton(new 
ColumnProjectionSegment(boundNameColumn))));
         Map<String, TableSegmentBinderContext> outerTableBinderContexts = new 
LinkedHashMap<>();
         SubquerySegment actual = SubquerySegmentBinder.bind(subquerySegment, 
sqlStatementBinderContext, outerTableBinderContexts);
@@ -124,8 +124,8 @@ class SubquerySegmentBinderTest {
         oracleSelectStatement.setWithSegment(withSegment);
         oracleSelectStatement.setProjections(new ProjectionsSegment(0, 0));
         SubquerySegment subquerySegment = new SubquerySegment(0, 74, 
oracleSelectStatement, "WITH submit_order AS (SELECT order_id FROM t_order 
WHERE status = 'SUBMIT')");
-        SQLStatementBinderContext sqlStatementBinderContext =
-                new SQLStatementBinderContext(createMetaData(), 
DefaultDatabase.LOGIC_NAME, TypedSPILoader.getService(DatabaseType.class, 
"FIXTURE"), Collections.emptySet());
+        SQLStatementBinderContext sqlStatementBinderContext = new 
SQLStatementBinderContext(
+                createMetaData(), DefaultDatabase.LOGIC_NAME, 
TypedSPILoader.getService(DatabaseType.class, "FIXTURE"), 
Collections.emptySet());
         Map<String, TableSegmentBinderContext> outerTableBinderContexts = new 
LinkedHashMap<>();
         SubquerySegment actual = SubquerySegmentBinder.bind(subquerySegment, 
sqlStatementBinderContext, outerTableBinderContexts);
         assertNotNull(actual.getSelect());


Reply via email to