Josh Berkus wrote:
> Tom,
> 
> > They've been broken on a fairly regular basis in past releases.
> > Certainly 7.3 broke every single one because of the addition of
> > schema syntax ...
> 
> Yeah, and we warned people about it, as I recall.   Also, we had about 25x 
> less users then.   I think we should put something in the release notes:
> 
> WARNING: 8.1's "psql" is not completely backwards-compatible with previous 
> versions of PostgreSQL.

Here is a patch that will print out (in interactive mode only) a warning
message if a newer client connects to an older major numbered server.

-- 
  Bruce Momjian                        |  http://candle.pha.pa.us
  pgman@candle.pha.pa.us               |  (610) 359-1001
  +  If your life is a hard drive,     |  13 Roberts Road
  +  Christ can be your backup.        |  Newtown Square, Pennsylvania 19073
Index: src/bin/psql/startup.c
===================================================================
RCS file: /cvsroot/pgsql/src/bin/psql/startup.c,v
retrieving revision 1.120
diff -c -c -r1.120 startup.c
*** src/bin/psql/startup.c      25 Jul 2005 17:17:41 -0000      1.120
--- src/bin/psql/startup.c      31 Aug 2005 02:19:12 -0000
***************
*** 8,13 ****
--- 8,14 ----
  #include "postgres_fe.h"
  
  #include <sys/types.h>
+ #include <math.h>
  
  #ifndef WIN32
  #include <unistd.h>
***************
*** 312,317 ****
--- 313,325 ----
  
                if (!QUIET() && !pset.notty)
                {
+                       if (pset.sversion / 100 < atoi(PG_VERSION) * 100 +
+                               (strchr(PG_VERSION, '.')[1] - '0'))
+                               printf(_("You are connected to a server with an 
earlier major version\n"
+                                                "than your %s client.  
Informational backslash commands, like \\d,\n"
+                                                "might not work 
properly.\n\n"),
+                                                pset.progname);
+ 
                        printf(_("Welcome to %s %s, the PostgreSQL interactive 
terminal.\n\n"
                                                   "Type:  \\copyright for 
distribution terms\n"
                                                   "       \\h for help with 
SQL commands\n"
---------------------------(end of broadcast)---------------------------
TIP 6: explain analyze is your friend

Reply via email to