Pavel Stehule <pavel.stehule@gmail.com> writes:
> 2012/10/8 Tom Lane <tgl@sss.pgh.pa.us>:
>> Laziness, probably. Feel free to have at it.
> I wrote patch some years ago. It was rejected from performance reasons
> - because every row had to be casted to resulted type.
I don't recall that patch in any detail, but it's not apparent to me
that an extra cast step *must* be required to implement this. In the
cases that are supported now, surely we could notice that no additional
work is required.
It's also worth commenting that if we were to switch the storage of
composite-type plpgsql variables to HeapTuple, as has been suggested
here for other reasons, the performance tradeoffs in this area would
likely change completely anyway.
regards, tom lane