On Tue, Feb 28, 2006 at 09:52:24AM +0200, Hannu Krosing wrote: > WHY does vacuum need to be a tranasction ? I thought it was a programmer > workload optimisation (aka. lazyness :) ) to require ordinary lazy > vacuum to be in transaction. > > There is no fundamental reason, why vacuum needs to run in a transaction > itselt.
AIUI, vacuum needs to take locks on tables and possibly wait on other transactions to complete. Similarly, other transactions may need to wait on the vacuum (DDL statements). The mechanism in postgres to clean up locks on crash and handle deadlock detection (I think) requires everybody to be running in a transaction, so vacuum does too... At least, that's what I thought, Have a nice day, -- Martijn van Oosterhout <kleptog@svana.org> http://svana.org/kleptog/ > Patent. n. Genius is 5% inspiration and 95% perspiration. A patent is a > tool for doing 5% of the work and then sitting around waiting for someone > else to do the other 95% so you can sue them.
signature.asc
Description: Digital signature