Re: WIP patch: add (PRE|POST)PROCESSOR options to COPY
Andrew Dunstan <andrew@dunslane.net>
From: Andrew Dunstan <andrew@dunslane.net>
To: Tom Lane <tgl@sss.pgh.pa.us>
Cc: Alvaro Herrera <alvherre@2ndquadrant.com>, Simon Riggs <simon@2ndquadrant.com>, Fujii Masao <masao.fujii@gmail.com>, Etsuro Fujita <fujita.etsuro@lab.ntt.co.jp>, Craig Ringer <ringerc@ringerc.id.au>, pgsql-hackers@postgresql.org
Date: 2012-11-14T17:18:19Z
Lists: pgsql-hackers
On 11/14/2012 11:56 AM, Tom Lane wrote: > Andrew Dunstan <andrew@dunslane.net> writes: >> On 11/14/2012 11:39 AM, Tom Lane wrote: >>> What happened to the previous proposal of treating the COPY >>> target as a pipe specification, ie >> I'd like to be able to filter STDIN if possible - with this syntax how >> is COPY going to know to hook up STDIN to the program? > Huh? That's fairly nonsensical for the backend-side case; there's no > way that stdin (or stdout) of a backend is going to connect anywhere > useful for this purpose. As for doing it on the psql side (\copy), > I think it would be more or less automatic. If you do say > > foo | psql -c "\copy tab from 'bar |'" dbname > > then bar is going to inherit psql's stdin, which is coming from foo. > > Why does it make less sense on the backend than COPY foo FROM STDIN ? Why shouldn't I want to be able to filter or transform the input? I have a client with a pretty complex backend-driven ETL tool. One of the annoying things about it is that we have to transfer the file to the backend before we can process it. I can imagine this leading to a similar annoyance. cheers andrew