Thread: 8.4 path to repair_frag()?

8.4 path to repair_frag()?

From
Tom Lanyon
Date:
Hi all,

To satisfy my own curiosity, I was trying to find where 8.4 kicks into a backwards scan of the data file during
(auto-)vacuuming.

This appears to be repair_frag() in backend/commands/vacuum.c, but only appears to be called by a FULL vacuum.
Autovacuum,however, appears to explicitly only ever call a not-FULL vacuum, so I'm trying to see where and how it would
bepossible for autovacuum to trigger this operation.  Any pointers? 

Thanks,
Tom



Re: 8.4 path to repair_frag()?

From
Alvaro Herrera
Date:
Excerpts from Tom Lanyon's message of mié abr 18 12:44:11 -0300 2012:
> Hi all,
>
> To satisfy my own curiosity, I was trying to find where 8.4 kicks into a backwards scan of the data file during
(auto-)vacuuming.
>
> This appears to be repair_frag() in backend/commands/vacuum.c, but only appears to be called by a FULL vacuum.
Autovacuum,however, appears to explicitly only ever call a not-FULL vacuum, so I'm trying to see where and how it would
bepossible for autovacuum to trigger this operation.  Any pointers? 

See lazy_truncate_heap in vacuumlazy.c.

--
Álvaro Herrera <alvherre@commandprompt.com>
The PostgreSQL Company - Command Prompt, Inc.
PostgreSQL Replication, Consulting, Custom Development, 24x7 support