Re: sequence caches - Mailing list pgsql-general

From jks@selectacast.net
Subject Re: sequence caches
Date
Msg-id Pine.LNX.4.44.0305201355560.11027-100000@p1.selectacast.net
Whole thread Raw
In response to Re: sequence caches  (Tom Lane <tgl@sss.pgh.pa.us>)
Responses Re: sequence caches  (Tom Lane <tgl@sss.pgh.pa.us>)
List pgsql-general
On Tue, 20 May 2003, Tom Lane wrote:

> jks@selectacast.net writes:
> > Is there a way to change the cache setting on a per-query basis?  For that
> > matter how can the cache setting be changed at all?  There is no ALTER
> > SEQUENCE command.
>
> Rod Taylor added one in CVS tip ... though now that I think about it,
> it's highly unlikely that it works in a reasonable fashion in the
> presence of caching.  We might have to reconsider whether we should have
> it there at all.  Rod, any thoughts about that?  At the very least there
> needs to be a warning about the risks in the ALTER SEQUENCE man page.
>
> > How hard would it be to change the backend to lock shared memory only once
> > per query?
>
> Seems that would require predicting the future.  How would you know how
> many times the sequence would get nextval'd in one query?
Because you parse the query before you take any action, so you know how
many times the nextval will be called.  Or do you do the locking down in
the nextval method that knows nothing about the other nextvals?  Perhaps
there could be a function call that retrieves X sequence numbers from the
sequence that overrides the cache settings so I could query like:
SELECT
prefetchseq('seqname',3),nextval('seqname'),nextval('seqname'),nextval('seqname');
...or just:
SELECT nextval('seqname',3),nextval('seqname'),nextval('seqname');



pgsql-general by date:

Previous
From: Tom Lane
Date:
Subject: Re: sequence caches
Next
From: Tom Lane
Date:
Subject: Re: sequence caches