#2760 - DynamoDB - Ensure proper ordering for Numeric sort keys

This commit is contained in:
Bert Blommers 2020-03-17 16:28:49 +00:00
commit 67c7fce85e
2 changed files with 64 additions and 1 deletions

View file

@ -981,8 +981,13 @@ class Table(BaseModel):
if index_name:
if index_range_key:
# Convert to float if necessary to ensure proper ordering
def conv(x):
return float(x.value) if x.type == "N" else x.value
results.sort(
key=lambda item: item.attrs[index_range_key["AttributeName"]].value
key=lambda item: conv(item.attrs[index_range_key["AttributeName"]])
if item.attrs.get(index_range_key["AttributeName"])
else None
)