Tom Lane wrote:
>Hannu Krosing <hannu@tm.ee> writes:
>
>>But could we not make it so that rollback will also reset xmax and cmax
>>to 0.
>>
>
>We never have done that and I don't see why we should start.
>(And no, I'm not sure that it'd be entirely safe; there are
>concurrency/atomicity issues involved, because we do not
>insist on getting exclusive lock to set the it's-dead-Jim
>flag bit.)
>
>We could make the user readout of xmax/cmax be zeroes if the flag
>bits show they are invalid.
>
If there is a cheap way to get a list of pending transactions, then we
could make them
read out as 0 if they are about to be deleted (ie xmax in
pending_transactions()) and
else show the value of the transaction that is about to delete them.
>But this really just begs the question
>of what use they are to users in the first place. I can't see any;
>and if we make them read as zeroes then they for sure won't have any.
>
I can see some use for xmax user-visible only while being deleted.
At least this would be more useful than themeaning
last-trx-that-was-about-to-delete.
Another way for getting equivalent functionality would be to make the
pending_transactions() function available to users.
---------------
Hannu