• Tom Lane's avatar
    Fix construction of updated-columns bitmap in logical replication. · d5daae47
    Tom Lane authored
    Commit b9c130a1 failed to apply the publisher-to-subscriber column
    mapping while checking which columns were updated.  Perhaps less
    significantly, it didn't exclude dropped columns either.  This could
    result in an incorrect updated-columns bitmap and thus wrong decisions
    about whether to fire column-specific triggers on the subscriber while
    applying updates.  In HEAD (since commit 9de77b54), it could also
    result in accesses off the end of the colstatus array, as detected by
    buildfarm member skink.  Fix the logic, and adjust 003_constraints.pl
    so that the problem is exposed in unpatched code.
    
    In HEAD, also add some assertions to check that we don't access off
    the ends of these newly variable-sized arrays.
    
    Back-patch to v10, as b9c130a1 was.
    
    Discussion: https://postgr.es/m/CAH2-Wz=79hKQ4++c5A060RYbjTHgiYTHz=fw6mptCtgghH2gJA@mail.gmail.com
    d5daae47
worker.c 57.3 KB