Re: BUG #1083: Insert query reordering interacts badly with NEXTVAL()/CURRVAL() - Mailing list pgsql-bugs

From Tom Lane
Subject Re: BUG #1083: Insert query reordering interacts badly with NEXTVAL()/CURRVAL()
Date
Msg-id 18400.1077601067@sss.pgh.pa.us
Whole thread Raw
In response to BUG #1083: Insert query reordering interacts badly with NEXTVAL()/CURRVAL()  ("PostgreSQL Bugs List" <pgsql-bugs@postgresql.org>)
Responses Re: BUG #1083: Insert query reordering interacts badly with  ("Martin Langhoff (Catalyst IT)" <martin@catalyst.net.nz>)
List pgsql-bugs
"PostgreSQL Bugs List" <pgsql-bugs@postgresql.org> writes:
> /* this statement will reverse the order of CURRVAL()/NEXTVAL() to match the
> column order of the table */
> INSERT INTO testing (col_b, col_a) VALUES (NEXTVAL('seq'), CURRVAL('seq'));

This is not a bug.  The order of evaluation of select-lists and
values-lists is not defined anywhere in the SQL standard, nor promised
anywhere in the Postgres documentation.  In fact, we specifically say
here:
http://www.postgresql.org/docs/7.4/static/sql-expressions.html#SYNTAX-EXPRESS-EVAL
that "The order of evaluation of subexpressions is not defined."  To do
otherwise would put horrible crimps in our ability to optimize query plans.

            regards, tom lane

pgsql-bugs by date:

Previous
From: Bruno Wolff III
Date:
Subject: Re: BUG #1083: Insert query reordering interacts badly with NEXTVAL()/CURRVAL()
Next
From: Tom Lane
Date:
Subject: Re: BUG #1083: Insert query reordering interacts badly with NEXTVAL()/CURRVAL()