@@ -1275,6 +1275,54 @@ public void testValidGetObjectCalls() throws Exception {
1275
1275
assertTrue (results .getObject ("test_boolean" ) instanceof Boolean );
1276
1276
});
1277
1277
}
1278
+
1279
+ public void testGettingNullValues () throws Exception {
1280
+ String query = "SELECT CAST(NULL AS BOOLEAN) b, CAST(NULL AS TINYINT) t, CAST(NULL AS SMALLINT) s, CAST(NULL AS INTEGER) i,"
1281
+ + "CAST(NULL AS BIGINT) bi, CAST(NULL AS DOUBLE) d, CAST(NULL AS REAL) r, CAST(NULL AS FLOAT) f, CAST(NULL AS VARCHAR) v,"
1282
+ + "CAST(NULL AS DATE) dt, CAST(NULL AS TIME) tm, CAST(NULL AS TIMESTAMP) ts" ;
1283
+ doWithQuery (query , (results ) -> {
1284
+ results .next ();
1285
+
1286
+ assertNull (results .getObject ("b" ));
1287
+ assertFalse (results .getBoolean ("b" ));
1288
+
1289
+ assertNull (results .getObject ("t" ));
1290
+ assertEquals (0 , results .getByte ("t" ));
1291
+
1292
+ assertNull (results .getObject ("s" ));
1293
+ assertEquals (0 , results .getShort ("s" ));
1294
+
1295
+ assertNull (results .getObject ("i" ));
1296
+ assertEquals (0 , results .getInt ("i" ));
1297
+
1298
+ assertNull (results .getObject ("bi" ));
1299
+ assertEquals (0 , results .getLong ("bi" ));
1300
+
1301
+ assertNull (results .getObject ("d" ));
1302
+ assertEquals (0.0d , results .getDouble ("d" ), 0d );
1303
+
1304
+ assertNull (results .getObject ("r" ));
1305
+ assertEquals (0.0f , results .getFloat ("r" ), 0f );
1306
+
1307
+ assertNull (results .getObject ("f" ));
1308
+ assertEquals (0.0f , results .getFloat ("f" ), 0f );
1309
+
1310
+ assertNull (results .getObject ("v" ));
1311
+ assertNull (results .getString ("v" ));
1312
+
1313
+ assertNull (results .getObject ("dt" ));
1314
+ assertNull (results .getDate ("dt" ));
1315
+ assertNull (results .getDate ("dt" , randomCalendar ()));
1316
+
1317
+ assertNull (results .getObject ("tm" ));
1318
+ assertNull (results .getTime ("tm" ));
1319
+ assertNull (results .getTime ("tm" , randomCalendar ()));
1320
+
1321
+ assertNull (results .getObject ("ts" ));
1322
+ assertNull (results .getTimestamp ("ts" ));
1323
+ assertNull (results .getTimestamp ("ts" , randomCalendar ()));
1324
+ });
1325
+ }
1278
1326
1279
1327
/*
1280
1328
* Checks StackOverflowError fix for https://github.com/elastic/elasticsearch/pull/31735
@@ -1841,4 +1889,8 @@ private String asDateString(long millis) {
1841
1889
private ZoneId getZoneFromOffset (Long randomLongDate ) {
1842
1890
return ZoneId .of (ZoneId .of (timeZoneId ).getRules ().getOffset (Instant .ofEpochMilli (randomLongDate )).toString ());
1843
1891
}
1892
+
1893
+ private Calendar randomCalendar () {
1894
+ return Calendar .getInstance (randomTimeZone (), Locale .ROOT );
1895
+ }
1844
1896
}
0 commit comments