JDBC ResultSet.getObject() fails for type INTERVAL

From: pgsql-bugs(at)postgresql(dot)org
To: pgsql-bugs(at)postgresql(dot)org
Subject: JDBC ResultSet.getObject() fails for type INTERVAL
Date: 2001-02-02 05:01:33
Message-ID: 200102020501.f1251Xr08215@hub.org
Views: Raw Message | Whole Thread | Download mbox | Resend email
Thread:
Lists: pgsql-bugs

John Lemcke (jlemcke(at)netspace(dot)net(dot)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

Responses

Browse pgsql-bugs by date

  From Date Subject
Next Message And. Andruikhanov 2001-02-02 09:30:50 insert char(1) type by different ways.
Previous Message And. Andruikhanov 2001-02-01 16:49:53 some info about char(1)