-
- Downloads
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.
Showing
- contrib/file_fdw/file_fdw.c 3 additions, 1 deletioncontrib/file_fdw/file_fdw.c
- doc/src/sgml/keywords.sgml 7 additions, 0 deletionsdoc/src/sgml/keywords.sgml
- doc/src/sgml/ref/copy.sgml 45 additions, 5 deletionsdoc/src/sgml/ref/copy.sgml
- doc/src/sgml/ref/psql-ref.sgml 22 additions, 11 deletionsdoc/src/sgml/ref/psql-ref.sgml
- src/backend/commands/copy.c 150 additions, 55 deletionssrc/backend/commands/copy.c
- src/backend/nodes/copyfuncs.c 1 addition, 0 deletionssrc/backend/nodes/copyfuncs.c
- src/backend/nodes/equalfuncs.c 1 addition, 0 deletionssrc/backend/nodes/equalfuncs.c
- src/backend/parser/gram.y 36 additions, 12 deletionssrc/backend/parser/gram.y
- src/backend/storage/file/fd.c 91 additions, 7 deletionssrc/backend/storage/file/fd.c
- src/bin/psql/copy.c 107 additions, 24 deletionssrc/bin/psql/copy.c
- src/bin/psql/stringutils.c 1 addition, 4 deletionssrc/bin/psql/stringutils.c
- src/bin/psql/stringutils.h 2 additions, 0 deletionssrc/bin/psql/stringutils.h
- src/include/commands/copy.h 1 addition, 1 deletionsrc/include/commands/copy.h
- src/include/nodes/parsenodes.h 1 addition, 0 deletionssrc/include/nodes/parsenodes.h
- src/include/parser/kwlist.h 1 addition, 0 deletionssrc/include/parser/kwlist.h
- src/include/port.h 3 additions, 0 deletionssrc/include/port.h
- src/include/storage/fd.h 4 additions, 0 deletionssrc/include/storage/fd.h
- src/interfaces/ecpg/preproc/ecpg.addons 1 addition, 1 deletionsrc/interfaces/ecpg/preproc/ecpg.addons
- src/port/Makefile 2 additions, 1 deletionsrc/port/Makefile
- src/port/exec.c 10 additions, 27 deletionssrc/port/exec.c
Loading
Please register or sign in to comment