Dmitry Dolgov <9erthali...@gmail.com> writes: > Just to clarify for myself, for evaluating any stable function here would it > be > enough to handle all function-like expressions (FuncExpr / OpExpr / > DistinctExpr / NullIfExpr) and check a corresponding function for provolatile, > like in the attached patch?
I think the entire approach is wrong here. Rather than concerning yourself with Params, or any other specific expression type, you should be using !contain_volatile_functions() to decide whether an expression is run-time-constant. If it is, use the regular expression evaluation machinery to extract the value. regards, tom lane