Jeff Davis <pg...@j-davis.com> writes: > That was discussed a few times, but:
> (a) That doesn't exactly solve the problem, because people still need > indexes on LOWER() or CASEFOLD(); and > (b) If we change IMMUTABLE to mean "returns the same results on every > platform for all time", that would be too strict for many purposes, > like the planner doing constant folding. Yeah. Not only would the set of functions meeting such a standard be vanishingly small, but so would the set of use-cases. What we need is some sort of understanding that "this is okay to use in indexes", "this is okay to constant-fold when planning", etc. Maybe it's less about "is it okay to just assume this" and more about "can we devise a method for figuring out when we have to reindex, replan, etc". We've got bits of that in our collation versioning infrastructure, but that doesn't cover every source of infrequently-mutating behavior. > I have been thinking about ways we can express the right dependencies, > and I may be making some proposals along those lines. I await a proposal with interest. regards, tom lane