Re: 8.1, OID's and plpgsql - Mailing list pgsql-general

From Uwe C. Schroeder
Subject Re: 8.1, OID's and plpgsql
Date
Msg-id 200512031507.19599.uwe@oss4u.com
Whole thread Raw
In response to Re: 8.1, OID's and plpgsql  (Tom Lane <tgl@sss.pgh.pa.us>)
List pgsql-general
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" <jim@nasby.net> 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


pgsql-general by date:

Previous
From: Rodrigo Gonzalez
Date:
Subject: Re: beginne' - inserting a record
Next
From: Assad Jarrahian
Date:
Subject: pl_pgSQL array parameter and order of results returned