Re: NEXT VALUE FOR sequence

Поиск
Список
Период
Сортировка
От Tom Lane
Тема Re: NEXT VALUE FOR sequence
Дата
Msg-id 6516.1519055937@sss.pgh.pa.us
обсуждение исходный текст
Ответ на NEXT VALUE FOR sequence  (Laurenz Albe <laurenz.albe@cybertec.at>)
Ответы Re: NEXT VALUE FOR sequence
Список pgsql-hackers
Laurenz Albe <laurenz.albe@cybertec.at> writes:
> The SQL standard has the expression "NEXT VALUE FOR asequence" to do
> what we traditionally do with "nextval('asequence')".
> This is an attempt to implement this on top of the recently introduced
> NextValueExpr node.

This has been proposed repeatedly, and rejected repeatedly, because in
fact the standard's semantics for NEXT VALUE FOR are *not* like nextval().
See SQL:2011 4.22.2 "Operations involving sequence generators":

    If there are multiple instances of <next value expression>s specifying
    the same sequence generator within a single SQL-statement, all those
    instances return the same value for a given row processed by that
    SQL-statement.

This is not terribly exact --- what is a "processed row" in a join query,
for instance?  But it's certainly not supposed to act like independent
executions of nextval() or NextValueExpr would.  Pending somebody doing
the legwork to produce something that at least arguably conforms to the
spec's semantics, we've left the syntax unimplemented.

            regards, tom lane


В списке pgsql-hackers по дате отправления:

Предыдущее
От: Tom Lane
Дата:
Сообщение: Re: [PROPOSAL] Nepali Snowball dictionary
Следующее
От: Tomas Vondra
Дата:
Сообщение: Re: autovacuum: change priority of the vacuumed tables