Вложенные immutable-функции в Postgres
Есть immutable-функция (F1), вызывающая внутри себя другую immutable-функцию (F2).
Подскажите, F1 продолжит пользоваться бонусами иммутабельности? в частности, переиспользованием результатов?
Ответы (1 шт):
Автор решения: Мелкий
→ Ссылка
Да.
Если функция объявлена immutable, база будет считать её immutable и применять допустимые оптимизации - независимо от того что делает функция и не проверяя вообще ничего внутри функции. Даже если вы наврали в объявлении функции и такая функция не должна быть immutable (потому что зависит от настроек или читает какую-нибудь таблицу, например) - то это будет ваша проблема, а не баг базы.