Hola,
al final lo resolvi de esta manera... La comparto por si algun dia hace falta..
Código SQL:
Ver originalCREATE OR REPLACE FUNCTION f_existe_usuario(_email CHARACTER VARYING)
RETURNS SETOF t_datos_recup_clave AS
$BODY$
DECLARE
_cod_msj INTEGER;
_msj_usu VARCHAR;
_reg_usuario RECORD;
_retorno t_datos_recup_clave;
BEGIN
SELECT
id_usu,
nom_usu,
ape_usu
INTO
_reg_usuario
FROM
usuarios
WHERE
ema_usu = _email;
IF NOT FOUND THEN
_cod_msj := 1;
_msj_usu := 'No Existe el Usuario';
_retorno.cod_msj := _cod_msj;
_retorno.msj_usu := _msj_usu;
ELSE
_cod_msj := 0;
_msj_usu := 'El usuario ha sido encontrado';
_retorno.cod_msj := _cod_msj;
_retorno.msj_usu := _msj_usu;
_retorno.id_usu := _reg_usuario.id_usu;
_retorno.nom_usu := _reg_usuario.nom_usu;
_retorno.ape_usu := _reg_usuario.ape_usu;
END IF;
RETURN NEXT _retorno;
RETURN;
END;
$BODY$
LANGUAGE plpgsql VOLATILE
COST 100
ROWS 1000;
ALTER FUNCTION f_existe_usuario(CHARACTER VARYING) OWNER TO u_enelmapa;