Skip to content

feat: define what a nil filter value means across storage adapters #255

Description

@Lutherwaves

#247 settled that a nil filter value means IS NULL, and #251 makes that work on SQL. The other adapters read {"deleted_at": nil} differently:

Adapter Result
SQL, Memory deleted_at IS NULL (#251)
CosmosDB c.deleted_at = null (L787), which misses documents without the property
DynamoDB List deleted_at=? bound to NULL (L361), not IS MISSING
DynamoDB Get the filter is marshalled as the key (L150)

That breaks the "swap the adapter, keep your handlers" promise, and none of it is documented: docs/storage.md only says "exact equalities".

Proposal: nil matches a value that is NULL or absent.

Related: #200 (Count returns 0, nil on DynamoDB and Cosmos).

Activity

Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Metadata

Metadata

Assignees

No one assigned

    Labels

    area:storageStorage adapters (SQL/Dynamo/Cosmos/Memory)documentationImprovements or additions to documentationenhancementNew feature or request

    Type

    No type

    Projects

    No projects

      Milestone

      No milestone

      Relationships

      None yet

      Development

      No branches or pull requests

      Issue actions