Re: currval and DISCARD ALL - Mailing list pgsql-general

From Adrian Klaver
Subject Re: currval and DISCARD ALL
Date
Msg-id 516C77B8.4060005@gmail.com
Whole thread Raw
In response to currval and DISCARD ALL  (Nigel Heron <nigel@psycode.com>)
Responses Re: currval and DISCARD ALL
List pgsql-general
On 04/15/2013 02:42 PM, Nigel Heron wrote:
> Hi,
> is there a way to clear the session state of sequence values fetched by
> currval(regclass)? "DISCARD ALL" doesn't seem to do it.
>
> eg. (w/ pg 9.2.4)
> test=# CREATE SEQUENCE foo_seq;
> CREATE SEQUENCE
> test=# SELECT nextval('foo_seq');
> -[ RECORD 1 ]
> nextval | 1
>
> test=# SELECT currval('foo_seq');
> -[ RECORD 1 ]
> currval | 1
>
> test=# DISCARD ALL;
> DISCARD ALL
> test=# SELECT currval('foo_seq');
> -[ RECORD 1 ]
> currval | 1
>
>
> I'm trying to migrate a large web app to work with pgbouncer's
> transaction pool mode and it would be easier to identify issues if
> currval() would return the usual "ERROR:  currval of sequence "foo_seq"
> is not yet defined in this session" if nextval() wasn't called in the
> same pgbouncer session instead of getting old numbers from past
> transactions.

Might want to take a look at:

http://www.depesz.com/2012/12/02/what-is-the-point-of-bouncing/

for some hints on dealing with sequences and pgBouncer.

>
>
> thanks,
> -nigel.
>
>


--
Adrian Klaver
adrian.klaver@gmail.com


pgsql-general by date:

Previous
From: Nigel Heron
Date:
Subject: currval and DISCARD ALL
Next
From: Carlos Mennens
Date:
Subject: Re: Role Authentication Failure