Re: From Clause Conditional

Поиск
Список
Период
Сортировка
От Tom Lane
Тема Re: From Clause Conditional
Дата
Msg-id 1537293.1675351740@sss.pgh.pa.us
обсуждение исходный текст
Ответ на From Clause Conditional  (Zahir Lalani <ZahirLalani@oliver.agency>)
Список pgsql-general
Zahir Lalani <ZahirLalani@oliver.agency> writes:
> LEFT JOIN lateral (
> SELECT
>                                 CASE
> WHEN (0 > 0) THEN
> convert_from(crypto_secretbox_open, 'utf8')::JSON
> ELSE
> NULL
> END AS edata
> FROM
>                                 crypto_secretbox_open(coalesce(null, '')::bytea, coalesce(null, '')::bytea,0)
> where (0>0)
> ) enc ON true

> The issue is that, even when the key is 0, the select is still run (its part of a lateral join) and what we need to
achieveis to effectively have a conditional where we only run the select if the key > 0 otherwise we return null - I
havea brain freeze on this! I am sure there is an easy solution, but right now I can't see it. 

Is crypto_secretbox_open marked IMMUTABLE?  I think recent PG versions
are capable of folding this all to a constant if so, whereas older
ones might not have.  If you care about when/whether crypto_secretbox_open
runs, then it must have side-effects, so it shouldn't be IMMUTABLE.

            regards, tom lane



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

Предыдущее
От: Erik Wienhold
Дата:
Сообщение: Re: From Clause Conditional
Следующее
От: veem v
Дата:
Сообщение: Re: Sequence vs UUID