Estou gerando uma lista de comandos SQL para exportar alguns dados que executo usando psql -f. Todas as consultas obtêm o mesmo subconjunto de dados, então pensei em fatorar as qualificações e colocar uma lista de IDs de usuários qualificados em tabelas temporárias assim
create temporary table tmp_export_users as (select id from users where ...)
em seguida, consulte isso nos meus comandos \copy como
\copy (select ... from table where user_id in (select id from tmp_export_users)) TO 'filename.csv' WITH CSV HEADER
Esses estão todos no mesmo arquivo, um por linha, e executando-os -f recebo o erro de que os comandos de cópia não podem ver a tabela temporária, então estou supondo que o comando de cópia do cliente não deve realmente usar o mesmo postgres sessão como psql.
Isso é correto? Existe uma maneira de mudar esse comportamento?