Repair unintentional damage to MULTIBYTE code.
authorTom Lane
Tue, 14 Mar 2000 23:59:23 +0000 (23:59 +0000)
committerTom Lane
Tue, 14 Mar 2000 23:59:23 +0000 (23:59 +0000)
src/interfaces/libpq/fe-exec.c
src/interfaces/libpq/fe-print.c
src/interfaces/libpq/libpq-int.h

index 5d614ebe375c8d29adf17c527545dd500b93b20d..6b3999193d57046666fb52af65d8a3d526381d86 100644 (file)
@@ -8,7 +8,7 @@
  *
  *
  * IDENTIFICATION
- *   $Header: /cvsroot/pgsql/src/interfaces/libpq/fe-exec.c,v 1.92 2000/03/11 03:08:36 tgl Exp $
+ *   $Header: /cvsroot/pgsql/src/interfaces/libpq/fe-exec.c,v 1.93 2000/03/14 23:59:23 tgl Exp $
  *
  *-------------------------------------------------------------------------
  */
@@ -153,8 +153,11 @@ PQmakeEmptyPGresult(PGconn *conn, ExecStatusType status)
 
    if (conn)
    {
+       /* copy connection data we might need for operations on PGresult */
        result->noticeHook = conn->noticeHook;
        result->noticeArg = conn->noticeArg;
+       result->client_encoding = conn->client_encoding;
+
        /* consider copying conn's errorMessage */
        switch (status)
        {
@@ -172,8 +175,10 @@ PQmakeEmptyPGresult(PGconn *conn, ExecStatusType status)
    }
    else
    {
+       /* defaults... */
        result->noticeHook = NULL;
        result->noticeArg = NULL;
+       result->client_encoding = 0; /* should be SQL_ASCII */
    }
 
    return result;
index 3b9102d4d8412797c6011588220cffbcc03e86bd..840f47e579631ad4b48fff2a174fc5d7c72168bb 100644 (file)
@@ -10,7 +10,7 @@
  * didn't really belong there.
  *
  * IDENTIFICATION
- *   $Header: /cvsroot/pgsql/src/interfaces/libpq/fe-print.c,v 1.35 2000/02/07 23:10:11 petere Exp $
+ *   $Header: /cvsroot/pgsql/src/interfaces/libpq/fe-print.c,v 1.36 2000/03/14 23:59:23 tgl Exp $
  *
  *-------------------------------------------------------------------------
  */
@@ -347,7 +347,7 @@ do_field(const PQprintOpt *po, const PGresult *res,
            char        ch = '0';
 
 #ifdef MULTIBYTE
-           for (p = pval; *p; p += PQmblen(p, PQclientEncoding(res->conn)))
+           for (p = pval; *p; p += PQmblen(p, res->client_encoding))
 #else
            for (p = pval; *p; p++)
 #endif
index 92bd9cfba83607704f5c6a4741e9626bd6c57350..bb0fb8ab4a055cdd0b1ea6e4c3a1deaab16b2345 100644 (file)
@@ -12,7 +12,7 @@
  * Portions Copyright (c) 1996-2000, PostgreSQL, Inc
  * Portions Copyright (c) 1994, Regents of the University of California
  *
- * $Id: libpq-int.h,v 1.20 2000/03/11 03:08:37 tgl Exp $
+ * $Id: libpq-int.h,v 1.21 2000/03/14 23:59:23 tgl Exp $
  *
  *-------------------------------------------------------------------------
  */
@@ -130,11 +130,14 @@ struct pg_result
     */
    PGconn     *xconn;          /* connection we did the query on, if any */
 
-   /* Callback procedure for notice/error message processing
-    * (copied from originating PGconn).
+   /*
+    * These fields are copied from the originating PGconn, so that
+    * operations on the PGresult don't have to reference the PGconn.
     */
-   PQnoticeProcessor noticeHook;
+   PQnoticeProcessor noticeHook; /* notice/error message processor */
    void       *noticeArg;
+   int         client_encoding; /* encoding id */
+
 
    char       *errMsg;         /* error message, or NULL if no error */