From: | Dave Cramer <Dave(at)micro-automation(dot)net> |
---|---|
To: | Aaron Mulder <ammulder(at)alumni(dot)princeton(dot)edu> |
Cc: | PostgreSQL JDBC <pgsql-jdbc(at)postgresql(dot)org> |
Subject: | Re: [PATCHES] Anoter JDBC Error |
Date: | 2002-10-21 00:04:24 |
Message-ID: | 1035158665.1868.70.camel@inspiron.cramers |
Views: | Raw Message | Whole Thread | Download mbox | Resend email |
Thread: | |
Lists: | pgsql-jdbc pgsql-patches |
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
>
>
From | Date | Subject | |
---|---|---|---|
Next Message | Teofilis Martisius | 2002-10-21 03:33:07 | Re: new String(byte[]) performance |
Previous Message | Nic Ferrier | 2002-10-20 18:29:07 | Re: Scrollable result sets |
From | Date | Subject | |
---|---|---|---|
Next Message | Bruce Momjian | 2002-10-21 01:17:43 | Re: PL/Python documentation |
Previous Message | Nigel J. Andrews | 2002-10-20 23:23:29 | PL/Python documentation |