((editar após resposta: esta é uma pergunta/problema típico de XY , não há restrição de uso de caminho absoluto , nas funções FileSystem do PostgreSQL. Como comentário @LaurenzAlbe, "apenas tente". ))
Preciso exportar/importar arquivos JSON, arquivos CSV, XML, GeoJSON, etc. Exemplo:
CREATE EXTENSION adminpack;
SELECT pg_catalog.pg_file_write(
'base/pgsql_tmp/test1_hello.txt',
E'Hello\n\n\tWorld!',
false
);
Todos são temporários (existe em um BEGIN/COMMIT), mas não tem problema?
nenhum risco em conflito de nome de arquivo? (por exemplo, meu nome de arquivo e um nome de arquivo de tabela temporária gerenciada do pgsql)
não há risco de
base
estouro de volume do diretório ( )? (por exemplo, quando eu salvo um arquivo grande lá)nenhum risco em sequências de leitura e gravação no mesmo nome de arquivo? Eles serão síncronos nas seções BEGIN/COMMIT?
NOTAS E CONTEXTO
Às vezes podemos dizer que "servidores de banco de dados não são projetados para I/O geral de arquivos" ( ref ), mas às vezes precisamos (!), para simplificar e automatizar procedimentos de interface ou ETL .
Sobre o item 1 e o uso prático, para simplificar os procedimentos de exportação/importação (e não precisar lembrar onde está data_directory
), talvez seja melhor criar um ${data_directory}/base/pgsql_tmp/MyArea
link simbólico para outra área (por exemplo /tmp/MyRealArea
, ).