Isso obviamente não funciona:
SELECT regexp_matches[1], regexp_matches[1]
FROM ROWS FROM (
regexp_matches('fooBarBaz', '[[:upper:]]', 'g'),
regexp_matches('fooBarBaz', '[[:lower:]]', 'g')
);
Erro: [42702] referência de coluna "regexp_matches" é ambígua
Como posso dar um alias para as chamadas de função?
SELECT u[1], l[1]
FROM ROWS FROM (
regexp_matches('fooBarBaz', '[[:upper:]]', 'g'),
regexp_matches('fooBarBaz', '[[:lower:]]', 'g')
) AS (u text[], l text[]);
Erro: [42601] ROWS FROM() com várias funções não pode ter uma lista de definição de coluna
Dica: Coloque uma lista de definição de coluna separada para cada função dentro de ROWS FROM().
SELECT u[1], l[1]
FROM ROWS FROM (
regexp_matches('fooBarBaz', '[[:upper:]]', 'g') AS (u text[]),
regexp_matches('fooBarBaz', '[[:lower:]]', 'g') AS (l text[])
);
Erro: [42601] uma lista de definição de coluna só é permitida para funções que retornam "registro"
Estou sem ideias. Isso tem que ser possível.
Documentação:
Você também precisa de um alias de tabela