> One imho important (not necessarily mandatory) aspect of HOT
> is, that it does parts of what vacuum would usually do.
>
> Thus:
> 1. resume, load ctid list
> 2. continue filling ctid list
> 3. remove index tuples for these ctids (* problem *)
>
> You have just removed index entries for possibly now live
> tuples that have been reused by HOT.
Sorry my error, this is no problem, since HOT can only reuse a slot that
has no direct index entries (part of an old HOT chain).
So with HOT it is only important, that the 1st heap scan ignores
(does not add to the list) HOT chained tuples.
So, I still don't feel comfortable with the idea of breaking the
visibility rules (using a ctid that is days old and globalxmin not
knowing), even if I do not currently see a direct problem that cannot be
worked around (like removing all lists upon startup recovery).
Andreas