John Gunther <postgresql@bucksvsbytes.com> writes:
> and trying to create a second function mstr that calls the sub function
> using a select statement as sub's argument:
> create function mstr(text,text) returns int as 'select sub((select
> 5,6,7,8)::m);' language sql;
I think you want 'select sub(row(5,6,7,8)::m)'
> My question is this:
> (select 5,6,7,8)::m returns a single entity of composite type m
No, the select returns four columns, and trying to cast it after the
fact doesn't change that. We might at some point try to support the
above syntax, but I'm not in a big hurry considering that it's not
required by the SQL spec --- the row() syntax is what the spec says
you use to construct a composite value.
regards, tom lane