From: | David Zhang <david(dot)zhang(at)highgo(dot)ca> |
---|---|
To: | pgsql-hackers(at)lists(dot)postgresql(dot)org |
Cc: | Daniel Vérité <daniel(at)manitou-mail(dot)org> |
Subject: | Re: Making psql error out on output failures |
Date: | 2020-01-15 18:35:38 |
Message-ID: | 157911333817.709.14442233793862477339.pgcf@coridan.postgresql.org |
Views: | Raw Message | Whole Thread | Download mbox | Resend email |
Thread: | |
Lists: | pgsql-hackers |
Right, the file difference is caused by "-At".
On the other side, in order to keep the output message more consistent with other tools, I did a litter bit more investigation on pg_dump to see how it handles this situation. Here is my findings.
pg_dump using WRITE_ERROR_EXIT to throw the error message when "(bytes_written != size * nmemb)", where WRITE_ERROR_EXIT calls fatal("could not write to output file: %m") and then "pg_log_generic(PG_LOG_ERROR, __VA_ARGS__)". After ran a quick test in the same situation, I got message like below,
$ pg_dump -h localhost -p 5432 -d postgres -t psql_error -f /mnt/ramdisk/file
pg_dump: error: could not write to output file: No space left on device
If I change the error log message like below, where "%m" is used to pass the value of strerror(errno), "could not write to output file:" is copied from function "WRITE_ERROR_EXIT".
- pg_log_error("Error printing tuples");
+ pg_log_error("could not write to output file: %m");
then the output message is something like below, which, I believe, is more consistent with pg_dump.
$ psql -d postgres -t -c "select repeat('111', 1000000)" -o /mnt/ramdisk/file
could not write to output file: No space left on device
$ psql -d postgres -t -c "select repeat('111', 1000000)" > /mnt/ramdisk/file
could not write to output file: No space left on device
Hope the information will help.
David
---
Highgo Software Inc. (Canada)
www.highgo.ca
From | Date | Subject | |
---|---|---|---|
Next Message | Robert Haas | 2020-01-15 18:54:54 | Re: our checks for read-only queries are not great |
Previous Message | Juan José Santamaría Flecha | 2020-01-15 18:21:11 | Re: Allow to_date() and to_timestamp() to accept localized names |