Re: [PATCHES] Anoter JDBC Error - Mailing list pgsql-jdbc

From Dave Cramer
Subject Re: [PATCHES] Anoter JDBC Error
Date
Msg-id 1035158665.1868.70.camel@inspiron.cramers
Whole thread Raw
In response to Re: [PATCHES] Anoter JDBC Error  (Aaron Mulder <ammulder@alumni.princeton.edu>)
List pgsql-jdbc
Aaron,

To answer one question about what getFixedString is doing there,
everything from the server is a string, (except binary values) integers,
floats, longs, dates, etc.

As far as the getInteger(9) goes this is quite likely a bug.

Dave
On Sat, 2002-10-19 at 19:36, Aaron Mulder wrote:
>     Ahh, never mind.  I tried again a few minutes later, and got the
> new behavior, which is to say a SQLException.  But I don't
> understand why this is happening.  Here's what I'm doing:
>
>     I create the database "test" (in my PG 7.2.2 DB) with a table with
> 3 columns, all integers.  I connect using the JDBC3 driver, get a
> connection, get the databasemetadata, call
>
>     dbmd.getColumns("test",null,"tablename","%");
>
>     I get back a ResultSet.  Column 9 is an integer column,
> DECIMAL_DIGITS.  If I call getObject, it tries to get an Integer object,
> so even the ResultSet thinks it's an integer column.  However, the result
> of getString/getFixedString used for new Integer(getFixedString()) is
> apparently an empty String, causing the SQLException due to a badly
> formatted Integer value.
>
>     So now I'm confused.  What's an empty String doing in an integer
> column when (if you believe the logic in getFixedString) the value was not
> null?  Is this broken null handling?  Test program and results attached...
>
> Aaron
>
> import java.sql.*;
>
> public class PostgresTest{
>     public static void main(String args[]) {
>         try {
>             Class.forName("org.postgresql.Driver");
>             Connection con =
> DriverManager.getConnection("jdbc:postgresql://localhost/test", "test",
> "password");
>             DatabaseMetaData dmd = con.getMetaData();
>             ResultSet rs = dmd.getColumns("test", null, "tablename", "%");
>             rs.next();
>             System.out.println("Col 9: "+rs.getInt(9)); // getObject(9)
>             rs.close();
>             con.close();
>         } catch(Exception e) {
>             e.printStackTrace();
>         }
>     }
> }
>
>
> Bad Integer
>     at
> org.postgresql.jdbc1.AbstractJdbc1ResultSet.toInt(AbstractJdbc1ResultSet.java:708)
>     at
> org.postgresql.jdbc1.AbstractJdbc1ResultSet.getInt(AbstractJdbc1ResultSet.java:148)
>     at PostgresTest.main(PostgresTest.java:12)
>
>
> ---------------------------(end of broadcast)---------------------------
> TIP 6: Have you searched our list archives?
>
> http://archives.postgresql.org
>
>




pgsql-jdbc by date:

Previous
From: Nic Ferrier
Date:
Subject: Re: Scrollable result sets
Next
From: Teofilis Martisius
Date:
Subject: Re: new String(byte[]) performance