Query sort keying on index values and not index hashes which was causing unexpected ording results

This commit is contained in:
Jeff Gregory 2014-02-23 03:11:54 -08:00
parent 372e2d8729
commit 76856aadc7
2 changed files with 16 additions and 3 deletions

View File

@ -42,6 +42,18 @@ class DynamoType(object):
self.value == other.value
)
def __lt__(self, other):
return self.value < other.value
def __le__(self, other):
return self.value <= other.value
def __gt__(self, other):
return self.value > other.value
def __ge__(self, other):
return self.value >= other.value
def __repr__(self):
return "DynamoType: {0}".format(self.to_json())
@ -196,6 +208,8 @@ class Table(object):
else:
# If we're not filtering on range key, return all values
results = possible_results
results.sort(key=lambda item: item.range_key)
return results, last_page
def all_items(self):

View File

@ -238,12 +238,11 @@ class DynamoHandler(BaseResponse):
if items is None:
er = 'com.amazonaws.dynamodb.v20111205#ResourceNotFoundException'
return self.error(er)
items.sort(key=lambda item: item.range_key)
limit = self.body.get("Limit")
if limit:
items = items[:limit]
result = {
"Count": len(items),
"Items": [item.attrs for item in items],