Re: plpgsql CASE statement - last version

Поиск
Список
Период
Сортировка
От Tom Lane
Тема Re: plpgsql CASE statement - last version
Дата
Msg-id 18316.1210891594@sss.pgh.pa.us
обсуждение исходный текст
Ответ на Re: plpgsql CASE statement - last version  ("Pavel Stehule" <pavel.stehule@gmail.com>)
Список pgsql-patches
"Pavel Stehule" <pavel.stehule@gmail.com> writes:
> I am sending little bit smarter version - without redundant parsing.

Applied with corrections --- you had some memory management problems
in particular.

One thing that I think might annoy people is that you've handled

    CASE x
        WHEN a, b, c THEN ...

by producing the equivalent of "IF x IN (a, b, c)".  This means that
all three of the a, b, c expressions will be evaluated even if "a"
matches.  The SQL spec doesn't appear to promise short-circuit
evaluation in such a case, but I suspect somebody out there might
have a problem someday.  It didn't seem tremendously easy to fix though.
I suppose anyone who does have a problem can rewrite as

    CASE x
        WHEN a THEN ...
        WHEN b THEN ...
        WHEN c THEN ...

at the cost of duplicating their THEN code.

            regards, tom lane

В списке pgsql-patches по дате отправления:

Предыдущее
От: Gregory Stark
Дата:
Сообщение: Re: Patch to change psql default banner v6
Следующее
От: Jan Urbański
Дата:
Сообщение: Re: extend VacAttrStats to allow stavalues of different types