Re: BUG #6154: wrong result with nested left-joins
От | ai |
---|---|
Тема | Re: BUG #6154: wrong result with nested left-joins |
Дата | |
Msg-id | 01ce01cc55f3$afa6cd60$0ef46820$@mail.ru обсуждение исходный текст |
Ответ на | Re: BUG #6154: wrong result with nested left-joins ("Kevin Grittner" <Kevin.Grittner@wicourts.gov>) |
Список | pgsql-bugs |
Kevin and all others, thanks for your work! -----Original Message----- From: Kevin Grittner [mailto:Kevin.Grittner@wicourts.gov] Sent: Tuesday, August 09, 2011 12:32 AM To: ai; 'Tom Lane' Cc: pgsql-bugs@postgresql.org Subject: RE: [BUGS] BUG #6154: wrong result with nested left-joins "ai" <listar@mail.ru> wrote: > Oops.. I just saw, that I send you "correct" (already with "workaround") > sql-code instead of "wrong"... > here is "wrong" (difference is in "SELECT sub3.key3, sub4.value2 FROM" ): OK, that is still happening, and looks wrong to me. The outermost LEFT JOIN is between this: test=# SELECT * FROM (SELECT 1 as key1) sub1; key1 ------ 1 (1 row) as sub1 and this: test=# SELECT sub3.key3, sub4.value2 test-# FROM (SELECT 1 as key3) sub3 test-# LEFT JOIN test-# ( test(# SELECT sub5.key5, COALESCE(sub6.value1, 1) as value2 test(# FROM (SELECT 1 as key5) sub5 test(# LEFT JOIN test(# ( test(# SELECT 1 as key6, value1 test(# FROM (SELECT NULL::integer as value1) sub7 test(# WHERE false test(# ) sub6 ON false test(# ) sub4 ON sub4.key5=sub3.key3; key3 | value2 ------+-------- 1 | 1 (1 row) as sub2 joining on sub1.key1 = sub2.key3. Yet: test=# SELECT * test-# FROM (SELECT 1 as key1) sub1 test-# LEFT JOIN test-# ( test(# SELECT sub3.key3, sub4.value2 test(# FROM (SELECT 1 as key3) sub3 test(# LEFT JOIN test(# ( test(# SELECT sub5.key5, COALESCE(sub6.value1, 1) as value2 test(# FROM (SELECT 1 as key5) sub5 test(# LEFT JOIN test(# ( test(# SELECT 1 as key6, value1 test(# FROM (SELECT NULL::integer as value1) sub7 test(# WHERE false test(# ) sub6 ON false test(# ) sub4 ON sub4.key5=sub3.key3 test(# ) sub2 ON sub1.key1 = sub2.key3; key1 | key3 | value2 ------+------+-------- 1 | 1 | (1 row) This is on HEAD from today. Clearly there's a problem. -Kevin
В списке pgsql-bugs по дате отправления: