Re: [GENERAL] currval and DISCARD ALL
От | Bruce Momjian |
---|---|
Тема | Re: [GENERAL] currval and DISCARD ALL |
Дата | |
Msg-id | 20130416204830.GE4602@momjian.us обсуждение исходный текст |
Ответы |
Re: [GENERAL] currval and DISCARD ALL
|
Список | pgsql-hackers |
On Tue, Apr 16, 2013 at 12:13:48PM -0700, Adrian Klaver wrote: > On 04/16/2013 08:07 AM, Nigel Heron wrote: > > > >On 04/15/2013 05:57 PM, Adrian Klaver wrote: > >>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. > >>> > ><snip> > >>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, I read it (his blogs are always interesting!). I'm not disputing > >that calling currval() at the wrong time is a bad idea. > >I'm just wondering why DISCARD ALL clears everything but this? > > Well per the docs: > > http://www.postgresql.org/docs/9.2/interactive/sql-discard.html > > DISCARD ALL > > is equivalent to: > > SET SESSION AUTHORIZATION DEFAULT; > RESET ALL; > DEALLOCATE ALL; > CLOSE ALL; > UNLISTEN *; > SELECT pg_advisory_unlock_all(); > DISCARD PLANS; > DISCARD TEMP; > > AFAIK, none of the above affect sequences. I think his point is why don't we clear currval() on DISCARD ALL? I can't think of a good reason we don't. He is saying currval() should throw an error after DISCARD ALL: test=> SELECT currval('seq');ERROR: currval of sequence "seq" is not yet defined in this session I have moved this thead to hackers to get comments. -- Bruce Momjian <bruce@momjian.us> http://momjian.us EnterpriseDB http://enterprisedb.com + It's impossible for everything to be true. +
В списке pgsql-hackers по дате отправления: