[CALCITE-1093] Reduce impact of ArrayList performance
Project: http://git-wip-us.apache.org/repos/asf/calcite/repo Commit: http://git-wip-us.apache.org/repos/asf/calcite/commit/ea41b341 Tree: http://git-wip-us.apache.org/repos/asf/calcite/tree/ea41b341 Diff: http://git-wip-us.apache.org/repos/asf/calcite/diff/ea41b341 Branch: refs/heads/master Commit: ea41b3412f099c8f1051f1b324b1ba03d644962a Parents: 1a9be67 Author: Josh Elser <[email protected]> Authored: Wed Mar 2 17:43:33 2016 -0500 Committer: Josh Elser <[email protected]> Committed: Wed Mar 2 19:06:33 2016 -0500 ---------------------------------------------------------------------- .../org/apache/calcite/avatica/jdbc/JdbcMeta.java | 16 ++++++++-------- .../apache/calcite/avatica/remote/LocalService.java | 2 +- 2 files changed, 9 insertions(+), 9 deletions(-) ---------------------------------------------------------------------- http://git-wip-us.apache.org/repos/asf/calcite/blob/ea41b341/avatica-server/src/main/java/org/apache/calcite/avatica/jdbc/JdbcMeta.java ---------------------------------------------------------------------- diff --git a/avatica-server/src/main/java/org/apache/calcite/avatica/jdbc/JdbcMeta.java b/avatica-server/src/main/java/org/apache/calcite/avatica/jdbc/JdbcMeta.java index becb19d..dfe7f99 100644 --- a/avatica-server/src/main/java/org/apache/calcite/avatica/jdbc/JdbcMeta.java +++ b/avatica-server/src/main/java/org/apache/calcite/avatica/jdbc/JdbcMeta.java @@ -788,7 +788,7 @@ public class JdbcMeta implements Meta { if (null == statementInfo) { throw new NoSuchStatementException(h); } - final List<MetaResultSet> resultSets = new ArrayList<>(); + final List<MetaResultSet> resultSets; final PreparedStatement preparedStatement = (PreparedStatement) statementInfo.statement; @@ -816,16 +816,16 @@ public class JdbcMeta implements Meta { if (statementInfo.getResultSet() == null) { frame = Frame.EMPTY; - resultSets.add(JdbcResultSet.empty(h.connectionId, h.id, signature2)); + resultSets = Collections.<MetaResultSet>singletonList( + JdbcResultSet.empty(h.connectionId, h.id, signature2)); } else { - resultSets.add( - JdbcResultSet.create(h.connectionId, h.id, - statementInfo.getResultSet(), maxRowCount, signature2)); + resultSets = Collections.<MetaResultSet>singletonList( + JdbcResultSet.create(h.connectionId, h.id, statementInfo.getResultSet(), + maxRowCount, signature2)); } } else { - resultSets.add( - JdbcResultSet.count( - h.connectionId, h.id, preparedStatement.getUpdateCount())); + resultSets = Collections.<MetaResultSet>singletonList( + JdbcResultSet.count(h.connectionId, h.id, preparedStatement.getUpdateCount())); } return new ExecuteResult(resultSets); http://git-wip-us.apache.org/repos/asf/calcite/blob/ea41b341/avatica/src/main/java/org/apache/calcite/avatica/remote/LocalService.java ---------------------------------------------------------------------- diff --git a/avatica/src/main/java/org/apache/calcite/avatica/remote/LocalService.java b/avatica/src/main/java/org/apache/calcite/avatica/remote/LocalService.java index e9c4367..11d15c9 100644 --- a/avatica/src/main/java/org/apache/calcite/avatica/remote/LocalService.java +++ b/avatica/src/main/java/org/apache/calcite/avatica/remote/LocalService.java @@ -233,7 +233,7 @@ public class LocalService implements Service { final Meta.ExecuteResult executeResult = meta.execute(request.statementHandle, request.parameterValues, request.maxRowCount); - final List<ResultSetResponse> results = new ArrayList<>(); + final List<ResultSetResponse> results = new ArrayList<>(executeResult.resultSets.size()); for (Meta.MetaResultSet metaResultSet : executeResult.resultSets) { results.add(toResponse(metaResultSet)); }
