Gregory Stark wrote:
I thought we only pruned when we wanted to insert a new tuple and found not enough space.
Nope, we prune on any access to the page, if the page is "full enough", and the pd_prune_xid field suggests that there is something to prune.
The problem with only pruning on inserts is that by the time we get to heap_insert/heap_update, we're already holding a pin on the page, which prevents us from acquiring the vacuum lock.
-- Heikki Linnakangas EnterpriseDB http://www.enterprisedb.com -- Sent via pgsql-hackers mailing list (pgsql-hackers@postgresql.org) To make changes to your subscription: http://www.postgresql.org/mailpref/pgsql-hackers