"Oleg" <serovOv@gmail.com> writes:
> CREATE TABLE test (id BIGINT);
> CREATE OR REPLACE FUNCTION test(in_row test) RETURNS bigint AS
> $body$
> INSERT INTO test (SELECT $1.*) RETURNING id;
> $body$
> LANGUAGE 'sql';
> WILL THROW:
> ERROR: return type mismatch in function declared to return bigint
This is improved for 8.4.
http://archives.postgresql.org/pgsql-committers/2008-10/msg00295.php
regards, tom lane