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

From PostgreSQL Bugs List
Subject BUG #1083: Insert query reordering interacts badly with NEXTVAL()/CURRVAL()
Date
Msg-id 20040224012657.B86E5CF4A21@www.postgresql.com
Whole thread Raw
Responses Re: BUG #1083: Insert query reordering interacts badly with NEXTVAL()/CURRVAL()
Re: BUG #1083: Insert query reordering interacts badly with NEXTVAL()/CURRVAL()
List pgsql-bugs
The following bug has been logged online:

Bug reference:      1083
Logged by:          Martin Langhoff

Email address:      martin@catalyst.net.nz

PostgreSQL version: 7.4

Operating system:   Linux irkutsk 2.4.25-piv-smp-server #1 SMP Fri Feb 20
16:56:47 NZDT 2004 i686 unknown

Description:        Insert query reordering interacts badly with
NEXTVAL()/CURRVAL()

Details:

=== SQL ===

CREATE TEMP TABLE testing (col_a integer, col_b integer);
CREATE TEMP SEQUENCE seq;

/* this statement will produce the expected result */
INSERT INTO testing (col_a, col_b) VALUES (NEXTVAL('seq'), CURRVAL('seq'));

/* 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'));

SELECT * FROM testing;

=== END SQL ===

Output looks like:

 col_a | col_b
-------+-------
     1 |     1
     1 |     2

I was expecting:

 col_a | col_b
-------+-------
     1 |     1
     2 |     2

pgsql-bugs by date:

Previous
From: Michael Meskes
Date:
Subject: Re: ecpg mapping struct members for indicators incorrectly?
Next
From: Tom Lane
Date:
Subject: Re: Crash when calling a pl/pgsql function with no row to pass as an argument