test=# create table t(id int, value text); CREATE TABLE test=# insert into t select x, x::text from generate_series(1, 1000) x; INSERT 0 1000 test=# COPY (select * from t where id < 50 order by id desc) TO '/tmp/report.csv' DELIMITER ',' CSV HEADER; ---- copy out the results via a view or sql directly COPY 49 test=# \q postgres@db:~/playground$ head -5 /tmp/report.csv id,value 49,49 48,48 47,47 46,46
and send the csv tar zip compressed etc. How does your client intend to load 1gb report in a viewer ? paginated ? all at once ?