Repository navigation
Closed
Labels
area/rangesRange unions, variants and the shape enginesRange unions, variants and the shape enginesbugSomething isn't workingSomething isn't workingpackage/coreAffects CodoMetis.ValueRangesAffects CodoMetis.ValueRangespackage/efcoreAffects CodoMetis.ValueRanges.EFCore.PostgreSQLAffects CodoMetis.ValueRanges.EFCore.PostgreSQLpackage/nodatimeAffects CodoMetis.ValueRanges.NodaTimeAffects CodoMetis.ValueRanges.NodaTimeseverity/lowCosmetic, message or documentation-level differenceCosmetic, message or documentation-level difference
Milestone
Description
Problem
Two small findings from the final pre-release analysis on add665c (pass A):
- The non-generic
CompareTo's error message breaks on a nested generic type.RangeOrder.cs:58strips the arity fromType.Namevia its backtick, but the name of a nested type inside a generic, such asList<int>.Enumerator, has none. So((IComparable)range).CompareTo(new List<int>().GetEnumerator())throwsArgumentOutOfRangeException: length ('-1')…instead of the intendedArgumentExceptionnaming both types. It still derives fromArgumentException, so the contract holds, but the message is garbage. Guard onIndexOfbeing -1. - A
YearMonthRangecolumn holding an exclusiveinfinity)can't be loaded.daterange '[2026-01-01,infinity)'in aYearMonthRangecolumn throwsInvalidOperationException("9999-12-30 is not the last day of a month"). This is older than 10.0.0 and fails loudly. R42 deliberately usesinfinity], and the docs/efcore.md advice on open-ended rows namesDateRangeandLocalDateRangebut notYearMonthRange. Document it beside them, or readinfinity)as an unbounded month end if the month-alignment rule allows.
Done when
A foreign nested generic argument gives the intended message (test), and docs/efcore.md says what a YearMonthRange column does with an exclusive infinity) (with a claim held by a live test).
Metadata
Metadata
Assignees
Labels
area/rangesRange unions, variants and the shape enginesRange unions, variants and the shape enginesbugSomething isn't workingSomething isn't workingpackage/coreAffects CodoMetis.ValueRangesAffects CodoMetis.ValueRangespackage/efcoreAffects CodoMetis.ValueRanges.EFCore.PostgreSQLAffects CodoMetis.ValueRanges.EFCore.PostgreSQLpackage/nodatimeAffects CodoMetis.ValueRanges.NodaTimeAffects CodoMetis.ValueRanges.NodaTimeseverity/lowCosmetic, message or documentation-level differenceCosmetic, message or documentation-level difference
Activity
CaffeinatedCoder commentedon Oct 19, 2026
Part 2 is in #271. It documents the failure rather than reading
infinity)as an unbounded month end.[x,infinity)ends on 9999-12-30, part-way through a month, and either month reading changes the row:[x,9999-12]saves back asinfinity], and[x,9999-11]drops days. That is the same guess #117 declined for dates. A live test holds all five spellings (absent and inclusive forms load, both exclusive forms throw), and E63 claims it.[-]Non-generic CompareTo's message breaks on a nested generic argument; YearMonthRange can't load an exclusive infinity)[/-][+]A YearMonthRange column can't load an exclusive infinity)[/+]CaffeinatedCoder commentedon Oct 19, 2026
Split 2026-10-19: part 1 (the non-generic CompareTo message on a nested generic argument) moved to #273, closed by #274. This issue now holds part 2 only, the YearMonthRange exclusive
infinity)load, and #271 closes it.