Re: arbitrary number of values from a sequence

From: Tom Lane <tgl(at)sss(dot)pgh(dot)pa(dot)us>
To: "Gyozo Papp" <pgerzson(at)freestart(dot)hu>
Cc: pgsql-general(at)postgresql(dot)org
Subject: Re: arbitrary number of values from a sequence
Date: 2001-05-04 18:26:07
Message-ID: 27034.989000767@sss.pgh.pa.us
Views: Raw Message | Whole Thread | Download mbox | Resend email
Thread:
Lists: pgsql-general

"Gyozo Papp" <pgerzson(at)freestart(dot)hu> writes:
> Does it mean that it can't be ensured that returning values of
> nextval() are consecutive ones?

I think it would be folly to assume that, even with a cache setting
equal to the number of values you intend to fetch. If the cache gets
out of sync with your requests (say, because a transaction aborted after
fetching just some of the 5 values) then subsequent transactions would
reload the cache partway through, and in that case you could get
non-consecutive results.

> does it help me if I set the transaction isolation level to
> serializable or lock the table of the sequence?

No. Why do you need such a thing, anyway? If you are always allocating
groups of 5 IDs, why don't you just pretend each nextval() gives you
five items instead of one? You could simply multiply the returned value
by 5. Or set the sequence's increment to 5.

regards, tom lane

In response to

Responses

Browse pgsql-general by date

  From Date Subject
Next Message Bruno Wolff III 2001-05-04 18:30:07 Re: Case sensitive order by
Previous Message Doug McNaught 2001-05-04 18:13:52 Re: DB Getting Slower and Slower and Slower....