Thread: pgsql: Make gistvacuumcleanup() count the actual number of indextuples

pgsql: Make gistvacuumcleanup() count the actual number of indextuples

From
Tom Lane
Date:
Make gistvacuumcleanup() count the actual number of index tuples.

Previously, it just returned the heap tuple count, which might be only an
estimate, and would be completely the wrong thing if the index is partial.
Since this function scans every index page anyway to find free pages,
it's practically free to count the surviving index tuples.  Let's do that
and return an accurate count.

This is easily visible as a wrong reltuples value for a partial GiST
index following VACUUM, so back-patch to all supported branches.

Andrey Borodin, reviewed by Michail Nikolaev

Discussion: https://postgr.es/m/151956654251.6915.675951950408204404.pgcf@coridan.postgresql.org

Branch
------
master

Details
-------
https://git.postgresql.org/pg/commitdiff/81b9b5ce490a645bde8df203ec4a3b2903d88f31

Modified Files
--------------
src/backend/access/gist/gistvacuum.c | 19 +++++++++----------
1 file changed, 9 insertions(+), 10 deletions(-)