@@ -321,7 +321,7 @@ void testGetBigDecimal() throws SQLException {
321321 assertEquals (new BigDecimal ("123.423123" ), resultSet .getBigDecimal (2 ));
322322 // null object
323323 when (mockedExecutionResult .getObject (0 )).thenReturn (null );
324- assertEquals ( BigDecimal . ZERO , resultSet .getBigDecimal (1 ));
324+ assertNull ( resultSet .getBigDecimal (1 ));
325325 // Test with column label
326326 when (mockedExecutionResult .getObject (1 )).thenReturn (new BigDecimal ("123.423123" ));
327327 when (mockedResultSetMetadata .getColumnNameIndex ("columnLabel" )).thenReturn (2 );
@@ -1136,4 +1136,34 @@ void testGetUpdateCountForClosedResultSet() throws SQLException {
11361136 resultSet .close ();
11371137 assertThrows (DatabricksSQLException .class , resultSet ::getUpdateCount );
11381138 }
1139+
1140+ @ Test
1141+ void testDefaultValuesForNullFields () throws SQLException {
1142+ DatabricksResultSet resultSet = getResultSet (StatementState .SUCCEEDED , null );
1143+ when (mockedExecutionResult .getObject (anyInt ())).thenReturn (null );
1144+
1145+ // Object types should return null
1146+ assertNull (resultSet .getString (1 ));
1147+ assertNull (resultSet .getBigDecimal (1 ));
1148+ assertNull (resultSet .getDate (1 ));
1149+ assertNull (resultSet .getTime (1 ));
1150+ assertNull (resultSet .getTimestamp (1 ));
1151+ assertNull (resultSet .getBytes (1 ));
1152+ assertNull (resultSet .getAsciiStream (1 ));
1153+ assertNull (resultSet .getUnicodeStream (1 ));
1154+ assertNull (resultSet .getBinaryStream (1 ));
1155+
1156+ // Primitive types should return their default values
1157+ assertEquals (false , resultSet .getBoolean (1 ));
1158+ assertEquals ((byte ) 0 , resultSet .getByte (1 ));
1159+ assertEquals ((short ) 0 , resultSet .getShort (1 ));
1160+ assertEquals (0 , resultSet .getInt (1 ));
1161+ assertEquals (0L , resultSet .getLong (1 ));
1162+ assertEquals (0.0f , resultSet .getFloat (1 ));
1163+ assertEquals (0.0d , resultSet .getDouble (1 ));
1164+
1165+ // Make sure wasNull returns true after getting a null value
1166+ resultSet .getString (1 );
1167+ assertTrue (resultSet .wasNull ());
1168+ }
11391169}
0 commit comments