Re: SerializableSnapshot removed from postgresql 8.4
От | Jeff Davis |
---|---|
Тема | Re: SerializableSnapshot removed from postgresql 8.4 |
Дата | |
Msg-id | 1310582033.3012.283.camel@jdavis обсуждение исходный текст |
Ответ на | SerializableSnapshot removed from postgresql 8.4 (Duarte Fonseca <dfonseca@identitynetworks.com>) |
Ответы |
Re: SerializableSnapshot removed from postgresql 8.4
|
Список | 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 replicationtoolkit 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
В списке pgsql-general по дате отправления: