Merge pull request #566 from dmitryzv/feature-ddb-query-add-scannedcount

Added ScannedCount field to DynamoDB query response.
This commit is contained in:
Steve Pulec 2016-03-28 23:51:27 -04:00
commit 092e1b1e53
2 changed files with 7 additions and 2 deletions

View File

@ -369,7 +369,11 @@ class Table(object):
if scan_index_forward is False:
results.reverse()
return self._trim_results(results, limit, exclusive_start_key)
scanned_count = len(list(self.all_items()))
results, last_evaluated_key = self._trim_results(results, limit,
exclusive_start_key)
return results, scanned_count, last_evaluated_key
def all_items(self):
for hash_set in self.items.values():

View File

@ -319,7 +319,7 @@ class DynamoHandler(BaseResponse):
exclusive_start_key = self.body.get('ExclusiveStartKey')
limit = self.body.get("Limit")
scan_index_forward = self.body.get("ScanIndexForward")
items, last_evaluated_key = dynamodb_backend2.query(
items, scanned_count, last_evaluated_key = dynamodb_backend2.query(
name, hash_key, range_comparison, range_values, limit,
exclusive_start_key, scan_index_forward, index_name=index_name)
if items is None:
@ -329,6 +329,7 @@ class DynamoHandler(BaseResponse):
result = {
"Count": len(items),
"ConsumedCapacityUnits": 1,
"ScannedCount": scanned_count
}
if self.body.get('Select', '').upper() != 'COUNT':
result["Items"] = [item.attrs for item in items]