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

duanzhengqiang 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 035380a68f8 Support cursor record bind (#28361)
035380a68f8 is described below

commit 035380a68f8fd385f39a3ff2cd466b56032a7e5a
Author: Chuxin Chen <[email protected]>
AuthorDate: Tue Sep 5 18:00:18 2023 +0800

    Support cursor record bind (#28361)
    
    * Support cursor record bind
    
    * Revert "Support cursor record bind"
    
    This reverts commit cc8073754cbdfc95be8a2c243260cf8d4be5d0ea.
    
    * Support cursor record bind
---
 .../segment/combine/CombineSegmentBinder.java      |  6 +++--
 .../expression/impl/ColumnSegmentBinder.java       |  9 ++++++--
 .../expression/impl/SubquerySegmentBinder.java     |  4 ++--
 .../from/impl/SubqueryTableSegmentBinder.java      |  3 ++-
 .../statement/SQLStatementBinderContext.java       |  5 +++++
 .../statement/dml/DeleteStatementBinder.java       |  8 ++++++-
 .../statement/dml/InsertStatementBinder.java       | 10 ++++++++-
 .../binder/statement/dml/MergeStatementBinder.java |  8 ++++++-
 .../statement/dml/SelectStatementBinder.java       | 26 +++++++++++++++++-----
 .../statement/dml/UpdateStatementBinder.java       |  8 ++++++-
 10 files changed, 71 insertions(+), 16 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 3b4a84e54f3..b305daf2e3e 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
@@ -41,8 +41,10 @@ public final class CombineSegmentBinder {
     public static CombineSegment bind(final CombineSegment segment, final 
SQLStatementBinderContext statementBinderContext) {
         ShardingSphereMetaData metaData = statementBinderContext.getMetaData();
         String defaultDatabaseName = 
statementBinderContext.getDefaultDatabaseName();
-        SelectStatement boundedLeftSelect = new 
SelectStatementBinder().bind(segment.getLeft(), metaData, defaultDatabaseName);
-        SelectStatement boundedRightSelect = new 
SelectStatementBinder().bind(segment.getRight(), metaData, defaultDatabaseName);
+        SelectStatement boundedLeftSelect = new 
SelectStatementBinder().bindWithExternalTableContexts(segment.getLeft(), 
metaData, defaultDatabaseName,
+                statementBinderContext.getExternalTableBinderContexts());
+        SelectStatement boundedRightSelect = new 
SelectStatementBinder().bindWithExternalTableContexts(segment.getRight(), 
metaData, defaultDatabaseName,
+                statementBinderContext.getExternalTableBinderContexts());
         return new CombineSegment(segment.getStartIndex(), 
segment.getStopIndex(), boundedLeftSelect, segment.getCombineType(), 
boundedRightSelect);
     }
 }
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/impl/ColumnSegmentBinder.java
index a1a783e1873..03e31f5022f 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/impl/ColumnSegmentBinder.java
@@ -85,7 +85,8 @@ public final class ColumnSegmentBinder {
                                                                                
        final Map<String, TableSegmentBinderContext> tableBinderContexts,
                                                                                
        final Map<String, TableSegmentBinderContext> outerTableBinderContexts) {
         if (segment.getOwner().isPresent()) {
-            return 
getTableBinderContextByOwner(segment.getOwner().get().getIdentifier().getValue(),
 tableBinderContexts, outerTableBinderContexts);
+            return 
getTableBinderContextByOwner(segment.getOwner().get().getIdentifier().getValue(),
 tableBinderContexts, outerTableBinderContexts,
+                    statementBinderContext.getExternalTableBinderContexts());
         }
         if (!statementBinderContext.getJoinTableProjectionSegments().isEmpty() 
&& isNeedUseJoinTableProjectionBind(segment, parentSegmentType, 
statementBinderContext)) {
             return Collections.singleton(new 
TableSegmentBinderContext(statementBinderContext.getJoinTableProjectionSegments()));
@@ -99,13 +100,17 @@ public final class ColumnSegmentBinder {
     }
     
     private static Collection<TableSegmentBinderContext> 
getTableBinderContextByOwner(final String owner, final Map<String, 
TableSegmentBinderContext> tableBinderContexts,
-                                                                               
       final Map<String, TableSegmentBinderContext> outerTableBinderContexts) {
+                                                                               
       final Map<String, TableSegmentBinderContext> outerTableBinderContexts,
+                                                                               
       final Map<String, TableSegmentBinderContext> 
externalTableBinderContexts) {
         if (tableBinderContexts.containsKey(owner)) {
             return Collections.singleton(tableBinderContexts.get(owner));
         }
         if (outerTableBinderContexts.containsKey(owner)) {
             return Collections.singleton(outerTableBinderContexts.get(owner));
         }
+        if (externalTableBinderContexts.containsKey(owner)) {
+            return 
Collections.singleton(externalTableBinderContexts.get(owner));
+        }
         return Collections.emptyList();
     }
     
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/impl/SubquerySegmentBinder.java
index 1ab567a9f36..7a7273dab29 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/impl/SubquerySegmentBinder.java
@@ -42,8 +42,8 @@ public final class SubquerySegmentBinder {
      * @return bounded subquery segment
      */
     public static SubquerySegment bind(final SubquerySegment segment, final 
SQLStatementBinderContext statementBinderContext, final Map<String, 
TableSegmentBinderContext> outerTableBinderContexts) {
-        SelectStatement boundedSelectStatement =
-                new 
SelectStatementBinder().bindCorrelateSubquery(segment.getSelect(), 
statementBinderContext.getMetaData(), 
statementBinderContext.getDefaultDatabaseName(), outerTableBinderContexts);
+        SelectStatement boundedSelectStatement = new 
SelectStatementBinder().bindCorrelateSubquery(segment.getSelect(), 
statementBinderContext.getMetaData(),
+                statementBinderContext.getDefaultDatabaseName(), 
outerTableBinderContexts, 
statementBinderContext.getExternalTableBinderContexts());
         SubquerySegment result = new SubquerySegment(segment.getStartIndex(), 
segment.getStopIndex(), boundedSelectStatement);
         result.setSubqueryType(segment.getSubqueryType());
         return result;
diff --git 
a/infra/binder/src/main/java/org/apache/shardingsphere/infra/binder/segment/from/impl/SubqueryTableSegmentBinder.java
 
b/infra/binder/src/main/java/org/apache/shardingsphere/infra/binder/segment/from/impl/SubqueryTableSegmentBinder.java
index d1ecb081295..e8f965b43c2 100644
--- 
a/infra/binder/src/main/java/org/apache/shardingsphere/infra/binder/segment/from/impl/SubqueryTableSegmentBinder.java
+++ 
b/infra/binder/src/main/java/org/apache/shardingsphere/infra/binder/segment/from/impl/SubqueryTableSegmentBinder.java
@@ -55,7 +55,8 @@ public final class SubqueryTableSegmentBinder {
      */
     public static SubqueryTableSegment bind(final SubqueryTableSegment 
segment, final SQLStatementBinderContext statementBinderContext,
                                             final Map<String, 
TableSegmentBinderContext> tableBinderContexts) {
-        SelectStatement boundedSelect = new 
SelectStatementBinder().bind(segment.getSubquery().getSelect(), 
statementBinderContext.getMetaData(), 
statementBinderContext.getDefaultDatabaseName());
+        SelectStatement boundedSelect = new 
SelectStatementBinder().bindWithExternalTableContexts(segment.getSubquery().getSelect(),
 statementBinderContext.getMetaData(),
+                statementBinderContext.getDefaultDatabaseName(), 
statementBinderContext.getExternalTableBinderContexts());
         SubquerySegment boundedSubquerySegment = new 
SubquerySegment(segment.getSubquery().getStartIndex(), 
segment.getSubquery().getStopIndex(), boundedSelect);
         
boundedSubquerySegment.setSubqueryType(segment.getSubquery().getSubqueryType());
         SubqueryTableSegment result = new 
SubqueryTableSegment(boundedSubquerySegment);
diff --git 
a/infra/binder/src/main/java/org/apache/shardingsphere/infra/binder/statement/SQLStatementBinderContext.java
 
b/infra/binder/src/main/java/org/apache/shardingsphere/infra/binder/statement/SQLStatementBinderContext.java
index 7d056da44b2..21c5ed6ccf6 100644
--- 
a/infra/binder/src/main/java/org/apache/shardingsphere/infra/binder/statement/SQLStatementBinderContext.java
+++ 
b/infra/binder/src/main/java/org/apache/shardingsphere/infra/binder/statement/SQLStatementBinderContext.java
@@ -19,6 +19,8 @@ package org.apache.shardingsphere.infra.binder.statement;
 
 import lombok.Getter;
 import lombok.RequiredArgsConstructor;
+import org.apache.commons.collections4.map.CaseInsensitiveMap;
+import 
org.apache.shardingsphere.infra.binder.segment.from.TableSegmentBinderContext;
 import org.apache.shardingsphere.infra.database.core.type.DatabaseType;
 import org.apache.shardingsphere.infra.metadata.ShardingSphereMetaData;
 import 
org.apache.shardingsphere.sql.parser.sql.common.segment.dml.item.ProjectionSegment;
@@ -26,6 +28,7 @@ import 
org.apache.shardingsphere.sql.parser.sql.common.segment.dml.item.Projecti
 import java.util.Collection;
 import java.util.HashSet;
 import java.util.LinkedList;
+import java.util.Map;
 
 /**
  * SQL statement binder context.
@@ -45,4 +48,6 @@ public final class SQLStatementBinderContext {
     private final Collection<String> usingColumnNames = new HashSet<>();
     
     private final Collection<ProjectionSegment> joinTableProjectionSegments = 
new LinkedList<>();
+    
+    private final Map<String, TableSegmentBinderContext> 
externalTableBinderContexts = new CaseInsensitiveMap<>();
 }
diff --git 
a/infra/binder/src/main/java/org/apache/shardingsphere/infra/binder/statement/dml/DeleteStatementBinder.java
 
b/infra/binder/src/main/java/org/apache/shardingsphere/infra/binder/statement/dml/DeleteStatementBinder.java
index af3ad3fedb9..431e3a452a8 100644
--- 
a/infra/binder/src/main/java/org/apache/shardingsphere/infra/binder/statement/dml/DeleteStatementBinder.java
+++ 
b/infra/binder/src/main/java/org/apache/shardingsphere/infra/binder/statement/dml/DeleteStatementBinder.java
@@ -37,12 +37,18 @@ import java.util.Map;
  */
 public final class DeleteStatementBinder implements 
SQLStatementBinder<DeleteStatement> {
     
-    @SneakyThrows
     @Override
     public DeleteStatement bind(final DeleteStatement sqlStatement, final 
ShardingSphereMetaData metaData, final String defaultDatabaseName) {
+        return bind(sqlStatement, metaData, defaultDatabaseName, 
Collections.emptyMap());
+    }
+    
+    @SneakyThrows
+    private DeleteStatement bind(final DeleteStatement sqlStatement, final 
ShardingSphereMetaData metaData, final String defaultDatabaseName,
+                                 final Map<String, TableSegmentBinderContext> 
externalTableBinderContexts) {
         DeleteStatement result = 
sqlStatement.getClass().getDeclaredConstructor().newInstance();
         Map<String, TableSegmentBinderContext> tableBinderContexts = new 
CaseInsensitiveMap<>();
         SQLStatementBinderContext statementBinderContext = new 
SQLStatementBinderContext(metaData, defaultDatabaseName, 
sqlStatement.getDatabaseType(), sqlStatement.getVariableNames());
+        
statementBinderContext.getExternalTableBinderContexts().putAll(externalTableBinderContexts);
         TableSegment boundedTableSegment = 
TableSegmentBinder.bind(sqlStatement.getTable(), statementBinderContext, 
tableBinderContexts);
         result.setTable(boundedTableSegment);
         sqlStatement.getWhere().ifPresent(optional -> 
result.setWhere(WhereSegmentBinder.bind(optional, statementBinderContext, 
tableBinderContexts, Collections.emptyMap())));
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 62143ab9ba6..a0cf9de542c 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,6 +19,7 @@ package org.apache.shardingsphere.infra.binder.statement.dml;
 
 import lombok.SneakyThrows;
 import 
org.apache.shardingsphere.infra.binder.segment.expression.impl.SubquerySegmentBinder;
+import 
org.apache.shardingsphere.infra.binder.segment.from.TableSegmentBinderContext;
 import org.apache.shardingsphere.infra.binder.statement.SQLStatementBinder;
 import 
org.apache.shardingsphere.infra.binder.statement.SQLStatementBinderContext;
 import org.apache.shardingsphere.infra.metadata.ShardingSphereMetaData;
@@ -26,19 +27,26 @@ import 
org.apache.shardingsphere.sql.parser.sql.common.statement.dml.InsertState
 import 
org.apache.shardingsphere.sql.parser.sql.dialect.handler.dml.InsertStatementHandler;
 
 import java.util.Collections;
+import java.util.Map;
 
 /**
  * Select statement binder.
  */
 public final class InsertStatementBinder implements 
SQLStatementBinder<InsertStatement> {
     
-    @SneakyThrows
     @Override
     public InsertStatement bind(final InsertStatement sqlStatement, final 
ShardingSphereMetaData metaData, final String defaultDatabaseName) {
+        return bind(sqlStatement, metaData, defaultDatabaseName, 
Collections.emptyMap());
+    }
+    
+    @SneakyThrows
+    private InsertStatement bind(final InsertStatement sqlStatement, final 
ShardingSphereMetaData metaData, final String defaultDatabaseName,
+                                 final Map<String, TableSegmentBinderContext> 
externalTableBinderContexts) {
         InsertStatement result = 
sqlStatement.getClass().getDeclaredConstructor().newInstance();
         result.setTable(sqlStatement.getTable());
         sqlStatement.getInsertColumns().ifPresent(result::setInsertColumns);
         SQLStatementBinderContext statementBinderContext = new 
SQLStatementBinderContext(metaData, defaultDatabaseName, 
sqlStatement.getDatabaseType(), sqlStatement.getVariableNames());
+        
statementBinderContext.getExternalTableBinderContexts().putAll(externalTableBinderContexts);
         sqlStatement.getInsertSelect().ifPresent(optional -> 
result.setInsertSelect(SubquerySegmentBinder.bind(optional, 
statementBinderContext, Collections.emptyMap())));
         result.getValues().addAll(sqlStatement.getValues());
         
InsertStatementHandler.getOnDuplicateKeyColumnsSegment(sqlStatement).ifPresent(optional
 -> InsertStatementHandler.setOnDuplicateKeyColumnsSegment(result, optional));
diff --git 
a/infra/binder/src/main/java/org/apache/shardingsphere/infra/binder/statement/dml/MergeStatementBinder.java
 
b/infra/binder/src/main/java/org/apache/shardingsphere/infra/binder/statement/dml/MergeStatementBinder.java
index e27fd508235..eae67d10d97 100644
--- 
a/infra/binder/src/main/java/org/apache/shardingsphere/infra/binder/statement/dml/MergeStatementBinder.java
+++ 
b/infra/binder/src/main/java/org/apache/shardingsphere/infra/binder/statement/dml/MergeStatementBinder.java
@@ -55,12 +55,18 @@ import java.util.Optional;
  */
 public final class MergeStatementBinder implements 
SQLStatementBinder<MergeStatement> {
     
-    @SneakyThrows
     @Override
     public MergeStatement bind(final MergeStatement sqlStatement, final 
ShardingSphereMetaData metaData, final String defaultDatabaseName) {
+        return bind(sqlStatement, metaData, defaultDatabaseName, 
Collections.emptyMap());
+    }
+    
+    @SneakyThrows
+    private MergeStatement bind(final MergeStatement sqlStatement, final 
ShardingSphereMetaData metaData, final String defaultDatabaseName,
+                                final Map<String, TableSegmentBinderContext> 
externalTableBinderContexts) {
         MergeStatement result = 
sqlStatement.getClass().getDeclaredConstructor().newInstance();
         Map<String, TableSegmentBinderContext> tableBinderContexts = new 
CaseInsensitiveMap<>();
         SQLStatementBinderContext statementBinderContext = new 
SQLStatementBinderContext(metaData, defaultDatabaseName, 
sqlStatement.getDatabaseType(), sqlStatement.getVariableNames());
+        
statementBinderContext.getExternalTableBinderContexts().putAll(externalTableBinderContexts);
         TableSegment boundedTargetTableSegment = 
TableSegmentBinder.bind(sqlStatement.getTarget(), statementBinderContext, 
tableBinderContexts);
         TableSegment boundedSourceTableSegment = 
TableSegmentBinder.bind(sqlStatement.getSource(), statementBinderContext, 
tableBinderContexts);
         result.setTarget(boundedTargetTableSegment);
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 91064950657..2c12c0a4fff 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
@@ -43,15 +43,16 @@ public final class SelectStatementBinder implements 
SQLStatementBinder<SelectSta
     @SneakyThrows
     @Override
     public SelectStatement bind(final SelectStatement sqlStatement, final 
ShardingSphereMetaData metaData, final String defaultDatabaseName) {
-        return bind(sqlStatement, metaData, defaultDatabaseName, 
Collections.emptyMap());
+        return bind(sqlStatement, metaData, defaultDatabaseName, 
Collections.emptyMap(), Collections.emptyMap());
     }
     
     @SneakyThrows
     private SelectStatement bind(final SelectStatement sqlStatement, final 
ShardingSphereMetaData metaData, final String defaultDatabaseName,
-                                 final Map<String, TableSegmentBinderContext> 
outerTableBinderContexts) {
+                                 final Map<String, TableSegmentBinderContext> 
outerTableBinderContexts, final Map<String, TableSegmentBinderContext> 
externalTableBinderContexts) {
         SelectStatement result = 
sqlStatement.getClass().getDeclaredConstructor().newInstance();
         Map<String, TableSegmentBinderContext> tableBinderContexts = new 
CaseInsensitiveMap<>();
         SQLStatementBinderContext statementBinderContext = new 
SQLStatementBinderContext(metaData, defaultDatabaseName, 
sqlStatement.getDatabaseType(), sqlStatement.getVariableNames());
+        
statementBinderContext.getExternalTableBinderContexts().putAll(externalTableBinderContexts);
         TableSegment boundedTableSegment = 
TableSegmentBinder.bind(sqlStatement.getFrom(), statementBinderContext, 
tableBinderContexts);
         result.setFrom(boundedTableSegment);
         
result.setProjections(ProjectionsSegmentBinder.bind(sqlStatement.getProjections(),
 statementBinderContext, boundedTableSegment, tableBinderContexts));
@@ -74,16 +75,31 @@ public final class SelectStatementBinder implements 
SQLStatementBinder<SelectSta
     
     /**
      * Bind correlate subquery select statement.
-     * 
+     *
      * @param sqlStatement subquery select statement
      * @param metaData meta data
      * @param defaultDatabaseName default database name
      * @param outerTableBinderContexts outer select statement table binder 
contexts
+     * @param externalTableBinderContexts external table binder contexts
      * @return bounded correlate subquery select statement
      */
     @SneakyThrows
     public SelectStatement bindCorrelateSubquery(final SelectStatement 
sqlStatement, final ShardingSphereMetaData metaData, final String 
defaultDatabaseName,
-                                                 final Map<String, 
TableSegmentBinderContext> outerTableBinderContexts) {
-        return bind(sqlStatement, metaData, defaultDatabaseName, 
outerTableBinderContexts);
+                                                 final Map<String, 
TableSegmentBinderContext> outerTableBinderContexts, final Map<String, 
TableSegmentBinderContext> externalTableBinderContexts) {
+        return bind(sqlStatement, metaData, defaultDatabaseName, 
outerTableBinderContexts, externalTableBinderContexts);
+    }
+    
+    /**
+     * Bind with external table contexts.
+     *
+     * @param statement select statement
+     * @param metaData meta data
+     * @param defaultDatabaseName default database name
+     * @param externalTableContexts external table contexts
+     * @return select statement
+     */
+    public SelectStatement bindWithExternalTableContexts(final SelectStatement 
statement, final ShardingSphereMetaData metaData, final String 
defaultDatabaseName,
+                                                         final Map<String, 
TableSegmentBinderContext> externalTableContexts) {
+        return bind(statement, metaData, defaultDatabaseName, 
Collections.emptyMap(), externalTableContexts);
     }
 }
diff --git 
a/infra/binder/src/main/java/org/apache/shardingsphere/infra/binder/statement/dml/UpdateStatementBinder.java
 
b/infra/binder/src/main/java/org/apache/shardingsphere/infra/binder/statement/dml/UpdateStatementBinder.java
index ffa89b7bfa3..dc96e88bd65 100644
--- 
a/infra/binder/src/main/java/org/apache/shardingsphere/infra/binder/statement/dml/UpdateStatementBinder.java
+++ 
b/infra/binder/src/main/java/org/apache/shardingsphere/infra/binder/statement/dml/UpdateStatementBinder.java
@@ -37,12 +37,18 @@ import java.util.Map;
  */
 public final class UpdateStatementBinder implements 
SQLStatementBinder<UpdateStatement> {
     
-    @SneakyThrows
     @Override
     public UpdateStatement bind(final UpdateStatement sqlStatement, final 
ShardingSphereMetaData metaData, final String defaultDatabaseName) {
+        return bind(sqlStatement, metaData, defaultDatabaseName, 
Collections.emptyMap());
+    }
+    
+    @SneakyThrows
+    private UpdateStatement bind(final UpdateStatement sqlStatement, final 
ShardingSphereMetaData metaData, final String defaultDatabaseName,
+                                 final Map<String, TableSegmentBinderContext> 
externalTableBinderContexts) {
         UpdateStatement result = 
sqlStatement.getClass().getDeclaredConstructor().newInstance();
         Map<String, TableSegmentBinderContext> tableBinderContexts = new 
CaseInsensitiveMap<>();
         SQLStatementBinderContext statementBinderContext = new 
SQLStatementBinderContext(metaData, defaultDatabaseName, 
sqlStatement.getDatabaseType(), sqlStatement.getVariableNames());
+        
statementBinderContext.getExternalTableBinderContexts().putAll(externalTableBinderContexts);
         TableSegment boundedTableSegment = 
TableSegmentBinder.bind(sqlStatement.getTable(), statementBinderContext, 
tableBinderContexts);
         result.setTable(boundedTableSegment);
         result.setSetAssignment(sqlStatement.getSetAssignment());

Reply via email to