Tom Lane wrote:
>
> "Hiroshi Inoue" <Inoue@tpf.co.jp> writes:
> >> I wonder whether there isn't a cleaner way to do this.
>
> > I think there exists another reason.
> > We couldn't delete index tuples for deleted but not yet committed
> > heap tuples.
>
> My first thought was "Good point". But my second was "why should
> vacuum need to deal with that case?". If vacuum grabs an exclusive
> lock on a relation, it should *not* ever see tuples with uncertain
> commit status, no?
What if vacuum will crash after deleting index tuples pointing
to heap tuples in old places but before commit? Index will
be broken.
Vadim