funciones que devuelven recordset

Buenas tardes… otra vez yo y sigo con los problemas con funciones.
el codigo en conflicto es el siguiente…

si yo ejecuto la consulta me funciona bien, pero si la pongo dentro de una funcion no quiere andar, y da el error…
ERROR: wrong record type supplied in RETURN NEXT
SQL state: 42804

FOR modulo_raiz IN (
SELECT elemento, elemento_tipo, elemento_subtipo, elemento_clase_gui, elemento_padre, nombre, modulo_revision, modulo_revision_comp, orden, CAST(NULL as int) as cant_pv_activo, CAST(NULL as int) as cant_pv_no_activo
FROM get_plan_version_contenido ( id_plan_version )
AS ( elemento int,
elemento_tipo character(1),
elemento_subtipo smallint,
elemento_clase_gui character varying(100),
elemento_padre integer,
nombre character varying(255),
modulo_revision int,
modulo_revision_comp integer,
orden smallint ) ) LOOP

RETURN NEXT modulo_raiz;

END LOOP;

… probe también reemplazando el for por un …

SELECT elemento, elemento_tipo, elemento_subtipo, elemento_clase_gui, elemento_padre, nombre, modulo_revision, modulo_revision_comp, orden, CAST(NULL as int) as cant_pv_activo, CAST(NULL as int) as cant_pv_no_activo
  INTO modulo_raiz
    FROM get_plan_version_contenido ( id_plan_version )
			AS (	elemento int, 
				elemento_tipo character(1),
				elemento_subtipo smallint,
				elemento_clase_gui character varying(100),
				elemento_padre integer,
				nombre character varying(255),
				modulo_revision int,
				modulo_revision_comp integer,
				orden smallint );

RETURN NEXT modulo_raiz;

… y esto tampoco le gusta y me da el siguiente error … hay otra forma de resolverlo?

ERROR: wrong record type supplied in RETURN NEXT
SQL state: 42804

muchas gracias! o como dirían los foristas yanquis Thanks in advance!
Dario.

ya lo resolvi!
estaba llamando mal a la función … silenzio stampa.

Gracias igual!
Dario

Te conviene utilizar cursores en este caso, estas tirando consultas sobre el servidor que tienen mayor
impacto.
Lo pensaste o no te sirve?