Skip to content

SqlOS 11.0.0

Choose a tag to compare

@ross-slaney ross-slaney released this 15 Oct 21:39
· 10 commits to main since this release
8fad929

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 IHasResourceId entity, plus its primary key, is a page order. Indexes containing ResourceId and indexes equal to a foreign key are lookups and get no copy (#523, #524).
  • Breaking: HasPageOrder is removed. Replace entity.HasPageOrder(p => p.Price) with entity.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 HasIndex to 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

Read the release article

Full changelog: v10.0.0...v11.0.0