@@ -367,22 +367,29 @@ public void testGetMetadata() throws SQLException {
367367 @ Test (groups = {"integration" })
368368 public void testGetResultSetFromArray () throws Exception {
369369 try (Connection conn = getJdbcConnection (); Statement stmt = conn .createStatement ()) {
370- try (ResultSet rs = stmt .executeQuery ("select [1, 2, 3 , 4]::Array(UInt16) as v" )) {
370+ try (ResultSet rs = stmt .executeQuery ("select [1, 2, null , 4]::Array(Nullable( UInt16) ) as v" )) {
371371 assertTrue (rs .next ());
372372
373373 Array array = rs .getArray ("v" );
374374 Assert .assertNotNull (array );
375375 Assert .assertEquals (array .getBaseType (), Types .INTEGER );
376- Assert .assertEquals (array .getBaseTypeName (), "UInt16" );
376+ Assert .assertEquals (array .getBaseTypeName (), "Nullable( UInt16) " );
377377
378378 Integer [] array2 = (Integer []) array .getArray ();
379379
380380 ResultSet rs2 = array .getResultSet ();
381381 Assert .assertTrue (rs2 .isBeforeFirst ());
382382 Assert .assertFalse (rs2 .isAfterLast ());
383+ String valueColumn = rs2 .getMetaData ().getColumnName (2 );
383384 for (int i = 0 ; i < array2 .length ; i ++) {
384385 rs2 .next ();
385- Assert .assertEquals (rs2 .getInt (1 ), array2 [i ]);
386+ if (i == 2 ) {
387+ rs2 .getInt (valueColumn );
388+ Assert .assertTrue (rs2 .wasNull ());
389+ } else {
390+ Assert .assertEquals (rs2 .getInt (valueColumn ), array2 [i ]);
391+ Assert .assertFalse (rs2 .wasNull ());
392+ }
386393 }
387394 }
388395 }
0 commit comments