Skip to content

10.x: translate the DateRange calendar factories over a column (port of #191) #448

Closed

Description

@CaffeinatedCoder

Problem

On main, DateRange.Month, Quarter, Year and IsoWeek run as SQL when they read a column, since #191 (PR #447). On release/10.x they still fail translation in a Where, so a 10.x query can't filter or order by DateRange.Month(b.Day).

Change

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

  • The calendar arm in ValueRangesMethodCallTranslator.
  • CalendarFactoryTranslationTests.
  • CalendarFactoryParityTests, an oracle with the seed calendar-last-period-ends-on-a-day-not-infinity.patch. release/10.x has its Composition helpers.
  • CalendarFactoryExtremesTests in the infinity-disabled project.
  • NodaCalendarFactoryClientSideTests, and the client-only tests moved to the NodaTime forms.
  • translation-support.json, claims E46 and E76, docs/efcore.md#what-runs-where, docs/ranges.md and the EF Core README.
  • DeclaredNullabilityTests isn't on release/10.x, so its hunk drops out. The parity test carries the declared-nullability checks (the filters against the projection).
  • The changelog row goes under [10.3.0] ### Added, after the Clamp row from 10.x: translate Clamp on Int32Range, Int64Range and DecimalRange (port of #406) #441.

Done when

On release/10.x, the translation and parity tests pass on the EF floor and the newest-patch leg (PostgreSQL 16 and 18). The seed fails the parity test. The translation-support probe passes with DateRange server and the NodaTime types client.

Release

### Added in 10.3.0. It lands only on release/10.x, so close it by hand.

Activity

  1. added this to the 10.3.0 milestone on Oct 25, 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 25, 2026
  3. CaffeinatedCoder commented on Oct 25, 2026

    @CaffeinatedCoder
    OwnerAuthor

    PR #449: cherry-pick of 879c82a (#447). Local runs on SDK 10.0.402 and EF Core 10.0.0 all pass, both integration projects on PostgreSQL 16 and 18 included. The seed is caught, and the parity test fails with the calendar arm removed. DeclaredNullabilityTests isn't on this line, so its hunk and its entry in claim E76 drop out.

  4. CaffeinatedCoder commented on Oct 25, 2026

    @CaffeinatedCoder
    OwnerAuthor

    Done: PR #449, merged into release/10.x as 684216b. All 10 checks passed, including integration on PostgreSQL 16 and 18 with the EF Core floor and 10.0.13. Ships in 10.3.0. Closed by hand, since Closes #448 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