On 27.02.2013 11:38, Etsuro Fujita wrote:
Agreed. ISTM that the comment on parse_slash_copy() needs to be changed:
* table name can be double-quoted and can have a schema part.
* column names can be double-quoted.
* filename can be single-quoted like SQL literals.
* command can be single-quoted like SQL literals.
The last line must be:
* command must be single-quoted like SQL literals.
Fixed that.
Attached is a new version of this patch that I almost committed, but
one thing caught my eye at the last minute: The error reporting is not
very user-friendly. If the program fails after reading/writing some
rows, the reason is printed to the log, but not the user:
postgres=# copy foo to program '/tmp/midway-crash';
ERROR: could not execute command "/tmp/midway-crash"
the log has more details:
LOG: child process exited with exit code 10
STATEMENT: copy foo to program '/tmp/midway-crash';
ERROR: could not execute command "/tmp/midway-crash"
STATEMENT: copy foo to program '/tmp/midway-crash';
I think we should arrange for the "child process exited with exit code
10" to be printed as errdetail to the client. Similarly, with psql
\copy command, the "child process exited with exit code 10" command
shouldn't be printed straight to stderr, but should go through
psql_error.
I'll try to refactor pclose_check tomorrow to do that. Meanwhile,
please take a look at the attached if you have the time. I rewrote much
of the docs changes, and some comments.
Looks fine to me.
Ok, committed with the changes to the error handling. I refactored the
logic to construct a human-readable string from pclose_check() to a new
function, and used that.
Thanks for the patch, and thanks Amit for the review!
- Heikki
--
Sent via pgsql-hackers mailing list (pgsql-hackers@postgresql.org)
To make changes to your subscription:
http://www.postgresql.org/mailpref/pgsql-hackers