Repository navigation
Description
Moved out of 11.0.0 on 2026-11-11 (maintainer). SchemaKit's first preview waits for its API design (CaffeinatedCoder/CodoMetis.EFCore.SchemaKit#11), and v11.0.0 does not wait for it (#147). This issue is under the backlog epic (#83) until the first 11.x minor is opened, and ships in that minor. Until then the 11 line has no exclusion constraints or GiST indexes over these columns from a CodoMetis package; temporal keys are native (#150), and docs/efcore.md keeps saying so (#322).
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/CodoMetis.EFCore.SchemaKit#1): 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 CodoMetis.EFCore.SchemaKit#3 leaves temporal constraints to Npgsql 11, then
E48–E52move to the native tests from UseComplexIndexes() on PostgreSQL or SQL Server still drops exclusion and temporal constraints and the IS NOT NULL filter without a word EFCore.ComplexIndexes#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: range and multirange columns as exclusion-constraint operands CodoMetis.EFCore.SchemaKit#4 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 CodoMetis.EFCore.SchemaKit#2)- the temporal decision in SchemaKit: leave out what EF Core 11 and Npgsql 11 do natively; keep what stays unique CodoMetis.EFCore.SchemaKit#3
- UseComplexIndexes() on PostgreSQL or SQL Server still drops exclusion and temporal constraints and the IS NOT NULL filter without a word EFCore.ComplexIndexes#150
Activity
CaffeinatedCoder commentedon Oct 19, 2026
#335 (closes CaffeinatedCoder/EFCore.ComplexIndexes#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