I wrote:
> It strikes me that this is basically to_regtype() with the additional
> option to return the typmod. That leads to some questions:
BTW, another way that this problem could be approached is to use
to_regtype() as-is, with a separate function to obtain the typmod:
select format_type(to_regtype('timestamp(4)'), to_regtypmod('timestamp(4)'));
This is intellectually ugly, since it implies parsing the same
typename string twice. But on the other hand it avoids the notational
pain and runtime overhead involved in using a record-returning
function. So I think it might be roughly a wash for performance.
Question to think about is which way is easier to use. I don't
have an opinion particularly; just throwing the idea out there.
regards, tom lane