You are viewing a plain text version of this content. The canonical link for it is here.
Posted to commits@cassandra.apache.org by jb...@apache.org on 2010/07/23 18:05:14 UTC

svn commit: r967150 - /cassandra/trunk/src/java/org/apache/cassandra/db/ColumnFamilyStore.java

Author: jbellis
Date: Fri Jul 23 16:05:14 2010
New Revision: 967150

URL: http://svn.apache.org/viewvc?rev=967150&view=rev
Log:
now that getRangeSlice doesn't have to deal with wrapped ranges, we can inline CFS.getRangeRows into getRangeSlice.  patch by jbellis

Modified:
    cassandra/trunk/src/java/org/apache/cassandra/db/ColumnFamilyStore.java

Modified: cassandra/trunk/src/java/org/apache/cassandra/db/ColumnFamilyStore.java
URL: http://svn.apache.org/viewvc/cassandra/trunk/src/java/org/apache/cassandra/db/ColumnFamilyStore.java?rev=967150&r1=967149&r2=967150&view=diff
==============================================================================
--- cassandra/trunk/src/java/org/apache/cassandra/db/ColumnFamilyStore.java (original)
+++ cassandra/trunk/src/java/org/apache/cassandra/db/ColumnFamilyStore.java Fri Jul 23 16:05:14 2010
@@ -974,16 +974,20 @@ public class ColumnFamilyStore implement
     /**
       * Fetch a range of rows and columns from memtables/sstables.
       * 
-      * @param rows The resulting rows fetched during this operation 
-      * @param superColumn Super column to filter by
+      * @param superColumn optional SuperColumn to slice subcolumns of; null to slice top-level columns
       * @param range Either a Bounds, which includes start key, or a Range, which does not.
       * @param maxResults Maximum rows to return
       * @param columnFilter description of the columns we're interested in for each row
       * @return true if we found all keys we were looking for, otherwise false
      */
-    private void getRangeRows(List<Row> rows, byte[] superColumn, final AbstractBounds range, int maxResults, IFilter columnFilter)
+    public List<Row> getRangeSlice(byte[] superColumn, final AbstractBounds range, int maxResults, IFilter columnFilter)
     throws ExecutionException, InterruptedException
     {
+        assert range instanceof Bounds
+               || (!((Range)range).isWrapAround() || range.right.equals(StorageService.getPartitioner().getMinimumToken()))
+               : range;
+
+        List<Row> rows = new ArrayList<Row>();
         final DecoratedKey startWith = new DecoratedKey(range.left, (byte[])null);
         final DecoratedKey stopAt = new DecoratedKey(range.right, (byte[])null);
         
@@ -1011,7 +1015,7 @@ public class ColumnFamilyStore implement
                 DecoratedKey key = current.key;
 
                 if (!stopAt.isEmpty() && stopAt.compareTo(key) < 0)
-                    return;
+                    return rows;
 
                 // skip first one
                 if(range instanceof Bounds || !first || !key.equals(startWith))
@@ -1023,7 +1027,7 @@ public class ColumnFamilyStore implement
                 first = false;
 
                 if (rows.size() >= maxResults)
-                    return;
+                    return rows;
             }
         }
         finally
@@ -1037,25 +1041,7 @@ public class ColumnFamilyStore implement
                 throw new IOError(e);
             }
         }
-    }
 
-    /**
-     *
-     * @param super_column
-     * @param range: either a Bounds, which includes start key, or a Range, which does not.
-     * @param keyMax maximum number of keys to process, regardless of startKey/finishKey
-     * @param columnFilter description of the columns we're interested in for each row
-     * @throws ExecutionException
-     * @throws InterruptedException
-     */
-    public List<Row> getRangeSlice(byte[] super_column, final AbstractBounds range, int keyMax, IFilter columnFilter)
-    throws ExecutionException, InterruptedException
-    {
-        List<Row> rows = new ArrayList<Row>();
-        assert range instanceof Bounds
-               || (!((Range)range).isWrapAround() || range.right.equals(StorageService.getPartitioner().getMinimumToken()))
-               : range;
-        getRangeRows(rows, super_column, range, keyMax, columnFilter);
         return rows;
     }