Skip to content

Tap 12765 - #887

Merged
jarad0628 merged 2 commits into
developfrom
TAP-12765
Aug 30, 2026
Merged

Tap 12765#887
jarad0628 merged 2 commits into
developfrom
TAP-12765

Conversation

@jarad0628

Copy link
Copy Markdown
Collaborator

No description provided.

jarad-bot added 2 commits August 29, 2026 14:56
Three fixes for TOASTed jsonb values arriving as null in wal_level=logical
physical-slot CDC:

1. HeapTupleDecoder: compressed TOAST values stored in the toast relation
   begin with the 4-byte va_tcinfo word (raw size) before the pglz stream;
   skip it before inflating, mirroring the inline 4B-header branch.

2. PhysicalWalLogMiner.fetchToastValue: the TOAST pointer stores the toast
   table's own OID, which can differ from the owning table's OID after a
   rebuild, so resolve the real relation name via pg_class instead of
   string-concatenating pg_toast_<oid>. Also surface diagnostics on failure.

3. PhysicalWalLogMiner: LOGICAL_FAST_DECODE_CTX was a static context without
   the instance toastFetcher, so wal_level=logical fast pre-decode resolved
   TOAST pointers to null. Made it an instance field initialized alongside
   decodeCtx with the toast fetcher wired in.

Tests: HeapTupleDecoderTest now feeds real-format (va_tcinfo + pglz) data;
HeapTupleDecoderTest/HeapRmgrDecoderTest/PglzTest all green, PhysicalWalLogMinerTest 82/82.
@jarad0628
jarad0628 requested a review from jackin-code as a code owner August 30, 2026 02:41
@jarad0628
jarad0628 merged commit 041de1b into develop Aug 30, 2026
@jarad0628
jarad0628 deleted the TAP-12765 branch August 30, 2026 02:42
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