diff options
| author | Heikki Linnakangas <heikki.linnakangas@iki.fi> | 2008-12-04 11:42:24 +0000 |
|---|---|---|
| committer | Heikki Linnakangas <heikki.linnakangas@iki.fi> | 2008-12-04 11:42:24 +0000 |
| commit | 7537f52a00acb0a2be60a90d9ec384c5935a1695 (patch) | |
| tree | f658914827190e0b65c9b8551a1776d8e8c70bfb /src/backend/commands/vacuumlazy.c | |
| parent | 69b3383cfbbd82ef8a7a92a96f2a70388c13db2a (diff) | |
| download | postgresql-7537f52a00acb0a2be60a90d9ec384c5935a1695.tar.gz | |
Utilize the visibility map in autovacuum, too. There was an oversight in
the visibility map patch that because autovacuum always sets
VacuumStmt->freeze_min_age, visibility map was never used for autovacuum,
only for manually launched vacuums. This patch introduces a new scan_all
field to VacuumStmt, indicating explicitly whether the visibility map
should be used, or the whole relation should be scanned, to advance
relfrozenxid. Anti-wraparound vacuums still need to scan all pages.
Diffstat (limited to 'src/backend/commands/vacuumlazy.c')
| -rw-r--r-- | src/backend/commands/vacuumlazy.c | 11 |
1 files changed, 2 insertions, 9 deletions
diff --git a/src/backend/commands/vacuumlazy.c b/src/backend/commands/vacuumlazy.c index d389123a3e..b661fe3980 100644 --- a/src/backend/commands/vacuumlazy.c +++ b/src/backend/commands/vacuumlazy.c @@ -29,7 +29,7 @@ * * * IDENTIFICATION - * $PostgreSQL: pgsql/src/backend/commands/vacuumlazy.c,v 1.112 2008/12/03 13:05:22 heikki Exp $ + * $PostgreSQL: pgsql/src/backend/commands/vacuumlazy.c,v 1.113 2008/12/04 11:42:23 heikki Exp $ * *------------------------------------------------------------------------- */ @@ -143,7 +143,6 @@ lazy_vacuum_rel(Relation onerel, VacuumStmt *vacstmt, BlockNumber possibly_freeable; PGRUsage ru0; TimestampTz starttime = 0; - bool scan_all; pg_rusage_init(&ru0); @@ -169,15 +168,9 @@ lazy_vacuum_rel(Relation onerel, VacuumStmt *vacstmt, /* Open all indexes of the relation */ vac_open_indexes(onerel, RowExclusiveLock, &nindexes, &Irel); vacrelstats->hasindex = (nindexes > 0); - - /* Should we use the visibility map or scan all pages? */ - if (vacstmt->freeze_min_age != -1) - scan_all = true; - else - scan_all = false; /* Do the vacuuming */ - lazy_scan_heap(onerel, vacrelstats, Irel, nindexes, scan_all); + lazy_scan_heap(onerel, vacrelstats, Irel, nindexes, vacstmt->scan_all); /* Done with indexes */ vac_close_indexes(nindexes, Irel, NoLock); |
