RE: Streaming decoding fails with "unexpected table_index_fetch_tuple call during logical decoding" when a relation has a TOASTed conbin (follow-up to BUG #18641)

From: "Hayato Kuroda (Fujitsu)" <kuroda(dot)hayato(at)fujitsu(dot)com>
To: 'Jiří Kavalík' <jiri(dot)kavalik(at)comgate(dot)cz>
Cc: pgsql-bugs <pgsql-bugs(at)lists(dot)postgresql(dot)org>
Subject: RE: Streaming decoding fails with "unexpected table_index_fetch_tuple call during logical decoding" when a relation has a TOASTed conbin (follow-up to BUG #18641)
Date: 2026-10-06 09:21:59
Message-ID: TY5PR01MB18314D78378E3EB0468D5F368F5952@TY5PR01MB18314.jpnprd01.prod.outlook.com
Views: Whole Thread | Raw Message | Download mbox | Resend email
Thread:
Lists: pgsql-bugs

Hi Jiří,

Thanks for the test. I understood that no issues were found for now.

> One question while reading the patch, not a problem I could trigger: the depth
> is incremented in systable_beginscan* and decremented in systable_endscan* only
> if CheckXidAlive is valid, and that is evaluated separately at each end. If
> CheckXidAlive changed while a scan was open, the counter would be off by one.
> I could not find a path where that happens. Error paths look fine, since
> AbortTransaction/AbortSubTransaction call ResetLogicalStreamingState(). If a
> SysScanDesc field is acceptable despite the header concern, remembering in the
> scan whether it was counted would make the pairing explicit.

Hmm, I'm not excited to modify the exposed data structure yet, unless there is a
real issue. Per my analysis, SysScanDescData only contains pointers (8 bytes),
it does not have any paddings. This meant we need to modify a size of the data
structure, it might cause failures somewhere.
Also, the existing code has the same possibility while turning on/off bsysscan,
right? So I feel it's already accepted.
(Of course, we must fix if it causes a real failure)

Best regards,
Hayato Kuroda
FUJITSU LIMITED

In response to

Responses

Browse pgsql-bugs by date

  From Date Subject
Next Message Jiří Kavalík 2026-10-06 09:33:40 Re: Streaming decoding fails with "unexpected table_index_fetch_tuple call during logical decoding" when a relation has a TOASTed conbin (follow-up to BUG #18641)
Previous Message Narayanan Venkateswaran 2026-10-06 06:02:39 Re: BUG #19737: Empty `JSON_OBJECT` cannot use documented `ON NULL` or unique-key clauses