From: | Tom Lane <tgl(at)sss(dot)pgh(dot)pa(dot)us> |
---|---|
To: | Victor Dobrovolsky <booby(dot)stager(at)gmail(dot)com> |
Cc: | "David G(dot) Johnston" <david(dot)g(dot)johnston(at)gmail(dot)com>, "pgsql-general(at)lists(dot)postgresql(dot)org" <pgsql-general(at)lists(dot)postgresql(dot)org> |
Subject: | Re: right way of using case-expressions in plpgsql functions |
Date: | 2023-10-15 21:15:41 |
Message-ID: | 2124262.1697404541@sss.pgh.pa.us |
Views: | Raw Message | Whole Thread | Download mbox | Resend email |
Thread: | |
Lists: | pgsql-general |
Victor Dobrovolsky <booby(dot)stager(at)gmail(dot)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
From | Date | Subject | |
---|---|---|---|
Next Message | Victor Dobrovolsky | 2023-10-15 21:53:14 | Re: right way of using case-expressions in plpgsql functions |
Previous Message | Ron | 2023-10-15 21:14:00 | Re: right way of using case-expressions in plpgsql functions |