Вложенные immutable-функции в Postgres

Есть immutable-функция (F1), вызывающая внутри себя другую immutable-функцию (F2).

Подскажите, F1 продолжит пользоваться бонусами иммутабельности? в частности, переиспользованием результатов?


Ответы (1 шт):

Автор решения: Мелкий

Да.

Если функция объявлена immutable, база будет считать её immutable и применять допустимые оптимизации - независимо от того что делает функция и не проверяя вообще ничего внутри функции. Даже если вы наврали в объявлении функции и такая функция не должна быть immutable (потому что зависит от настроек или читает какую-нибудь таблицу, например) - то это будет ваша проблема, а не баг базы.

→ Ссылка