Re: Make ON_ERROR_STOP stop on shell script failure - Mailing list pgsql-hackers

From bt22nakamorit
Subject Re: Make ON_ERROR_STOP stop on shell script failure
Date
Msg-id d87e16e15d5498f0eb62fc23d4397fd6@oss.nttdata.com
Whole thread Raw
In response to Re: Make ON_ERROR_STOP stop on shell script failure  (Fujii Masao <masao.fujii@oss.nttdata.com>)
Responses Re: Make ON_ERROR_STOP stop on shell script failure
List pgsql-hackers
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.

Tatsu
Attachment

pgsql-hackers by date:

Previous
From: vignesh C
Date:
Subject: Re: Support logical replication of DDLs
Next
From: Benjamin Coutu
Date:
Subject: Re: disfavoring unparameterized nested loops