Alvaro Herrera <[EMAIL PROTECTED]> writes: > In any case, at that point we are mostly done with the expensive steps > of vacuuming, so the transaction finishes not long after this. I don't > think this issue is worth inventing a new invalidation mechanism.
Yeah, I agree --- there are only a few catalog updates left to do after we truncate. If we held the main-table exclusive lock while vacuuming the TOAST table, we'd have a problem, but it looks to me like we don't. Idle thought here: did anything get done with the idea of decoupling main-table vacuum decisions from toast-table vacuum decisions? vacuum.c comments * Get a session-level lock too. This will protect our access to the * relation across multiple transactions, so that we can vacuum the * relation's TOAST table (if any) secure in the knowledge that no one is * deleting the parent relation. and it suddenly occurs to me that we'd need some other way to deal with that scenario if autovac tries to vacuum toast tables independently. Also, did you see the thread complaining that autovacuums block CREATE INDEX? This seems true given the current locking definitions, and it's a bit annoying. Is it worth inventing a new table lock type just for vacuum? regards, tom lane ---------------------------(end of broadcast)--------------------------- TIP 1: if posting/reading through Usenet, please send an appropriate subscribe-nomail command to [EMAIL PROTECTED] so that your message can get through to the mailing list cleanly