v4.5.0
Real schema support:
- Schemas coexist — same-named tables in different schemas are now
distinct objects (a.tandb.tno longer collide). Public-schema
behavior and existing data directories are unchanged (fully backward
compatible). search_pathis honored per session —SET/SHOW/RESET search_path
work over the wire and embedded; bare names resolve to the session's
schema, falling back to public; connection isolation guaranteed (two
connections with different search_paths cannot see each other's
resolution).- Schema DDL —
CREATE SCHEMA [IF NOT EXISTS]registers (duplicates
error);DROP SCHEMA [IF EXISTS] … RESTRICT|CASCADE(cascade drops member
tables, composing with the partition-child cascade);ALTER TABLE … SET SCHEMAmoves tables between schemas. - Deferred constraints —
SET CONSTRAINTS {ALL|names} {DEFERRED| IMMEDIATE}implemented (wire + embedded); column-levelINITIALLY DEFERREDhonored; deferred FK checks validate at COMMIT and evaporate if
the referenced table was dropped in-transaction (PG parity). - Introspection —
information_schemareports realtable_schema
values;pg_class.relnamestays bare. - Fix (wrong-data, pre-existing): the first
INSERTafter any
ALTER TABLE … RENAMEsilently overwrote the oldest row (volatile row
counter was not migrated with the rename). - Fix (pre-existing): cross-type foreign keys (e.g.
int8child
referencingint4parent) reported phantom violations on the indexed
fast path; probe values now coerce to the referenced columns' types. - Measured on the PG regression corpus: +158 statements flip to passing;
~60 prior "passes" that depended on cross-schema name collisions now
correctly error (they were silently operating on the wrong tables).