Re: stdin/stdout mismatch for COPY and \copy

Поиск
Список
Период
Сортировка
От Bruce Momjian
Тема Re: stdin/stdout mismatch for COPY and \copy
Дата
Msg-id 200404091811.i39IBK105518@candle.pha.pa.us
обсуждение исходный текст
Ответ на Re: stdin/stdout mismatch for COPY and \copy  (Tom Lane <tgl@sss.pgh.pa.us>)
Ответы Re: stdin/stdout mismatch for COPY and \copy  (Tom Lane <tgl@sss.pgh.pa.us>)
Список pgsql-hackers
Tom Lane wrote:
> Bruce Momjian <pgman@candle.pha.pa.us> writes:
> > I think the biggest problem is that stdin/stdout in COPY is different
> > from \copy.  I propose we make stdin/stdout consistent for COPY and
> > \copy, where stdin always reads from command input, and stdout always
> > writes to command output.  This does break backward compatibility of
> > \copy for stdin/stdout;  this change would have to be mentioned in the
> > release notes.  COPY is unaffected.
> 
> > I propose we add 'pstdin', and 'pstdout' to read from psql's stdin and
> > stdout.  I think that will greatly simplify our documentation, and
> > clarify the stdin/stdout usage in all cases.
> 
> What is "command output" and how does that differ from stdout?
> 
> I see the need to distinguish command input from psql stdin, since psql
> may be reading the command from a file, but I don't see where there's
> a stdout difference.
> 
> "pstdin" seems a bit contrived; I'm just as happy with using "-" as
> the existing patch did.  I'm fine with swapping the meanings to bring
> \copy into line with COPY, though.

pstdout can be illustrated by this:$ sql -f /tmp/x testDROP TABLECREATE TABLEINSERT 17225 11$ sql -f /tmp/x -o /tmp/y
test1

where /tmp/x is:DROP TABLE test;CREATE TABLE test (x int);INSERT INTO test VALUES (1);\copy test to stdout

In this case, stdout is going to psql's stdout, not to the command
stdout.

The reason I didn't like '-' is that it is used mostly in Unix as
synonym for stdin, and in this case it isn't a synonym --- it actually
has different behavior.  Using '-' which is a synonym for stdin causes
confusion.

I thought pstdin/pstdout were very clear in helping folks remember how
it is different from stdin/stdout.  Certainly it is contrived.  Do you
like appstdin and appstdout better, or psqlstdin and psqlstdout?

--  Bruce Momjian                        |  http://candle.pha.pa.us pgman@candle.pha.pa.us               |  (610)
359-1001+  If your life is a hard drive,     |  13 Roberts Road +  Christ can be your backup.        |  Newtown Square,
Pennsylvania19073
 


В списке pgsql-hackers по дате отправления:

Предыдущее
От: Tom Lane
Дата:
Сообщение: Re: stdin/stdout mismatch for COPY and \copy
Следующее
От: Tom Lane
Дата:
Сообщение: Re: stdin/stdout mismatch for COPY and \copy