Re: CASE Statement - Order of expression processing - Mailing list pgsql-general

From Andrea Lombardoni
Subject Re: CASE Statement - Order of expression processing
Date
Msg-id CAMQ5dGop18aC2PiUNSEBrors54rty6M4C_L405fPvZKQA8+08w@mail.gmail.com
Whole thread Raw
In response to CASE Statement - Order of expression processing  (Andrea Lombardoni <andrea@lombardoni.ch>)
Responses Re: CASE Statement - Order of expression processing
List pgsql-general

On Mon, Jun 17, 2013 at 11:11 PM, Stefan Drees <stefan@drees.name> wrote:

pg924=#  SELECT CASE WHEN 1 != 1 THEN 1/0 ELSE ((SELECT 1)=1)::integer END;
 case
------
    1
(1 row)

here the 1/0 is happily ignored.


It gets even stranger:

template1=# SELECT CASE WHEN (SELECT 0)=0 THEN 0 ELSE 1/(select 0) END;
 case 
------
    0
(1 row)

Here it seems that the ELSE does not get evaluated (which is correct).

Bye

pgsql-general by date:

Previous
From: Albe Laurenz
Date:
Subject: Re: CASE Statement - Order of expression processing
Next
From: Albe Laurenz
Date:
Subject: Re: JDBC prepared statement is not treated as prepared statement