Creo que el problema es que debes ser más específico en cuanto al registro de salida... no basta con setof record...
debes definir un tipo de salida y tu funccion debe retornar un setof "tu_tipo"
Código SQL
[-]create type MyTipo as (Campo1 int, Campo2 int8);
....
create function Myfuncion() returns setof MyTipo as....