On Mon, Apr 3, 2017 at 3:32 PM, Daniel Verite <dan...@manitou-mail.org> wrote:
In interactive mode, the warning in untaken branches is misleading
when \endif is on the same line as the commands that
are skipped. For instance:

  postgres=# \if false \echo NOK \endif
  \echo command ignored; use \endif or Ctrl-C to exit current \if block
  postgres=#

From the point of view of the user, the execution flow has exited
the branch already when this warning is displayed.
Of course issuing the recommended \endif at this point doesn't work:

  postgres=# \endif
  \endif: no matching \if

Maybe that part of the message:
"use \endif or Ctrl-C to exit current \if block"
should be displayed only when coming back at the prompt,
and if the flow is still in an untaken branch at this point?

Is this an open item, or do we not care about fixing it?

I would suggest that this is not important enough to block anything.

Otherwise, I agree that displaying this interactive message only when it is pertinent is desirable, but this might change the underlying logic significantly: it may mean holding somewhere a message to be shown at next prompt, and being able to decide when to clear it.

There is also the question of what happens if there are multiple such messages, should they all be shown? Only the first? The last? Should it avoid repeats?

So I propose to call it a feature for now, especially that we do not expect people to write a lot of one-liner multiple-backslash-commands in interactive mode.

--
Fabien.


--
Sent via pgsql-hackers mailing list (pgsql-hackers@postgresql.org)
To make changes to your subscription:
http://www.postgresql.org/mailpref/pgsql-hackers

Reply via email to