Re: VALUES() evaluation order - Mailing list pgsql-general

From Tom Lane
Subject Re: VALUES() evaluation order
Date
Msg-id 257.1358116602@sss.pgh.pa.us
Whole thread Raw
In response to VALUES() evaluation order  (Steve Atkins <steve@blighty.com>)
Responses Re: VALUES() evaluation order
Re: VALUES() evaluation order
List pgsql-general
Steve Atkins <steve@blighty.com> writes:
> Is the order in which the expressions in a VALUES() clause defined?
> I'm doing this: INSERT INTO foo (a, b) VALUES (nextval('bar'), currval('bar'))

> It works fine, but I'm wondering whether it's guaranteed to work or whether I'm relying on an artifact of the
implementation.

I'd say it's an artifact.  It probably does work reliably at the moment,
but if we had a reason to change it we'd not feel much compunction about
doing so.  (The most obvious potential reason to change it is parallel
evaluation of expressions, which is a long way off, so you probably
don't have any near-term reason to worry.  But ...)

Consider sticking the nextval() into a WITH.

            regards, tom lane


pgsql-general by date:

Previous
From: Steve Atkins
Date:
Subject: VALUES() evaluation order
Next
From: Gavin Flower
Date:
Subject: Re: Linux Distribution Preferences?