DT <kurt023@hotmail.com> wrote:
> I'm reading code of ALTER TABLE, and I found when target table
> needs rewrite, tuple inserted into new heap uses current
> transaction's xid as xmin.
That sure sounds wrong to me.
> Does this behavior satisfy serializable isolation? I wrote some
> test cases:
>
> [ Examples shows that both SERIALIZABLE and REPEATABLE READ
> transactions could see an empty table which was not empty as of
> the point the snapshot was taken. For that matter, it was not
> empty at any later point, either. ]
Why don't we rewrite tuples with their existing xid in such cases?
The current state of affairs seem to me to be a pretty clear bug.
--
Kevin Grittner
EDB: http://www.enterprisedb.com
The Enterprise PostgreSQL Company