Well, yes, Table B-3 clearly specifies TINYINT and SMALLINT -> Integer. However, given that the ranges of these SQL types fit within Java's byte and short ranges, respectively, wouldn't returning the more precise Java class names (Byte and Short) be a reasonable improvement rather than a deviation from the specification? I understand that the specification defines Integer as the default mapping, but does that necessarily mean a driver should not expose a more precise class through ResultSetMetaD...
ResultSetMetaData reports incorrect Java classes for TINYINT and SMALLINT columns
HSQLDB BIT VARYING- ResultSet.getBytes() fails despite column class being byte[]