On 5/31/06, Tom Lane <[EMAIL PROTECTED]> wrote:
After re-reading what I just wrote to Andreas about how compression of
COPY data would be better done outside the backend than inside, it
struck me that we are missing a feature that's fairly common in Unix
programs.  Perhaps COPY ought to have the ability to pipe its output
to a shell command, or read input from a shell command.  Maybe something
like

        COPY mytable TO '| gzip >/home/tgl/mytable.dump.gz';

(I'm not wedded to the above syntax, it's just an off-the-cuff thought.)

Of course psql would need the same capability, since the server-side
copy would still be restricted to superusers.

You can accomplish COPY piping now through psql, but it's a bit awkward:

        psql -c "COPY mytable TO stdout" mydb | gzip ...

Thoughts?  Is this worth doing, or is the psql -c approach good enough?

You can accomplish it now with help of FIFOs, like

\! mkfifo /tmp/psqlfifo
\! chmod 666 /tmp/psqlfifo
-- I know 666 is a dangerous number. ;)
\! gzip -9 < /tmp/psqlfifo > /tmp/psqlcopy.gz
COPY foo TO '/tmp/psqlfifo';

...though ability to pipe "directly" is desirable feature.

  Regards,
      Dawid

---------------------------(end of broadcast)---------------------------
TIP 6: explain analyze is your friend

Reply via email to