Skip to content

TX-SQL2 — Compose Institute networking and prove the production PostgreSQL provider #6

Description

@coenttb

Outcome

UNVERIFIED at provider head 36ae0c855280cf09f87ba940f5fc6dce1da2cfdd.

The provider composes public SQL e9d44cba50fccac90c8c751b0fa95b100aa7e9c8 and Pool Primitives b7c710c945b7c8467b4521c3a2d5b00539275593 directly. It owns Pool.Bounded<Session<Transport>>; the private Pools/Lease facade remains removed.

Scoped operations

Each non-cursor read, write, or rollback operation receives one sending move-only, non-Sendable handle in the database actor, borrows its session, and consumes the handle exactly once. Active success is reusable; any typed failure or cancellation is invalid. Checkout cancellation, shutdown, and creation failure remain typed. Shutdown drains the public bounded pool.

Escaping cursor ownership

SQL.Reader.cursor is the sole actor-to-caller move-only cursor seam. The database checks out exactly one handle, opens the portal through its borrowed session, and consumes the handle into SQL's generic Cursor context. Every element returns the sole continuation. Natural exhaustion and successful explicit close consume the handle reusable. Open, iteration, decoding, close, or cancellation failure consume it invalid. Dropping a live Cursor invokes the handle's synchronous abandon/drop law.

The old SQL.Connection.fetchCursor composition is removed. There is no second checkout, provider-local Cursor/context box, lifecycle gate, public with*, Task cleanup, Error-carried resource, copied lifecycle closure, SPI, trait, unchecked conformance, compatibility Lease facade, or new habitual @Sendable requirement.

Transport preservation

The direct transport remains frozen at TLS e27e99f5c841170593dde7b0396e9090a7515f62, DNS 930ab8b5dadc99d6c44b101d92422545b697db7d, Byte Channel dfc56d1ed173aae4db784018c746050cbfbe4ee7, and Sockets 3fad32626d347cbfc0e803496e7ad9c0e66162db. Singular identity, typed Count/Byte.Chunk, actor-region TLS Session transfer, event-backed IO, typed failures, and Session → Pump → runner close order are unchanged.

Exact changed paths

  • Package.swift
  • Sources/SQL Postgres Provider/Postgres.Provider.Database.swift
  • Sources/SQL Postgres Provider/Postgres.Provider.Connection.swift
  • Sources/SQL Postgres Provider/Postgres.Provider.Session.swift
  • Tests/SQL Postgres Provider Tests/Postgres.Provider.Production.Contracts.swift
  • README.md
  • Documentation/Production scenarios.md

No Pool Primitives, TLS, Sockets, DNS, workflow, or Package.resolved path changed.

Evidence status

UNVERIFIED. No build, test, resolve, update, clean, run, compose, verification, typecheck, lint, compiler probe, or CI read/watch/poll was performed under the source-only moratorium.

Depends on TX-SQL1. Parent: Provide Institute-native networking.

Metadata

Metadata

Assignees

Labels

No labels
No labels

Type

Projects

No projects

Milestone

No milestone

Relationships

None yet

Development

No branches or pull requests

Issue actions