v4.4.0
Wave-3 implementation (leased to and delivered by the fleet's HDB session) and
round-3 declarative-partitioning Stage 0:
- PARTITION BY support (Stage 0) — PostgreSQL declarative-partitioning DDL
is now accepted:CREATE TABLE … PARTITION BY RANGE/LIST/HASHparents
(including multi-column, expression, and opclass keys),CREATE TABLE … PARTITION OF … FOR VALUES/DEFAULTchildren (columns cloned from the
parent), andATTACH/DETACH PARTITIONas accepted no-ops.DROP TABLE parentcascades to its partition children (PG parity);
pg_class.relpartboundis present (NULL). Stage-0 semantics: each child
is an independent table — INSERT into the parent is not routed and SELECT
from the parent does not union children yet (Stage 1). Measured on the
PG regression corpus: +1,427 statements flip to passing. - Version-copy elision — new
[storage] elide_latest_version(default
off): the latest row version lives only indata:, cutting single-INSERT
version-write volume from 65% to 41% of bytes. One-way door: once
enabled on a data dir, downgrade requires dump/restore. - Statement retry on write conflicts —
[locks] statement_retry_max
(default 0 = off) auto-retries autocommit statements that hit the typed
SQLSTATE 40001 write conflict; backoff knobs included. - Snapshot schema evolution —
[storage] snapshot_schema_evolutionnow
defaults to"null_pad": reads through a snapshot taken before anALTER TABLE ADD/DROP COLUMNreturn isolation-correct NULL-padded/truncated rows
instead of erroring. Set"strict"to restore the previous error behavior. [locks] timeout_msis now genuinely wired to the lock manager
(previously orphaned); default 1000 preserves the prior effective bound.- Fix (durability): the fast-INSERT row counter is flushed at clean
shutdown — prevents silent row overwrites on reopen after short sessions in
relaxed-WAL mode (crash-path reseed tracked separately). - COPY constraint batching: ART maintenance batched per-table; CHECK
expressions evaluated via a batched path (constrained-COPY follow-up from
the Wave-3 measurements).