aboutsummaryrefslogtreecommitdiff
path: root/src
diff options
context:
space:
mode:
authorTom Lane <tgl@sss.pgh.pa.us>2003-06-21 23:25:38 +0000
committerTom Lane <tgl@sss.pgh.pa.us>2003-06-21 23:25:38 +0000
commit21e0b7b8f2bc6933ed3e75c36dbafcfa9b9b30e3 (patch)
treea6af94d6e4b0021b7e091514f96a4d14d6a56722 /src
parentefc3a25bb02ada63158fe7006673518b005261ba (diff)
downloadpostgresql-21e0b7b8f2bc6933ed3e75c36dbafcfa9b9b30e3.tar.gz
postgresql-21e0b7b8f2bc6933ed3e75c36dbafcfa9b9b30e3.zip
Get rid of extraneous newline in PQendcopy error output (was causing
regression test diffs...).
Diffstat (limited to 'src')
-rw-r--r--src/interfaces/libpq/fe-protocol2.c27
-rw-r--r--src/interfaces/libpq/fe-protocol3.c10
2 files changed, 30 insertions, 7 deletions
diff --git a/src/interfaces/libpq/fe-protocol2.c b/src/interfaces/libpq/fe-protocol2.c
index 6b909334079..2a15e19e1d5 100644
--- a/src/interfaces/libpq/fe-protocol2.c
+++ b/src/interfaces/libpq/fe-protocol2.c
@@ -8,7 +8,7 @@
*
*
* IDENTIFICATION
- * $Header: /cvsroot/pgsql/src/interfaces/libpq/fe-protocol2.c,v 1.2 2003/06/21 21:51:34 tgl Exp $
+ * $Header: /cvsroot/pgsql/src/interfaces/libpq/fe-protocol2.c,v 1.3 2003/06/21 23:25:38 tgl Exp $
*
*-------------------------------------------------------------------------
*/
@@ -1183,15 +1183,30 @@ pqEndcopy2(PGconn *conn)
}
/*
- * Trouble. The worst case is that we've lost sync with the backend
- * entirely due to application screwup of the copy in/out protocol. To
- * recover, reset the connection (talk about using a sledgehammer...)
+ * Trouble. For backwards-compatibility reasons, we issue the error
+ * message as if it were a notice (would be nice to get rid of this
+ * silliness, but too many apps probably don't handle errors from
+ * PQendcopy reasonably). Note that the app can still obtain the
+ * error status from the PGconn object.
*/
- PQclear(result);
-
if (conn->errorMessage.len > 0)
+ {
+ /* We have to strip the trailing newline ... pain in neck... */
+ char svLast = conn->errorMessage.data[conn->errorMessage.len-1];
+
+ if (svLast == '\n')
+ conn->errorMessage.data[conn->errorMessage.len-1] = '\0';
PGDONOTICE(conn, conn->errorMessage.data);
+ conn->errorMessage.data[conn->errorMessage.len-1] = svLast;
+ }
+ PQclear(result);
+
+ /*
+ * The worst case is that we've lost sync with the backend
+ * entirely due to application screwup of the copy in/out protocol. To
+ * recover, reset the connection (talk about using a sledgehammer...)
+ */
PGDONOTICE(conn, libpq_gettext("lost synchronization with server, resetting connection"));
/*
diff --git a/src/interfaces/libpq/fe-protocol3.c b/src/interfaces/libpq/fe-protocol3.c
index 05543f8e76d..6b404c3531b 100644
--- a/src/interfaces/libpq/fe-protocol3.c
+++ b/src/interfaces/libpq/fe-protocol3.c
@@ -8,7 +8,7 @@
*
*
* IDENTIFICATION
- * $Header: /cvsroot/pgsql/src/interfaces/libpq/fe-protocol3.c,v 1.2 2003/06/21 21:51:34 tgl Exp $
+ * $Header: /cvsroot/pgsql/src/interfaces/libpq/fe-protocol3.c,v 1.3 2003/06/21 23:25:38 tgl Exp $
*
*-------------------------------------------------------------------------
*/
@@ -1113,7 +1113,15 @@ pqEndcopy3(PGconn *conn)
* error status from the PGconn object.
*/
if (conn->errorMessage.len > 0)
+ {
+ /* We have to strip the trailing newline ... pain in neck... */
+ char svLast = conn->errorMessage.data[conn->errorMessage.len-1];
+
+ if (svLast == '\n')
+ conn->errorMessage.data[conn->errorMessage.len-1] = '\0';
PGDONOTICE(conn, conn->errorMessage.data);
+ conn->errorMessage.data[conn->errorMessage.len-1] = svLast;
+ }
PQclear(result);