getObject and Aggregate SQL functions

From: "David Esposito" <esposito(at)newnetco(dot)com>
To: <pgsql-jdbc(at)postgresql(dot)org>, <pgsql-general(at)postgresql(dot)org>
Subject: getObject and Aggregate SQL functions
Date: 2001-04-24 20:20:37
Message-ID: PEEDKNLDICKECFBNGNLLAEENCBAA.esposito@newnetco.com
Views: Raw Message | Whole Thread | Download mbox | Resend email
Thread:
Lists: pgsql-general pgsql-jdbc

I think i might have found a bug in the JDBC driver ... It manifests itself
when using the getObject() call on the ResultSet for a column that is the
result of an aggregate function. It causes the application to hang on a call
to getObject().

I'm running:

PostGresSQL 7.1
jdbc7.0-1.2.jar
Sun JDK 1.3

The entire sample application source is included below, but here's the
important section:

ResultSet rs = st.executeQuery("SELECT member_id as whatever from member");

System.out.println("Results from non-aggregate query:");

while(rs.next())
{
System.out.println("Whatever STRING = " + rs.getString(1));
System.out.println("Whatever OBJECT = " + rs.getObject(1));
}

System.out.println("Results from aggregate query:");

ResultSet rs2 = st.executeQuery("SELECT sum(member_id) as whatever from
member");

while(rs2.next())
{
System.out.println("Whatever STRING = " + rs2.getString(1));
//Application hangs on this line
System.out.println("Whatever OBJECT = " + rs2.getObject(1));
}

The following output is generated:

--------------------going to get driver--------------------
--------------------going to get connection--------------------
got connection
Results from non-aggregate query:
Whatever STRING = 63
Whatever OBJECT = 63
Whatever STRING = 201
Whatever OBJECT = 201
Whatever STRING = 207
Whatever OBJECT = 207
<SNIP>
Results from aggregate query:
Whatever STRING = 3977
<HUNG!>

So it seems like the getObject call only hangs when used on a column that is
the result of an aggregate function ... I've tried using a regular Statement
as well as a PreparedStatement ... both still hang ... I have to kill the
application (Control + C) in order to rescue the situation ..

Any advice would be greatly appreciated!

Here's the application if you'd like to compile it and try it for yourself:

import java.sql.*;

public class PostgresTester
{
public static void main(String argv[])
{
try{

System.out.println("--------------------going to get
driver--------------------");
Class.forName("org.postgresql.Driver");
System.out.println("--------------------going to get
connection--------------------");
Connection c =
DriverManager.getConnection("jdbc:postgresql://10.1.159.1:5432/mydb","dbuser
1","dbpass1");
System.out.println("got connection");

Statement st = c.createStatement();

ResultSet rs = st.executeQuery("SELECT member_id as whatever from
member");

System.out.println("Results from non-aggregate query:");

while(rs.next())
{
System.out.println("Whatever STRING = " + rs.getString(1));
System.out.println("Whatever OBJECT = " + rs.getObject(1));
}

System.out.println("Results from aggregate query:");

ResultSet rs2 = st.executeQuery("SELECT sum(member_id) as whatever
from member");

while(rs2.next())
{
System.out.println("Whatever STRING = " + rs2.getString(1));
System.out.println("Whatever OBJECT = " + rs2.getObject(1));
}
}
catch(Exception e)
{
System.out.println("EXCEPTION! " + e);
}

}
}

Browse pgsql-general by date

  From Date Subject
Next Message pgsql-general 2001-04-24 20:26:24 Re: Question on Bizarre Sorting (ORDER BY in 7.1) (fwd)
Previous Message Joel Burton 2001-04-24 20:14:10 Re: Insert data into multiple tables

Browse pgsql-jdbc by date

  From Date Subject
Next Message Leandro Rodrigo Saad Cruz 2001-04-25 22:29:48 Error build driver
Previous Message Barry Lind 2001-04-24 17:39:31 Re: Soliciting CallableStatement ideas