On Fri, Jul 4, 2014 at 7:37 AM, Tom Lane <t...@sss.pgh.pa.us> wrote:

> Tom Dunstan <pg...@tomd.cc> writes:
> > On 4 July 2014 00:07, Tom Lane <t...@sss.pgh.pa.us> wrote:
> >> It sounds to me like designing this for JDBC's getGeneratedKeys method
> >> is a mistake.  There isn't going to be any way that the driver can
> support
> >> that without having looked at the table's metadata for itself, and if
> >> it's going to do that then it doesn't need a crutch that only partially
> >> solves the problem anyhow.
>
> > Sure it can - it append RETURNING PRIMARY KEY and hand back a ResultSet
> > from whatever was returned. It's CURRENTLY doing that, but it's appending
> > RETURNING * and leaving it up to the caller of getGeneratedKeys() to work
> > out which columns the caller is interested in.
>
> I might be mistaken, but as I read the spec for getGeneratedKeys, whether
> or not a column is in a primary key has got nothing to do with whether
> that column should be returned.  It looks to me like what you're supposed
> to return is columns with computed default values, eg, serial columns.
> (Whether we should define it as being *exactly* columns created by the
> SERIAL macro is an interesting question, but for sure those ought to be
> included.)  Now, the pkey might be a serial column ... but it equally
> well might not be; it might not have any default expression at all.
> And there certainly could be serial columns that weren't in the pkey.
>
>
100% agree with Tom.


> The fact that the spec is kinda fuzzy doesn't entitle us to ignore the
> plain meaning of the term "generated key".
>
>                         regards, tom lane
>



-- 
Rushabh Lathia

Reply via email to