Florian Pflug <fgp@phlo.org> writes:
> Hm, I've browsed through the code and it seems that the current behaviour
> was implemented on purpose.
Yes, it's 100% intentional. The idea is to allow function authors to
use OUT-parameter notation (in particular, the convention of assigning
to a named variable to set the result) without forcing them into the
overhead of returning a record when all they want is to return a scalar.
So a single OUT parameter is *supposed* to work just like a function
that does "returns whatever" without any OUT parameters.
Even if you think this was a bad choice, which I don't, it's far too
late to change it.
regards, tom lane