Thread

  1. psql 8.4 \c repeats version banner

    Peter Eisentraut <peter_e@gmx.net> — 2009-12-28T16:50:02Z

    In 8.3, running \c from a file prints something like
    
    You are now connected to database "postgres".
    
    In 8.4 it prints
    
    psql (8.4.1)
    You are now connected to database "postgres".
    
    Is it intentional/sensible to repeat the startup banner every time the
    connection changes, or was this unintentionally introduced while the
    startup banner was reshuffled in 8.4?
    
    
    
  2. Re: psql 8.4 \c repeats version banner

    Tom Lane <tgl@sss.pgh.pa.us> — 2009-12-28T17:21:03Z

    Peter Eisentraut <peter_e@gmx.net> writes:
    > In 8.3, running \c from a file prints something like
    > You are now connected to database "postgres".
    
    > In 8.4 it prints
    
    > psql (8.4.1)
    > You are now connected to database "postgres".
    
    > Is it intentional/sensible to repeat the startup banner every time the
    > connection changes, or was this unintentionally introduced while the
    > startup banner was reshuffled in 8.4?
    
    I think the argument was that if you are connecting to a new server, the
    server version number could change, and so it is useful to repeat that
    line to have a place to display the possible version mismatch indicator.
    Maybe we could suppress it if the third and fourth arguments are
    omitted, but I'm not sure it's worth the trouble.
    
    The original design didn't have the third and fourth arguments, hence no
    possibility of server change.
    
    			regards, tom lane
    
    
  3. Re: psql 8.4 \c repeats version banner

    Bruce Momjian <bruce@momjian.us> — 2010-02-06T17:35:42Z

    Peter Eisentraut wrote:
    > In 8.3, running \c from a file prints something like
    > 
    > You are now connected to database "postgres".
    > 
    > In 8.4 it prints
    > 
    > psql (8.4.1)
    > You are now connected to database "postgres".
    > 
    > Is it intentional/sensible to repeat the startup banner every time the
    > connection changes, or was this unintentionally introduced while the
    > startup banner was reshuffled in 8.4?
    
    I did some reseach on this.  I bet this behavior was added when we
    decided to print the backend version warning banner on \c as well as
    startup, because it is possible for the backend to be different version
    from the backend originally used for psql startup.  The code that prints
    the psql banner and the warning banner are in the same function and
    share the same output line.
    
    What I did in the attached patch is to add a boolean to
    connection_warnings() to indicate whether it was being called on psql
    startup or via \c, and to supress the psql banner on \c if the client
    and server versions match:
    
    	$ psql test
    	psql (8.5devel)
    	Type "help" for help.
    	
    	test=> \c test
    	You are now connected to database "test".
    	test=>
    
    Any version mismatch will still print the psql banner for \c, which is
    what I think we want.
    
    -- 
      Bruce Momjian  <bruce@momjian.us>        http://momjian.us
      EnterpriseDB                             http://enterprisedb.com
    
      + If your life is a hard drive, Christ can be your backup. +
    
  4. Re: psql 8.4 \c repeats version banner

    Bruce Momjian <bruce@momjian.us> — 2010-02-16T21:07:03Z

    Applied.
    
    ---------------------------------------------------------------------------
    
    Bruce Momjian wrote:
    > Peter Eisentraut wrote:
    > > In 8.3, running \c from a file prints something like
    > > 
    > > You are now connected to database "postgres".
    > > 
    > > In 8.4 it prints
    > > 
    > > psql (8.4.1)
    > > You are now connected to database "postgres".
    > > 
    > > Is it intentional/sensible to repeat the startup banner every time the
    > > connection changes, or was this unintentionally introduced while the
    > > startup banner was reshuffled in 8.4?
    > 
    > I did some reseach on this.  I bet this behavior was added when we
    > decided to print the backend version warning banner on \c as well as
    > startup, because it is possible for the backend to be different version
    > from the backend originally used for psql startup.  The code that prints
    > the psql banner and the warning banner are in the same function and
    > share the same output line.
    > 
    > What I did in the attached patch is to add a boolean to
    > connection_warnings() to indicate whether it was being called on psql
    > startup or via \c, and to supress the psql banner on \c if the client
    > and server versions match:
    > 
    > 	$ psql test
    > 	psql (8.5devel)
    > 	Type "help" for help.
    > 	
    > 	test=> \c test
    > 	You are now connected to database "test".
    > 	test=>
    > 
    > Any version mismatch will still print the psql banner for \c, which is
    > what I think we want.
    > 
    > -- 
    >   Bruce Momjian  <bruce@momjian.us>        http://momjian.us
    >   EnterpriseDB                             http://enterprisedb.com
    > 
    >   + If your life is a hard drive, Christ can be your backup. +
    
    
    > 
    > -- 
    > Sent via pgsql-hackers mailing list (pgsql-hackers@postgresql.org)
    > To make changes to your subscription:
    > http://www.postgresql.org/mailpref/pgsql-hackers
    
    -- 
      Bruce Momjian  <bruce@momjian.us>        http://momjian.us
      EnterpriseDB                             http://enterprisedb.com
    
      + If your life is a hard drive, Christ can be your backup. +