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