Re: key = currval('tab_key_seq') choses SEQSCAN?! - Mailing list pgsql-general

From Joe Conway
Subject Re: key = currval('tab_key_seq') choses SEQSCAN?!
Date
Msg-id 403D54E4.2020304@joeconway.com
Whole thread Raw
In response to Re: key = currval('tab_key_seq') choses SEQSCAN?!  (Eric B.Ridge <ebr@tcdi.com>)
Responses Re: key = currval('tab_key_seq') choses SEQSCAN?!  (Eric B.Ridge <ebr@tcdi.com>)
List pgsql-general
Eric B.Ridge wrote:
> I suppose this is obvious, but it's volatile because *other* backends
> can change it while the current transaction is still in progress?

No. Other backends don't affect currval, but your own might on a
row-by-row basis. Consider:

regression=# create sequence seq;
CREATE SEQUENCE

regression=# select nextval('seq'), currval('seq'), s from
generate_series(1,4) as t(s);
  nextval | currval | s
---------+---------+---
        1 |       1 | 1
        2 |       2 | 2
        3 |       3 | 3
        4 |       4 | 4
(4 rows)


Joe


pgsql-general by date:

Previous
From: Randall Skelton
Date:
Subject: Simplyfying many equals in a join
Next
From: Eric B.Ridge
Date:
Subject: Re: key = currval('tab_key_seq') choses SEQSCAN?!