AW: [HACKERS] Re: [PATCHES] Changes to sequence.c
От | Zeugswetter Andreas |
---|---|
Тема | AW: [HACKERS] Re: [PATCHES] Changes to sequence.c |
Дата | |
Msg-id | 01BD4909.10C7BA20@pc9358.sd.spardat.at обсуждение исходный текст |
Список | pgsql-hackers |
Billy G. Allie wrote: > > Vadim B. Mikheev wrote: > >Billy G. Allie wrote: > >> > >> I encountered a problem (bug? feature?) where "select currval('sequence')" > >> will generate an error if "select nextval('sequence')" is not executed > first. > > > >This is feature :) > >1. This is what Oracle does. > >2. currval () is described as returning value returned by > > last nextval() in _session_. > > > >Vadim > > > Does this mean we should not modify this behavior because "this is what Oracle > does"? I can envision where using currval() before nextval() can be useful. Actually, what you are proposing was initial behaviour of currval(). This was changed to be more consistent with 1. & 2. (note - not only 1., but 2. also). But personally I haven't objection against changing this again. Men, vote pls! Vadim No, I would not change this again, my question is iff instead of elog(ERROR the old code could be reinserted. This would mean, that when a session did a previous nextval it gets it's session currval, but if it did not, it gets a global currval as in previous implementation. The problem is somebody who calls currval often without ever calling nextval (like a monitor) will totally kill performance. (same as a select max(field)) Andreas
В списке pgsql-hackers по дате отправления: