Re: BUG #17428: last_value incorrect for uninitialized sequence
От | David G. Johnston |
---|---|
Тема | Re: BUG #17428: last_value incorrect for uninitialized sequence |
Дата | |
Msg-id | CAKFQuwZrRHHxf8UzP+QCE+TSAeuVTytQ8W5oOJrvtLvpdtZt7w@mail.gmail.com обсуждение исходный текст |
Ответ на | Re: BUG #17428: last_value incorrect for uninitialized sequence (Tom Lane <tgl@sss.pgh.pa.us>) |
Список | pgsql-bugs |
On Mon, Mar 7, 2022 at 8:23 AM Tom Lane <tgl@sss.pgh.pa.us> wrote:
Glen Edmonds <glen.edmonds@gmail.com> writes:
> The problem really is that the two states of not initialized and post first
> usage are indistinguishable (both return 1), but the sequence next value is
> different.
They're not indistinguishable: if you look at the is_called flag
you'll see that it changes.
Correct, the boolean is a superior solution to defining null to mean something. A bit more verbose but equally functional and easier to read.
> ie it’s a reasonable expectation that the next value is
> last_value + 1. IMHO violating this makes it a bug.
You can call it that if you like, but it's operating as designed
and documented. I fear it's about twenty years too late to propose
a redesign.
And next_value isn't last_value + 1 in any case since we have a block caching feature. One cannot predict (i.e., without consuming) the next_value from current state.
David J.
В списке pgsql-bugs по дате отправления: