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

From Albe Laurenz
Subject Re: CASE Statement - Order of expression processing
Date
Msg-id A737B7A37273E048B164557ADEF4A58B17BB3B00@ntex2010a.host.magwien.gv.at
Whole thread Raw
In response to Re: CASE Statement - Order of expression processing  (Andrea Lombardoni <andrea@lombardoni.ch>)
List pgsql-general
Andrea Lombardoni wrote:
> 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).

Yes, of course, because both subselects will not get evaluated at
planning time.

The problem occurs only if one of the branches gets evaluated at plan time
but the condition doesn't.

Yours,
Laurenz Albe

pgsql-general by date:

Previous
From: Albe Laurenz
Date:
Subject: Re: JDBC prepared statement is not treated as prepared statement
Next
From: sachin kotwal
Date:
Subject: Migration from DB2 to PostgreSQL