Selecting Function Volatility Category
Dinesh Somani <[email protected]> Fri, 20 Sep 2019 11:13:03 -0700
| Newsgroups | gmane.comp.db.postgresql.novice |
|---|---|
| Message-ID | <CAGcTZwU8J2Te9dnhrWu926FDHOd20LgbxnCz+oqP7=ArJY=P_Q@mail.gmail.com> |
I have an id lookup function that translates string names into numeric id.
The names are pretty stable over the life of the system but still can
mutate once in a while (like, once a month) when someone updates
configurations. I can use it like...
WHERE ... a.attribute_id = f('SALES', 'MATERIAL_NUMBER') ...
Currently I am classfying the function as STABLE. I would prefer to use
category IMMUTABLE as that might be more performant. (
https://www.postgresql.org/docs/current/xfunc-volatility.html) How does one
tackle the occasional case when the cached values of the function no longer
apply? Is there some way to trigger cache invalidation?
I had thought of deleting and recreating the function. But that leaves a
tiny gap during which the function becomes non-existent (leading to a hit
on my SLAs), plus may also cause plan invalidations all over the
application.
Regards
Dinesh