Skip to content

Address negative-path validation failures from conformance suite expansion #31

@hicksy

Description

@hicksy

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.

Metadata

Metadata

Assignees

No one assigned

    Labels

    bugSomething isn't working

    Type

    No type
    No fields configured for issues without a type.

    Projects

    No projects

    Milestone

    No milestone

    Relationships

    None yet

    Development

    No branches or pull requests

    Issue actions