mirror of
https://github.com/scylladb/scylladb.git
synced 2026-05-12 19:02:12 +00:00
This patch fully implements support for attribute paths (e.g. a.b.c, a.d[3]) for the ConditionExpression in conditional updates, and FilterExpression in queries and scans. After this patch, all previously-xfailing tests in test_projection_expression.py and test_filter_expression.py now pass. The fix is simple: Both ConditionExpression and FilterExpression use the function calculate_value() to calculate the value of the expression. When this function calculates the value of a path, it mustn't just take the top-level attribute - it needs to walk into the specific sub-object as specified by the attribute path. This is not the end of attribute path support, UpdateExpression and ReturnValues are not yet fully supported. This will come in following patches. Refs #5024 Signed-off-by: Nadav Har'El <nyh@scylladb.com>