Re: Incorrect description of xmax and xip in functions docs

From: Simon Riggs <simon(at)2ndQuadrant(dot)com>
To: Bruce Momjian <bruce(at)momjian(dot)us>
Cc: pgsql-docs <pgsql-docs(at)postgresql(dot)org>, Jan Wieck <JanWieck(at)Yahoo(dot)com>
Subject: Re: Incorrect description of xmax and xip in functions docs
Date: 2009-01-08 08:19:19
Message-ID: 1231402759.18005.114.camel@ebony.2ndQuadrant
Views: Raw Message | Whole Thread | Download mbox | Resend email
Thread:
Lists: pgsql-docs


On Wed, 2009-01-07 at 20:30 -0500, Bruce Momjian wrote:

> > The only way is to document it.
>
> Sorry, I am just getting back to this. Why would we not know if
> something is a subtransaction or if subtransactions are supported? Are
> you assuming txid_visible_in_snapshot() will be used on different
> servers? What are these txid_* functions for anyway?

You can derive a snapshot and export it using txid_current_snapshot().
http://developer.postgresql.org/pgdocs/postgres/functions-info.html

You can then check whether an xid is in that snapshot by running
txid_visible_in_snapshot(). However, the check is done assuming that the
xid you are checking is a top-level xid and the answer you get is either
yes or no.

There is no allowance made that the xid supplied as a parameter value
may have been a subtrans of one of the top-level xids listed. So the
answer *ought* to have been true, whereas the function will always
return false.

We cannot extend txid_visible_in_snapshot() to answer correctly because
that information is not held within the snapshot datatype, nor is it
held in regular snapshots currently. So the only way to handle this is
to document the limited scope of the answer this function provides.

--
Simon Riggs www.2ndQuadrant.com
PostgreSQL Training, Services and Support

In response to

Responses

Browse pgsql-docs by date

  From Date Subject
Next Message Bruce Momjian 2009-01-08 14:46:26 Re: Incorrect description of xmax and xip in functions docs
Previous Message Bruce Momjian 2009-01-08 01:30:18 Re: Incorrect description of xmax and xip in functions docs