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