Thanks for the response, Tom. I think that's exactly what's going on here.
On Wed, Aug 3, 2022 at 11:28 AM Tom Lane <t...@sss.pgh.pa.us> wrote: > Adrian Klaver <adrian.kla...@aklaver.com> writes: > > On 8/3/22 08:09, Kevin Martin wrote: > >> I thought that any UPDATE message in the replication logs is designed > to > >> include all values for all columns. Is that correct? > > Buried deep in the wire protocol specification is this bit: > > ---- > The following message parts are shared by the above messages. > > TupleData > > Int16 > Number of columns. > > Next, one of the following submessages appears for each column (except > generated columns): > > ... > > Byte1('u') > Identifies unchanged TOASTed value (the actual value is not sent). > ---- > > So that right there is two cases where we omit data for a column. > I suspect the "unchanged toasted data" case is what matters for > your purposes. Maybe you've found some code that fails to implement > that correctly? > > regards, tom lane >