I need to export a big table to csv file and compress it.
I can export it using COPY command from postgres like -
COPY foo_table to \'/tmp/foo_table.csv
The trick is to make COPY send its output to stdout, then pipe the output through gzip:
COPY
psql -c "COPY foo_table TO stdout DELIMITER ',' CSV HEADER" \ | gzip > foo_table.csv.gz