Re: \if, \elseif, \else, \endif (was Re: [HACKERS] PSQL commands:\quit_if, \quit_unless) - Mailing list pgsql-hackers

From Corey Huinker
Subject Re: \if, \elseif, \else, \endif (was Re: [HACKERS] PSQL commands:\quit_if, \quit_unless)
Date
Msg-id CADkLM=e1_=iSxP72MP7WOAgyrFC6emO_7yAJDGeeC4tHkYjfcQ@mail.gmail.com
Whole thread Raw
In response to Re: \if, \elseif, \else, \endif (was Re: [HACKERS] PSQL commands:\quit_if, \quit_unless)  (Erik Rijkers <er@xs4all.nl>)
Responses Re: \if, \elseif, \else, \endif (was Re: [HACKERS] PSQL commands:\quit_if, \quit_unless)
List pgsql-hackers
On Wed, Feb 1, 2017 at 6:31 AM, Erik Rijkers <er@xs4all.nl> wrote:
On 2017-02-01 09:27, Corey Huinker wrote:
 0001.if_endif.v4.diff

A few thoughts after a quick try:

I dislike the ease with which one gets stuck inside an \if block, in interactive mode.

(for instance, in my very first session, I tried   '\? \if'  to see if there is more info in that help-screen, but it only displays the normal help screen.  But after that one cannot exit with  \q  anymore, and there is no feedback of any kind (prompt?) in which black hole one has ended up.  Only a \endif  provides rescue.)

Good find. I'll have to bulk up the help text.
This raises a question: in interactive mode, should we give some feedback as to the result of an \if or \elif test? (see below)
 

Therefore making it possible to break out of \if-mode with Ctrl-C would be an improvement, I think.
I would even prefer it when  \q would exit psql always, even from within \if-mode.

This whole thing got started with a \quit_if <expr> command, and it was pointed out that

\if :condition
   \q
\endif

SELECT ... FROM ...

would be preferable. So I don't think we can do that. At least not in non-interactive mode.

As for CTRL-C, I've never looked into what psql does with CTRL-C, so I don't know if it's possible, let alone desirable.
 

Also, shouldn't  the prompt change inside an \if block?

That's a good question. I could see us finding ways to print the t/f of whether a branch is active or not, but I'd like to hear from more people before diving into something like that.
 

pgsql-hackers by date:

Previous
From: Stephen Frost
Date:
Subject: Re: [HACKERS] Reporting planning time with EXPLAIN
Next
From: Corey Huinker
Date:
Subject: Re: \if, \elseif, \else, \endif (was Re: [HACKERS] PSQL commands:\quit_if, \quit_unless)