• Alvaro Herrera's avatar
    Set pg_class.reltuples for partitioned tables · 0e69f705
    Alvaro Herrera authored
    When commit 0827e8af added auto-analyze support for partitioned
    tables, it included code to obtain reltuples for the partitioned table
    as a number of catalog accesses to read pg_class.reltuples for each
    partition.  That's not only very inefficient, but also problematic
    because autovacuum doesn't hold any locks on any of those tables -- and
    doesn't want to.  Replace that code with a read of pg_class.reltuples
    for the partitioned table, and make sure ANALYZE and TRUNCATE properly
    maintain that value.
    
    I found no code that would be affected by the change of relpages from
    zero to non-zero for partitioned tables, and no other code that should
    be maintaining it, but if there is, hopefully it'll be an easy fix.
    
    Per buildfarm.
    
    Author: Álvaro Herrera <alvherre@alvh.no-ip.org>
    Reviewed-by: default avatarZhihong Yu <zyu@yugabyte.com>
    Discussion: https://postgr.es/m/1823909.1617862590@sss.pgh.pa.us
    0e69f705
analyze.c 91.7 KB