explicitly set known command list size

Project: http://git-wip-us.apache.org/repos/asf/cassandra/repo
Commit: http://git-wip-us.apache.org/repos/asf/cassandra/commit/68bae313
Tree: http://git-wip-us.apache.org/repos/asf/cassandra/tree/68bae313
Diff: http://git-wip-us.apache.org/repos/asf/cassandra/diff/68bae313

Branch: refs/heads/trunk
Commit: 68bae31313161848116d13b10f78639f4252f71a
Parents: f58a51b
Author: Jonathan Ellis <jbel...@apache.org>
Authored: Mon May 14 15:23:27 2012 -0500
Committer: Jonathan Ellis <jbel...@apache.org>
Committed: Mon May 14 18:09:55 2012 -0500

----------------------------------------------------------------------
 .../cassandra/cql3/statements/SelectStatement.java |    7 ++++---
 1 files changed, 4 insertions(+), 3 deletions(-)
----------------------------------------------------------------------


http://git-wip-us.apache.org/repos/asf/cassandra/blob/68bae313/src/java/org/apache/cassandra/cql3/statements/SelectStatement.java
----------------------------------------------------------------------
diff --git a/src/java/org/apache/cassandra/cql3/statements/SelectStatement.java 
b/src/java/org/apache/cassandra/cql3/statements/SelectStatement.java
index 04f16cc..1878949 100644
--- a/src/java/org/apache/cassandra/cql3/statements/SelectStatement.java
+++ b/src/java/org/apache/cassandra/cql3/statements/SelectStatement.java
@@ -190,7 +190,8 @@ public class SelectStatement implements CQLStatement
     private List<Row> getSlice(List<ByteBuffer> variables) throws 
InvalidRequestException, TimedOutException, UnavailableException
     {
         QueryPath queryPath = new QueryPath(columnFamily());
-        List<ReadCommand> commands = new ArrayList<ReadCommand>();
+        Collection<ByteBuffer> keys = getKeys(variables);
+        List<ReadCommand> commands = new ArrayList<ReadCommand>(keys.size());
 
         // ...a range (slice) of column names
         if (isColumnRange())
@@ -201,7 +202,7 @@ public class SelectStatement implements CQLStatement
             // Note that we use the total limit for every key. This is
             // potentially inefficient, but then again, IN + LIMIT is not a
             // very sensible choice
-            for (ByteBuffer key : getKeys(variables))
+            for (ByteBuffer key : keys)
             {
                 QueryProcessor.validateKey(key);
                 QueryProcessor.validateSliceRange(cfDef.cfm, start, finish, 
isReversed);
@@ -220,7 +221,7 @@ public class SelectStatement implements CQLStatement
             Collection<ByteBuffer> columnNames = 
getRequestedColumns(variables);
             QueryProcessor.validateColumnNames(columnNames);
 
-            for (ByteBuffer key: getKeys(variables))
+            for (ByteBuffer key: keys)
             {
                 QueryProcessor.validateKey(key);
                 commands.add(new SliceByNamesReadCommand(keyspace(), key, 
queryPath, columnNames));

Reply via email to