Re: plpgsql CASE statement - last version

From: "Pavel Stehule" <pavel(dot)stehule(at)gmail(dot)com>
To: "Tom Lane" <tgl(at)sss(dot)pgh(dot)pa(dot)us>
Cc: "Heikki Linnakangas" <heikki(at)enterprisedb(dot)com>, pgsql-patches <pgsql-patches(at)postgresql(dot)org>
Subject: Re: plpgsql CASE statement - last version
Date: 2008-05-03 08:12:13
Message-ID: 162867790805030112qa4c677ct4d373a8513caf552@mail.gmail.com
Views: Raw Message | Whole Thread | Download mbox | Resend email
Thread:
Lists: pgsql-patches

Hello

2008/5/3 Tom Lane <tgl(at)sss(dot)pgh(dot)pa(dot)us>:
> "Pavel Stehule" <pavel(dot)stehule(at)gmail(dot)com> writes:
>> 2008/5/2 Heikki Linnakangas <heikki(at)enterprisedb(dot)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?
>
>

I have to look on this way.

Regards
Pavel Stehule

regards, tom lane
>

In response to

Responses

Browse pgsql-patches by date

  From Date Subject
Next Message Peter Eisentraut 2008-05-03 09:15:01 Re: [COMMITTERS] pgsql: Sigh ...
Previous Message Dave Page 2008-05-03 07:15:14 Re: Exposing keywords to clients