Re: simple case syntax oddity in 8.0.0

From: Tom Lane <tgl(at)sss(dot)pgh(dot)pa(dot)us>
To: Vlad <marchenko(at)gmail(dot)com>
Cc: pgsql-general(at)postgresql(dot)org
Subject: Re: simple case syntax oddity in 8.0.0
Date: 2005-02-02 16:29:25
Message-ID: 29358.1107361765@sss.pgh.pa.us
Views: Raw Message | Whole Thread | Download mbox | Resend email
Thread:
Lists: pgsql-general

Vlad <marchenko(at)gmail(dot)com> writes:
> Postgresql 8.0.0, FreeBSD 5.3

> test=> select case 0 when 0 then null else 1/0 end as test;
> ERROR: division by zero

Hmm ... unexpected side effect of the change to avoid evaluating the
test-expression multiple times. This used to be transformed into
this at parse time:

select case when 0=0 then null else 1/0 end as test;

and then constant-folding would do the right thing.
But now it's transformed into something sort of like

select (let x = 0 in case when x=0 then ...)

and the when-clause therefore appears not to be constant. I think
I can fix this for 8.0.2, though.

regards, tom lane

In response to

Browse pgsql-general by date

  From Date Subject
Next Message Andreas Duffner 2005-02-02 16:39:52 Re: NewsServer down ? (PostgreSql.org: trusted sender for your account)
Previous Message Tom Lane 2005-02-02 16:17:59 Re: capturing/viewing sort_mem utilization on a per query basis