Loading sharding-jdbc-core/src/main/java/io/shardingjdbc/core/jdbc/core/statement/MasterSlavePreparedStatement.java +1 −1 Original line number Diff line number Diff line Loading @@ -132,7 +132,7 @@ public final class MasterSlavePreparedStatement extends AbstractMasterSlavePrepa @Override public ResultSet getResultSet() throws SQLException { Preconditions.checkArgument(1 == routedStatements.size(), "Cannot support getCurrentResultSetMergerInput for DDL"); Preconditions.checkArgument(1 == routedStatements.size(), "Cannot support getResultSet for DDL"); return routedStatements.iterator().next().getResultSet(); } Loading sharding-jdbc-core/src/main/java/io/shardingjdbc/core/jdbc/core/statement/ShardingPreparedStatement.java +10 −10 Original line number Diff line number Diff line Loading @@ -33,8 +33,8 @@ import io.shardingjdbc.core.jdbc.core.resultset.ShardingResultSet; import io.shardingjdbc.core.merger.DALMergeEngine; import io.shardingjdbc.core.merger.DQLMergeEngine; import io.shardingjdbc.core.merger.MergeEngine; import io.shardingjdbc.core.merger.ResultSetMergerInput; import io.shardingjdbc.core.merger.jdbc.JDBCResultSetMergerInput; import io.shardingjdbc.core.merger.QueryResult; import io.shardingjdbc.core.merger.jdbc.JDBCQueryResult; import io.shardingjdbc.core.parsing.parser.context.GeneratedKey; import io.shardingjdbc.core.parsing.parser.sql.dal.DALStatement; import io.shardingjdbc.core.parsing.parser.sql.dml.insert.InsertStatement; Loading Loading @@ -123,15 +123,15 @@ public final class ShardingPreparedStatement extends AbstractShardingPreparedSta Collection<PreparedStatementUnit> preparedStatementUnits = route(); List<ResultSet> resultSets = new PreparedStatementExecutor( getConnection().getShardingContext().getExecutorEngine(), routeResult.getSqlStatement().getType(), preparedStatementUnits, getParameters()).executeQuery(); List<ResultSetMergerInput> resultSetMergerInputs = new ArrayList<>(resultSets.size()); List<QueryResult> queryResults = new ArrayList<>(resultSets.size()); for (ResultSet each : resultSets) { resultSetMergerInputs.add(new JDBCResultSetMergerInput(each)); queryResults.add(new JDBCQueryResult(each)); } MergeEngine mergeEngine; if (routeResult.getSqlStatement() instanceof SelectStatement) { mergeEngine = new DQLMergeEngine(resultSetMergerInputs, (SelectStatement) routeResult.getSqlStatement()); mergeEngine = new DQLMergeEngine(queryResults, (SelectStatement) routeResult.getSqlStatement()); } else if (routeResult.getSqlStatement() instanceof DALStatement) { mergeEngine = new DALMergeEngine(connection.getShardingContext().getShardingRule(), resultSetMergerInputs, (DALStatement) routeResult.getSqlStatement()); mergeEngine = new DALMergeEngine(connection.getShardingContext().getShardingRule(), queryResults, (DALStatement) routeResult.getSqlStatement()); } else { throw new UnsupportedOperationException(String.format("Cannot support type '%s'", routeResult.getSqlStatement().getType())); } Loading Loading @@ -288,17 +288,17 @@ public final class ShardingPreparedStatement extends AbstractShardingPreparedSta return currentResultSet; } List<ResultSet> resultSets = new ArrayList<>(routedStatements.size()); List<ResultSetMergerInput> resultSetMergerInputs = new ArrayList<>(routedStatements.size()); List<QueryResult> queryResults = new ArrayList<>(routedStatements.size()); for (PreparedStatement each : routedStatements) { ResultSet resultSet = each.getResultSet(); resultSets.add(resultSet); resultSetMergerInputs.add(new JDBCResultSetMergerInput(resultSet)); queryResults.add(new JDBCQueryResult(resultSet)); } MergeEngine mergeEngine = null; if (routeResult.getSqlStatement() instanceof SelectStatement) { mergeEngine = new DQLMergeEngine(resultSetMergerInputs, (SelectStatement) routeResult.getSqlStatement()); mergeEngine = new DQLMergeEngine(queryResults, (SelectStatement) routeResult.getSqlStatement()); } else if (routeResult.getSqlStatement() instanceof DALStatement) { mergeEngine = new DALMergeEngine(connection.getShardingContext().getShardingRule(), resultSetMergerInputs, (DALStatement) routeResult.getSqlStatement()); mergeEngine = new DALMergeEngine(connection.getShardingContext().getShardingRule(), queryResults, (DALStatement) routeResult.getSqlStatement()); } if (null != mergeEngine) { currentResultSet = new ShardingResultSet(resultSets, mergeEngine.merge(), this); Loading sharding-jdbc-core/src/main/java/io/shardingjdbc/core/jdbc/core/statement/ShardingStatement.java +11 −11 Original line number Diff line number Diff line Loading @@ -29,8 +29,8 @@ import io.shardingjdbc.core.jdbc.core.resultset.ShardingResultSet; import io.shardingjdbc.core.merger.DALMergeEngine; import io.shardingjdbc.core.merger.DQLMergeEngine; import io.shardingjdbc.core.merger.MergeEngine; import io.shardingjdbc.core.merger.ResultSetMergerInput; import io.shardingjdbc.core.merger.jdbc.JDBCResultSetMergerInput; import io.shardingjdbc.core.merger.QueryResult; import io.shardingjdbc.core.merger.jdbc.JDBCQueryResult; import io.shardingjdbc.core.parsing.parser.context.GeneratedKey; import io.shardingjdbc.core.parsing.parser.sql.dal.DALStatement; import io.shardingjdbc.core.parsing.parser.sql.dml.insert.InsertStatement; Loading Loading @@ -102,15 +102,15 @@ public class ShardingStatement extends AbstractStatementAdapter { ResultSet result; try { List<ResultSet> resultSets = generateExecutor(sql).executeQuery(); List<ResultSetMergerInput> resultSetMergerInputs = new ArrayList<>(resultSets.size()); List<QueryResult> queryResults = new ArrayList<>(resultSets.size()); for (ResultSet each : resultSets) { resultSetMergerInputs.add(new JDBCResultSetMergerInput(each)); queryResults.add(new JDBCQueryResult(each)); } MergeEngine mergeEngine; if (routeResult.getSqlStatement() instanceof SelectStatement) { mergeEngine = new DQLMergeEngine(resultSetMergerInputs, (SelectStatement) routeResult.getSqlStatement()); mergeEngine = new DQLMergeEngine(queryResults, (SelectStatement) routeResult.getSqlStatement()); } else if (routeResult.getSqlStatement() instanceof DALStatement) { mergeEngine = new DALMergeEngine(connection.getShardingContext().getShardingRule(), resultSetMergerInputs, (DALStatement) routeResult.getSqlStatement()); mergeEngine = new DALMergeEngine(connection.getShardingContext().getShardingRule(), queryResults, (DALStatement) routeResult.getSqlStatement()); } else { throw new UnsupportedOperationException(String.format("Cannot support type '%s'", routeResult.getSqlStatement().getType())); } Loading Loading @@ -263,17 +263,17 @@ public class ShardingStatement extends AbstractStatementAdapter { return currentResultSet; } List<ResultSet> resultSets = new ArrayList<>(routedStatements.size()); List<ResultSetMergerInput> resultSetMergerInputs = new ArrayList<>(routedStatements.size()); List<QueryResult> queryResults = new ArrayList<>(routedStatements.size()); for (Statement each : routedStatements) { ResultSet resultSet = each.getResultSet(); resultSets.add(resultSet); resultSetMergerInputs.add(new JDBCResultSetMergerInput(resultSet)); queryResults.add(new JDBCQueryResult(resultSet)); } MergeEngine mergeEngine = null; if (routeResult.getSqlStatement() instanceof SelectStatement) { mergeEngine = new DQLMergeEngine(resultSetMergerInputs, (SelectStatement) routeResult.getSqlStatement()); } else if (routeResult.getSqlStatement() instanceof DALStatement && !resultSetMergerInputs.isEmpty()) { mergeEngine = new DALMergeEngine(connection.getShardingContext().getShardingRule(), resultSetMergerInputs, (DALStatement) routeResult.getSqlStatement()); mergeEngine = new DQLMergeEngine(queryResults, (SelectStatement) routeResult.getSqlStatement()); } else if (routeResult.getSqlStatement() instanceof DALStatement && !queryResults.isEmpty()) { mergeEngine = new DALMergeEngine(connection.getShardingContext().getShardingRule(), queryResults, (DALStatement) routeResult.getSqlStatement()); } if (null != mergeEngine) { currentResultSet = new ShardingResultSet(resultSets, mergeEngine.merge(), this); Loading sharding-jdbc-core/src/main/java/io/shardingjdbc/core/merger/DALMergeEngine.java +4 −4 Original line number Diff line number Diff line Loading @@ -41,7 +41,7 @@ public final class DALMergeEngine implements MergeEngine { private final ShardingRule shardingRule; private final List<ResultSetMergerInput> resultSetMergerInputs; private final List<QueryResult> queryResults; private final DALStatement dalStatement; Loading @@ -51,11 +51,11 @@ public final class DALMergeEngine implements MergeEngine { return new ShowDatabasesResultSetMerger(); } if (dalStatement instanceof ShowTablesStatement) { return new ShowTablesResultSetMerger(shardingRule, resultSetMergerInputs); return new ShowTablesResultSetMerger(shardingRule, queryResults); } if (dalStatement instanceof ShowCreateTableStatement) { return new ShowCreateTableResultSetMerger(shardingRule, resultSetMergerInputs); return new ShowCreateTableResultSetMerger(shardingRule, queryResults); } return new ShowOtherResultSetMerger(resultSetMergerInputs.get(0)); return new ShowOtherResultSetMerger(queryResults.get(0)); } } sharding-jdbc-core/src/main/java/io/shardingjdbc/core/merger/DQLMergeEngine.java +11 −11 Original line number Diff line number Diff line Loading @@ -41,22 +41,22 @@ import java.util.TreeMap; */ public final class DQLMergeEngine implements MergeEngine { private final List<ResultSetMergerInput> resultSetMergerInputs; private final List<QueryResult> queryResults; private final SelectStatement selectStatement; private final Map<String, Integer> columnLabelIndexMap; public DQLMergeEngine(final List<ResultSetMergerInput> resultSetMergerInputs, final SelectStatement selectStatement) throws SQLException { this.resultSetMergerInputs = resultSetMergerInputs; public DQLMergeEngine(final List<QueryResult> queryResults, final SelectStatement selectStatement) throws SQLException { this.queryResults = queryResults; this.selectStatement = selectStatement; columnLabelIndexMap = getColumnLabelIndexMap(resultSetMergerInputs.get(0)); columnLabelIndexMap = getColumnLabelIndexMap(queryResults.get(0)); } private Map<String, Integer> getColumnLabelIndexMap(final ResultSetMergerInput resultSetMergerInput) throws SQLException { private Map<String, Integer> getColumnLabelIndexMap(final QueryResult queryResult) throws SQLException { Map<String, Integer> result = new TreeMap<>(String.CASE_INSENSITIVE_ORDER); for (int i = 1; i <= resultSetMergerInput.getColumnCount(); i++) { result.put(SQLUtil.getExactlyValue(resultSetMergerInput.getColumnLabel(i)), i); for (int i = 1; i <= queryResult.getColumnCount(); i++) { result.put(SQLUtil.getExactlyValue(queryResult.getColumnLabel(i)), i); } return result; } Loading @@ -70,15 +70,15 @@ public final class DQLMergeEngine implements MergeEngine { private ResultSetMerger build() throws SQLException { if (!selectStatement.getGroupByItems().isEmpty() || !selectStatement.getAggregationSelectItems().isEmpty()) { if (selectStatement.isSameGroupByAndOrderByItems()) { return new GroupByStreamResultSetMerger(columnLabelIndexMap, resultSetMergerInputs, selectStatement); return new GroupByStreamResultSetMerger(columnLabelIndexMap, queryResults, selectStatement); } else { return new GroupByMemoryResultSetMerger(columnLabelIndexMap, resultSetMergerInputs, selectStatement); return new GroupByMemoryResultSetMerger(columnLabelIndexMap, queryResults, selectStatement); } } if (!selectStatement.getOrderByItems().isEmpty()) { return new OrderByStreamResultSetMerger(resultSetMergerInputs, selectStatement.getOrderByItems()); return new OrderByStreamResultSetMerger(queryResults, selectStatement.getOrderByItems()); } return new IteratorStreamResultSetMerger(resultSetMergerInputs); return new IteratorStreamResultSetMerger(queryResults); } private ResultSetMerger decorate(final ResultSetMerger resultSetMerger) throws SQLException { Loading Loading
sharding-jdbc-core/src/main/java/io/shardingjdbc/core/jdbc/core/statement/MasterSlavePreparedStatement.java +1 −1 Original line number Diff line number Diff line Loading @@ -132,7 +132,7 @@ public final class MasterSlavePreparedStatement extends AbstractMasterSlavePrepa @Override public ResultSet getResultSet() throws SQLException { Preconditions.checkArgument(1 == routedStatements.size(), "Cannot support getCurrentResultSetMergerInput for DDL"); Preconditions.checkArgument(1 == routedStatements.size(), "Cannot support getResultSet for DDL"); return routedStatements.iterator().next().getResultSet(); } Loading
sharding-jdbc-core/src/main/java/io/shardingjdbc/core/jdbc/core/statement/ShardingPreparedStatement.java +10 −10 Original line number Diff line number Diff line Loading @@ -33,8 +33,8 @@ import io.shardingjdbc.core.jdbc.core.resultset.ShardingResultSet; import io.shardingjdbc.core.merger.DALMergeEngine; import io.shardingjdbc.core.merger.DQLMergeEngine; import io.shardingjdbc.core.merger.MergeEngine; import io.shardingjdbc.core.merger.ResultSetMergerInput; import io.shardingjdbc.core.merger.jdbc.JDBCResultSetMergerInput; import io.shardingjdbc.core.merger.QueryResult; import io.shardingjdbc.core.merger.jdbc.JDBCQueryResult; import io.shardingjdbc.core.parsing.parser.context.GeneratedKey; import io.shardingjdbc.core.parsing.parser.sql.dal.DALStatement; import io.shardingjdbc.core.parsing.parser.sql.dml.insert.InsertStatement; Loading Loading @@ -123,15 +123,15 @@ public final class ShardingPreparedStatement extends AbstractShardingPreparedSta Collection<PreparedStatementUnit> preparedStatementUnits = route(); List<ResultSet> resultSets = new PreparedStatementExecutor( getConnection().getShardingContext().getExecutorEngine(), routeResult.getSqlStatement().getType(), preparedStatementUnits, getParameters()).executeQuery(); List<ResultSetMergerInput> resultSetMergerInputs = new ArrayList<>(resultSets.size()); List<QueryResult> queryResults = new ArrayList<>(resultSets.size()); for (ResultSet each : resultSets) { resultSetMergerInputs.add(new JDBCResultSetMergerInput(each)); queryResults.add(new JDBCQueryResult(each)); } MergeEngine mergeEngine; if (routeResult.getSqlStatement() instanceof SelectStatement) { mergeEngine = new DQLMergeEngine(resultSetMergerInputs, (SelectStatement) routeResult.getSqlStatement()); mergeEngine = new DQLMergeEngine(queryResults, (SelectStatement) routeResult.getSqlStatement()); } else if (routeResult.getSqlStatement() instanceof DALStatement) { mergeEngine = new DALMergeEngine(connection.getShardingContext().getShardingRule(), resultSetMergerInputs, (DALStatement) routeResult.getSqlStatement()); mergeEngine = new DALMergeEngine(connection.getShardingContext().getShardingRule(), queryResults, (DALStatement) routeResult.getSqlStatement()); } else { throw new UnsupportedOperationException(String.format("Cannot support type '%s'", routeResult.getSqlStatement().getType())); } Loading Loading @@ -288,17 +288,17 @@ public final class ShardingPreparedStatement extends AbstractShardingPreparedSta return currentResultSet; } List<ResultSet> resultSets = new ArrayList<>(routedStatements.size()); List<ResultSetMergerInput> resultSetMergerInputs = new ArrayList<>(routedStatements.size()); List<QueryResult> queryResults = new ArrayList<>(routedStatements.size()); for (PreparedStatement each : routedStatements) { ResultSet resultSet = each.getResultSet(); resultSets.add(resultSet); resultSetMergerInputs.add(new JDBCResultSetMergerInput(resultSet)); queryResults.add(new JDBCQueryResult(resultSet)); } MergeEngine mergeEngine = null; if (routeResult.getSqlStatement() instanceof SelectStatement) { mergeEngine = new DQLMergeEngine(resultSetMergerInputs, (SelectStatement) routeResult.getSqlStatement()); mergeEngine = new DQLMergeEngine(queryResults, (SelectStatement) routeResult.getSqlStatement()); } else if (routeResult.getSqlStatement() instanceof DALStatement) { mergeEngine = new DALMergeEngine(connection.getShardingContext().getShardingRule(), resultSetMergerInputs, (DALStatement) routeResult.getSqlStatement()); mergeEngine = new DALMergeEngine(connection.getShardingContext().getShardingRule(), queryResults, (DALStatement) routeResult.getSqlStatement()); } if (null != mergeEngine) { currentResultSet = new ShardingResultSet(resultSets, mergeEngine.merge(), this); Loading
sharding-jdbc-core/src/main/java/io/shardingjdbc/core/jdbc/core/statement/ShardingStatement.java +11 −11 Original line number Diff line number Diff line Loading @@ -29,8 +29,8 @@ import io.shardingjdbc.core.jdbc.core.resultset.ShardingResultSet; import io.shardingjdbc.core.merger.DALMergeEngine; import io.shardingjdbc.core.merger.DQLMergeEngine; import io.shardingjdbc.core.merger.MergeEngine; import io.shardingjdbc.core.merger.ResultSetMergerInput; import io.shardingjdbc.core.merger.jdbc.JDBCResultSetMergerInput; import io.shardingjdbc.core.merger.QueryResult; import io.shardingjdbc.core.merger.jdbc.JDBCQueryResult; import io.shardingjdbc.core.parsing.parser.context.GeneratedKey; import io.shardingjdbc.core.parsing.parser.sql.dal.DALStatement; import io.shardingjdbc.core.parsing.parser.sql.dml.insert.InsertStatement; Loading Loading @@ -102,15 +102,15 @@ public class ShardingStatement extends AbstractStatementAdapter { ResultSet result; try { List<ResultSet> resultSets = generateExecutor(sql).executeQuery(); List<ResultSetMergerInput> resultSetMergerInputs = new ArrayList<>(resultSets.size()); List<QueryResult> queryResults = new ArrayList<>(resultSets.size()); for (ResultSet each : resultSets) { resultSetMergerInputs.add(new JDBCResultSetMergerInput(each)); queryResults.add(new JDBCQueryResult(each)); } MergeEngine mergeEngine; if (routeResult.getSqlStatement() instanceof SelectStatement) { mergeEngine = new DQLMergeEngine(resultSetMergerInputs, (SelectStatement) routeResult.getSqlStatement()); mergeEngine = new DQLMergeEngine(queryResults, (SelectStatement) routeResult.getSqlStatement()); } else if (routeResult.getSqlStatement() instanceof DALStatement) { mergeEngine = new DALMergeEngine(connection.getShardingContext().getShardingRule(), resultSetMergerInputs, (DALStatement) routeResult.getSqlStatement()); mergeEngine = new DALMergeEngine(connection.getShardingContext().getShardingRule(), queryResults, (DALStatement) routeResult.getSqlStatement()); } else { throw new UnsupportedOperationException(String.format("Cannot support type '%s'", routeResult.getSqlStatement().getType())); } Loading Loading @@ -263,17 +263,17 @@ public class ShardingStatement extends AbstractStatementAdapter { return currentResultSet; } List<ResultSet> resultSets = new ArrayList<>(routedStatements.size()); List<ResultSetMergerInput> resultSetMergerInputs = new ArrayList<>(routedStatements.size()); List<QueryResult> queryResults = new ArrayList<>(routedStatements.size()); for (Statement each : routedStatements) { ResultSet resultSet = each.getResultSet(); resultSets.add(resultSet); resultSetMergerInputs.add(new JDBCResultSetMergerInput(resultSet)); queryResults.add(new JDBCQueryResult(resultSet)); } MergeEngine mergeEngine = null; if (routeResult.getSqlStatement() instanceof SelectStatement) { mergeEngine = new DQLMergeEngine(resultSetMergerInputs, (SelectStatement) routeResult.getSqlStatement()); } else if (routeResult.getSqlStatement() instanceof DALStatement && !resultSetMergerInputs.isEmpty()) { mergeEngine = new DALMergeEngine(connection.getShardingContext().getShardingRule(), resultSetMergerInputs, (DALStatement) routeResult.getSqlStatement()); mergeEngine = new DQLMergeEngine(queryResults, (SelectStatement) routeResult.getSqlStatement()); } else if (routeResult.getSqlStatement() instanceof DALStatement && !queryResults.isEmpty()) { mergeEngine = new DALMergeEngine(connection.getShardingContext().getShardingRule(), queryResults, (DALStatement) routeResult.getSqlStatement()); } if (null != mergeEngine) { currentResultSet = new ShardingResultSet(resultSets, mergeEngine.merge(), this); Loading
sharding-jdbc-core/src/main/java/io/shardingjdbc/core/merger/DALMergeEngine.java +4 −4 Original line number Diff line number Diff line Loading @@ -41,7 +41,7 @@ public final class DALMergeEngine implements MergeEngine { private final ShardingRule shardingRule; private final List<ResultSetMergerInput> resultSetMergerInputs; private final List<QueryResult> queryResults; private final DALStatement dalStatement; Loading @@ -51,11 +51,11 @@ public final class DALMergeEngine implements MergeEngine { return new ShowDatabasesResultSetMerger(); } if (dalStatement instanceof ShowTablesStatement) { return new ShowTablesResultSetMerger(shardingRule, resultSetMergerInputs); return new ShowTablesResultSetMerger(shardingRule, queryResults); } if (dalStatement instanceof ShowCreateTableStatement) { return new ShowCreateTableResultSetMerger(shardingRule, resultSetMergerInputs); return new ShowCreateTableResultSetMerger(shardingRule, queryResults); } return new ShowOtherResultSetMerger(resultSetMergerInputs.get(0)); return new ShowOtherResultSetMerger(queryResults.get(0)); } }
sharding-jdbc-core/src/main/java/io/shardingjdbc/core/merger/DQLMergeEngine.java +11 −11 Original line number Diff line number Diff line Loading @@ -41,22 +41,22 @@ import java.util.TreeMap; */ public final class DQLMergeEngine implements MergeEngine { private final List<ResultSetMergerInput> resultSetMergerInputs; private final List<QueryResult> queryResults; private final SelectStatement selectStatement; private final Map<String, Integer> columnLabelIndexMap; public DQLMergeEngine(final List<ResultSetMergerInput> resultSetMergerInputs, final SelectStatement selectStatement) throws SQLException { this.resultSetMergerInputs = resultSetMergerInputs; public DQLMergeEngine(final List<QueryResult> queryResults, final SelectStatement selectStatement) throws SQLException { this.queryResults = queryResults; this.selectStatement = selectStatement; columnLabelIndexMap = getColumnLabelIndexMap(resultSetMergerInputs.get(0)); columnLabelIndexMap = getColumnLabelIndexMap(queryResults.get(0)); } private Map<String, Integer> getColumnLabelIndexMap(final ResultSetMergerInput resultSetMergerInput) throws SQLException { private Map<String, Integer> getColumnLabelIndexMap(final QueryResult queryResult) throws SQLException { Map<String, Integer> result = new TreeMap<>(String.CASE_INSENSITIVE_ORDER); for (int i = 1; i <= resultSetMergerInput.getColumnCount(); i++) { result.put(SQLUtil.getExactlyValue(resultSetMergerInput.getColumnLabel(i)), i); for (int i = 1; i <= queryResult.getColumnCount(); i++) { result.put(SQLUtil.getExactlyValue(queryResult.getColumnLabel(i)), i); } return result; } Loading @@ -70,15 +70,15 @@ public final class DQLMergeEngine implements MergeEngine { private ResultSetMerger build() throws SQLException { if (!selectStatement.getGroupByItems().isEmpty() || !selectStatement.getAggregationSelectItems().isEmpty()) { if (selectStatement.isSameGroupByAndOrderByItems()) { return new GroupByStreamResultSetMerger(columnLabelIndexMap, resultSetMergerInputs, selectStatement); return new GroupByStreamResultSetMerger(columnLabelIndexMap, queryResults, selectStatement); } else { return new GroupByMemoryResultSetMerger(columnLabelIndexMap, resultSetMergerInputs, selectStatement); return new GroupByMemoryResultSetMerger(columnLabelIndexMap, queryResults, selectStatement); } } if (!selectStatement.getOrderByItems().isEmpty()) { return new OrderByStreamResultSetMerger(resultSetMergerInputs, selectStatement.getOrderByItems()); return new OrderByStreamResultSetMerger(queryResults, selectStatement.getOrderByItems()); } return new IteratorStreamResultSetMerger(resultSetMergerInputs); return new IteratorStreamResultSetMerger(queryResults); } private ResultSetMerger decorate(final ResultSetMerger resultSetMerger) throws SQLException { Loading