From: Tom Lane Date: Tue, 14 Mar 2000 23:59:23 +0000 (+0000) Subject: Repair unintentional damage to MULTIBYTE code. X-Git-Tag: REL9_0_0~23758 X-Git-Url: http://git.osdn.net/view?a=commitdiff_plain;h=a50f2fd76e322eae0f2a7f3516da1f2ddf82fef2;p=pg-rex%2Fsyncrep.git Repair unintentional damage to MULTIBYTE code. --- diff --git a/src/interfaces/libpq/fe-exec.c b/src/interfaces/libpq/fe-exec.c index 5d614ebe37..6b3999193d 100644 --- a/src/interfaces/libpq/fe-exec.c +++ b/src/interfaces/libpq/fe-exec.c @@ -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; diff --git a/src/interfaces/libpq/fe-print.c b/src/interfaces/libpq/fe-print.c index 3b9102d4d8..840f47e579 100644 --- a/src/interfaces/libpq/fe-print.c +++ b/src/interfaces/libpq/fe-print.c @@ -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 diff --git a/src/interfaces/libpq/libpq-int.h b/src/interfaces/libpq/libpq-int.h index 92bd9cfba8..bb0fb8ab4a 100644 --- a/src/interfaces/libpq/libpq-int.h +++ b/src/interfaces/libpq/libpq-int.h @@ -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 */