]> granicus.if.org Git - postgresql/commitdiff
Print the error message before attempting to reset the connection after a
authorPeter Eisentraut <peter_e@gmx.net>
Fri, 15 Dec 2000 17:54:43 +0000 (17:54 +0000)
committerPeter Eisentraut <peter_e@gmx.net>
Fri, 15 Dec 2000 17:54:43 +0000 (17:54 +0000)
backend crash.

src/bin/psql/common.c

index 05b11651e9de0b02d5514a1968ab67425ec28a96..cc57771b70e3a083737358299dc2f7f530949b19 100644 (file)
@@ -3,7 +3,7 @@
  *
  * Copyright 2000 by PostgreSQL Global Development Group
  *
- * $Header: /cvsroot/pgsql/src/bin/psql/common.c,v 1.27 2000/11/27 02:20:36 tgl Exp $
+ * $Header: /cvsroot/pgsql/src/bin/psql/common.c,v 1.28 2000/12/15 17:54:43 petere Exp $
  */
 #include "postgres.h"
 #include "common.h"
@@ -315,32 +315,6 @@ PSQLexec(const char *query)
        if (PQresultStatus(res) != PGRES_COPY_OUT)
                cancelConn = NULL;
 
-       if (PQstatus(pset.db) == CONNECTION_BAD)
-       {
-               if (!pset.cur_cmd_interactive)
-               {
-                       psql_error("connection to server was lost\n");
-                       exit(EXIT_BADCONN);
-               }
-               fputs("The connection to the server was lost. Attempting reset: ", stderr);
-               PQreset(pset.db);
-               if (PQstatus(pset.db) == CONNECTION_BAD)
-               {
-                       fputs("Failed.\n", stderr);
-                       PQfinish(pset.db);
-                       PQclear(res);
-                       pset.db = NULL;
-                       SetVariable(pset.vars, "DBNAME", NULL);
-                       SetVariable(pset.vars, "HOST", NULL);
-                       SetVariable(pset.vars, "PORT", NULL);
-                       SetVariable(pset.vars, "USER", NULL);
-                       SetVariable(pset.vars, "ENCODING", NULL);
-                       return NULL;
-               }
-               else
-                       fputs("Succeeded.\n", stderr);
-       }
-
        if (res && (PQresultStatus(res) == PGRES_COMMAND_OK ||
                                PQresultStatus(res) == PGRES_TUPLES_OK ||
                                PQresultStatus(res) == PGRES_COPY_IN ||
@@ -351,6 +325,31 @@ PSQLexec(const char *query)
        {
                psql_error("%s", PQerrorMessage(pset.db));
                PQclear(res);
+
+               if (PQstatus(pset.db) == CONNECTION_BAD)
+               {
+                       if (!pset.cur_cmd_interactive)
+                       {
+                               psql_error("connection to server was lost\n");
+                               exit(EXIT_BADCONN);
+                       }
+                       fputs("The connection to the server was lost. Attempting reset: ", stderr);
+                       PQreset(pset.db);
+                       if (PQstatus(pset.db) == CONNECTION_BAD)
+                       {
+                               fputs("Failed.\n", stderr);
+                               PQfinish(pset.db);
+                               pset.db = NULL;
+                               SetVariable(pset.vars, "DBNAME", NULL);
+                               SetVariable(pset.vars, "HOST", NULL);
+                               SetVariable(pset.vars, "PORT", NULL);
+                               SetVariable(pset.vars, "USER", NULL);
+                               SetVariable(pset.vars, "ENCODING", NULL);
+                       }
+                       else
+                               fputs("Succeeded.\n", stderr);
+               }
+
                return NULL;
        }
 }