I wrote: > And there's another problem: _bt_pagedel is designed to recurse > in certain improbable cases, but I think this is flat out wrong > when doing WAL replay --- if the original process did recurse > then it will have emitted a WAL record for each deleted page, > meaning replay would try to delete twice.
No, scratch that, I misread it: _bt_pagedel isn't invoked during WAL replay, but for cleanup of incomplete deletions at termination of WAL replay. So any recursing it has to do also corresponds to actions that weren't in WAL. So that's OK. I'm still concerned about the interlock against read-only transactions though. regards, tom lane -- Sent via pgsql-hackers mailing list (pgsql-hackers@postgresql.org) To make changes to your subscription: http://www.postgresql.org/mailpref/pgsql-hackers