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