Hiroshi Inoue <Inoue(at)tpf(dot)co(dot)jp> writes:
> Currently PostgreSQL ignores the update/deleted
> tuples from the first which don't satisfy the
> qualification at the point of snapshot.
It does? It looks to me like we use SnapshotDirty time qual check
and wait for any uncommitted transaction. This essentially means
that we use "latest committed" state, not the query-start snapshot.
Look at _bt_check_unique in nbtinsert.c.
regards, tom lane