diff --git a/dynamodb/filter.odin b/dynamodb/filter.odin index 823bd23..67ce916 100644 --- a/dynamodb/filter.odin +++ b/dynamodb/filter.odin @@ -702,6 +702,12 @@ evaluate_filter :: proc(item: Item, node: ^Filter_Node) -> bool { evaluate_comparison :: proc(attr: Attribute_Value, op: Comparison_Op, val: Attribute_Value) -> bool { cmp := compare_attribute_values(attr, val) + // -2 means types are incomparable - all comparisons return false + // (matches DynamoDB behavior: mixed-type comparisons always fail) + if cmp == -2 { + return false + } + switch op { case .EQ: return cmp == 0 case .NE: return cmp != 0