- Chame sua função de retorno de conjunto em uma cláusula FROM.
- Sempre especifique seus tipos.
É chamado de Set Returning Function , mas você deseja especificar o tipo composto
Isso é totalmente válido,
RETURNS SETOF RECORD $$
No entanto, você pode ter que chamá-lo com,
SELECT email, user_id
FROM
app.lookup_email(4,730035455897450,6,'u')
AS t(email text, user_id integer)
O contexto no qual você não pode chamar um SRF não tipado é aquele que não possui uma definição de tabela. Essa sintaxe pode ficar desagradável, então é mais fácil alterar
RETURNS SETOF RECORD
para RETURNS TABLE(email text, user_id integer) AS $$
e use a função sem a lista de definição de coluna
SELECT email, user_id
FROM app.lookup_email(4,730035455897450,6,'u')
Encontre mais informações nos documentos