BUG #6154: wrong result with nested left-joins

From: "listar" <listar(at)mail(dot)ru>
To: pgsql-bugs(at)postgresql(dot)org
Subject: BUG #6154: wrong result with nested left-joins
Date: 2011-08-08 13:13:33
Message-ID: 201108081313.p78DDX6W021751@wwwmaster.postgresql.org
Views: Raw Message | Whole Thread | Download mbox | Resend email
Thread:
Lists: pgsql-bugs


The following bug has been logged online:

Bug reference: 6154
Logged by: listar
Email address: listar(at)mail(dot)ru
PostgreSQL version: 8.4.5
Operating system: Linux 2.6.36-gentoo-r5
Description: wrong result with nested left-joins
Details:

It's hard to explain, but easy to show =)
here we are:

SELECT * FROM
(
SELECT 1 as key1
) sub1
LEFT JOIN
(
SELECT sub3.key3, value2 FROM
(
SELECT 1 as key3
) sub3
LEFT JOIN
(
SELECT sub5.key5, COALESCE(sub6.value1, 1) as
value2
FROM
(
SELECT 1 as key5
) sub5
LEFT JOIN
(
SELECT 1 as key6, value1
FROM
(
SELECT
NULL::integer as value1
) sub7
WHERE false
) sub6 ON false

)
sub4 ON sub4.key5=sub3.key3
)
sub2 ON sub1.key1 = sub2.key3

The result of this query:
key1;key3;value2
1;1;NULL

And this is the problem - value2 can't be NULL because of COALESCE in sub4
(at least I think that it can't be =))
Anyway if we'll change
SELECT sub3.key3, sub4.value2 FROM
with
SELECT sub3.key3, value2 FROM
we will got correct result:
key1;key3;value2
1;1;1

Responses

Browse pgsql-bugs by date

  From Date Subject
Next Message Kevin Grittner 2011-08-08 13:51:39 Re: BUG #6154: wrong result with nested left-joins
Previous Message Jaime Casanova 2011-08-08 03:36:25 Re: Help-PGRES_FATAL_ERROR