Re: lastval() - Mailing list pgsql-patches

From Abhijit Menon-Sen
Subject Re: lastval()
Date
Msg-id 20050511025246.GB13619@penne.toroid.org
Whole thread Raw
In response to Re: lastval()  (Neil Conway <neilc@samurai.com>)
Responses Re: lastval()
Re: lastval()
List pgsql-patches
At 2005-05-11 10:55:37 +1000, neilc@samurai.com wrote:
>
> > Here is a small patch that implements a function lastval() [...]
>
> What do people think of this idea? (Tom seems opposed, I'm just
> wondering if there are other opinions out there.)

For what it's worth, I think it's a bad idea.

In the MySQL wire protocol (hi Dennis!), the "last insert id" is sent
along with every "OK" message, and the client can just keep the value
in memory. Users call a function to retrieve that value, rather than
issuing a "SELECT nextval()".

So the server-side lastval() function is not enough for any meaningful
compatibility. The client would also need to be changed to provide the
pgsql_last_insert_id() or a similar function (which could do a "SELECT
lastval()" internally).

In this situation -- where both client changes AND a server round-trip
are required -- what's the point of adding cruft to the server? Might
as well confine changes to the client, and use nextval to implement
the feature.

By the way, what would lastval() do if an insert trigger inserts a row
into a table with another serial column?

-- ams

pgsql-patches by date:

Previous
From: Neil Conway
Date:
Subject: refactor index build
Next
From: "John Hansen"
Date:
Subject: Re: lastval()