Re: "COPY foo FROM STDOUT" and ecpg
От | Heikki Linnakangas |
---|---|
Тема | Re: "COPY foo FROM STDOUT" and ecpg |
Дата | |
Msg-id | 512CE416.5080503@vmware.com обсуждение исходный текст |
Ответ на | Re: "COPY foo FROM STDOUT" and ecpg (Tom Lane <tgl@sss.pgh.pa.us>) |
Ответы |
Re: "COPY foo FROM STDOUT" and ecpg
Re: "COPY foo FROM STDOUT" and ecpg |
Список | pgsql-hackers |
On 26.02.2013 18:23, Tom Lane wrote: > Heikki Linnakangas<hlinnakangas@vmware.com> writes: >> While looking at Fujita Etsuro's patch to allow copy to/from a shell >> command, I noticed that the grammar currently allows these: > >> COPY foo FROM STDOUT >> COPY foo TO STDIN > >> In other words, STDIN and STDOUT can be used completely interchangeably. >> However, the ecpg grammar is more strict about that: > >> ERROR: COPY TO STDIN is not possible > >> Any particular reason for ecpg to check that, while the backend doesn't >> care? I think we should just remove those checks from the ecpg grammar. > > Agreed, but your draft patch doesn't do that completely. It should only > make tests that correspond to what the error message says. Sorry, I don't understand what you're saying. Can you elaborate? > (I assume > the backend will bounce the other cases at some post-grammar stage.) No. All four combinations of FROM/TO and STDIN/STDOUT are accepted: postgres=# copy foo from stdin; Enter data to be copied followed by a newline. End with a backslash and a period on a line by itself.>> foo>> \. postgres=# copy foo from stdout; Enter data to be copied followed by a newline. End with a backslash and a period on a line by itself.>> bar>> \. postgres=# copy foo to stdin; foo bar postgres=# copy foo to stdout; foo bar - Heikki
В списке pgsql-hackers по дате отправления: