Re: [HACKERS] getting rid of SnapshotNow - Mailing list pgsql-odbc

From Andres Freund
Subject Re: [HACKERS] getting rid of SnapshotNow
Date
Msg-id 20130719130330.GI20525@alap2.anarazel.de
Whole thread Raw
In response to Re: [HACKERS] getting rid of SnapshotNow  ("Inoue, Hiroshi" <inoue@tpf.co.jp>)
Responses Re: [HACKERS] getting rid of SnapshotNow  (Hiroshi Inoue <inoue@tpf.co.jp>)
List pgsql-odbc
On 2013-07-19 08:57:01 +0900, Inoue, Hiroshi wrote:
> >>I had the idea they were used for a client-side implementation of WHERE
> >>CURRENT OF.  Perhaps that's dead code and could be removed entirely?
> >
> >It's been reported that ODBC still uses them.
>
> Though PostgreSQL's TID is similar to Orale's ROWID, it is transient
> and changed after update operations unfortunately. I implemented
> the currtid_xx functions to supplement the difference. For example
>
>     currtid(relname, original tid)
>
> (hopefully) returns the current tid of the original row when it is
> updated.

That is only guaranteed to work though when you're in a transaction old
enough to prevent removal of the old or intermediate row versions. E.g.
BEGIN;
INSERT INTO foo...; -- last tid (0, 1)
COMMIT;
BEGIN;
SELECT currtid(foo, '(0, 1'));
COMMIT;

can basically return no or even an arbitrarily different row. Same with
an update...

Greetings,

Andres Freund

--
 Andres Freund                       http://www.2ndQuadrant.com/
 PostgreSQL Development, 24x7 Support, Training & Services


pgsql-odbc by date:

Previous
From: Robert Haas
Date:
Subject: Re: [HACKERS] getting rid of SnapshotNow
Next
From: Andres Freund
Date:
Subject: Re: [HACKERS] getting rid of SnapshotNow