On Fri, Mar 23, 2012 at 10:55:52AM -0400, Tom Lane wrote:
> Robert Haas <rhaas@postgresql.org> writes:
> > Add notion of a "transform function" that can simplify function calls.
>
> Why exactly was this thought to be a good idea:
>
> > * A NULL original expression disables use of transform functions while
> > * retaining all other behaviors.
We last spoke of that idea here, albeit in minimal detail:
http://archives.postgresql.org/pgsql-hackers/2011-06/msg00918.php
> AFAICT that buys nothing except to greatly complicate the API
> specification for simplify_function, something that is now proving
> problematic for Marti's requested refactoring [1]. If it's
> inappropriate for a transform function to modify a CoerceViaIO call,
> surely the transform function can be expected to know that.
I did it that way because it looked wrong to pass the same CoerceViaIO node to
transforms of both the input and output functions. Thinking about it again
now, doing so imposes no fundamental problems. Feel welcome to change it.