Reading this post, the author references a "non-volatile" expression, after researching a bit, I'm still not sure what it is. What is meant by a non-volatile expression in Postgresql?
"Immutable" expressions resolve to the same value always. Like
2 + 3.
"Stable" expressions resolve to the same value within a single table scan. Like:
"Volatile" expressions can resolve to a different value for each evaluation. Like:
"Non-volatile" would be in one of the first two categories.