public inbox for [email protected]
help / color / mirror / Atom feedFrom: Fujii Masao <[email protected]>
To: bt22nakamorit <[email protected]>
Cc: Kyotaro Horiguchi <[email protected]>
Cc: [email protected]
Subject: Re: Make ON_ERROR_STOP stop on shell script failure
Date: Fri, 7 Oct 2022 17:16:40 +0900
Message-ID: <[email protected]> (raw)
In-Reply-To: <[email protected]>
References: <[email protected]>
<[email protected]>
<[email protected]>
<[email protected]>
<[email protected]>
<[email protected]>
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 from there.
> 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
view thread (20+ messages) latest in thread
reply
Reply instructions:
You may reply publicly to this message via plain-text email
using any one of the following methods:
* Reply to all the recipients using the --to and --cc options:
reply via email
To: [email protected]
Cc: [email protected], [email protected], [email protected], [email protected]
Subject: Re: Make ON_ERROR_STOP stop on shell script failure
In-Reply-To: <[email protected]>
* Save the following mbox file, import it into your mail client,
and reply-to-all from there: mbox
This inbox is served by agora; see mirroring instructions
for how to clone and mirror all data and code used for this inbox