On Thu, Mar 16, 2017 at 11:39 PM, Andrew Gierth <rhodiumt...@postgresql.org> wrote:
> Avoid having vacuum set reltuples to 0 on non-empty relations in the > presence of page pins, which leads to serious estimation errors in the > planner. This particularly affects small heavily-accessed tables, > especially where locking (e.g. from FK constraints) forces frequent > vacuums for mxid cleanup. > > Fix by keeping separate track of pages whose live tuples were actually > counted vs. pages that were only scanned for freezing purposes. Thus, > reltuples can only be set to 0 if all pages of the relation were > actually counted. > > Backpatch to all supported versions. > > Per bug #14057 from Nicolas Baccelli, analyzed by me. > > Discussion: https://postgr.es/m/20160331103739.8956.94469@ > wrigleys.postgresql.org > Congrats on your first commit!