Re: Make ON_ERROR_STOP stop on shell script failure
От | Fujii Masao |
---|---|
Тема | Re: Make ON_ERROR_STOP stop on shell script failure |
Дата | |
Msg-id | 3f489f1f-3f91-8a98-4cf3-bad7ff037dc2@oss.nttdata.com обсуждение исходный текст |
Ответ на | Re: Make ON_ERROR_STOP stop on shell script failure (bt22nakamorit <bt22nakamorit@oss.nttdata.com>) |
Ответы |
Re: Make ON_ERROR_STOP stop on shell script failure
|
Список | pgsql-hackers |
On 2022/09/30 16:54, bt22nakamorit wrote: > 2022-09-21 11:45 に Fujii Masao wrote: >> We can execute the shell commands via psql in various ways >> other than \! meta-command. For example, >> >> * `command` >> * \g | command >> * \gx | command >> * \o | command >> * \w | command >> * \copy ... program 'command' >> >> ON_ERROR_STOP should handle not only \! but also all the above in the same way? >> >> >> One concern about this patch is that some applications already depend on >> the current behavior of ON_ERROR_STOP, i.e., psql doesn't stop even when >> the shell command returns non-zero exit code. If so, we might need to >> extend ON_ERROR_STOP so that it accepts the following setting values. >> >> * off - don't stop even when either sql or shell fails (same as the >> current behavior) >> * on or sql - stop only whensql fails (same as the current behavior) >> * shell - stop only when shell fails >> * all - stop when either sql or shell fails >> >> Thought? >> >> Regards, > > I agree that some applications may depend on the behavior of previous ON_ERROR_STOP. > I created a patch that implements off, on, shell, and all option for ON_ERROR_STOP. > I also edited the code for \g, \o, \w, and \set in addition to \! to return exit status of shell commands for ON_ERROR_STOP. > > There were discussions regarding the error messages for when shell command fails. > I have found that \copy already handles exit status of shell commands when it executes one, so I copied the messages fromthere. > More specifically, I referred to """bool do_copy(const char *args)""" in src/bin/psql/copy.c > > Any feedback would be very much appreciated. Thanks for updating the patch! The patch failed to be applied into the master cleanly. Could you rebase it? patching file src/bin/psql/common.c Hunk #1 succeeded at 94 (offset 4 lines). Hunk #2 succeeded at 104 (offset 4 lines). Hunk #3 succeeded at 133 (offset 4 lines). Hunk #4 succeeded at 1869 with fuzz 1 (offset 1162 lines). Hunk #5 FAILED at 2624. 1 out of 5 hunks FAILED -- saving rejects to file src/bin/psql/common.c.rej Regards, -- Fujii Masao Advanced Computing Technology Center Research and Development Headquarters NTT DATA CORPORATION
В списке pgsql-hackers по дате отправления: