Thread: [PATCH] print help from psql when user tries to run pg_restore,pg_dump etc
New users frequently attempt to run PostgreSQL's command line utilities from the psql prompt.
They tend to be confused when this appears to do absolutely nothing:
psql=> pg_restore
psql->
--
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.
psql=>
psql=> select 1
psql-> pg_restore
"pg_restore" is a command-line utility program not a psql command. See "help".
psql->
"pg_restore" is a command line utility program.
Use it from the system terminal or command prompt not from psql.
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.
Attachment
Re: [PATCH] print help from psql when user tries to run pg_restore,pg_dump etc
From
Fabien COELHO
Date:
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.