• Tom Lane's avatar
    Improve the IndexVacuumInfo/IndexBulkDeleteResult API to allow somewhat sane · 32ea2363
    Tom Lane authored
    behavior in cases where we don't know the heap tuple count accurately; in
    particular partial vacuum, but this also makes the API a bit more useful
    for ANALYZE.  This patch adds "estimated_count" flags to both structs so
    that an approximate count can be flagged as such, and adjusts the logic
    so that approximate counts are not used for updating pg_class.reltuples.
    
    This fixes my previous complaint that VACUUM was putting ridiculous values
    into pg_class.reltuples for indexes.  The actual impact of that bug is
    limited, because the planner only pays attention to reltuples for an index
    if the index is partial; which probably explains why beta testers hadn't
    noticed a degradation in plan quality from it.  But it needs to be fixed.
    
    The whole thing is a bit messy and should be redesigned in future, because
    reltuples now has the potential to drift quite far away from reality when
    a long period elapses with no non-partial vacuums.  But this is as good as
    it's going to get for 8.4.
    32ea2363
nbtree.c 26.2 KB