| From: | Daniel Dekany <ddekany(at)freemail(dot)hu> |
|---|---|
| To: | Daniel Dekany <pgsql-jdbc(at)postgresql(dot)org> |
| Cc: | pgsql-jdbc(at)postgresql(dot)org |
| Subject: | Re: Bug? Reading items of array of composite a type |
| Date: | 2010-09-20 18:23:48 |
| Message-ID: | 1359540791.20100920202348@freemail.hu |
| Views: | Whole Thread | Raw Message | Download mbox | Resend email |
| Thread: | |
| Lists: | pgsql-jdbc |
Nope... no bug here. Array items has two "columns": an index and the
value, and the index happened to be the same as the first value which
led to the misunderstanding here.
Monday, September 20, 2010, 12:55:55 PM, Daniel Dekany wrote:
> (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
>
>
--
Best regards,
Daniel Dekany
| From | Date | Subject | |
|---|---|---|---|
| Next Message | Kris Jurka | 2010-09-20 21:46:34 | Re: 9.0 JDBC drivers |
| Previous Message | Lukas Eder | 2010-09-20 16:58:40 | Re: java.sql.ResultSet.getTime() returns wrong time |