Bug? Reading items of array of composite a type

From: Daniel Dekany <ddekany(at)freemail(dot)hu>
To: pgsql-jdbc(at)postgresql(dot)org
Subject: Bug? Reading items of array of composite a type
Date: 2010-09-20 10:55:55
Message-ID: 255315797.20100920125555@freemail.hu
Views: Raw Message | Whole Thread | Download mbox | Resend email
Thread:
Lists: pgsql-jdbc

(Sorry for this is a duplicate of
http://pgfoundry.org/tracker/index.php?func=detail&aid=1010898&group_id=1000224&atid=854
but now I guess it's unused and you expect reports here?)

The items of an array of composite items are returned so that the
composite values will only have their first field returned correctly,
the second field will be a PGObject that represents the whole
composite value, and there will not be more fields.

Example:

ResultSet rs = con.createStatement().executeQuery(
"SELECT ARRAY[ROW(1,2,3)::some_composite_type]");
while (rs.next()) {
ResultSet arrayRs = rs.getArray(1).getResultSet();
while (arrayRs.next()) {
assert(arrayRs.getObject(1), 1); // Passes
assert(arrayRs.getObject(2), 2); // Fails, it's PGObject "(1,2,3)"
assert(arrayRs.getObject(3), 3); // Exception: there's only 2 columns
}
}

This same issue doesn't appear if the composite value is not an item of an array.

Versions:
postgresql-8.4-702.jdbc4.jar and postgresql-9.0dev-800.jdbc4.jar
PostgreSQL 8.3.11 (Win32)
Java 1.6.0_20-b02

Working demonstration code:
http://pgfoundry.org/tracker/download.php/1000224/854/1010898/547/PgJDBCBugDemo.java

--
Best regards,
Daniel Dekany

Responses

Browse pgsql-jdbc by date

  From Date Subject
Next Message Lukas Eder 2010-09-20 16:58:40 Re: java.sql.ResultSet.getTime() returns wrong time
Previous Message Devrim GÜNDÜZ 2010-09-20 10:39:49 9.0 JDBC drivers