Re: SerializableSnapshot removed from postgresql 8.4

From: Jeff Davis <pgsql(at)j-davis(dot)com>
To: Duarte Fonseca <dfonseca(at)identitynetworks(dot)com>
Cc: pgsql-general(at)postgresql(dot)org
Subject: Re: SerializableSnapshot removed from postgresql 8.4
Date: 2011-07-13 18:33:53
Message-ID: 1310582033.3012.283.camel@jdavis
Views: Raw Message | Whole Thread | Download mbox | Resend email
Thread:
Lists: pgsql-general

On Wed, 2011-07-13 at 18:10 +0100, Duarte Fonseca wrote:
> Hi list,
>
> I'm currently upgrading from Postgresql 8.1 to 8.4 one of the steps of the process for me involves compiling the replication toolkit we use against 8.4.
>
> I've just run into a problem since this replication code references SerializableSnapshot which as been removed in 8.4, i was wondering what should our code use instead, I found a thread[1] in the hackers mailing list where GetActiveSnapshot() was recommended, i would greatly appreciate it if someone could point me in the right direction on this.
>
>
> The code in question goes something like:
>
> if (SerializableSnapshot == NULL)
> elog(ERROR, "SerializableSnapshot is NULL ");
>
> // Return the minxid from the current snapshot
> PG_RETURN_TRANSACTIONID(SerializableSnapshot->xmin);

I believe that equivalent code in 8.4 would look something like:

if (!IsXactIsoLevelSerializable || !ActiveSnapshotSet())
elog(ERROR, "Could not find serializable snapshot");

PG_RETURN_TRANSACTIONID(GetActiveSnpashot()->xmin);

However, be careful! Some of this code changes again in 9.1. In 9.1, you
probably want to look for the "repeatable read" transaction.

Regards,
Jeff Davis

In response to

Responses

Browse pgsql-general by date

  From Date Subject
Next Message Giuseppe Sacco 2011-07-13 19:15:58 Re: About permissions on large objects
Previous Message Chris Travers 2011-07-13 17:19:37 Re: Using LDAP roles in PostgreSQL