Re: 8.0.0beta4: "copy" and "client_encoding" - Mailing list pgsql-jdbc

From Oliver Jowett
Subject Re: 8.0.0beta4: "copy" and "client_encoding"
Date
Msg-id 41893BC8.6000201@opencloud.com
Whole thread Raw
In response to 8.0.0beta4: "copy" and "client_encoding"  (mbch67@yahoo.com)
List pgsql-jdbc
mbch67@yahoo.com wrote:
> Hi,
>
> The following statement worked fine with 7.4 but fails under 8.0.0beta4:
>
>    SET CLIENT_ENCODING TO 'LATIN1';
>
> Error message:
>
>    08006
>    The servers client_encoding parameter was changed to {0}.
>    The JDBC driver requires client_encoding to be UNICODE for
>    correct operation.
>
> Is this a bug or a new restriction of the JDBC driver/server backend?

It's an old restriction of the JDBC driver. It's just that only the new
driver detects and complains about attempts to change the encoding.

The underlying problem is that currently the driver sets client_encoding
= UNICODE (which matches the internal Java string representation well)
and expects it to stay that way for the duration of the connection. If
you manually change client_encoding, then the driver will happily try to
decode those LATIN1-encoded strings as UTF8-encoded strings, and get
very confused..

Why do you need to change client_encoding?

-O

pgsql-jdbc by date:

Previous
From: Oliver Jowett
Date:
Subject: Re: Avoiding explicit addDataType calls for PostGIS
Next
From: Dave Cramer
Date:
Subject: Re: stable release