Repository navigation
SqlOS 11.0.0
SqlOS 11.0.0 makes every index on a protected table a page order. Index the columns you sort by, as for any database, and ToPageAsync pages that sort for about a page of work per caller. HasPageOrder is removed, which makes this a major release; ToPageAsync, the cursor and the response are unchanged.
Highlights
- Every index on an
IHasResourceIdentity, plus its primary key, is a page order. Indexes containingResourceIdand indexes equal to a foreign key are lookups and get no copy (#523, #524). - Breaking:
HasPageOrderis removed. Replaceentity.HasPageOrder(p => p.Price)withentity.HasIndex(p => new { p.Price, p.Id }), add a migration, and start the app; the first start fills the new tables. - Indexes that can't be copied (nullable, unbounded string, unsupported type) are skipped and logged once at startup with the fix. A sort with no index logs the
HasIndexto add. - Page-order maintenance: a save that adds many resources no longer walks the tree from each of them (2.4–3.1 s → 66–111 ms per statement for 1,000 inserts), and PostgreSQL JIT is off for the entry statements (one insert 165 ms → 1.6 ms at a million rows).
Validation
The release passed the complete GitHub matrix: build, website/docs, unit tests, core SQL integration tests, example-app integration tests, Todo integration tests, merged coverage, and coverage threshold.
- Hosted owned-app flow validated
- Headless owned-app flow validated
- Portable CIMD flow validated
- Compatibility DCR flow validated
- Protected-resource metadata and audience validation validated
Full changelog: v10.0.0...v11.0.0