Der er et gammelt trick til at bruge et navngivet rør (fungerer på Unix, kender ikke til Windows)
- opret et navngivet rør:
mkfifo /tmp/omyfifo - skriv filindholdet til det:
zcat mycsv.csv.z > /tmp/omyfifo & - [fra psql]
copy mytable(col1,...) from '/tmp/omyfifo' - [når færdig] :
rm /tmp/omyfifo
zcat i baggrunden vil blokere indtil en læser (her:COPY kommando) begynder at læse, og den slutter ved EOF. (eller hvis læseren lukker røret)
Du kan endda starte flere pipes+zcat-par, som vil blive opfanget af flere COPY udsagn i dit sql-script.
Dette vil fungere fra pgadmin, men fifo (+zcat-processen) bør være til stede på den maskine, hvor DBMS-serveren kører.
BTW:et lignende trick ved hjælp af netcat kan bruges til at læse en fil fra en ekstern maskine (som selvfølgelig skal skrive filen til netværkssocket)