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
>

Reply via email to