Jungtaek Lim commented on CALCITE-1453:

I've submitted a patch: https://github.com/apache/calcite/pull/311

Since type information is only available in runtime, I just try to convert all 
cases to match (Object, Object), and let backup methods care the parameters 
During handling parameters which are Number type, I just converted the 
parameter to BigDecimal so that we can simplify overloading methods, but since 
there're downsides of the approach I'm OK to find other ways if we think it's 
not acceptable.

> Support ANY type with binary compare / arithmetic operators
> -----------------------------------------------------------
>                 Key: CALCITE-1453
>                 URL: https://issues.apache.org/jira/browse/CALCITE-1453
>             Project: Calcite
>          Issue Type: Improvement
>          Components: core
>            Reporter: Jungtaek Lim
>            Assignee: Jungtaek Lim
> Currently Calcite doesn't support applying binary compare / arithmetic 
> operators with ANY type. One of example is 
> CollectionTypeTest.testAccessNestedMapWithAnyTypeWithoutCast(). Without 
> explicit casting, it can't find the matching backup method, and complaining 
> there's no SqlFunctions.eq(Object, int).
> There seems to several ways to resolve this, but at least we don't want to 
> make operator backup method for every combination of types. Needs to avoid 
> this approach.
> When we're addressing this by having backup method, since we don't know the 
> runtime type for ANY type, even if we succeed to call backup method with 
> (Object, Object) parameters, two types can be different. This is OK for other 
> types, but not Number types. This should be well cared, too.

This message was sent by Atlassian JIRA

Reply via email to