Qingqing Zhou <zhouqq.postgres@gmail.com> writes:
> Not sure if I understand correctly: in uniqueness check, we see all
> possible tuples with a dirty snapshot. For a tuple version inserted
> and updated by myself, it is surely dead no matter how the transaction
> ends. So I interpret that we can safely pruning the version.
It may be dead in the future, but unless you can prove that your session
does not still contain a snapshot that could "see" the row, you can't
prune it. Considering only the current query is a fundamental error.
regards, tom lane