Problem with nested left-joins and coalesce

From: "ai" <listar(at)mail(dot)ru>
To: <pgsql-sql(at)postgresql(dot)org>
Subject: Problem with nested left-joins and coalesce
Date: 2011-08-08 06:53:24
Message-ID: 01a301cc5597$e1b5ea40$a521bec0$@mail.ru
Views: Raw Message | Whole Thread | Download mbox | Resend email
Thread:
Lists: pgsql-sql

Hi!

I have strange issue with nested left-joins in postgresql...

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

Is there something wrong with my mind&hands? or is it a bug?

Thanks in advance!

Kind regards

Alex

Responses

Browse pgsql-sql by date

  From Date Subject
Next Message Carla 2011-08-08 15:02:43 Re: Problem with nested left-joins and coalesce
Previous Message Jasen Betts 2011-08-05 12:43:48 Re: Generic design: char vs varchar primary keys