the ctid seems to be the solution to my problem. I'm inserting the record in a 
transaction so the ctid shouldn't change while the transaction isn't finished 
(either rolled back or committed).
One question though. How would I get the ctid of the just inserted record. GET 
DIAGNOSTICS only handles row count and oid per the docs.

THX

UC
 

On Friday 02 December 2005 15:58, Tom Lane wrote:
> "Jim C. Nasby" <[EMAIL PROTECTED]> writes:
> > Maybe the docs should be changed to just say that you should never reuse
> > a ctid outside of the transaction you obtained the ctid in?
>
> That's not a sufficient rule either: someone else could still delete or
> update the row while your transaction runs.  You'd really have to SELECT
> FOR UPDATE or FOR SHARE to be sure the ctid remains stable.  (Of course,
> this isn't an issue for the case of a row you just inserted yourself,
> since no one else can see it yet to change it.)
>
> The paragraph defining ctid is not the place for a discussion of how it
> could be used ... I'm not quite sure where is, though.
>
>                       regards, tom lane


---------------------------(end of broadcast)---------------------------
TIP 3: Have you checked our extensive FAQ?

               http://www.postgresql.org/docs/faq

Reply via email to