提交 a41a8dde 编写于 作者: T tristaZero

recreate MemoryQueryResult and StreamQueryResult

上级 b83b46dd
......@@ -115,8 +115,8 @@ public final class PreparedStatementExecutor extends AbstractStatementExecutor {
ResultSet resultSet = preparedStatement.executeQuery();
ShardingRule shardingRule = getConnection().getShardingContext().getShardingRule();
getResultSets().add(resultSet);
return ConnectionMode.MEMORY_STRICTLY == connectionMode ? new StreamQueryResult(resultSet, shardingRule, shardingRule.getEncryptRule().getEncryptorEngine())
: new MemoryQueryResult(resultSet, shardingRule, shardingRule.getEncryptRule().getEncryptorEngine());
return ConnectionMode.MEMORY_STRICTLY == connectionMode ? new StreamQueryResult(resultSet, shardingRule)
: new MemoryQueryResult(resultSet, shardingRule);
}
/**
......
......@@ -103,8 +103,8 @@ public final class StatementExecutor extends AbstractStatementExecutor {
ResultSet resultSet = statement.executeQuery(routeUnit.getSqlUnit().getSql());
ShardingRule shardingRule = getConnection().getShardingContext().getShardingRule();
getResultSets().add(resultSet);
return ConnectionMode.MEMORY_STRICTLY == connectionMode ? new StreamQueryResult(resultSet, shardingRule, shardingRule.getEncryptRule().getEncryptorEngine())
: new MemoryQueryResult(resultSet, shardingRule, shardingRule.getEncryptRule().getEncryptorEngine());
return ConnectionMode.MEMORY_STRICTLY == connectionMode ? new StreamQueryResult(resultSet, shardingRule)
: new MemoryQueryResult(resultSet, shardingRule);
}
/**
......
......@@ -57,7 +57,7 @@ public final class EncryptResultSet extends AbstractUnsupportedOperationResultSe
public EncryptResultSet(final Statement encryptStatement, final ResultSet resultSet, final EncryptRule encryptRule) {
this.encryptStatement = encryptStatement;
originalResultSet = resultSet;
QueryResult queryResult = new StreamQueryResult(resultSet, null, encryptRule.getEncryptorEngine());
QueryResult queryResult = new StreamQueryResult(resultSet, encryptRule);
this.resultSet = new IteratorStreamMergedResult(Collections.singletonList(queryResult));
}
......
......@@ -32,7 +32,6 @@ import org.apache.shardingsphere.core.parse.sql.statement.dml.DQLStatement;
import org.apache.shardingsphere.core.parse.sql.statement.dml.InsertStatement;
import org.apache.shardingsphere.core.parse.sql.statement.dml.SelectStatement;
import org.apache.shardingsphere.core.route.SQLRouteResult;
import org.apache.shardingsphere.core.rule.ShardingRule;
import org.apache.shardingsphere.shardingjdbc.executor.BatchPreparedStatementExecutor;
import org.apache.shardingsphere.shardingjdbc.executor.PreparedStatementExecutor;
import org.apache.shardingsphere.shardingjdbc.jdbc.adapter.AbstractShardingPreparedStatementAdapter;
......@@ -132,8 +131,7 @@ public final class ShardingPreparedStatement extends AbstractShardingPreparedSta
for (Statement each : preparedStatementExecutor.getStatements()) {
ResultSet resultSet = each.getResultSet();
resultSets.add(resultSet);
ShardingRule shardingRule = connection.getShardingContext().getShardingRule();
queryResults.add(new StreamQueryResult(resultSet, shardingRule, shardingRule.getEncryptRule().getEncryptorEngine()));
queryResults.add(new StreamQueryResult(resultSet, connection.getShardingContext().getShardingRule()));
}
if (routeResult.getSqlStatement() instanceof SelectStatement || routeResult.getSqlStatement() instanceof DALStatement) {
MergeEngine mergeEngine = MergeEngineFactory.newInstance(connection.getShardingContext().getDatabaseType(),
......
......@@ -30,7 +30,6 @@ import org.apache.shardingsphere.core.parse.sql.statement.dml.DQLStatement;
import org.apache.shardingsphere.core.parse.sql.statement.dml.InsertStatement;
import org.apache.shardingsphere.core.parse.sql.statement.dml.SelectStatement;
import org.apache.shardingsphere.core.route.SQLRouteResult;
import org.apache.shardingsphere.core.rule.ShardingRule;
import org.apache.shardingsphere.shardingjdbc.executor.StatementExecutor;
import org.apache.shardingsphere.shardingjdbc.jdbc.adapter.AbstractStatementAdapter;
import org.apache.shardingsphere.shardingjdbc.jdbc.core.ShardingContext;
......@@ -113,8 +112,7 @@ public final class ShardingStatement extends AbstractStatementAdapter {
for (Statement each : statementExecutor.getStatements()) {
ResultSet resultSet = each.getResultSet();
resultSets.add(resultSet);
ShardingRule shardingRule = connection.getShardingContext().getShardingRule();
queryResults.add(new StreamQueryResult(resultSet, shardingRule, shardingRule.getEncryptRule().getEncryptorEngine()));
queryResults.add(new StreamQueryResult(resultSet, connection.getShardingContext().getShardingRule()));
}
if (routeResult.getSqlStatement() instanceof SelectStatement || routeResult.getSqlStatement() instanceof DALStatement) {
MergeEngine mergeEngine = MergeEngineFactory.newInstance(connection.getShardingContext().getDatabaseType(),
......
......@@ -23,6 +23,7 @@ import org.apache.shardingsphere.core.execute.sql.execute.result.MemoryQueryResu
import org.apache.shardingsphere.core.execute.sql.execute.result.QueryResult;
import org.apache.shardingsphere.core.execute.sql.execute.result.StreamQueryResult;
import org.apache.shardingsphere.core.route.RouteUnit;
import org.apache.shardingsphere.core.rule.EncryptRule;
import org.apache.shardingsphere.core.rule.ShardingRule;
import org.apache.shardingsphere.shardingproxy.backend.communication.jdbc.connection.BackendConnection;
import org.apache.shardingsphere.shardingproxy.backend.communication.jdbc.execute.response.ExecuteQueryResponse;
......@@ -100,13 +101,11 @@ public final class ProxySQLExecuteCallback extends SQLExecuteCallback<ExecuteRes
LogicSchema logicSchema = backendConnection.getLogicSchema();
if (logicSchema instanceof ShardingSchema) {
ShardingRule shardingRule = logicSchema.getShardingRule();
return connectionMode == ConnectionMode.MEMORY_STRICTLY ? new StreamQueryResult(resultSet, shardingRule, shardingRule.getEncryptRule().getEncryptorEngine())
: new MemoryQueryResult(resultSet, shardingRule, shardingRule.getEncryptRule().getEncryptorEngine());
return connectionMode == ConnectionMode.MEMORY_STRICTLY ? new StreamQueryResult(resultSet, shardingRule) : new MemoryQueryResult(resultSet, shardingRule);
}
if (logicSchema instanceof EncryptSchema) {
EncryptSchema encryptSchema = (EncryptSchema) logicSchema;
return connectionMode == ConnectionMode.MEMORY_STRICTLY ? new StreamQueryResult(resultSet, encryptSchema.getShardingRule(), encryptSchema.getEncryptRule().getEncryptorEngine())
: new MemoryQueryResult(resultSet, encryptSchema.getShardingRule(), encryptSchema.getEncryptRule().getEncryptorEngine());
EncryptRule encryptRule = ((EncryptSchema) logicSchema).getEncryptRule();
return connectionMode == ConnectionMode.MEMORY_STRICTLY ? new StreamQueryResult(resultSet, encryptRule) : new MemoryQueryResult(resultSet, encryptRule);
}
return connectionMode == ConnectionMode.MEMORY_STRICTLY ? new StreamQueryResult(resultSet) : new MemoryQueryResult(resultSet);
}
......
Markdown is supported
0% .
You are about to add 0 people to the discussion. Proceed with caution.
先完成此消息的编辑!
想要评论请 注册