Обсуждение: Postgres JDBC driver (80b1.308) bug

Поиск
Список
Период
Сортировка

Postgres JDBC driver (80b1.308) bug

От
"j.random.programmer"
Дата:
The postgresql 8 version 308 JDBC driver is broken
(jar file: pg80b1.308.jdbc3.jar)

I am running this driver against postgres 7.4.

The System.out.println gives a stack overflow error
because
the Statement toString() is broken !!

The following code illustrates the problem. I'm amazed
that Statement.toString() would cause this kind of
problem --
aren't the driver writers testing toString() methods
of various
implementation classes ?

Best regards,

--j

------------- code
---------------------------------------
import java.sql.*;
import java.io.*;

public class foo
{
public static void main (String args[])  throws
Exception
{
Connection con = getConnection();
String where_stmt = "SELECT a, b, c from alltypes
WHERE id = 39";
Statement stmt = con.createStatement(
                ResultSet.TYPE_SCROLL_INSENSITIVE,
                ResultSet.CONCUR_READ_ONLY);

System.out.println(stmt);  //<-------- ERROR HERE
}

static Connection getConnection() throws Exception {
//return a connection here, implement for your system
}

}
--------------------------- end ----------------------






__________________________________
Do you Yahoo!?
Yahoo! Mail - now with 250MB free storage. Learn more.
http://info.mail.yahoo.com/mail_250

Re: Postgres JDBC driver (80b1.308) bug

От
Kris Jurka
Дата:

On Tue, 11 Jan 2005, j.random.programmer wrote:

> The postgresql 8 version 308 JDBC driver is broken
> (jar file: pg80b1.308.jdbc3.jar)
>
> The System.out.println gives a stack overflow error because the
> Statement toString() is broken !!
>
> The following code illustrates the problem. I'm amazed that
> Statement.toString() would cause this kind of problem -- aren't the
> driver writers testing toString() methods of various implementation
> classes ?

Apparently not.  It's certainly broken, but what would you expect it to
do?  PreparedStatement has a real query that it prints, but Statement has
no such information.  Would you like it return null? ""? Something else?

Kris Jurka

Re: Postgres JDBC driver (80b1.308) bug

От
Kris Jurka
Дата:

On Tue, 11 Jan 2005, j.random.programmer wrote:

> > Apparently not.  It's certainly broken, but what would you expect it
> > to do?  PreparedStatement has a real query that it prints, but
> > Statement has no such information.  Would you like it return null? ""?
> > Something else?
>
> In earlier versions of the driver, it did something
> like this:
>
> org.postgresql.jdbc3.Jdbc3Statement@c5fde0
>

Seems reasonable.  I've restored this behavior.

Kris Jurka

Re: Postgres JDBC driver (80b1.308) bug

От
Guillaume Cottenceau
Дата:
Kris Jurka <books 'at' ejurka.com> writes:

> Apparently not.  It's certainly broken, but what would you expect it to
> do?  PreparedStatement has a real query that it prints, but Statement has
> no such information.  Would you like it return null? ""? Something else?

I'd guess we could expect it to return "attribute" information,
e.g. type of scroll etc.

--
Guillaume Cottenceau