Re: right way of using case-expressions in plpgsql functions

Поиск
Список
Период
Сортировка
От Victor Dobrovolsky
Тема Re: right way of using case-expressions in plpgsql functions
Дата
Msg-id CAJFsatMH0O=3u2jCkBu6sj5AOGY4-enjKqZFsBHVeYs=pgv7cw@mail.gmail.com
обсуждение исходный текст
Ответ на Re: right way of using case-expressions in plpgsql functions  (Tom Lane <tgl@sss.pgh.pa.us>)
Список pgsql-general
>Yeah, that would probably be a preferable approach if you're hoping
>for significantly different query plans for the two cases.

Thank you. 
My goal is to find out some basic rules that could help me to navigate issues like this.
Regarding generalized plans in general, and the use of the case-expressions in particular.


пн, 16 окт. 2023 г. в 00:15, Tom Lane <tgl@sss.pgh.pa.us>:
Victor Dobrovolsky <booby.stager@gmail.com> writes:
> From that - "short and dirty translation" - point of view - should I prefer
> to divide that
> $$
> Select
> case $1
> when '1'::numeric then tbl.p1
> when '2'::numeric then tbl.p2
> ...
> end as cresult
> $$

> expression into:
> $$
> ...
> if $1 = '1'::numeric then (query_1)
> elsif when '2'::numeric then (query_2)
>  ...
> end if;
> ...
> $$

Yeah, that would probably be a preferable approach if you're hoping
for significantly different query plans for the two cases.  PG does
not have the sort of run-time plan choice mechanism that you're
describing for Oracle.

                        regards, tom lane

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

Предыдущее
От: Tom Lane
Дата:
Сообщение: Re: right way of using case-expressions in plpgsql functions
Следующее
От: Victor Dobrovolsky
Дата:
Сообщение: Re: right way of using case-expressions in plpgsql functions