Re: MySQL/PostgreSQL discrepancy
От | Stephan Szabo |
---|---|
Тема | Re: MySQL/PostgreSQL discrepancy |
Дата | |
Msg-id | Pine.BSF.4.10.10010272117290.36339-100000@megazone23.bigpanda.com обсуждение исходный текст |
Ответ на | MySQL/PostgreSQL discrepancy (Ken Smith <ken@turbolinux.co.jp>) |
Список | pgsql-bugs |
> THE TEST > Run 'psql', then enter the following except for the select statement > output. > > ---BEGIN--- > create table test (name char, a int, b int); > insert into test values ('x', 1, 2); > select * from test; > update test set a=3,b=a where name='x'; > insert into test values ('y', 1, 2); > update test set b=a,a=3 where name='y'; > select * from test; > name | a | b > ------+---+--- > x | 3 | 1 > y | 3 | 1 > drop table test; > ---END--- > > I am used to MySQL so I expected the following from the select > statement. > name | a | b > ------+---+--- > x | 3 | 3 > y | 3 | 1 > > Which behavior is the correct? I believe ours... From update positioned: "The <value expression>s are effecitvely evaluated before updating the object row. If a <value expression> contains a reference to a column of T, then the reference is to the value of that column in the object row before any value of the object row is updated." From update searched: "The <value expressions> are effectively evaluated for each row of T before updating any row of T."
В списке pgsql-bugs по дате отправления: