Re: Add SHELL_EXIT_CODE to psql - Mailing list pgsql-hackers
From | vignesh C |
---|---|
Subject | Re: Add SHELL_EXIT_CODE to psql |
Date | |
Msg-id | CALDaNm3uhGEMCRx1YFjr9PxwFzD7gv0u3pi-QjfS+J6duON2iA@mail.gmail.com Whole thread Raw |
In response to | Re: Add SHELL_EXIT_CODE to psql (Corey Huinker <corey.huinker@gmail.com>) |
Responses |
Re: Add SHELL_EXIT_CODE to psql
|
List | pgsql-hackers |
On Wed, 21 Dec 2022 at 11:04, Corey Huinker <corey.huinker@gmail.com> wrote: > > I've rebased and updated the patch to include documentation. > > Regression tests have been moved to a separate patchfile because error messages will vary by OS and configuration, so weprobably can't do a stable regression test, but having them handy at least demonstrates the feature. > > On Sun, Dec 4, 2022 at 12:35 AM Corey Huinker <corey.huinker@gmail.com> wrote: >> >> Rebased. Still waiting on feedback before working on documentation. >> >> On Fri, Nov 4, 2022 at 5:23 AM Corey Huinker <corey.huinker@gmail.com> wrote: >>> >>> Oops, that sample output was from a previous run, should have been: >>> >>> -- SHELL_EXIT_CODE is undefined >>> \echo :SHELL_EXIT_CODE >>> :SHELL_EXIT_CODE >>> -- bad \! >>> \! borp >>> sh: line 1: borp: command not found >>> \echo :SHELL_EXIT_CODE >>> 127 >>> -- bad backtick >>> \set var `borp` >>> sh: line 1: borp: command not found >>> \echo :SHELL_EXIT_CODE >>> 127 >>> -- good \! >>> \! true >>> \echo :SHELL_EXIT_CODE >>> 0 >>> -- play with exit codes >>> \! exit 4 >>> \echo :SHELL_EXIT_CODE >>> 4 >>> \set var `exit 3` >>> \echo :SHELL_EXIT_CODE >>> 3 >>> >>> >>> On Fri, Nov 4, 2022 at 5:08 AM Corey Huinker <corey.huinker@gmail.com> wrote: >>>> >>>> >>>> Over in https://www.postgresql.org/message-id/eaf326ad693e74eba068f33a7f518039@oss.nttdata.com Justin Pryzby suggestedthat psql might need the ability to capture the shell exit code. >>>> >>>> This is a POC patch that does that, but doesn't touch on the ON_ERROR_STOP stuff. >>>> >>>> I've added some very rudimentary tests, but haven't touched the documentation, because I strongly suspect that someonewill suggest a better name for the variable. >>>> >>>> But basically, it works like this >>>> >>>> -- SHELL_EXIT_CODE is undefined >>>> \echo :SHELL_EXIT_CODE >>>> :SHELL_EXIT_CODE >>>> -- bad \! >>>> \! borp >>>> sh: line 1: borp: command not found >>>> \echo :SHELL_EXIT_CODE >>>> 32512 >>>> -- bad backtick >>>> \set var `borp` >>>> sh: line 1: borp: command not found >>>> \echo :SHELL_EXIT_CODE >>>> 127 >>>> -- good \! >>>> \! true >>>> \echo :SHELL_EXIT_CODE >>>> 0 >>>> -- play with exit codes >>>> \! exit 4 >>>> \echo :SHELL_EXIT_CODE >>>> 1024 >>>> \set var `exit 3` >>>> \echo :SHELL_EXIT_CODE >>>> 3 >>>> >>>> >>>> Feedback welcome. CFBot shows some compilation errors as in [1], please post an updated version for the same: [02:35:49.924] psqlscanslash.l: In function ‘evaluate_backtick’: [02:35:49.924] psqlscanslash.l:822:11: error: implicit declaration of function ‘WIFSTOPPED’ [-Werror=implicit-function-declaration] [02:35:49.924] 822 | exit_code=WSTOPSIG(exit_code); [02:35:49.924] | ^~~~~~~~~~ [02:35:49.924] psqlscanslash.l:823:14: error: implicit declaration of function ‘WSTOPSIG’ [-Werror=implicit-function-declaration] [02:35:49.924] 823 | } [02:35:49.924] | ^ [02:35:49.924] cc1: all warnings being treated as errors [02:35:49.925] make[3]: *** [<builtin>: psqlscanslash.o] Error 1 [1] - https://cirrus-ci.com/task/5424476720988160 Regards, Vignesh
pgsql-hackers by date: