The conformance suite added negative-path coverage (nubo-db/dynamodb-conformance#17). Five behaviours fail against Dynoxide 0.9.x: it accepts input real DynamoDB rejects, or sizes strings differently. The rest of the new coverage passes.
- Redundant parentheses are accepted in every expression context (ConditionExpression, KeyConditionExpression, FilterExpression). DynamoDB rejects with
The expression has redundant parentheses.
contains(a, a) is accepted (same path and operand). DynamoDB rejects: The first operand must be distinct from the remaining operands ... operator: contains.
begins_with(attr, :n) with a non-string/binary operand is accepted. DynamoDB rejects: Incorrect operand type for operator or function; operator or function: begins_with, operand type: N.
size() does not count UTF-16 code units. size("é𝄞") should be 3 (one code unit plus a surrogate pair), not the byte length.
- A negative
Segment is accepted. DynamoDB rejects: Value '-1' at 'segment' failed to satisfy constraint: Member must have value greater than or equal to 0.
Dynoxide already matches DynamoDB on the rest of the new coverage: ExclusiveStartKey schema validation, control-plane KeySchema and BillingMode validation, and number byte-sizing at the 400KB boundary.
Closing these keeps Dynoxide at 100% once the suite's refreshed results are published.
The conformance suite added negative-path coverage (nubo-db/dynamodb-conformance#17). Five behaviours fail against Dynoxide 0.9.x: it accepts input real DynamoDB rejects, or sizes strings differently. The rest of the new coverage passes.
The expression has redundant parentheses.contains(a, a)is accepted (same path and operand). DynamoDB rejects:The first operand must be distinct from the remaining operands ... operator: contains.begins_with(attr, :n)with a non-string/binary operand is accepted. DynamoDB rejects:Incorrect operand type for operator or function; operator or function: begins_with, operand type: N.size()does not count UTF-16 code units.size("é𝄞")should be 3 (one code unit plus a surrogate pair), not the byte length.Segmentis accepted. DynamoDB rejects:Value '-1' at 'segment' failed to satisfy constraint: Member must have value greater than or equal to 0.Dynoxide already matches DynamoDB on the rest of the new coverage:
ExclusiveStartKeyschema validation, control-plane KeySchema and BillingMode validation, and number byte-sizing at the 400KB boundary.Closing these keeps Dynoxide at 100% once the suite's refreshed results are published.