Simon Riggs wrote:
>
> 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.
Thank you for the clarification; I know understand. Patch attached and
applied.
--
Bruce Momjian <bruce@momjian.us> http://momjian.us
EnterpriseDB http://enterprisedb.com
+ If your life is a hard drive, Christ can be your backup. +
Index: doc/src/sgml/func.sgml
===================================================================
RCS file: /cvsroot/pgsql/doc/src/sgml/func.sgml,v
retrieving revision 1.468
diff -c -c -r1.468 func.sgml
*** doc/src/sgml/func.sgml 8 Jan 2009 00:44:18 -0000 1.468
--- doc/src/sgml/func.sgml 8 Jan 2009 14:45:57 -0000
***************
*** 12473,12479 ****
<row>
<entry><literal><function>txid_visible_in_snapshot</function>(<parameter>bigint</parameter>,
<parameter>txid_snapshot</parameter>)</literal></entry>
<entry><type>boolean</type></entry>
! <entry>is transaction ID visible in snapshot?</entry>
</row>
</tbody>
</tgroup>
--- 12473,12479 ----
<row>
<entry><literal><function>txid_visible_in_snapshot</function>(<parameter>bigint</parameter>,
<parameter>txid_snapshot</parameter>)</literal></entry>
<entry><type>boolean</type></entry>
! <entry>is transaction ID visible in snapshot? (do not use with subtransaction ids)</entry>
</row>
</tbody>
</tgroup>