Re: Re: postgres TODO - Mailing list pgsql-hackers

From darcy@druid.net (D'Arcy J.M. Cain)
Subject Re: Re: postgres TODO
Date
Msg-id m13Bdyw-000AXuC@druid.net
Whole thread Raw
In response to Re: Re: postgres TODO  (Alessio Bragadini <alessio@albourne.com>)
List pgsql-hackers
Thus spake Alessio Bragadini
> > >       * Add function to return primary key value on INSERT
> > 
> > I don't get the point of this. Don't you know what you inserted? For
> > sequences there's curval()
> 
> Mmmhhh... it means that we can assume no update to the sequence value
> between the insert and the curval selection?

We can within one connection so this is safe but there are other problems
which I am not sure would be solved by this anyway.  With rules, triggers
and defaults there are often changes to the row between the insert and the
values that hit the backing store.  This is a general problem of which
the primary key is only one example.

In fact, the OID of the new row is returned so what stops one from just
using it to get any information required.  This is exactly what PyGreSQL
does in its insert method.  After returning, the dictionary used to store
the fields for the row have been updated with the actual contents of the
row in the database.  It simply does a "SELECT *" using the new OID to
get the row back.

-- 
D'Arcy J.M. Cain <darcy@{druid|vex}.net>   |  Democracy is three wolves
http://www.druid.net/darcy/                |  and a sheep voting on
+1 416 425 1212     (DoD#0082)    (eNTP)   |  what's for dinner.


pgsql-hackers by date:

Previous
From: Zeugswetter Andreas SB
Date:
Subject: AW: AW: more corruption
Next
From: Zeugswetter Andreas SB
Date:
Subject: AW: Re: postgres TODO