Skip to content

Support SequenceEqual for binary and list attributes #241

Description

@j-d-ha

Summary

Consider adding scoped translation support for LINQ SequenceEqual when it is used against DynamoDB scalar/attribute values where DynamoDB PartiQL can preserve the expected semantics.

Proposed support

  • Translate byte[].SequenceEqual(...) for binary attributes to PartiQL equality, matching EF Core relational provider behavior for binary columns.
  • Investigate translating list-valued attribute comparisons to PartiQL equality, for example entity.Tags.SequenceEqual(tags) -> Tags = ?, only if DynamoDB Local/integration tests confirm order-sensitive structural list equality.

Non-goals

  • Do not support IQueryable<T>.SequenceEqual(...) between two query results. DynamoDB/PartiQL does not provide a natural row ordinal or general query-composition model that can express ordered positional sequence equality without misleading semantics or scan-heavy client behavior.

Acceptance criteria

  • Binary attribute SequenceEqual translates and executes correctly.
  • If list support is added, integration tests prove same-length, same-order, same-value behavior and distinguish reordered lists.
  • Queryable sequence equality remains unsupported with a clear translation error.
  • User-facing querying docs/limitations are updated if behavior changes.

Notes

EF Core relational providers commonly translate byte[] SequenceEqual as binary equality. General query-result SequenceEqual is not a good fit because it is order-sensitive.

Metadata

Metadata

Assignees

No one assigned

    Labels

    No labels
    No labels

    Type

    No type

    Projects

    No projects

    Milestone

    No milestone

    Relationships

    None yet

    Development

    No branches or pull requests

    Issue actions