pgsql: Add support for piping COPY to/from an external program.
От | Heikki Linnakangas |
---|---|
Тема | pgsql: Add support for piping COPY to/from an external program. |
Дата | |
Msg-id | E1UAjmP-0007Ln-B3@gemulon.postgresql.org обсуждение исходный текст |
Ответы |
Re: pgsql: Add support for piping COPY to/from an
external program.
Re: pgsql: Add support for piping COPY to/from an external program. |
Список | pgsql-committers |
Add support for piping COPY to/from an external program. This includes backend "COPY TO/FROM PROGRAM '...'" syntax, and corresponding psql \copy syntax. Like with reading/writing files, the backend version is superuser-only, and in the psql version, the program is run in the client. In the passing, the psql \copy STDIN/STDOUT syntax is subtly changed: if you the stdin/stdout is quoted, it's now interpreted as a filename. For example, "\copy foo from 'stdin'" now reads from a file called 'stdin', not from standard input. Before this, there was no way to specify a filename called stdin, stdout, pstdin or pstdout. This creates a new function in pgport, wait_result_to_str(), which can be used to convert the exit status of a process, as returned by wait(3), to a human-readable string. Etsuro Fujita, reviewed by Amit Kapila. Branch ------ master Details ------- http://git.postgresql.org/pg/commitdiff/3d009e45bde2a2681826ef549637ada76508b597 Modified Files -------------- contrib/file_fdw/file_fdw.c | 4 +- doc/src/sgml/keywords.sgml | 7 + doc/src/sgml/ref/copy.sgml | 50 +++++++- doc/src/sgml/ref/psql-ref.sgml | 33 ++++-- src/backend/commands/copy.c | 205 ++++++++++++++++++++++-------- src/backend/nodes/copyfuncs.c | 1 + src/backend/nodes/equalfuncs.c | 1 + src/backend/parser/gram.y | 48 ++++++-- src/backend/storage/file/fd.c | 98 ++++++++++++++- src/bin/psql/copy.c | 131 ++++++++++++++++---- src/bin/psql/stringutils.c | 5 +- src/bin/psql/stringutils.h | 2 + src/include/commands/copy.h | 2 +- src/include/nodes/parsenodes.h | 1 + src/include/parser/kwlist.h | 1 + src/include/port.h | 3 + src/include/storage/fd.h | 4 + src/interfaces/ecpg/preproc/ecpg.addons | 2 +- src/port/Makefile | 3 +- src/port/exec.c | 37 ++---- src/port/wait_error.c | 92 ++++++++++++++ 21 files changed, 581 insertions(+), 149 deletions(-)
В списке pgsql-committers по дате отправления: