]> granicus.if.org Git - postgresql/commitdiff
psql: Avoid some spurious output if the server croaks.
authorRobert Haas <rhaas@postgresql.org>
Wed, 7 Mar 2012 21:56:42 +0000 (16:56 -0500)
committerRobert Haas <rhaas@postgresql.org>
Wed, 7 Mar 2012 21:56:42 +0000 (16:56 -0500)
Fixes a regression in commit 08146775acd8bfe0fcc509c71857abb928697171.

Noah Misch

src/bin/psql/common.c

index 5c9bd96002244cdb53bb74c3a654b05fd59c9a48..715e23167de82709da99b8c8afa58d81935eb25c 100644 (file)
@@ -740,7 +740,7 @@ ProcessResult(PGresult **results)
        } while (next_result);
 
        /* may need this to recover from conn loss during COPY */
-       if (!CheckConnection())
+       if (!first_cycle && !CheckConnection())
                return false;
 
        return success;
@@ -1015,8 +1015,10 @@ SendQuery(const char *query)
                        case PQTRANS_UNKNOWN:
                        default:
                                OK = false;
-                               psql_error("unexpected transaction status (%d)\n",
-                                                  transaction_status);
+                               /* PQTRANS_UNKNOWN is expected given a broken connection. */
+                               if (transaction_status != PQTRANS_UNKNOWN || ConnectionUp())
+                                       psql_error("unexpected transaction status (%d)\n",
+                                                          transaction_status);
                                break;
                }