Gap
Physical/streaming replication and pg_basebackup have no test coverage. The extension WAL-logs into the relation main fork and uses custom SMGR redo (ColumnarTruncateMainFork, XLogInsert(RM_SMGR_ID…)). Standby replay requires the module loaded on the standby with the correct redo routines — a hazard the code comments in native_cancel.sh and wal_envelope.sh explicitly name. Yet wal_envelope.sh only structurally greps the C source for the WAL envelope; nothing stands up a replica and replays columnar WAL, and recovery.sh covers in-place crash redo but not base-backup + replay on a second cluster.
Why this blocks a public release
Most production PostgreSQL runs with a standby. If columnar WAL does not replay correctly on a standby (or pg_basebackup + start yields a corrupt or unreadable columnar table), that is silent divergence or data loss on failover. Acceptable in alpha only if "single-node only, no physical replication tested" is documented.
Suggested acceptance criteria
- A suite that: starts a primary with pgcolumnar preloaded,
pg_basebackup to a standby (module also preloaded), streams a columnar workload (insert/delete/compact/truncate), and asserts the standby's columnar tables match the primary after replay.
- Cover the SMGR-truncate redo path specifically (the envelope
wal_envelope.sh only greps).
Found in a release-readiness review; sibling of the pg_upgrade and format-compatibility issues.
Gap
Physical/streaming replication and
pg_basebackuphave no test coverage. The extension WAL-logs into the relation main fork and uses custom SMGR redo (ColumnarTruncateMainFork,XLogInsert(RM_SMGR_ID…)). Standby replay requires the module loaded on the standby with the correct redo routines — a hazard the code comments innative_cancel.shandwal_envelope.shexplicitly name. Yetwal_envelope.shonly structurally greps the C source for the WAL envelope; nothing stands up a replica and replays columnar WAL, andrecovery.shcovers in-place crash redo but not base-backup + replay on a second cluster.Why this blocks a public release
Most production PostgreSQL runs with a standby. If columnar WAL does not replay correctly on a standby (or
pg_basebackup+ start yields a corrupt or unreadable columnar table), that is silent divergence or data loss on failover. Acceptable in alpha only if "single-node only, no physical replication tested" is documented.Suggested acceptance criteria
pg_basebackupto a standby (module also preloaded), streams a columnar workload (insert/delete/compact/truncate), and asserts the standby's columnar tables match the primary after replay.wal_envelope.shonly greps).Found in a release-readiness review; sibling of the pg_upgrade and format-compatibility issues.