Adrian Klaver <adrian.klaver@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?