много раз и много где. Что-то вроде where ... and id in ( CTE WITH RECURSIVE(initial_param) )
Код этого CTE WITH RECURSIVE довольно громоздкий, везде одинаковый, отличается только стартовым параметром initial_param - откуда начинать разворачивать дерево.
Вопрос - будет ли эффективно это переделать на RECURSIVE VIEW(и возможно ли) или лучше сделать функцию с параметром? Опять же результат функций не кэшируется в Postgres
Функцыю, конечно. Как вы во view параметр передадите? Кэшырование отдельно, да.
даже внутри запроса не будет кешировать функцию?
Внутри запроса stable — можэт конечно. А уж если with materialized написать — то обязательно будет.
понял, ничего не буду трогать)
Если сильно хочется попробовать что-то необычное и не боитесь проклятий, то можете передавать свой кастомный GUC и читать его через current_setting() Но @tzirechnoy прав - лучше функцией
спасибо, необычныо не хочется, пока все необычно и так) Насчет функции надо подумать видимо
Обсуждают сегодня