Skip to content

v5.6.0

Choose a tag to compare

@github-actions github-actions released this 21 Jul 22:55
· 55 commits to master since this release

5.6.0 (2026-07-21)

Features

  • cassandra: counter columns and IF NOT EXISTS lightweight transactions (f456c5e)
  • cassandra: OR-split — partition-pinned OR branches run as parallel native queries (e705fd6)
  • core,cassandra,cosmosdb: continuation-token paging over the native paths (7b51e20)
  • core,providers: global query filters, OpenTelemetry activities, per-operation consistency/TTL (e99509a)
  • core,providers: pushdown+residual engine, Explain, prepared statements (8541a0b)
  • core: evaluate parameter-free filter operands at translation time (1d09d11)
  • cosmosdb: optimistic concurrency through the document ETag (5555dfd)
  • mongodb: reads join the active transaction session (cde1957)
  • providers: computed set-based updates via a shared update IR (6b59be1)
  • providers: IAsyncEnumerable streaming + MongoDB keyset continuation paging (39faf6b)

⚠️ Upgrade notes

v5.6.0 also corrects provider behaviour — a few changes can surface in code written against 5.4/5.5:

  • GetFiltered/AllMatching now compose (AND) with the options filter on Cassandra instead of replacing it, and never mutate the caller's options.
  • Get/GetAsync on Cassandra now honour QueryOptions (a non-key options filter without .AllowFiltering() throws with guidance instead of being silently dropped).
  • Include(...) now throws on Cosmos and Cassandra (was silently ignored).
  • Predicates CQL cannot express (OR across columns, !=, NULL, arbitrary shapes) are now gated opt-ins (.AllowClientEvaluation() / .AllowFiltering()) instead of unconditional rejections; a partition-pinned OR runs natively with no opt-in.
  • CosmosReadRepository.Query (protected) changed signature (Func<IQueryable,IQueryable>Expression<Func<T,bool>>?) — affects derived repositories only.
  • .AllowFiltering() no longer occupies QueryOptions.Tag; Cassandra statements are now prepared (first execution per shape pays one prepare round-trip); MongoDB reads inside an open transaction now see its writes.

Full details and the additive surface: docs/UPGRADING-5.6.md