Skip to content

Commit

Permalink
Allow ranging over ring tokens
Browse files Browse the repository at this point in the history
Would close pycassa#170
  • Loading branch information
pilate committed Jul 30, 2013
1 parent 6529a7d commit 97cfd5a
Showing 1 changed file with 11 additions and 5 deletions.
16 changes: 11 additions & 5 deletions pycassa/columnfamily.py
Expand Up @@ -878,7 +878,8 @@ def get_range(self, start="", finish="", columns=None, column_start="",
column_finish="", column_reversed=False, column_count=100,
row_count=None, include_timestamp=False,
super_column=None, read_consistency_level=None,
buffer_size=None, filter_empty=True, include_ttl=False):
buffer_size=None, filter_empty=True, include_ttl=False,
tokens=False):
"""
Get an iterator over rows in a specified key range.
Expand Down Expand Up @@ -916,8 +917,11 @@ def get_range(self, start="", finish="", columns=None, column_start="",

count = 0
i = 0
last_key = self._pack_key(start)
finish = self._pack_key(finish)
if not tokens:
last_key = self._pack_key(start)
finish = self._pack_key(finish)
else:
last_key = start

if buffer_size is None:
buffer_size = self.buffer_size
Expand All @@ -928,8 +932,10 @@ def get_range(self, start="", finish="", columns=None, column_start="",
buffer_size = row_count
else:
buffer_size = min(row_count - count + 1, buffer_size)

key_range = KeyRange(start_key=last_key, end_key=finish, count=buffer_size)
if tokens:
key_range = KeyRange(start_token=last_key, end_token=finish, count=buffer_size)
else:
key_range = KeyRange(start_key=last_key, end_key=finish, count=buffer_size)
key_slices = self.pool.execute('get_range_slices', cp, sp, key_range, cl)
# This may happen if nothing was ever inserted
if key_slices is None:
Expand Down

0 comments on commit 97cfd5a

Please sign in to comment.