Hello Craig,

New users frequently attempt to run PostgreSQL's command line utilities
from the psql prompt.

Alas, that is true.

I also have the reverse, i.e. SQL commands fed to bash, which does not like it much.

They tend to be confused when this appears to do absolutely nothing:

       psql=> pg_restore
       psql->

since they're generally not going to semicolon-terminate the command either.

The attached patch detects common command names when they appear first on a
new input line prints a help message. If the buffer is empty a more
detailed message is printed and the input is swallowed. Otherwise, much
like how we handle "help" etc,
a short message is printed and the input is still added to the buffer.

   psql=> pg_restore
   "pg_restore" is a command line utility program.
   Use it from the system terminal or command prompt not from psql.

… prompt, not from psql. (added comma?)

   psql=>
   psql=> select 1
   psql-> pg_restore
   "pg_restore" is a command-line utility program not a psql command. See
"help".
   psql->

Wording advice would be welcome.

I'd be tempted to backpatch this, since it's one of the things I see users
confused by most often now - right up there with pg_hba.conf issues,
forgetting a semicolon in psql, etc.

I doubt that backpathing is reasonable.

Are we that sure that there is no legitimate reason to enter such lines on psql, eg:

  psql=> SELECT '
  psql'> pg_whatever ...'
  psql-> ...


Although I can confirm that the problem exists, I'm unsure about whether psql should fix it. What are the opinions around?

--
Fabien.

Reply via email to