JDBC ResultSet.getObject() fails for type INTERVAL - Mailing list pgsql-bugs
From | pgsql-bugs@postgresql.org |
---|---|
Subject | JDBC ResultSet.getObject() fails for type INTERVAL |
Date | |
Msg-id | 200102020501.f1251Xr08215@hub.org Whole thread Raw |
Responses |
Re: JDBC ResultSet.getObject() fails for type INTERVAL
|
List | pgsql-bugs |
John Lemcke (jlemcke@netspace.net.au) reports a bug with a severity of 2 The lower the number the more severe it is. Short Description JDBC ResultSet.getObject() fails for type INTERVAL Long Description Trying to retrieve an INTERVAL from a ResultSet causes an exception. The following output is from the attached example code. ~/src/java/rules > java TestInterval 1 string1 TestInterval.executeQuery() : No class found for interval. TestInterval.main : No class found for interval. No class found for interval. at java.lang.Throwable.fillInStackTrace(Native Method) at org.postgresql.Connection.getObject(Connection.java:631) at org.postgresql.jdbc2.ResultSet.getObject(ResultSet.java:759) at TestInterval.executeQuery(Compiled Code) at TestInterval.main(TestInterval.java:70) ~/src/java/rules > =========================================================== Here id the PostgreSQL version info test_interval=# select version(); version ----------------------------------------------------------------- PostgreSQL 7.0.3 on sparc-sun-solaris2.8, compiled by gcc 2.8.1 (1 row) test_interval=# JDBC was compiled as jbdc2. =========================================================== Here is the java version info ~/src/java/rules > java -version java version "1.2.1" Solaris VM (build Solaris_JDK_1.2.1_04c, native threads, sunwjit) Sample Code /////////////////// // // TestInterval.java // // Demonstrates a bug (I think) in the PostgreSQL JDBC driver // when handling columns of type interval. // /////////////////// // // Create the database test_interval using the following SQL // // DROP TABLE test_interval; // // CREATE TABLE test_interval ( // number1 INT, // string1 VARCHAR(8), // interval1 INTERVAL // ); // // INSERT INTO test_interval VALUES (1, 'string1', '12:35'); // INSERT INTO test_interval VALUES (2, 'string2', '13:00'); // SELECT * FROM test_interval; // -- Show that PostgreSQL does something sensible with INTERVALS // SELECT SUM(interval1) FROM test_interval; // /////////////////// import java.sql.*; public class TestInterval { Connection connection; Statement statement; ResultSet resultSet; public TestInterval() throws Exception { try { Class.forName("org.postgresql.Driver"); connection = DriverManager.getConnection( "jdbc:postgresql:test_interval", "jlemcke", ""); statement = connection.createStatement(); } catch (ClassNotFoundException ex) { System.err.println("Cannot find the database driver classes."); System.err.println(ex); } } public void executeQuery(String query) throws SQLException { try { resultSet = statement.executeQuery(query); while (resultSet.next()) { // Get the INT System.out.println(resultSet.getObject(1)); // Get the VARCHAR(8) System.out.println(resultSet.getObject(2)); // Get the INTERVAL System.out.println(resultSet.getObject(3)); } } catch (SQLException ex) { System.err.println("TestInterval.executeQuery() : " + ex); throw(ex); } } public static void main(String s[]) { try { new TestInterval().executeQuery("select * from test_interval"); } catch (Exception ex) { System.err.println("TestInterval.main : " + ex); ex.printStackTrace(); } } } No file was uploaded with this report
pgsql-bugs by date: