Martijn van Oosterhout <kleptog@svana.org> writes:
> Most people figured it was a improvment. It's configured per function
> now, which wasn't the case before. I dont't think there was ever any
> discussion about having a global switch.
Volatile functions that are not at the top level of a query are *always*
going to be a risk factor, in that you don't know quite where the
planner is going to evaluate them. While I'm not by any means wedded to
the 8.2 no-flattening patch, it seems to me to be reasonable because it
reduces that uncertainty a bit. The fact that Gaetano's code depended
on the uncertainty being resolved in a different direction is
unfortunate, but I think his code is really to blame, because postponing
the function eval like that couldn't be guaranteed anyway across all
queries.
regards, tom lane