]> granicus.if.org Git - postgresql/commit
I've run across a pretty serious problem with pg_autovacuum.
authorBruce Momjian <bruce@momjian.us>
Mon, 1 Dec 2003 23:19:33 +0000 (23:19 +0000)
committerBruce Momjian <bruce@momjian.us>
Mon, 1 Dec 2003 23:19:33 +0000 (23:19 +0000)
commitea4b9f14f3a5e4edb0120bae412de505a36a06b6
treeea11b83f871ff6d9befd85e72bd51a7b92865abf
parent2712ca771d4a1392a73948d3a269e14d0cec74f2
I've run across a pretty serious problem with pg_autovacuum.
pg_autovacuum looses track of any table that's ever been truncated
(possibly other situations too).   When i truncate a table it gets a
new relfilenode in pg_class.  This is a problem because pg_autovacuum
assumes pg_class.relfilenode will join to pg_stats_all_tables.relid.
pg_stats_all_tables.relid is actallly the oid from pg_class, not the
relfilenode.   These two values start out equal so pg_autovacuum works
initially, but it fails later on because of this incorrect assumption.

This patch fixes that problem.  Applied to HEAD and 7.4.X.

Brian Hirt
contrib/pg_autovacuum/pg_autovacuum.c
contrib/pg_autovacuum/pg_autovacuum.h