.psqlrc output for \pset commands

Started by Bruce Momjianover 17 years ago11 messages
#1Bruce Momjian
bruce@momjian.us

In my .psqlrc I have:

\pset format wrapped

and this outputs this on psql startup:

$ psql test
--> Output format is wrapped.
psql (8.4devel)
Type "help" for help.

Is this desirable? \set QUIET at the top of .psqlrc fixes it, but I am
wondering if we should be automatically doing quiet while .psqlrc is
processed.

--
Bruce Momjian <bruce@momjian.us> http://momjian.us
EnterpriseDB http://enterprisedb.com

+ If your life is a hard drive, Christ can be your backup. +

#2Gregory Stark
stark@enterprisedb.com
In reply to: Bruce Momjian (#1)
Re: .psqlrc output for \pset commands

"Bruce Momjian" <bruce@momjian.us> writes:

In my .psqlrc I have:

\pset format wrapped

and this outputs this on psql startup:

$ psql test
--> Output format is wrapped.
psql (8.4devel)
Type "help" for help.

Is this desirable? \set QUIET at the top of .psqlrc fixes it, but I am
wondering if we should be automatically doing quiet while .psqlrc is
processed.

I was wondering about this myself, but I'm still not used to the new banner.
It seems kind of... curt. Perhaps it should just be a single line instead of
two lines both around 20 characters...

Anyways the thing that struck me as odd was the messages appearing *before*
the header. It seems to me the header should print followed by .psqlrc output
followed by normal output.

--
Gregory Stark
EnterpriseDB http://www.enterprisedb.com
Ask me about EnterpriseDB's Slony Replication support!

#3Tom Lane
tgl@sss.pgh.pa.us
In reply to: Gregory Stark (#2)
Re: .psqlrc output for \pset commands

Gregory Stark <stark@enterprisedb.com> writes:

Anyways the thing that struck me as odd was the messages appearing *before*
the header. It seems to me the header should print followed by .psqlrc output
followed by normal output.

I think the reason for the current behavior is to allow \set QUIET in
.psqlrc to affect the printing of the banner. Are we prepared to
give that up?

regards, tom lane

#4Peter Eisentraut
peter_e@gmx.net
In reply to: Tom Lane (#3)
Re: .psqlrc output for \pset commands

Tom Lane wrote:

I think the reason for the current behavior is to allow \set QUIET in
.psqlrc to affect the printing of the banner. Are we prepared to
give that up?

I'm using that behavior!

#5Neil Conway
neilc@samurai.com
In reply to: Bruce Momjian (#1)
Re: .psqlrc output for \pset commands

On Wed, 2008-06-11 at 19:24 -0400, Bruce Momjian wrote:

Is this desirable? \set QUIET at the top of .psqlrc fixes it, but I am
wondering if we should be automatically doing quiet while .psqlrc is
processed.

There is some precedent for not emitting the messages: most Unix tools
don't echo the results of applying their .rc files at startup.
Personally, I run psql frequently but very rarely modify my .psqlrc, so
seeing "timing is on" and similar messages echoed to the screen is
almost always noise.

-Neil

#6Bruce Momjian
bruce@momjian.us
In reply to: Neil Conway (#5)
Re: .psqlrc output for \pset commands

Neil Conway wrote:

On Wed, 2008-06-11 at 19:24 -0400, Bruce Momjian wrote:

Is this desirable? \set QUIET at the top of .psqlrc fixes it, but I am
wondering if we should be automatically doing quiet while .psqlrc is
processed.

There is some precedent for not emitting the messages: most Unix tools
don't echo the results of applying their .rc files at startup.
Personally, I run psql frequently but very rarely modify my .psqlrc, so
seeing "timing is on" and similar messages echoed to the screen is
almost always noise.

Yea, that was really my point --- our current behavior doesn't match the
way most Unix tools behave when executing startup files.

--
Bruce Momjian <bruce@momjian.us> http://momjian.us
EnterpriseDB http://enterprisedb.com

+ If your life is a hard drive, Christ can be your backup. +

#7Peter Eisentraut
peter_e@gmx.net
In reply to: Neil Conway (#5)
Re: .psqlrc output for \pset commands

Neil Conway wrote:

There is some precedent for not emitting the messages: most Unix tools
don't echo the results of applying their .rc files at startup.

Unix shells do echo the output generated by the startup files. It's just that
most Unix tools don't generate that much output.

#8Bruce Momjian
bruce@momjian.us
In reply to: Gregory Stark (#2)
1 attachment(s)
Re: .psqlrc output for \pset commands

Gregory Stark wrote:

"Bruce Momjian" <bruce@momjian.us> writes:

In my .psqlrc I have:

\pset format wrapped

and this outputs this on psql startup:

$ psql test
--> Output format is wrapped.
psql (8.4devel)
Type "help" for help.

Is this desirable? \set QUIET at the top of .psqlrc fixes it, but I am
wondering if we should be automatically doing quiet while .psqlrc is
processed.

I was wondering about this myself, but I'm still not used to the new banner.
It seems kind of... curt. Perhaps it should just be a single line instead of
two lines both around 20 characters...

Anyways the thing that struck me as odd was the messages appearing *before*
the header. It seems to me the header should print followed by .psqlrc output
followed by normal output.

Do you like this better?

$ psql test
psql (8.4devel)
Type "help" for help.
Output format is wrapped.

test=>

The attached patch accomplishes this.

--
Bruce Momjian <bruce@momjian.us> http://momjian.us
EnterpriseDB http://enterprisedb.com

+ If your life is a hard drive, Christ can be your backup. +

Attachments:

/pgpatches/psqltext/x-diffDownload
Index: src/bin/psql/startup.c
===================================================================
RCS file: /cvsroot/pgsql/src/bin/psql/startup.c,v
retrieving revision 1.149
diff -c -c -r1.149 startup.c
*** src/bin/psql/startup.c	1 Jul 2008 00:08:18 -0000	1.149
--- src/bin/psql/startup.c	17 Jul 2008 00:44:22 -0000
***************
*** 281,292 ****
  	 */
  	else
  	{
  		if (!options.no_psqlrc)
  			process_psqlrc(argv[0]);
! 
! 		connection_warnings();
  		if (!pset.quiet && !pset.notty)
! 			printf(_("Type \"help\" for help.\n\n"));
  		if (!pset.notty)
  			initializeInput(options.no_readline ? 0 : 1);
  		if (options.action_string)		/* -f - was used */
--- 281,294 ----
  	 */
  	else
  	{
+ 		connection_warnings();
+ 		if (!pset.quiet && !pset.notty)
+ 			printf(_("Type \"help\" for help.\n"));
  		if (!options.no_psqlrc)
  			process_psqlrc(argv[0]);
! 		/* output newline here because .psqlrc might output something */
  		if (!pset.quiet && !pset.notty)
! 			printf("\n");
  		if (!pset.notty)
  			initializeInput(options.no_readline ? 0 : 1);
  		if (options.action_string)		/* -f - was used */
#9Bruce Momjian
bruce@momjian.us
In reply to: Bruce Momjian (#8)
Re: .psqlrc output for \pset commands

Bruce Momjian wrote:

$ psql test
--> Output format is wrapped.
psql (8.4devel)
Type "help" for help.

Is this desirable? \set QUIET at the top of .psqlrc fixes it, but I am
wondering if we should be automatically doing quiet while .psqlrc is
processed.

I was wondering about this myself, but I'm still not used to the new banner.
It seems kind of... curt. Perhaps it should just be a single line instead of
two lines both around 20 characters...

Anyways the thing that struck me as odd was the messages appearing *before*
the header. It seems to me the header should print followed by .psqlrc output
followed by normal output.

Do you like this better?

$ psql test
psql (8.4devel)
Type "help" for help.
Output format is wrapped.

test=>

The attached patch accomplishes this.

With no feedback, applied. ;-)

--
Bruce Momjian <bruce@momjian.us> http://momjian.us
EnterpriseDB http://enterprisedb.com

+ If your life is a hard drive, Christ can be your backup. +

#10Peter Eisentraut
peter_e@gmx.net
In reply to: Bruce Momjian (#8)
Re: .psqlrc output for \pset commands

Am Thursday, 17. July 2008 schrieb Bruce Momjian:

Anyways the thing that struck me as odd was the messages appearing
*before* the header. It seems to me the header should print followed by
.psqlrc output followed by normal output.

Do you like this better?

$ psql test
psql (8.4devel)
Type "help" for help.
Output format is wrapped.

test=>

The attached patch accomplishes this.

The psqlrc file must be read before the welcome message is printed, so that
you can disable the welcome message in the psqlrc file. Otherwise we are
reopening the whole issue of when and whether to print a welcome message that
we had just settled.

#11Bruce Momjian
bruce@momjian.us
In reply to: Peter Eisentraut (#10)
Re: .psqlrc output for \pset commands

Peter Eisentraut wrote:

Am Thursday, 17. July 2008 schrieb Bruce Momjian:

Anyways the thing that struck me as odd was the messages appearing
*before* the header. It seems to me the header should print followed by
.psqlrc output followed by normal output.

Do you like this better?

$ psql test
psql (8.4devel)
Type "help" for help.
Output format is wrapped.

test=>

The attached patch accomplishes this.

The psqlrc file must be read before the welcome message is printed, so that
you can disable the welcome message in the psqlrc file. Otherwise we are
reopening the whole issue of when and whether to print a welcome message that
we had just settled.

Oh, yea, sorry. Reverted.

--
Bruce Momjian <bruce@momjian.us> http://momjian.us
EnterpriseDB http://enterprisedb.com

+ If your life is a hard drive, Christ can be your backup. +