Prevent overlapping expr name prefixes from corrupting projection expr
h/t @beheh. This patch handles the case when ProjectionExpression looks like "#1, ..., #10" - the previous code used `replace`, which would make the resulting projection into "foo, ..., foo0".
This commit is contained in:
parent
3a5d857a60
commit
f4df7a48ee
2 changed files with 57 additions and 1 deletions
|
|
@ -356,9 +356,18 @@ class DynamoHandler(BaseResponse):
|
|||
|
||||
if projection_expression and expression_attribute_names:
|
||||
expressions = [x.strip() for x in projection_expression.split(',')]
|
||||
projection_expression = None
|
||||
for expression in expressions:
|
||||
if projection_expression is not None:
|
||||
projection_expression = projection_expression + ", "
|
||||
else:
|
||||
projection_expression = ""
|
||||
|
||||
if expression in expression_attribute_names:
|
||||
projection_expression = projection_expression.replace(expression, expression_attribute_names[expression])
|
||||
projection_expression = projection_expression + \
|
||||
expression_attribute_names[expression]
|
||||
else:
|
||||
projection_expression = projection_expression + expression
|
||||
|
||||
filter_kwargs = {}
|
||||
|
||||
|
|
|
|||
Loading…
Add table
Add a link
Reference in a new issue