mirror of
https://github.com/postgres/postgres.git
synced 2025-08-24 09:27:52 +03:00
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.
This commit is contained in:
@@ -11,7 +11,7 @@
|
||||
*
|
||||
*
|
||||
* IDENTIFICATION
|
||||
* $PostgreSQL: pgsql/src/backend/parser/gram.y,v 2.641 2008/11/26 08:45:11 petere Exp $
|
||||
* $PostgreSQL: pgsql/src/backend/parser/gram.y,v 2.642 2008/12/04 11:42:24 heikki Exp $
|
||||
*
|
||||
* HISTORY
|
||||
* AUTHOR DATE MAJOR EVENT
|
||||
@@ -5837,6 +5837,7 @@ VacuumStmt: VACUUM opt_full opt_freeze opt_verbose
|
||||
n->analyze = false;
|
||||
n->full = $2;
|
||||
n->freeze_min_age = $3 ? 0 : -1;
|
||||
n->scan_all = $3;
|
||||
n->verbose = $4;
|
||||
n->relation = NULL;
|
||||
n->va_cols = NIL;
|
||||
@@ -5849,6 +5850,7 @@ VacuumStmt: VACUUM opt_full opt_freeze opt_verbose
|
||||
n->analyze = false;
|
||||
n->full = $2;
|
||||
n->freeze_min_age = $3 ? 0 : -1;
|
||||
n->scan_all = $3;
|
||||
n->verbose = $4;
|
||||
n->relation = $5;
|
||||
n->va_cols = NIL;
|
||||
@@ -5860,6 +5862,7 @@ VacuumStmt: VACUUM opt_full opt_freeze opt_verbose
|
||||
n->vacuum = true;
|
||||
n->full = $2;
|
||||
n->freeze_min_age = $3 ? 0 : -1;
|
||||
n->scan_all = $3;
|
||||
n->verbose |= $4;
|
||||
$$ = (Node *)n;
|
||||
}
|
||||
|
Reference in New Issue
Block a user