Thread

  1. Re: Proposal: Conflict log history table for Logical Replication

    Amit Kapila <amit.kapila16@gmail.com> — 2026-05-28T23:41:34Z

    On Thu, May 21, 2026 at 9:51 PM Nisha Moond <nisha.moond412@gmail.com> wrote:
    >
    > On Wed, May 20, 2026 at 3:05 PM vignesh C <vignesh21@gmail.com> wrote:
    > >
    > > Rest of the comments were fixed.
    > > The attached v37 version patch has the changes for the same. Also
    > > Peter's comments on the documentation patch from [1] and Shveta's
    > > comments from [2] are addressed in the attached patch.
    > >
    >
    > Here are few comments based on v37 testing:
    >
    > 1) Should we consider using TOAST tables for tuple-data columns like
    > remote_tuple and local_conflicts (the JSON columns)?
    > This may be a corner case, but if the tuple data becomes too large to
    > fit into an 8KB heap tuple, then the apply worker keeps failing while
    > inserting into the CLT with errors like:
    >
    >   ERROR: row is too big: size 19496, maximum size 8160
    >   LOG: background worker "logical replication apply worker" (PID
    > 41226) exited with exit code 1
    >
    
    In the docs, it is mentioned: "column_value is the column value. The
    large column values are truncated to 64 bytes." [1], so I wonder, if
    we follow this why we need toast entries? Did you tried any case where
    you are getting above ERROR?
    
    > Noticed that even disable_on_error=true does not disable the
    > subscription in this case.
    >
    
    Hmm, I think we need to have a documented reason if such a case
    doesn't disable the subscription with the disable_on_error as true?
    
    
    [1]: https://www.postgresql.org/docs/devel/logical-replication-conflicts.html
    
    -- 
    With Regards,
    Amit Kapila.