Как получить refcursor в функции, возвращаемой из другой функции в postgres?

#postgresql

#postgresql

Вопрос:

mainfunc() возвращает refcursor.

 CREATE OR REPLACE FUNCTION public.mainfunc()
RETURNS refcursor
LANGUAGE 'plpgsql'
AS $BODY$
    declare 
    ref1 refcursor;
    BEGIN 
          ref1 = 
          OPEN ref1 FOR SELECT city, pincode FROM employees WHERE id = 1;   
          RETURN ref1;
    end;
    $BODY$
  

Ниже показана дочерняя функция, которая должна извлекаться из refcursor, возвращаемого из mainfunc() .

 CREATE OR REPLACE FUNCTION secondfunc(ref1 refcursor)
RETURNS integer
LANGUAGE 'plpgsql'
AS $BODY$
 declare
    rec record;
    sample integer;
    ref1 refcursor;
    begin
    select * from mainFunc() ;
    for rec in ref1
    loop
    fetch next from ref1 into rec;
    exit when not found;
    raise notice 'display %', rec.id;
    end loop;
    end;
    $BODY$;
  

Комментарии:

1. Почему бы просто не объявить mainfunc() returns tables (...) и не использовать for rec in select * from mainfunc() во второй функции?

2. Это пример кода, фактическая реализация должна извлекать refcursor из другой функции.