I started to look at this. I don't understand why VACUUM does an insert
cleanup before starting to vacuum, but VACUUM FULL doesn't?
Hmm. May be I missed something, but I don't understand where and what... I tried
to track all places of ambultdelete call. aminsertcleanup should be called
before any ambulkdelete, because ambulkdelete doesn't scan pending list which
can store items to be deleted and hence index will store item pointers to absent
tuples.
needed is the one at vacuum startup, which tempts me to propose that
the new AM entry point should be called "amvacuumstartup", instead of
wiring in the assumption that what it's for is specifically cleanup
of insertions.
That's possible but inserts into index should be forbidden between
amvacuumstartup and last call of ambulkdelete.
Comments? I can make the change if you think it's okay --- I'm busy
cleaning up docs and comments at the moment.
--
Teodor Sigaev E-mail: [EMAIL PROTECTED]
WWW: http://www.sigaev.ru/
--
Sent via pgsql-hackers mailing list ([email protected])
To make changes to your subscription:
http://www.postgresql.org/mailpref/pgsql-hackers