Retorno de campo de todos os schemas

Bom dia amigos, sou iniciante em banco de dados e estou com a seguinte situação:

Preciso fazer uma consulta em um banco postgres, retornando todos os valores da coluna email da tabela pessoa de todos os schemas.

Segue abaixo function que implementei porém não consigo que me retorne todos os valores e sim somente o útlimo.

create or replace function do_something_with_all_these_tables(tablename text)
returns record language plpgsql 
as $$
declare
    schemaname text;
    rec record;
begin
    for schemaname in
        select n.nspname
        from pg_class c
        join pg_namespace n on n.oid = c.relnamespace
        where c.relkind = 'r' and c.relname = tablename        
    loop
        execute format(
            'select email from %s.%s',
            schemaname, tablename) into rec;
    end loop;
    return rec;
end $$;

select do_something_with_all_these_tables('pessoa');

Alguém saberia dizer como pode ser feito esse retorno de todos os registros?

Atenciosamente,

Alguém?