Noah Misch <noah@leadboat.com> writes:
> On Fri, Mar 23, 2012 at 10:55:52AM -0400, Tom Lane wrote:
>> Why exactly was this thought to be a good idea:
>>
>>> * A NULL original expression disables use of transform functions while
>>> * retaining all other behaviors.
> 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.
Oh, I see your point --- it's not obvious whether the current transform
is meant for the input or the output function. Which is a very good
point. In principle the transform function could figure out which end
of that it must be, but it would be ugly.
However, see my response to Robert: why are we passing the original node
to the transform function at all? It would be more useful and easier to
work with to pass the function's fully-processed argument list, I believe.
regards, tom lane