Re: BUG #6154: wrong result with nested left-joins
От | Kevin Grittner |
---|---|
Тема | Re: BUG #6154: wrong result with nested left-joins |
Дата | |
Msg-id | 4E3FD730020000250003FC3D@gw.wicourts.gov обсуждение исходный текст |
Ответ на | Re: BUG #6154: wrong result with nested left-joins ("ai" <listar@mail.ru>) |
Ответы |
Re: BUG #6154: wrong result with nested left-joins
Re: BUG #6154: wrong result with nested left-joins |
Список | pgsql-bugs |
"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 по дате отправления: