Re: currval() race condition on server?

From: Achilleas Mantzios <achill(at)matrix(dot)gatewaynet(dot)com>
To: pgsql-jdbc(at)postgresql(dot)org
Subject: Re: currval() race condition on server?
Date: 2006-10-23 14:04:04
Message-ID: 200610231704.05113.achill@matrix.gatewaynet.com
Views: Raw Message | Whole Thread | Download mbox | Resend email
Thread:
Lists: pgsql-admin pgsql-jdbc

Στις Δευτέρα 23 Οκτώβριος 2006 16:49, ο/η Adriaan Joubert έγραψε:
> Hi,
>
> I've run into an intermittent problem with our code recently. We have
> the following set-up:
>
> table A : some data table
> table B : a history table for table A
>
> A trigger copies the old version of a row into table B whenever an
> update is done on table A. Both A and B contain an audit number, and the
> trigger obtains an audit number from a sequence and inserts it into the
> row inserted into table A.

What do you mean here? Inserts it into the row inserted....

>
> For some bookkeeping purposes I need the new audit number back from the
> update, so I submit a prepared statement through jdbc of the form
>
> UPDATE A SET ....; SELECT currval('ip_audit_seq');
>
> On the first call I get
>
> ERROR: currval of sequence "ip_audit_seq" is not yet defined in this
> session

That normally means that no nextval has been called on the sequence during the
session in question.
Can you give us the trigger code?

>
> Note that this works without any trouble if I issue the commands in a
> transaction through psql, and this used to work in earlier versions of
> postgres.
>

In any case double check that the server version/JDBC version match.

> We have a lot of users on very high latency links, so it is important
> for the responsiveness of the application to try to do the update and
> select in a single database trip.
>
> So I'm wondering whether there is some type of race condition, where the
> selection of the new value from ip_audit_seq is not available to the
> currval function straight away? Anybody got any ideas on this?
>
> Cheers,
>
> Adriaan
>
> ---------------------------(end of broadcast)---------------------------
> TIP 4: Have you searched our list archives?
>
> http://archives.postgresql.org

--
Achilleas Mantzios

In response to

Browse pgsql-admin by date

  From Date Subject
Next Message Tom Lane 2006-10-23 14:23:43 Re: currval() race condition on server?
Previous Message Adriaan Joubert 2006-10-23 13:49:13 currval() race condition on server?

Browse pgsql-jdbc by date

  From Date Subject
Next Message Tom Lane 2006-10-23 14:23:43 Re: currval() race condition on server?
Previous Message Adriaan Joubert 2006-10-23 13:49:13 currval() race condition on server?