Make ON_ERROR_STOP stop on shell script failure

From: bt22nakamorit <bt22nakamorit(at)oss(dot)nttdata(dot)com>
To: PostgreSQL Hackers <pgsql-hackers(at)lists(dot)postgresql(dot)org>
Subject: Make ON_ERROR_STOP stop on shell script failure
Date: 2022-09-16 06:55:33
Message-ID: eaf326ad693e74eba068f33a7f518039@oss.nttdata.com
Views: Raw Message | Whole Thread | Download mbox | Resend email
Thread:
Lists: pgsql-hackers

Hi,

"""\set ON_ERROR_STOP on""" stops any subsequent incoming query that
comes after an error of an SQL, but does not stop after a shell script
ran by """\! <some command>""" returning values other than 0, -1, or
127, which suggests a failure in the result of the shell script.

For example, suppose that below is an SQL file.
\set ON_ERROR_STOP on
SELECT 1;
\! false
SELECT 2;

The current design allows SELECT 2 even though the shell script returns
a value indicating a failure.

I thought that this action is rather unexpected since, based on the word
"""ON_ERROR_STOP""", ones may expect that failures of shell scripts
should halt the incoming instructions as well.
One clear solution is to let failures of shell script stop incoming
queries just like how errors of SQLs do currently. Thoughts?

Tatsu

Attachment Content-Type Size
stop_error.patch text/x-diff 363 bytes

Responses

Browse pgsql-hackers by date

  From Date Subject
Next Message CK Tan 2022-09-16 06:56:43 missing PG_FREE_IF_COPY in textlike() and textnlike() ?
Previous Message Marina Polyakova 2022-09-16 06:49:28 Re: ICU for global collation