]> git.ipfire.org Git - thirdparty/postgresql.git/commit
Make gistvacuumcleanup() count the actual number of index tuples.
authorTom Lane <tgl@sss.pgh.pa.us>
Fri, 2 Mar 2018 16:22:42 +0000 (11:22 -0500)
committerTom Lane <tgl@sss.pgh.pa.us>
Fri, 2 Mar 2018 16:22:42 +0000 (11:22 -0500)
commit529137cac9a8f0db6cca23a5c305b533cd2dd880
tree58fc46c9cab0f94b812d2bc9609990fb423540e6
parent8e25be4859783f0971c5a1b9f9d12bcea18c59ec
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
src/backend/access/gist/gistvacuum.c