This is an issue I found while working on CALCITE-3162: According to my understanding, the method AbstractCursor#convertValue(), used for converting the component types of ARRAYs, does not adhere to what is specified in the JDBC specification (Appendix B) regarding mapping of types:
- The JDBC types FLOAT (6) and DOUBLE (8) should actually both map to Java double or Double respectively. Currently, FLOAT (6) is converted to a float.
- The implementation is currently missing support for JDBC type REAL (7), which should convert to float or Float respectively
This issue will cause an IllegalStateException to be thrown in clients using the Avatica Driver if they encounter REAL datatype in arrays.