Skip site navigation (1) Skip section navigation (2)

Re: Rollback & Nextval fails

From: Grant Finnemore <gaf(at)ucs(dot)co(dot)za>
To: pgsql-sql(at)hub(dot)org
Cc: "Eriksson, Fredrik" <Fredrik_Eriksson(at)NAI(dot)com>
Subject: Re: Rollback & Nextval fails
Date: 2000-05-29 09:50:10
Message-ID: 39323D52.4613A1D6@ucs.co.za (view raw or flat)
Thread:
Lists: pgsql-sql
Fredrik,


> I have been trying the following SQL code :
>
> BEGIN;
> INSERT INTO table VALUES ( NEXTVAL('serial'), 'Data' );
> ROLLBACK;
>
> And the insert function is rolled back but the serial sequence isn't. Hav I
> misunderstood the functionality of rollback or is this a bug? Is there
> someway to get the functionality that rollsback everything?
>

It is not a bug. In order to enable concurrent users access to the nextval()
function, every call to that function will increment the counter. Should a
client rollback, we cannot re-use the number(s) allocated to them, as other
clients might already have been allocated higher numbers. This means that a
full table scan would be required to allocate "blank" numbers inside the
sequence. Even this would not solve the issue of contiguous numbering in the
table, as at any point in time, "blanks" might exist.

If you *really* need a sequence with no unused numbers, you might consider
creating a table using a single row as the current sequence number. Use either
SQL or a stored proc. to lock the row and increment the value for the counter
on each next value that you require. This has the effect of serializing every
client update transaction where this scheme is used. Can you afford that?


Regards,

Grant

--
> Poorly planned software requires a genius to write it
> and a hero to use it.

Grant Finnemore BSc(Eng)  (mailto:gaf(at)ucs(dot)co(dot)za)
Software Engineer         Universal Computer Services
Tel  (+27)(11)712-1366    PO Box 31266 Braamfontein 2017, South Africa
Cell (+27)(82)604-5536    20th Floor, 209 Smit St., Braamfontein
Fax  (+27)(11)339-3421    Johannesburg, South Africa




In response to

pgsql-sql by date

Next:From: Werner ModenbachDate: 2000-05-29 11:58:31
Subject: adding fields containing NULL values
Previous:From: Gerhard DieringerDate: 2000-05-29 09:44:21
Subject: Antw: Rollback & Nextval fails

Privacy Policy | About PostgreSQL
Copyright © 1996-2014 The PostgreSQL Global Development Group