From: Tom Lane Date: Wed, 25 Jan 2006 20:44:32 +0000 (+0000) Subject: Remove unnecessary PQconsumeInput call from PQputCopyData; it's redundant X-Git-Tag: REL8_2_BETA1~1545 X-Git-Url: https://granicus.if.org/sourcecode?a=commitdiff_plain;h=9b012311f8b6d3596d2a081b8e30b8e8ee352bf2;p=postgresql Remove unnecessary PQconsumeInput call from PQputCopyData; it's redundant because pqSendSome will absorb input data anytime it'd be forced to block. Avoiding a kernel call per PQputCopyData call helps COPY speed materially. Alon Goldshuv --- diff --git a/src/interfaces/libpq/fe-exec.c b/src/interfaces/libpq/fe-exec.c index 2b324916df..4edb065c9c 100644 --- a/src/interfaces/libpq/fe-exec.c +++ b/src/interfaces/libpq/fe-exec.c @@ -8,7 +8,7 @@ * * * IDENTIFICATION - * $PostgreSQL: pgsql/src/interfaces/libpq/fe-exec.c,v 1.178 2006/01/11 08:43:13 neilc Exp $ + * $PostgreSQL: pgsql/src/interfaces/libpq/fe-exec.c,v 1.179 2006/01/25 20:44:32 tgl Exp $ * *------------------------------------------------------------------------- */ @@ -1476,13 +1476,13 @@ PQputCopyData(PGconn *conn, const char *buffer, int nbytes) } /* - * Check for NOTICE messages coming back from the server. Since the - * server might generate multiple notices during the COPY, we have to - * consume those in a reasonably prompt fashion to prevent the comm - * buffers from filling up and possibly blocking the server. + * Process any NOTICE or NOTIFY messages that might be pending in the + * input buffer. Since the server might generate many notices during + * the COPY, we want to clean those out reasonably promptly to prevent + * indefinite expansion of the input buffer. (Note: the actual read + * of input data into the input buffer happens down inside pqSendSome, + * but it's not authorized to get rid of the data again.) */ - if (!PQconsumeInput(conn)) - return -1; /* I/O failure */ parseInput(conn); if (nbytes > 0)