Skip to content

chore: release 1.0.0-rc.12 - #178

Merged
aesslinger merged 1 commit into
mainfrom
chore/release-rc.12
Oct 23, 2026
Merged

aesslinger merged 1 commit into
mainfrom
chore/release-rc.12

Conversation

@aesslinger

Copy link
Copy Markdown
Collaborator

Bumps version to 1.0.0-rc.12 in Cargo.toml, Cargo.lock, .tabularium, and CHANGELOG.md.

Included since rc.11

Fixed:

Known limitations (tracked as follow-ups, not regressions vs. the builtin):

Verification

Follow-ups filed: #170 (direct-path .ok() swallow / timeout asymmetry), #171 (stale composite type cache), #175 (real-PgBouncer bare-batch), #177 (server-ignores-cancel worker-abort).

Bumps version to 1.0.0-rc.12 in Cargo.toml, Cargo.lock, .tabularium, and
CHANGELOG.md.

### Included since rc.11

**Fixed:**
- Direct-connection result-set queries on non-builtin column types (custom
  enum/composite/domain/range/extension types) no longer hang on large
  results (#166, #168) — pre-resolves column types via `prepare` on the
  shared cached client before the `query_typed` data fetch (the rc.11 fix
  only covered the transaction-pooler path)
- Batch / interactive-transaction-session result-set queries on a
  transaction-mode pooler no longer deadlock on wide non-builtin-typed
  tables (#169, #172) — `run_batch_in_session` now makes the same per-query
  routing decision as the single-query path (in_transaction pre-resolves on
  the shared client; no open transaction routes to the one-shot pinned path)
- A bare batch (no `session_id`, no `BEGIN`) that sets session-local state
  earlier (a session `SET` or `CREATE TEMP[ORARY] TABLE`) then runs a
  result-set `SELECT` no longer silently loses that state on a
  `pooler_mode = transaction` connection (#173, #174) — the rc.11 #172 fix
  routed the SELECT to a fresh one-shot that never saw the SET/temp table;
  the fix keeps the SELECT on the shared batch client with a pre-resolve,
  restoring main's within-batch guarantee (handles GLOBAL/LOCAL TEMP,
  excludes SET LOCAL / SET TRANSACTION / SET CONSTRAINTS)
- A slow or hung query no longer starves `ping`/`test_connection`/
  `initialize`/`shutdown` and the `cancel` notification for every
  connection (#167, #176) — RPCs are routed by method into three lanes
  before a worker pulls the line: a dedicated cancel lane (the relief
  valve, never queued behind the workers it relieves), a 2-worker lifecycle
  lane, and the existing 4-worker general lane; the SHUTDOWN_GRACE drain
  (#155) covers all lanes' worker handles

**Known limitations (tracked as follow-ups, not regressions vs. the builtin):**
- A bare [SET, SELECT] / [CREATE TEMP TABLE, SELECT] batch on a *real*
  PgBouncer (pool_mode = transaction) can still lose session state between
  autocommit statements and, in rare cases with non-builtin types under
  reassignment during the pre-resolve prepare, can hang (#175) — wrap such
  batches in BEGIN/COMMIT; the direct + pooler_mode=transaction flag config
  (the common use) is unaffected
- A composite type ALTER TYPE-ed (same OID, new field layout) on a recycled
  pooled connection can read a stale cached Type and produce wrong JSON for
  the composite's fields (#171) — pre-existing
  (tokio-postgres/deadpool cache-invalidation limitation); the rc.11/#168
  pre-resolve widened the cache-warming window but did not introduce the
  bug

Verified: 441 unit tests pass; cargo clippy --all-targets -- -D warnings
clean; markdownlint clean on CHANGELOG.md.
@aesslinger aesslinger added the prerelease:rc Version suggestion targets a release candidate label Oct 23, 2026
@aesslinger aesslinger self-assigned this Oct 23, 2026
@kilo-code-bot

kilo-code-bot Bot commented Oct 23, 2026

Copy link
Copy Markdown

Kilo Code Review could not run — your account is out of credits.

Add credits or switch to a free model to enable reviews on this change.

@aesslinger
aesslinger merged commit 1859c46 into main Oct 23, 2026
8 of 9 checks passed
@aesslinger
aesslinger deleted the chore/release-rc.12 branch October 23, 2026 17:58
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Labels

prerelease:rc Version suggestion targets a release candidate

Projects

None yet

Development

Successfully merging this pull request may close these issues.

1 participant