Movatterモバイル変換


[0]ホーム

URL:


Skip to content

Navigation Menu

Sign in
Appearance settings

Search code, repositories, users, issues, pull requests...

Provide feedback

We read every piece of feedback, and take your input very seriously.

Saved searches

Use saved searches to filter your results more quickly

Sign up
Appearance settings

Commit5f65345

Browse files
committed
Do not pass server_encoding to the client.
libpq, talking to an old server, should assume SQL_ASCII as the defaultclient encoding, because that is what the server will actually use (notthe server encoding).
1 parentf10a903 commit5f65345

File tree

4 files changed

+22
-34
lines changed

4 files changed

+22
-34
lines changed

‎doc/src/sgml/libpq.sgml

Lines changed: 9 additions & 10 deletions
Original file line numberDiff line numberDiff line change
@@ -1,5 +1,5 @@
11
<!--
2-
$Header: /cvsroot/pgsql/doc/src/sgml/libpq.sgml,v 1.133 2003/08/31 17:32:19 petere Exp $
2+
$Header: /cvsroot/pgsql/doc/src/sgml/libpq.sgml,v 1.134 2003/09/01 23:04:49 petere Exp $
33
-->
44

55
<chapter id="libpq">
@@ -856,21 +856,20 @@ is not known.
856856
<para>
857857
Parameters reported as of the current release include
858858
<literal>server_version</> (cannot change after startup);
859-
<literal>server_encoding</> (also not presently changeable after start);
860859
<literal>client_encoding</>,
861860
<literal>is_superuser</>, and
862861
<literal>DateStyle</>.
863862
</para>
864863

865864
<para>
866-
Pre-3.0-protocol servers do not report parameter settings,
867-
but<application>libpq</> includes logic to obtain values for
868-
<literal>server_version</>, <literal>server_encoding</>, and
869-
<literal>client_encoding</>.Applications are encouraged to use
870-
<function>PQparameterStatus</>rather than ad-hoc code to determine these
871-
values. (Beware howeverthat on a pre-3.0 connection, changing
872-
<literal>client_encoding</> via <command>SET</> after connection startup
873-
will not be reflected by<function>PQparameterStatus</>.)
865+
Pre-3.0-protocol servers do not report parameter settings, but
866+
<application>libpq</> includes logic to obtain values for
867+
<literal>server_version</>,and<literal>client_encoding</>.
868+
Applications are encouraged to use <function>PQparameterStatus</>
869+
rather than ad-hoc code to determine these values. (Beware however
870+
that on a pre-3.0 connection, changing <literal>client_encoding</> via
871+
<command>SET</> after connection startup will not be reflected by
872+
<function>PQparameterStatus</>.)
874873
</para>
875874
</listitem>
876875
</varlistentry>

‎doc/src/sgml/protocol.sgml

Lines changed: 1 addition & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -1,4 +1,4 @@
1-
<!-- $Header: /cvsroot/pgsql/doc/src/sgml/protocol.sgml,v 1.41 2003/08/14 20:09:31 tgl Exp $ -->
1+
<!-- $Header: /cvsroot/pgsql/doc/src/sgml/protocol.sgml,v 1.42 2003/09/01 23:04:49 petere Exp $ -->
22

33
<chapter id="protocol">
44
<title>Frontend/Backend Protocol</title>
@@ -1005,7 +1005,6 @@
10051005
ParameterStatus will be generated: they are
10061006
<literal>server_version</> (a pseudo-parameter that cannot change after
10071007
startup);
1008-
<literal>server_encoding</> (also not presently changeable after start);
10091008
<literal>client_encoding</>,
10101009
<literal>is_superuser</>, and
10111010
<literal>DateStyle</>.

‎src/backend/utils/misc/guc.c

Lines changed: 2 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -10,7 +10,7 @@
1010
* Written by Peter Eisentraut <peter_e@gmx.net>.
1111
*
1212
* IDENTIFICATION
13-
* $Header: /cvsroot/pgsql/src/backend/utils/misc/guc.c,v 1.152 2003/09/01 04:15:50 momjian Exp $
13+
* $Header: /cvsroot/pgsql/src/backend/utils/misc/guc.c,v 1.153 2003/09/0123:04:49 petere Exp $
1414
*
1515
*--------------------------------------------------------------------
1616
*/
@@ -1479,7 +1479,7 @@ static struct config_string ConfigureNamesString[] =
14791479
{"server_encoding",PGC_INTERNAL,CLIENT_CONN_LOCALE,
14801480
gettext_noop("Server (database) character set encoding"),
14811481
NULL,
1482-
GUC_REPORT |GUC_NOT_IN_SAMPLE |GUC_DISALLOW_IN_FILE
1482+
GUC_NOT_IN_SAMPLE |GUC_DISALLOW_IN_FILE
14831483
},
14841484
&server_encoding_string,
14851485
"SQL_ASCII",NULL,NULL

‎src/interfaces/libpq/fe-protocol2.c

Lines changed: 10 additions & 20 deletions
Original file line numberDiff line numberDiff line change
@@ -8,7 +8,7 @@
88
*
99
*
1010
* IDENTIFICATION
11-
* $Header: /cvsroot/pgsql/src/interfaces/libpq/fe-protocol2.c,v 1.7 2003/08/27 00:33:34 petere Exp $
11+
* $Header: /cvsroot/pgsql/src/interfaces/libpq/fe-protocol2.c,v 1.8 2003/09/01 23:04:49 petere Exp $
1212
*
1313
*-------------------------------------------------------------------------
1414
*/
@@ -177,10 +177,10 @@ pqSetenvPoll(PGconn *conn)
177177
* must use begin/commit in case autocommit is off by
178178
* default in a 7.3 server.
179179
*
180-
* Note: version()and getdatabaseencoding() exist in all
180+
* Note: version()exists in all
181181
* protocol-2.0-supporting backends.
182182
*/
183-
if (!PQsendQuery(conn,"begin; select version(), getdatabaseencoding(); end"))
183+
if (!PQsendQuery(conn,"begin; select version(); end"))
184184
gotoerror_return;
185185

186186
conn->setenv_state=SETENV_STATE_QUERY1_WAIT;
@@ -213,8 +213,8 @@ pqSetenvPoll(PGconn *conn)
213213
}
214214

215215
/*
216-
* Extract server version anddatabase encoding,
217-
*and save as ifParameterStatus
216+
* Extract server version andsave as if
217+
* ParameterStatus
218218
*/
219219
val=PQgetvalue(res,0,0);
220220
if (val&&strncmp(val,"PostgreSQL ",11)==0)
@@ -236,12 +236,6 @@ pqSetenvPoll(PGconn *conn)
236236
val);
237237
}
238238

239-
val=PQgetvalue(res,0,1);
240-
if (val&&*val)/* null should not happen,
241-
* but */
242-
pqSaveParameterStatus(conn,"server_encoding",
243-
val);
244-
245239
PQclear(res);
246240
/* Keep reading until PQgetResult returns NULL */
247241
}
@@ -306,21 +300,17 @@ pqSetenvPoll(PGconn *conn)
306300
else
307301
{
308302
/*
309-
* Error: presumably function not available,
310-
* so use PGCLIENTENCODING or database
311-
*encoding as the fallback.
303+
* Error: presumably function not
304+
*available,so use PGCLIENTENCODING or
305+
*SQL_ASCII as the fallback.
312306
*/
313307
val=getenv("PGCLIENTENCODING");
314308
if (val&&*val)
315309
pqSaveParameterStatus(conn,"client_encoding",
316310
val);
317311
else
318-
{
319-
val=PQparameterStatus(conn,"server_encoding");
320-
if (val&&*val)
321-
pqSaveParameterStatus(conn,"client_encoding",
322-
val);
323-
}
312+
pqSaveParameterStatus(conn,"client_encoding",
313+
"SQL_ASCII");
324314
}
325315

326316
PQclear(res);

0 commit comments

Comments
 (0)

[8]ページ先頭

©2009-2025 Movatter.jp