diff --git a/src/bin/psql/common.c b/src/bin/psql/common.c index 5c9bd96002244cdb53bb74c3a654b05fd59c9a48..715e23167de82709da99b8c8afa58d81935eb25c 100644 --- a/src/bin/psql/common.c +++ b/src/bin/psql/common.c @@ -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; }