• Tom Lane's avatar
    Fix handling of pgstat counters for TRUNCATE in a prepared transaction. · 81e82a2b
    Tom Lane authored
    pgstat_twophase_postcommit is supposed to duplicate the math in
    AtEOXact_PgStat, but it had missed out the bit about clearing
    t_delta_live_tuples/t_delta_dead_tuples for a TRUNCATE.
    
    It's harder than you might think to replicate the issue here, because
    those counters would only be nonzero when a previous transaction in
    the same backend had added/deleted tuples in the truncated table,
    and those counts hadn't been sent to the stats collector yet.
    
    Evident oversight in commit d42358ef.  I've not added a regression
    test for this; we tried to add one in d42358ef, and had to revert it
    because it was too timing-sensitive for the buildfarm.
    
    Back-patch to 9.5 where d42358ef came in.
    
    Stas Kelvich
    
    Discussion: <EB57BF68-C06D-4737-BDDC-4BA778F4E62B@postgrespro.ru>
    81e82a2b
pgstat.c 151 KB