Skip to content

release: v0.4.7 — easy-wins sprint#86

Merged
zvndev merged 1 commit into
mainfrom
release/0.4.7
Jun 10, 2026
Merged

release: v0.4.7 — easy-wins sprint#86
zvndev merged 1 commit into
mainfrom
release/0.4.7

Conversation

@zvndev

@zvndev zvndev commented Jun 10, 2026

Copy link
Copy Markdown
Collaborator

v0.4.7 — Easy-Wins Sprint

Ships the six sprint features plus a remote DX fix caught by the pre-publish smoke.

Features

  • EXPLAIN shows the lowered plan — speculative RangeScan now displays as the executor actually runs it (RangeScan when indexed, SeqScan when not).
  • Indexed range scans — range inequalities (>, >=, <, <=) use B+tree indexes instead of falling back to full scans.
  • UNIQUE / PK constraintsunique field modifier, alter … add unique, enforced on insert/update/upsert; survives restart (WAL-replayed catalog). Breaking: upsert … on .field now requires a unique constraint on that field.
  • $N parameter binding over the wire — token-level placeholder binding ($1, $2), new QueryWithParams wire message, exposed via client.query(powql, params) in the TS client. Injection-inert and byte-faithful.
  • Multi-line REPL input — the CLI REPL accepts multi-line type/statement blocks.
  • Agent-DX falsification eval harnessscripts/agent-eval.

Fixes

  • Remote unique-violation message — added "unique constraint violation" to the server's SAFE_ERROR_PREFIXES allowlist so remote clients receive the actionable message instead of generic query execution error. +2 allowlist tests. (The constraint was always enforced; only the wire message was being sanitized.)
  • Oversized-row guard preserved through the new unindexed-update lowering path.

Verification

  • cargo test --workspace green; clippy -D warnings clean; fmt clean.
  • Pre-publish smoke (smoke47.sh) 17/17 ALL-PASS against freshly built release binaries — exercises unique constraints (embedded + kill-9 restart over the wire), indexed range + truthful EXPLAIN, live TS $N binding with an injection payload, multi-line REPL, oversized-row guard, and readonly enforcement.

🤖 Generated with Claude Code

…ation error message

- Bump workspace + inter-crate pins 0.4.6 → 0.4.7
- CHANGELOG [0.4.7]: EXPLAIN lowering, indexed range scans, UNIQUE/PK
  constraints, $N parameter binding over the wire, multi-line REPL,
  agent-DX eval harness; breaking upsert-requires-unique; oversized-row guard
- handler.rs: add "unique constraint violation" to SAFE_ERROR_PREFIXES so
  remote clients receive the actionable message (was sanitized to generic);
  +2 sanitize_error allowlist tests
- SECURITY.md supported-versions + user-facing version pins → 0.4.7

Co-Authored-By: Claude Fable 5 <noreply@anthropic.com>
@zvndev zvndev merged commit 408be65 into main Jun 10, 2026
7 checks passed
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Labels

None yet

Projects

None yet

Development

Successfully merging this pull request may close these issues.

1 participant