Re: plpgsql CASE statement - last version - Mailing list pgsql-patches

From Tom Lane
Subject Re: plpgsql CASE statement - last version
Date
Msg-id 26724.1209769552@sss.pgh.pa.us
Whole thread Raw
In response to Re: plpgsql CASE statement - last version  ("Pavel Stehule" <pavel.stehule@gmail.com>)
Responses Re: plpgsql CASE statement - last version  ("Pavel Stehule" <pavel.stehule@gmail.com>)
List pgsql-patches
"Pavel Stehule" <pavel.stehule@gmail.com> writes:
> 2008/5/2 Heikki Linnakangas <heikki@enterprisedb.com>:
>> How about taking a completely different strategy, and implement the
>> CASE-WHEN construct fully natively in plpgsql, instead of trying to convert
>> it to a single SQL CASE-WHEN expression? It's not a very good match anyway;

> It was first variant. It's  simpler for parsing and slower for
> execution :(. It means more than once expression evaluation and for
> simple case value casting and comparation.

I agree with Heikki: this patch is seriously ugly, and "slower for
execution" isn't a good enough reason for saddling us with having
to maintain such a kluge in the parser.

I don't really see why you should need to have multiple expression
evaluations, anyhow.  Can't you evaluate the test expression once
and inject its value into the comparisons using CaseTestExpr,
the same way the core CASE-expression code works?

            regards, tom lane

pgsql-patches by date:

Previous
From: Tom Lane
Date:
Subject: Re: [COMMITTERS] pgsql: Sigh ...
Next
From: Tom Lane
Date:
Subject: Re: [COMMITTERS] pgsql: Sigh ...