Thread: JDBC driver method setClob always uses getAsciiStream()

JDBC driver method setClob always uses getAsciiStream()

From
Jochen Terstiege
Date:
Using driver: postgresql-8.4-701.jdbc3.jar

The method setClob() in the AbstractJdbc2Statement calls the method
getAsciiStream() on the provided Clob. This leads to problems if the
given Clob contains an UTF-8 encoded string.

Shouldn't the driver call getCharacterStream() instead? Can this problem
be solved in a different way?

Relevant code from the class:

     public void setClob(int i, Clob x) throws SQLException
     {
         checkClosed();

         if (x == null)
         {
             setNull(i, Types.CLOB);
             return;
         }

         InputStream l_inStream = x.getAsciiStream();
         ...

Re: JDBC driver method setClob always uses getAsciiStream()

From
Kris Jurka
Date:

On Tue, 7 Sep 2010, Jochen Terstiege wrote:

> Using driver: postgresql-8.4-701.jdbc3.jar
>
> The method setClob() in the AbstractJdbc2Statement calls the method
> getAsciiStream() on the provided Clob. This leads to problems if the given
> Clob contains an UTF-8 encoded string.
>
> Shouldn't the driver call getCharacterStream() instead? Can this problem be
> solved in a different way?
>

Here are my comments from the identical earlier report on the -bugs list.

http://archives.postgresql.org/pgsql-bugs/2010-09/msg00034.php

Kris Jurka