Hi All,

Trying to figure out what’s amiss in my Calcite based driver and whether there 
are bugs in this area in Avatica/Calcite or if I’m using something wrong.

I have a table in a database that reports its columns as: JavaType(long) NOT 
NULL (BIGINT), JavaType(class java.lang.Character) (CHAR)

I then build a prepared statement against the same connection: INSERT INTO foo 
(KEY, \"character\") values (?, ?)
The parameter metadata reports the parameter types as: java.lang.Object 
(BIGINT). java.lang.Object (CHAR)
The Enumerable node that is input to my adapters part of the graph reports its 
row type as: RecordType(JavaType(class java.lang.Long) KEY, JavaType(class 
java.lang.Character) character)

At code generation I’m then presented with a field that claims it’s a 
java.lang.Character, but at runtime I get a ClassCastException because 
arbitrary java types (notably Strings) are getting all the way through from the 
JDBC PreparedStatement unmodified. My understanding of the JDBC spec says that 
the parameter values should get converted, at but it’s not clear to me who’s 
responsibility that is.

Anyone have any thoughts on where I should look first?

Thanks,

Chris

Reply via email to