(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