Skip to content

10.x: read an exclusive infinite date bound as memory loads it (port of #489) #502

Closed

Description

@CaffeinatedCoder

Problem

On release/10.x, LowerBound(), UpperBound() and Clamp in a query read a date range another tool wrote with an exclusive infinite bound one day wider than memory loads it (#489). ClampFunction there reads the same UpperBoundFunction (upper(x) - 1) and lower(x) as on main, read at 61308c6. 10.4.0's own changelog says Clamp "answers as memory does, at the extremes too", and #494 made Clamp on DateRange and LocalDateRange run as SQL in this release, so without the port 10.4.0 ships a new disagreement next to a release note that denies it.

Change

Cherry-pick #489's fix commits from main with -x into a PR against release/10.x: the bound readers, their translation and live tests, and the docs.

10.x specifics: the changelog row goes under ### Changed answers in [10.4.0], linking #489 and its migration section. docs/migration.md lists that section under ## Changed answers in 10.4.0, beside #496's. pr-hygiene.sh requires both for a silent PR into a minor.

Done when

On release/10.x, the tests pass on the EF Core 10.0.0 floor and on CI's newest-patch leg, on PostgreSQL 16 and 18, and fail with the fix reverted.

Release

### Changed answers 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
    bugSomething isn't working
    silentAnswers wrongly without throwing — fixes go in the next major, never deferred
    area/rangesRange unions, variants and the shape engines
    package/efcoreAffects CodoMetis.ValueRanges.EFCore.PostgreSQL
    package/efcore-nodatimeAffects CodoMetis.ValueRanges.EFCore.PostgreSQL.NodaTime
    severity/lowCosmetic, message or documentation-level difference
    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

    Fixed on release/10.x by PR #504 (a958bef), the port of #489 (PR #503, 2949415 on main). Ships in 10.4.0 under ### Changed answers. Closed by hand, since Closes 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/range-setRangeSet and multirange algebraarea/rangesRange unions, variants and the shape enginesbugSomething isn't workingpackage/efcoreAffects CodoMetis.ValueRanges.EFCore.PostgreSQLpackage/efcore-nodatimeAffects CodoMetis.ValueRanges.EFCore.PostgreSQL.NodaTimeseverity/lowCosmetic, message or documentation-level differencesilentAnswers wrongly without throwing — fixes go in the next major, never deferred

    Projects

    No projects

      Milestone

      Relationships

      None yet

      Development

      No branches or pull requests

      Issue actions