drill-dev mailing list archives

Site index · List index
Message view « Date » · « Thread »
Top « Date » · « Thread »
From "Jinfeng Ni" <...@maprtech.com>
Subject Re: Review Request 20742: Allow implicit cast to be applied in both directions for certain data types
Date Tue, 06 May 2014 18:43:55 GMT

-----------------------------------------------------------
This is an automatically generated e-mail. To reply, visit:
https://reviews.apache.org/r/20742/#review42336
-----------------------------------------------------------

Ship it!


Ship It!

- Jinfeng Ni


On April 26, 2014, 12:40 a.m., Mehant Baid wrote:
> 
> -----------------------------------------------------------
> This is an automatically generated e-mail. To reply, visit:
> https://reviews.apache.org/r/20742/
> -----------------------------------------------------------
> 
> (Updated April 26, 2014, 12:40 a.m.)
> 
> 
> Review request for drill, Jacques Nadeau and Jinfeng Ni.
> 
> 
> Bugs: DRILL-577
>     https://issues.apache.org/jira/browse/DRILL-577
> 
> 
> Repository: drill-git
> 
> 
> Description
> -------
> 
> Currently implicit cast works as per the precedence rules. However based on some functions
it might be useful allow the implicit cast to work in the opposite direction as specified
by the precedence map.
> For example: As per the precedence rules, we can implicitly cast from VARCHAR --->
BIGINT. However for some functions (eg: substr, concat) it might be useful to implicitly cast
from BIGINT ---> VARCHAR.
> 
> ResolverTypePrecedence.java:
> Added a new set of secondary rules that allow for implicit cast to work in the other
direction. Currently these secondary set of rules only allow to cast to VARCHAR, so we don't
have cost, if we add more rules here we can add cost to determine which cast function to pick.

> 
> ExpressionTreeMaterializer.java: 
> Fixed bug in visitFunctionCall() that does not add an argument(length) while casting
to variable width types
> 
> TypeCastRules.java
> Added logic to see if we can apply implicit cast based on the secondary rules while matching
a given call to a DrillFuncHolder.
> 
> 
> 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/ResolverTypePrecedence.java
f6d83e2 
>   exec/java-exec/src/main/java/org/apache/drill/exec/resolver/TypeCastRules.java 3aab08f

>   exec/java-exec/src/test/java/org/apache/drill/exec/physical/impl/TestReverseImplicitCast.java
PRE-CREATION 
>   exec/java-exec/src/test/resources/functions/cast/two_way_implicit_cast.json PRE-CREATION

> 
> Diff: https://reviews.apache.org/r/20742/diff/
> 
> 
> Testing
> -------
> 
> Added test to check that implicit cast works both ways.
> 
> 8 + '2'
> substr(10123, 1, 3)
> 
> 
> Thanks,
> 
> Mehant Baid
> 
>


Mime
  • Unnamed multipart/alternative (inline, None, 0 bytes)
View raw message