psql: Avoid some spurious output if the server croaks.
authorRobert Haas
Wed, 7 Mar 2012 21:56:42 +0000 (16:56 -0500)
committerRobert Haas
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;
        }