Re: DatabaseMetaData - getImportedKeys

From: Kris Jurka <books(at)ejurka(dot)com>
To: Aleksey <phone(at)ukr(dot)net>
Cc: <pgsql-jdbc(at)postgresql(dot)org>
Subject: Re: DatabaseMetaData - getImportedKeys
Date: 2003-11-04 06:11:47
Message-ID: Pine.LNX.4.33.0311040054240.6231-200000@leary.csoft.net
Views: Raw Message | Whole Thread | Download mbox | Resend email
Thread:
Lists: pgsql-jdbc

On Mon, 3 Nov 2003, Aleksey wrote:

> I have the following problem working with DatabaseMetaData.
>
> [ retreiving foreign key column names with KOI8-R characters fails
> when trying to decodeUTF ]

The way many DatabaseMetaData methods work is that they run a query to
retrieve the necessary data which it then iterates over, reformats, and
stores into an in memory ResultSet which is returned to the user. The in
memory ResultSet is implemented with byte arrays, so all String data has
.getBytes() called on it to turn it into a byte array. This turns it into
a byte array with the JVM's default charset which may not be the UTF-8 we
need. This is why the resulting decoding from UTF-8 is failing, because
it is not actually UTF-8 data.

The attached patch encodes the data into the format that the subsequent
decoder expects. Aleksey, could you try out this patch or the pre-built
jar file that includes it at http://www.ejurka.com/pgsql/ and confirm that
this fixes your problem?

Kris Jurka

Attachment Content-Type Size
metadataencoding_fix.patch text/plain 18.5 KB

In response to

Responses

Browse pgsql-jdbc by date

  From Date Subject
Next Message Glenn Holmer 2003-11-04 13:34:35 too many clients
Previous Message Kris Jurka 2003-11-04 05:43:30 Re: A bug in 7.3 jdbc driver now support for PG money type