mirror of
https://github.com/postgres/postgres.git
synced 2025-04-25 21:42:33 +03:00
Fix serious performance bug in new implementation of VACUUM FULL:
cluster_rel necessarily builds an all-new toast table, so it's useless to then go and VACUUM FULL the toast table.
This commit is contained in:
parent
dfc902854a
commit
9184cc7dab
@ -14,7 +14,7 @@
|
||||
*
|
||||
*
|
||||
* IDENTIFICATION
|
||||
* $PostgreSQL: pgsql/src/backend/commands/vacuum.c,v 1.405 2010/02/08 04:33:53 tgl Exp $
|
||||
* $PostgreSQL: pgsql/src/backend/commands/vacuum.c,v 1.406 2010/02/08 16:50:21 tgl Exp $
|
||||
*
|
||||
*-------------------------------------------------------------------------
|
||||
*/
|
||||
@ -938,9 +938,10 @@ vacuum_rel(Oid relid, VacuumStmt *vacstmt, bool do_toast, bool for_wraparound,
|
||||
|
||||
/*
|
||||
* Remember the relation's TOAST relation for later, if the caller asked
|
||||
* us to process it.
|
||||
* us to process it. In VACUUM FULL, though, the toast table is
|
||||
* automatically rebuilt by cluster_rel so we shouldn't recurse to it.
|
||||
*/
|
||||
if (do_toast)
|
||||
if (do_toast && !(vacstmt->options & VACOPT_FULL))
|
||||
toast_relid = onerel->rd_rel->reltoastrelid;
|
||||
else
|
||||
toast_relid = InvalidOid;
|
||||
|
Loading…
x
Reference in New Issue
Block a user