Skip to content

10.x: translate Clamp on every range type (port of #486) #494

Closed

Description

@CaffeinatedCoder

Problem

Clamp runs as SQL on every range type on main once #486 merges (PR #490). On release/10.x it runs as SQL only on Int32Range, Int64Range and DecimalRange (#406, port #441).

Change

Cherry-pick PR #490's commits with -x into a PR against release/10.x:

  • ValueRangesMethodCallTranslator: Clamp on every range type, and MixesTimeZones, which declines a timestamptz value against a tsrange.
  • ClampDomainParityTests (an oracle, with the seed clamp-compares-a-timestamptz-value-through-the-session-zone.patch), the widened clamp-reads-the-stored-exclusive-upper-bound.patch, ClampTranslationTests, the client-side-only rows, and the GREATEST/LEAST arm of DeclaredNullabilityTests.
  • The docs, claims E31, E74 and E83, and translation-support.json.
  • The changelog rows go under [10.4.0] in the root, EF Core and EF Core NodaTime changelogs.

Done when

On release/10.x, the translation and parity tests pass on the EF Core 10.0.0 floor and on CI's newest-patch leg, on PostgreSQL 16 and 18, and both seeds fail their oracles.

Release

### Added in 10.4.0. Fixed only on release/10.x, so close it by hand.

Activity

  1. added this to the 10.4.0 milestone on Oct 26, 2026
  2. added
    enhancementNew feature or request
    area/rangesRange unions, variants and the shape engines
    package/efcoreAffects CodoMetis.ValueRanges.EFCore.PostgreSQL
    package/efcore-nodatimeAffects CodoMetis.ValueRanges.EFCore.PostgreSQL.NodaTime
    on Oct 26, 2026
  3. added a commit that references this issue on Oct 26, 2026
  4. CaffeinatedCoder commented on Oct 26, 2026

    @CaffeinatedCoder
    OwnerAuthor

    Ported to release/10.x by PR #498, merged as a5cc7da. Ships in 10.4.0 under Added. Closed by hand, because Closes #494 acts only on main.

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/rangesRange unions, variants and the shape enginesenhancementNew feature or requestpackage/efcoreAffects CodoMetis.ValueRanges.EFCore.PostgreSQLpackage/efcore-nodatimeAffects CodoMetis.ValueRanges.EFCore.PostgreSQL.NodaTime

    Projects

    No projects

      Milestone

      Relationships

      None yet

      Development

      No branches or pull requests

      Issue actions