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 b02830c9c91 Decouple AbstractResultSetAdapter and ExecutionContext 
(#31435)
b02830c9c91 is described below

commit b02830c9c91a250652f79437849b6b0a15725bb5
Author: Liang Zhang <[email protected]>
AuthorDate: Wed May 29 14:08:45 2024 +0800

    Decouple AbstractResultSetAdapter and ExecutionContext (#31435)
---
 .../driver/jdbc/adapter/AbstractResultSetAdapter.java      | 10 +++++-----
 .../jdbc/core/resultset/ShardingSphereResultSet.java       | 14 +++++++-------
 .../core/statement/ShardingSpherePreparedStatement.java    |  4 ++--
 .../jdbc/core/statement/ShardingSphereStatement.java       |  4 ++--
 .../driver/jdbc/adapter/ResultSetAdapterTest.java          |  6 +++---
 .../driver/jdbc/adapter/ResultSetGetterAdapterTest.java    |  5 +----
 .../jdbc/core/resultset/ShardingSphereResultSetTest.java   | 11 ++++-------
 .../unsupported/UnsupportedOperationResultSetTest.java     |  4 ++--
 .../UnsupportedUpdateOperationResultSetTest.java           |  4 ++--
 9 files changed, 28 insertions(+), 34 deletions(-)

diff --git 
a/jdbc/src/main/java/org/apache/shardingsphere/driver/jdbc/adapter/AbstractResultSetAdapter.java
 
b/jdbc/src/main/java/org/apache/shardingsphere/driver/jdbc/adapter/AbstractResultSetAdapter.java
index fd7715e238a..9cb0fe52432 100644
--- 
a/jdbc/src/main/java/org/apache/shardingsphere/driver/jdbc/adapter/AbstractResultSetAdapter.java
+++ 
b/jdbc/src/main/java/org/apache/shardingsphere/driver/jdbc/adapter/AbstractResultSetAdapter.java
@@ -25,7 +25,7 @@ import 
org.apache.shardingsphere.driver.jdbc.core.resultset.ShardingSphereResult
 import 
org.apache.shardingsphere.driver.jdbc.core.statement.ShardingSpherePreparedStatement;
 import 
org.apache.shardingsphere.driver.jdbc.core.statement.ShardingSphereStatement;
 import 
org.apache.shardingsphere.driver.jdbc.unsupported.AbstractUnsupportedOperationResultSet;
-import org.apache.shardingsphere.infra.executor.sql.context.ExecutionContext;
+import 
org.apache.shardingsphere.infra.binder.context.statement.SQLStatementContext;
 import 
org.apache.shardingsphere.infra.metadata.database.ShardingSphereDatabase;
 
 import java.sql.ResultSet;
@@ -47,24 +47,24 @@ public abstract class AbstractResultSetAdapter extends 
AbstractUnsupportedOperat
     
     private final boolean selectContainsEnhancedTable;
     
-    private final ExecutionContext executionContext;
+    private final SQLStatementContext sqlStatementContext;
     
     private final ForceExecuteTemplate<ResultSet> forceExecuteTemplate;
     
     private boolean closed;
     
-    protected AbstractResultSetAdapter(final List<ResultSet> resultSets, final 
Statement statement, final boolean selectContainsEnhancedTable, final 
ExecutionContext executionContext) {
+    protected AbstractResultSetAdapter(final List<ResultSet> resultSets, final 
Statement statement, final boolean selectContainsEnhancedTable, final 
SQLStatementContext sqlStatementContext) {
         Preconditions.checkArgument(!resultSets.isEmpty());
         this.resultSets = resultSets;
         this.statement = statement;
         this.selectContainsEnhancedTable = selectContainsEnhancedTable;
-        this.executionContext = executionContext;
+        this.sqlStatementContext = sqlStatementContext;
         forceExecuteTemplate = new ForceExecuteTemplate<>();
     }
     
     @Override
     public final ResultSetMetaData getMetaData() throws SQLException {
-        return new 
ShardingSphereResultSetMetaData(resultSets.get(0).getMetaData(), getDatabase(), 
selectContainsEnhancedTable, executionContext.getSqlStatementContext());
+        return new 
ShardingSphereResultSetMetaData(resultSets.get(0).getMetaData(), getDatabase(), 
selectContainsEnhancedTable, sqlStatementContext);
     }
     
     private ShardingSphereDatabase getDatabase() {
diff --git 
a/jdbc/src/main/java/org/apache/shardingsphere/driver/jdbc/core/resultset/ShardingSphereResultSet.java
 
b/jdbc/src/main/java/org/apache/shardingsphere/driver/jdbc/core/resultset/ShardingSphereResultSet.java
index 6280811ce1e..d293eac5992 100644
--- 
a/jdbc/src/main/java/org/apache/shardingsphere/driver/jdbc/core/resultset/ShardingSphereResultSet.java
+++ 
b/jdbc/src/main/java/org/apache/shardingsphere/driver/jdbc/core/resultset/ShardingSphereResultSet.java
@@ -19,10 +19,10 @@ package 
org.apache.shardingsphere.driver.jdbc.core.resultset;
 
 import org.apache.shardingsphere.driver.jdbc.adapter.AbstractResultSetAdapter;
 import org.apache.shardingsphere.infra.annotation.HighFrequencyInvocation;
-import org.apache.shardingsphere.infra.executor.sql.context.ExecutionContext;
+import 
org.apache.shardingsphere.infra.binder.context.statement.SQLStatementContext;
+import 
org.apache.shardingsphere.infra.exception.core.ShardingSpherePreconditions;
 import 
org.apache.shardingsphere.infra.executor.sql.execute.result.query.impl.driver.jdbc.type.util.ResultSetUtils;
 import org.apache.shardingsphere.infra.merge.result.MergedResult;
-import 
org.apache.shardingsphere.infra.exception.core.ShardingSpherePreconditions;
 
 import java.io.InputStream;
 import java.io.Reader;
@@ -65,15 +65,15 @@ public final class ShardingSphereResultSet extends 
AbstractResultSetAdapter {
     private final Map<String, Integer> columnLabelAndIndexMap;
     
     public ShardingSphereResultSet(final List<ResultSet> resultSets, final 
MergedResult mergeResultSet, final Statement statement, final boolean 
selectContainsEnhancedTable,
-                                   final ExecutionContext executionContext) 
throws SQLException {
-        super(resultSets, statement, selectContainsEnhancedTable, 
executionContext);
+                                   final SQLStatementContext 
sqlStatementContext) throws SQLException {
+        super(resultSets, statement, selectContainsEnhancedTable, 
sqlStatementContext);
         this.mergeResultSet = mergeResultSet;
-        columnLabelAndIndexMap = 
ShardingSphereResultSetUtils.createColumnLabelAndIndexMap(executionContext.getSqlStatementContext(),
 selectContainsEnhancedTable, resultSets.get(0).getMetaData());
+        columnLabelAndIndexMap = 
ShardingSphereResultSetUtils.createColumnLabelAndIndexMap(sqlStatementContext, 
selectContainsEnhancedTable, resultSets.get(0).getMetaData());
     }
     
     public ShardingSphereResultSet(final List<ResultSet> resultSets, final 
MergedResult mergeResultSet, final Statement statement, final boolean 
selectContainsEnhancedTable,
-                                   final ExecutionContext executionContext, 
final Map<String, Integer> columnLabelAndIndexMap) {
-        super(resultSets, statement, selectContainsEnhancedTable, 
executionContext);
+                                   final SQLStatementContext 
sqlStatementContext, final Map<String, Integer> columnLabelAndIndexMap) {
+        super(resultSets, statement, selectContainsEnhancedTable, 
sqlStatementContext);
         this.mergeResultSet = mergeResultSet;
         this.columnLabelAndIndexMap = columnLabelAndIndexMap;
     }
diff --git 
a/jdbc/src/main/java/org/apache/shardingsphere/driver/jdbc/core/statement/ShardingSpherePreparedStatement.java
 
b/jdbc/src/main/java/org/apache/shardingsphere/driver/jdbc/core/statement/ShardingSpherePreparedStatement.java
index 3109edbd160..d29bd3c6604 100644
--- 
a/jdbc/src/main/java/org/apache/shardingsphere/driver/jdbc/core/statement/ShardingSpherePreparedStatement.java
+++ 
b/jdbc/src/main/java/org/apache/shardingsphere/driver/jdbc/core/statement/ShardingSpherePreparedStatement.java
@@ -250,7 +250,7 @@ public final class ShardingSpherePreparedStatement extends 
AbstractPreparedState
         if (null == columnLabelAndIndexMap) {
             columnLabelAndIndexMap = 
ShardingSphereResultSetUtils.createColumnLabelAndIndexMap(sqlStatementContext, 
selectContainsEnhancedTable, resultSets.get(0).getMetaData());
         }
-        return new ShardingSphereResultSet(resultSets, mergedResult, this, 
selectContainsEnhancedTable, executionContext, columnLabelAndIndexMap);
+        return new ShardingSphereResultSet(resultSets, mergedResult, this, 
selectContainsEnhancedTable, executionContext.getSqlStatementContext(), 
columnLabelAndIndexMap);
     }
     
     private List<QueryResult> executeQuery0(final ExecutionContext 
executionContext) throws SQLException {
@@ -447,7 +447,7 @@ public final class ShardingSpherePreparedStatement extends 
AbstractPreparedState
             if (null == columnLabelAndIndexMap) {
                 columnLabelAndIndexMap = 
ShardingSphereResultSetUtils.createColumnLabelAndIndexMap(sqlStatementContext, 
selectContainsEnhancedTable, resultSets.get(0).getMetaData());
             }
-            currentResultSet = new ShardingSphereResultSet(resultSets, 
mergedResult, this, selectContainsEnhancedTable, executionContext, 
columnLabelAndIndexMap);
+            currentResultSet = new ShardingSphereResultSet(resultSets, 
mergedResult, this, selectContainsEnhancedTable, sqlStatementContext, 
columnLabelAndIndexMap);
         }
         return currentResultSet;
     }
diff --git 
a/jdbc/src/main/java/org/apache/shardingsphere/driver/jdbc/core/statement/ShardingSphereStatement.java
 
b/jdbc/src/main/java/org/apache/shardingsphere/driver/jdbc/core/statement/ShardingSphereStatement.java
index ef05eb294cf..97f2d415b90 100644
--- 
a/jdbc/src/main/java/org/apache/shardingsphere/driver/jdbc/core/statement/ShardingSphereStatement.java
+++ 
b/jdbc/src/main/java/org/apache/shardingsphere/driver/jdbc/core/statement/ShardingSphereStatement.java
@@ -173,7 +173,7 @@ public final class ShardingSphereStatement extends 
AbstractStatementAdapter {
         MergedResult mergedResult = mergeQuery(queryResults, 
executionContext.getSqlStatementContext());
         boolean selectContainsEnhancedTable =
                 executionContext.getSqlStatementContext() instanceof 
SelectStatementContext && ((SelectStatementContext) 
executionContext.getSqlStatementContext()).isContainsEnhancedTable();
-        return new ShardingSphereResultSet(getResultSets(), mergedResult, 
this, selectContainsEnhancedTable, executionContext);
+        return new ShardingSphereResultSet(getResultSets(), mergedResult, 
this, selectContainsEnhancedTable, executionContext.getSqlStatementContext());
     }
     
     private List<QueryResult> executeQuery0(final ExecutionContext 
executionContext) throws SQLException {
@@ -513,7 +513,7 @@ public final class ShardingSphereStatement extends 
AbstractStatementAdapter {
             SQLStatementContext sqlStatementContext = 
executionContext.getSqlStatementContext();
             MergedResult mergedResult = 
mergeQuery(getQueryResults(resultSets), sqlStatementContext);
             boolean selectContainsEnhancedTable = sqlStatementContext 
instanceof SelectStatementContext && ((SelectStatementContext) 
sqlStatementContext).isContainsEnhancedTable();
-            currentResultSet = new ShardingSphereResultSet(resultSets, 
mergedResult, this, selectContainsEnhancedTable, executionContext);
+            currentResultSet = new ShardingSphereResultSet(resultSets, 
mergedResult, this, selectContainsEnhancedTable, 
executionContext.getSqlStatementContext());
         }
         return currentResultSet;
     }
diff --git 
a/jdbc/src/test/java/org/apache/shardingsphere/driver/jdbc/adapter/ResultSetAdapterTest.java
 
b/jdbc/src/test/java/org/apache/shardingsphere/driver/jdbc/adapter/ResultSetAdapterTest.java
index 8a8c0ee3c0a..ead5dc51b5f 100644
--- 
a/jdbc/src/test/java/org/apache/shardingsphere/driver/jdbc/adapter/ResultSetAdapterTest.java
+++ 
b/jdbc/src/test/java/org/apache/shardingsphere/driver/jdbc/adapter/ResultSetAdapterTest.java
@@ -19,7 +19,7 @@ package org.apache.shardingsphere.driver.jdbc.adapter;
 
 import 
org.apache.shardingsphere.driver.jdbc.core.resultset.ShardingSphereResultSet;
 import 
org.apache.shardingsphere.driver.jdbc.core.statement.ShardingSphereStatement;
-import org.apache.shardingsphere.infra.executor.sql.context.ExecutionContext;
+import 
org.apache.shardingsphere.infra.binder.context.statement.SQLStatementContext;
 import org.apache.shardingsphere.infra.merge.result.MergedResult;
 import org.junit.jupiter.api.Test;
 
@@ -29,8 +29,8 @@ import java.sql.SQLException;
 import java.util.Collections;
 
 import static org.hamcrest.CoreMatchers.is;
-import static org.junit.jupiter.api.Assertions.assertNotNull;
 import static org.hamcrest.MatcherAssert.assertThat;
+import static org.junit.jupiter.api.Assertions.assertNotNull;
 import static org.junit.jupiter.api.Assertions.assertTrue;
 import static org.mockito.Mockito.RETURNS_DEEP_STUBS;
 import static org.mockito.Mockito.mock;
@@ -112,6 +112,6 @@ class ResultSetAdapterTest {
         when(resultSetMetaData.getColumnCount()).thenReturn(1);
         when(resultSet.getMetaData()).thenReturn(resultSetMetaData);
         return new 
ShardingSphereResultSet(Collections.singletonList(resultSet), 
mock(MergedResult.class), mock(ShardingSphereStatement.class, 
RETURNS_DEEP_STUBS),
-                true, mock(ExecutionContext.class));
+                true, mock(SQLStatementContext.class));
     }
 }
diff --git 
a/jdbc/src/test/java/org/apache/shardingsphere/driver/jdbc/adapter/ResultSetGetterAdapterTest.java
 
b/jdbc/src/test/java/org/apache/shardingsphere/driver/jdbc/adapter/ResultSetGetterAdapterTest.java
index 1a71303be3a..16b8ae510b2 100644
--- 
a/jdbc/src/test/java/org/apache/shardingsphere/driver/jdbc/adapter/ResultSetGetterAdapterTest.java
+++ 
b/jdbc/src/test/java/org/apache/shardingsphere/driver/jdbc/adapter/ResultSetGetterAdapterTest.java
@@ -19,7 +19,6 @@ package org.apache.shardingsphere.driver.jdbc.adapter;
 
 import 
org.apache.shardingsphere.driver.jdbc.core.resultset.ShardingSphereResultSet;
 import 
org.apache.shardingsphere.infra.binder.context.statement.SQLStatementContext;
-import org.apache.shardingsphere.infra.executor.sql.context.ExecutionContext;
 import org.apache.shardingsphere.infra.merge.result.MergedResult;
 import org.junit.jupiter.api.Test;
 
@@ -441,8 +440,6 @@ class ResultSetGetterAdapterTest {
         when(resultSetMetaData.getColumnCount()).thenReturn(1);
         when(resultSet.getMetaData()).thenReturn(resultSetMetaData);
         SQLStatementContext sqlStatementContext = 
mock(SQLStatementContext.class);
-        ExecutionContext executionContext = mock(ExecutionContext.class);
-        
when(executionContext.getSqlStatementContext()).thenReturn(sqlStatementContext);
-        return new 
ShardingSphereResultSet(Collections.singletonList(resultSet), mergedResult, 
mock(Statement.class), true, executionContext);
+        return new 
ShardingSphereResultSet(Collections.singletonList(resultSet), mergedResult, 
mock(Statement.class), true, sqlStatementContext);
     }
 }
diff --git 
a/jdbc/src/test/java/org/apache/shardingsphere/driver/jdbc/core/resultset/ShardingSphereResultSetTest.java
 
b/jdbc/src/test/java/org/apache/shardingsphere/driver/jdbc/core/resultset/ShardingSphereResultSetTest.java
index 0f179ddea24..9711f3e9037 100644
--- 
a/jdbc/src/test/java/org/apache/shardingsphere/driver/jdbc/core/resultset/ShardingSphereResultSetTest.java
+++ 
b/jdbc/src/test/java/org/apache/shardingsphere/driver/jdbc/core/resultset/ShardingSphereResultSetTest.java
@@ -22,7 +22,6 @@ import 
org.apache.shardingsphere.driver.jdbc.core.statement.ShardingSphereStatem
 import 
org.apache.shardingsphere.infra.binder.context.segment.table.TablesContext;
 import 
org.apache.shardingsphere.infra.binder.context.statement.SQLStatementContext;
 import org.apache.shardingsphere.infra.config.props.ConfigurationProperties;
-import org.apache.shardingsphere.infra.executor.sql.context.ExecutionContext;
 import org.apache.shardingsphere.infra.merge.result.MergedResult;
 import org.apache.shardingsphere.mode.metadata.MetaDataContexts;
 import org.junit.jupiter.api.BeforeEach;
@@ -70,16 +69,14 @@ class ShardingSphereResultSetTest {
     @BeforeEach
     void setUp() throws SQLException {
         mergeResultSet = mock(MergedResult.class);
-        shardingSphereResultSet = new ShardingSphereResultSet(getResultSets(), 
mergeResultSet, getShardingSphereStatement(), true, createExecutionContext());
+        shardingSphereResultSet = new ShardingSphereResultSet(getResultSets(), 
mergeResultSet, getShardingSphereStatement(), true, 
createSQLStatementContext());
     }
     
-    private ExecutionContext createExecutionContext() {
-        ExecutionContext result = mock(ExecutionContext.class);
-        SQLStatementContext sqlStatementContext = 
mock(SQLStatementContext.class);
+    private SQLStatementContext createSQLStatementContext() {
+        SQLStatementContext result = mock(SQLStatementContext.class);
         TablesContext tablesContext = mock(TablesContext.class);
         
when(tablesContext.getTableNames()).thenReturn(Collections.emptyList());
-        when(sqlStatementContext.getTablesContext()).thenReturn(tablesContext);
-        when(result.getSqlStatementContext()).thenReturn(sqlStatementContext);
+        when(result.getTablesContext()).thenReturn(tablesContext);
         return result;
     }
     
diff --git 
a/jdbc/src/test/java/org/apache/shardingsphere/driver/jdbc/unsupported/UnsupportedOperationResultSetTest.java
 
b/jdbc/src/test/java/org/apache/shardingsphere/driver/jdbc/unsupported/UnsupportedOperationResultSetTest.java
index 3fd33e0d9e8..7d28bcec485 100644
--- 
a/jdbc/src/test/java/org/apache/shardingsphere/driver/jdbc/unsupported/UnsupportedOperationResultSetTest.java
+++ 
b/jdbc/src/test/java/org/apache/shardingsphere/driver/jdbc/unsupported/UnsupportedOperationResultSetTest.java
@@ -18,7 +18,7 @@
 package org.apache.shardingsphere.driver.jdbc.unsupported;
 
 import 
org.apache.shardingsphere.driver.jdbc.core.resultset.ShardingSphereResultSet;
-import org.apache.shardingsphere.infra.executor.sql.context.ExecutionContext;
+import 
org.apache.shardingsphere.infra.binder.context.statement.SQLStatementContext;
 import org.apache.shardingsphere.infra.merge.result.MergedResult;
 import org.junit.jupiter.api.BeforeEach;
 import org.junit.jupiter.api.Test;
@@ -40,7 +40,7 @@ class UnsupportedOperationResultSetTest {
     @BeforeEach
     void init() throws SQLException {
         shardingSphereResultSet = new ShardingSphereResultSet(
-                Collections.singletonList(mock(ResultSet.class, 
RETURNS_DEEP_STUBS)), mock(MergedResult.class), mock(Statement.class), true, 
mock(ExecutionContext.class));
+                Collections.singletonList(mock(ResultSet.class, 
RETURNS_DEEP_STUBS)), mock(MergedResult.class), mock(Statement.class), true, 
mock(SQLStatementContext.class));
     }
     
     @Test
diff --git 
a/jdbc/src/test/java/org/apache/shardingsphere/driver/jdbc/unsupported/UnsupportedUpdateOperationResultSetTest.java
 
b/jdbc/src/test/java/org/apache/shardingsphere/driver/jdbc/unsupported/UnsupportedUpdateOperationResultSetTest.java
index b82fa5318be..d8e3f02d5c9 100644
--- 
a/jdbc/src/test/java/org/apache/shardingsphere/driver/jdbc/unsupported/UnsupportedUpdateOperationResultSetTest.java
+++ 
b/jdbc/src/test/java/org/apache/shardingsphere/driver/jdbc/unsupported/UnsupportedUpdateOperationResultSetTest.java
@@ -18,7 +18,7 @@
 package org.apache.shardingsphere.driver.jdbc.unsupported;
 
 import 
org.apache.shardingsphere.driver.jdbc.core.resultset.ShardingSphereResultSet;
-import org.apache.shardingsphere.infra.executor.sql.context.ExecutionContext;
+import 
org.apache.shardingsphere.infra.binder.context.statement.SQLStatementContext;
 import org.apache.shardingsphere.infra.merge.result.MergedResult;
 import org.junit.jupiter.api.BeforeEach;
 import org.junit.jupiter.api.Test;
@@ -48,7 +48,7 @@ class UnsupportedUpdateOperationResultSetTest {
     @BeforeEach
     void init() throws SQLException {
         shardingSphereResultSet = new ShardingSphereResultSet(
-                Collections.singletonList(mock(ResultSet.class, 
RETURNS_DEEP_STUBS)), mock(MergedResult.class), mock(Statement.class), true, 
mock(ExecutionContext.class));
+                Collections.singletonList(mock(ResultSet.class, 
RETURNS_DEEP_STUBS)), mock(MergedResult.class), mock(Statement.class), true, 
mock(SQLStatementContext.class));
     }
     
     @Test

Reply via email to