Empty arrays cause SQLExceptions when using Array.getArray
От | Doug Fields |
---|---|
Тема | Empty arrays cause SQLExceptions when using Array.getArray |
Дата | |
Msg-id | 5.1.0.14.2.20020220190907.03550840@mail.pexicom.com обсуждение исходный текст |
Список | pgsql-jdbc |
Hello, I have the following table and values: =# \d array_test Table "array_test" Attribute | Type | Modifier -----------+-----------+------------------------------------------------------- id | integer | not null default nextval('"array_test_id_seq"'::text) first | integer[] | second | integer[] | number | integer | Index: array_test_pkey =# select * from array_test; id | first | second | number ----+------------+-----------------------------------+-------- 1 | {1,2,3} | {4,5,6} | 7 2 | {10,20,30} | {40,50,60} | 70 3 | {100,200} | {300,400,500,600} | 700 4 | {1000} | {2000,3000,4000,5000,6000} | 7000 5 | {} | {10000,2000,3000,4000,5000,6000} | 70000 6 | | {100000,2000,3000,4000,5000,6000} | 700000 7 | {9,8,7} | {6,5,4} | 8482 (7 rows) When I am getting row 5, the ResultSet.getArray().getArray() call fails: DbArrayTest.doTest: SQLException: Bad Integer DbArrayTest.doTest: SQLState: null DbArrayTest.doTest: VendorError: 0 Bad Integer at org.postgresql.jdbc2.ResultSet.toInt(ResultSet.java:1481) at org.postgresql.jdbc2.Array.getArray(Array.java:127) at org.postgresql.jdbc2.Array.getArray(Array.java:54) at com.pexicom.test.DbArrayTest.doTest(DbArrayTest.java:55) Code snippet in question: Array arrayObj; int[] array; while (rs.next()) { System.out.println("\nColumn 1: " + rs.getInt(1)); arrayObj = rs.getArray(2); if (arrayObj != null) { array = (int[])arrayObj.getArray(); System.out.println("Column 2: " + arrayObj); It fails at the arrayObj.getArray() call. This shouldn't happen; it should return a zero-length array. Thanks, Doug
В списке pgsql-jdbc по дате отправления: