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 по дате отправления: