• Amit Kapila's avatar
    Fix toast rewrites in logical decoding. · 9d7a80ce
    Amit Kapila authored
    Commit 325f2ec5 introduced pg_class.relwrite to skip operations on
    tables created as part of a heap rewrite during DDL. It links such
    transient heaps to the original relation OID via this new field in
    pg_class but forgot to do anything about toast tables. So, logical
    decoding was not able to skip operations on internally created toast
    tables. This leads to an error when we tried to decode the WAL for the
    next operation for which it appeared that there is a toast data where
    actually it didn't have any toast data.
    
    To fix this, we set pg_class.relwrite for internally created toast tables
    as well which allowed skipping operations on them during logical decoding.
    
    Author: Bertrand Drouvot
    Reviewed-by: David Zhang, Amit Kapila
    Backpatch-through: 11, where it was introduced
    Discussion: https://postgr.es/m/b5146fb1-ad9e-7d6e-f980-98ed68744a7c@amazon.com
    9d7a80ce
toast.out 26.3 KB