Hello.

I am confused with the implicit Drill cast rules for BIT data type. According 
to TypeCastRules.java there is the possibility of conversion between BIT and 
INT (and other number type), e.g. cast(true as int). However, when trying to 
perform such a conversion, the error "Missing function implementation: 
[castBIGINT (BIT-REQUIRED)]" occurs.

As far as I understand, Drill scans the list of functions for conversion (in my 
case it is castINT) and tries to find the chain of transformations that is the 
least expensive. However, since there is no direct BIT -> INT conversion 
function, it selects the function with the least difference in 
ResolverTypePrecedence.precedenceMap and tries to add a additional cast for the 
argument (In my case it is [castINT (BIGINT-REQUIRED), since TypeCastRules.java 
also allows conversion BIT -> BIGINT). At the time of searching for the 
argument conversion function, the error mentioned above occurs.

questions:
1) Is it correct that BIT -> Number conversions are allowed in TypeCastRules?
2) Was the conversion supposed to be done through TinyInt? However, for this 
type I could not find the conversion functions to other types of numbers.
3) the inability to convert BIT to number is an error? Or is this the correct 
behavior?

Reply via email to