After seeing the "Welcome to psql 8.0.0beta3, the PostgreSQL interactive terminal." message, I finally got irritated enough at it to try and figure out how to silence it without using the -q option to psql(1). The attached (trivial) patch fixes said problem so that one can add "\set QUIET" to their ~/.psqlrc and have psql not print out their favorite database shell greeting.

This patch, while a feature (albeit minor), is low risk and I'd love to see it added to 8.X. :) -sc

echo '\set QUIET' >> ~/.psqlrc
% cat ~/.psqlrc
\timing
\set QUIET
% psql foo
foo=#

Index: command.c
===================================================================
RCS file: /projects/cvsroot/pgsql-server/src/bin/psql/command.c,v
retrieving revision 1.125
diff -u -r1.125 command.c
--- command.c   29 Aug 2004 05:06:54 -0000      1.125
+++ command.c   4 Oct 2004 07:23:41 -0000
@@ -688,7 +688,9 @@
                        if (SetVariable(pset.vars, opt0, newval))
                        {
                                /* Check for special variables */
-                               if (strcmp(opt0, "VERBOSITY") == 0)
+                               if (strcmp(opt0, "QUIET") == 0)
+                                       SetVariableBool(pset.vars, "QUIET");
+                               else if (strcmp(opt0, "VERBOSITY") == 0)
                                        SyncVerbosityVariable();
                        }
                        else
Index: startup.c
===================================================================
RCS file: /projects/cvsroot/pgsql-server/src/bin/psql/startup.c,v
retrieving revision 1.101
diff -u -r1.101 startup.c
--- startup.c   27 Sep 2004 19:16:02 -0000      1.101
+++ startup.c   4 Oct 2004 07:23:42 -0000
@@ -280,6 +280,9 @@
         */
        else
        {
+               if (!options.no_psqlrc)
+                       process_psqlrc(argv[0]);
+
                if (!QUIET() && !pset.notty)
                {
                        printf(gettext("Welcome to %s %s, the PostgreSQL interactive 
terminal.\n\n"
@@ -302,8 +305,6 @@
                SetVariable(pset.vars, "PROMPT2", DEFAULT_PROMPT2);
                SetVariable(pset.vars, "PROMPT3", DEFAULT_PROMPT3);
 
-               if (!options.no_psqlrc)
-                       process_psqlrc(argv[0]);
                if (!pset.notty)
                        initializeInput(options.no_readline ? 0 : 1);
                if (options.action_string)              /* -f - was used */


--
Sean Chittenden
---------------------------(end of broadcast)---------------------------
TIP 4: Don't 'kill -9' the postmaster

Reply via email to