Repository navigation
main: re-enable the ComplexIndexes cross-tests and the joint smoke consumer against CodoMetis.EFCore.SchemaKit.PostgreSQL #333
Copy link
Copy link
Open
Labels
area/rangesRange unions, variants and the shape enginesRange unions, variants and the shape enginespackage/efcoreAffects CodoMetis.ValueRanges.EFCore.PostgreSQLAffects CodoMetis.ValueRanges.EFCore.PostgreSQLtestsAdds or changes tests only (oracles, harnesses); no library codeAdds or changes tests only (oracles, harnesses); no library code
Milestone
Description
Problem
On main, ComplexIndexesCrossTests and the fourth consumer in test/consumer-smoke-test.sh are off (net10.0 only), because EFCore.ComplexIndexes 5.x pins EF Core and Npgsql to 10.
Decided 2026-10-19 (CaffeinatedCoder/EFCore.ComplexIndexes#37): that package stays the EF Core 10 package. Its EF Core 11 successor is a new package, CodoMetis.EFCore.SchemaKit.PostgreSQL, starting at 11.0.0.
The integration csproj and the smoke script say "CaffeinatedCoder/EFCore.ComplexIndexes#42 restores them". An issue in that repository can't change this one, so this is the issue that does.
Change (main only)
release/10.x keeps EFCore.ComplexIndexes.PostgreSQL 5.4.x unchanged.
- Integration project: a test-only reference to
CodoMetis.EFCore.SchemaKit.PostgreSQLwith no TFM condition, using the namespace and wiring call SchemaKit ships. test/consumer-smoke-test.sh: the fourth consumer runs on net11 with the new id and is no longer skipped.- Temporal claims: if SchemaKit: leave out what EF Core 11 and Npgsql 11 do natively; keep what stays unique EFCore.ComplexIndexes#39 leaves temporal constraints to Npgsql 11, then
E48–E52move to the native tests from Native temporal keys over ValueRanges columns on the 11 line: implement INpgsqlRangeTypeMapping, document WithoutOverlaps and WithPeriod #150, and the claims' quotes followdocs/efcore.md. Exclusion constraints and GiST indexes (E40–E43,E53) stay on SchemaKit. docs/efcore.md(11 line): SchemaKit for exclusion constraints and GiST indexes, nativeWithoutOverlaps/WithPeriodfor temporal keys (Native temporal keys over ValueRanges columns on the 11 line: implement INpgsqlRangeTypeMapping, document WithoutOverlaps and WithPeriod #150). The main: say in the docs and the 11.0.0-preview changelog thatEFCore.ComplexIndexes.PostgreSQLcannot be installed beside the net11 packages yet #322 sentence goes.- The comments that cite Cross-tests with CodoMetis.ValueRanges on both lines: range and multirange columns as temporal-constraint periods and exclusion-constraint operands EFCore.ComplexIndexes#42 cite this issue instead, and main:
claims.jsonnamesComplexIndexesCrossTestsas holding 11 claims, but the test is compiled out on net11 #321's record of the gap goes.
Blocked by
CodoMetis.EFCore.SchemaKit11.0.0-preview.1 on nuget.org (SchemaKit 11.0.0-preview.1: the first slice of the new API, on EF Core 11 / Npgsql 11 under the new ids EFCore.ComplexIndexes#38)- the temporal decision in SchemaKit: leave out what EF Core 11 and Npgsql 11 do natively; keep what stays unique EFCore.ComplexIndexes#39
- Native temporal keys over ValueRanges columns on the 11 line: implement INpgsqlRangeTypeMapping, document WithoutOverlaps and WithPeriod #150
Reactions are currently unavailable
Metadata
Metadata
Assignees
Labels
area/rangesRange unions, variants and the shape enginesRange unions, variants and the shape enginespackage/efcoreAffects CodoMetis.ValueRanges.EFCore.PostgreSQLAffects CodoMetis.ValueRanges.EFCore.PostgreSQLtestsAdds or changes tests only (oracles, harnesses); no library codeAdds or changes tests only (oracles, harnesses); no library code
Activity
CaffeinatedCoder commentedon Oct 19, 2026
#335 (closes #150) adds the native temporal keys on
main, in their own section, "Reject overlapping rows with Npgsql's temporal keys (PostgreSQL 18)", held byNativeTemporalKeyTestsas claims E64–E69. Npgsql 11'sWithoutOverlaps()/WithPeriod()accept this package's columns from rc.2 on, because the mappings implementINpgsqlRangeTypeMapping. So the temporal half of this issue no longer needs moving: E48–E52 stay as the ComplexIndexes (10.x) route, which the section now labels. What's left here is the SchemaKit id swap for exclusion constraints and GiST indexes, and what E48–E52 mean onmain(#321).Merge pull request #336 from CaffeinatedCoder/test/321-heldby-compiled