summaryrefslogtreecommitdiff
path: root/src/interfaces/libpq/fe-exec.c
diff options
context:
space:
mode:
Diffstat (limited to 'src/interfaces/libpq/fe-exec.c')
-rw-r--r--src/interfaces/libpq/fe-exec.c17
1 files changed, 10 insertions, 7 deletions
diff --git a/src/interfaces/libpq/fe-exec.c b/src/interfaces/libpq/fe-exec.c
index 07c43355211..f71df324bd5 100644
--- a/src/interfaces/libpq/fe-exec.c
+++ b/src/interfaces/libpq/fe-exec.c
@@ -1553,8 +1553,10 @@ sendFailed:
/*
* pqHandleSendFailure: try to clean up after failure to send command.
*
- * Primarily, what we want to accomplish here is to process any messages that
- * the backend might have sent just before it died.
+ * Primarily, what we want to accomplish here is to process any ERROR or
+ * NOTICE messages that the backend might have sent just before it died.
+ * Since we're in IDLE state, all such messages will get sent to the notice
+ * processor.
*
* NOTE: this routine should only be called in PGASYNC_IDLE state.
*/
@@ -1562,16 +1564,17 @@ void
pqHandleSendFailure(PGconn *conn)
{
/*
- * Accept and parse any available input data. Note that if pqReadData
- * decides the backend has closed the channel, it will close our side of
- * the socket --- that's just what we want here.
+ * Accept and parse any available input data, ignoring I/O errors. Note
+ * that if pqReadData decides the backend has closed the channel, it will
+ * close our side of the socket --- that's just what we want here.
*/
while (pqReadData(conn) > 0)
parseInput(conn);
/*
- * Make one attempt to parse available input messages even if we read no
- * data.
+ * Be sure to parse available input messages even if we read no data.
+ * (Note: calling parseInput within the above loop isn't really necessary,
+ * but it prevents buffer bloat if there's a lot of data available.)
*/
parseInput(conn);
}