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.