-----------------------------------------------------------
This is an automatically generated e-mail. To reply, visit:
https://reviews.apache.org/r/20825/
-----------------------------------------------------------
Review request for drill and Jinfeng Ni.
Bugs: DRILL-584
https://issues.apache.org/jira/browse/DRILL-584
Repository: drill-git
Description
-------
In ExpressionTreeMaterializer.visitFunctionCall() we try to get a best match
between the DrillFuncHolder and the input call. We may match the input call
with a DrillFuncHolder whose argument type is different from that of the input,
but is allowed to be implicitly cast as per the precedence rules.
However when we inject implicit casts to compensate for the difference in
argument types, we again use the same matching method to resolve the implicit
cast to DrillFuncHolder. In the case of implicit casts, we should not match
with a DrillFuncHolder that has different argument types than the input. We
should return only the DrillFuncHolder that exactly matches the argument types
and if no such holder is present should return NULL.
Added a new FunctionResolver, ExactFunctionResolver which returns a
DrillFuncHolder only when there is an exact match of argument types. This is
invoked when we are trying to inject implicit casts.
Diffs
-----
exec/java-exec/src/main/java/org/apache/drill/exec/expr/ExpressionTreeMaterializer.java
a602d82
exec/java-exec/src/main/java/org/apache/drill/exec/resolver/ExactFunctionResolver.java
PRE-CREATION
exec/java-exec/src/main/java/org/apache/drill/exec/resolver/FunctionResolverFactory.java
a710e44
Diff: https://reviews.apache.org/r/20825/diff/
Testing
-------
Thanks,
Mehant Baid