Bug in DrillOptiq while generating cast functions to Float, Double, 
IntervalYear and IntervalDay


Project: http://git-wip-us.apache.org/repos/asf/incubator-drill/repo
Commit: http://git-wip-us.apache.org/repos/asf/incubator-drill/commit/f2f889c1
Tree: http://git-wip-us.apache.org/repos/asf/incubator-drill/tree/f2f889c1
Diff: http://git-wip-us.apache.org/repos/asf/incubator-drill/diff/f2f889c1

Branch: refs/heads/master
Commit: f2f889c1dab3ab256e9b38914b12c91fac5146e2
Parents: 443e4e9
Author: Mehant Baid <[email protected]>
Authored: Tue Apr 1 11:18:34 2014 -0700
Committer: Jacques Nadeau <[email protected]>
Committed: Sat Apr 19 18:07:10 2014 -0700

----------------------------------------------------------------------
 .../drill/common/expression/ExpressionStringBuilder.java     | 4 ++--
 .../org/apache/drill/exec/planner/logical/DrillOptiq.java    | 8 ++++----
 2 files changed, 6 insertions(+), 6 deletions(-)
----------------------------------------------------------------------


http://git-wip-us.apache.org/repos/asf/incubator-drill/blob/f2f889c1/common/src/main/java/org/apache/drill/common/expression/ExpressionStringBuilder.java
----------------------------------------------------------------------
diff --git 
a/common/src/main/java/org/apache/drill/common/expression/ExpressionStringBuilder.java
 
b/common/src/main/java/org/apache/drill/common/expression/ExpressionStringBuilder.java
index 16b3f4d..787e4af 100644
--- 
a/common/src/main/java/org/apache/drill/common/expression/ExpressionStringBuilder.java
+++ 
b/common/src/main/java/org/apache/drill/common/expression/ExpressionStringBuilder.java
@@ -139,7 +139,7 @@ public class ExpressionStringBuilder extends 
AbstractExprVisitor<Void, StringBui
   public Void visitIntervalYearConstant(IntervalYearExpression lExpr, 
StringBuilder sb) throws RuntimeException {
     sb.append("cast( \"");
     sb.append(Period.years(lExpr.getIntervalYear()).toString());
-    sb.append("\" as INTERVAL)");
+    sb.append("\" as INTERVALYEAR)");
     return null;
   }
 
@@ -147,7 +147,7 @@ public class ExpressionStringBuilder extends 
AbstractExprVisitor<Void, StringBui
   public Void visitIntervalDayConstant(IntervalDayExpression lExpr, 
StringBuilder sb) throws RuntimeException {
     sb.append("cast( \"");
     
sb.append(Period.days(lExpr.getIntervalDay()).plusMillis(lExpr.getIntervalMillis()).toString());
-    sb.append("\" as INTERVAL)");
+    sb.append("\" as INTERVALDAY)");
     return null;
   }
 

http://git-wip-us.apache.org/repos/asf/incubator-drill/blob/f2f889c1/exec/java-exec/src/main/java/org/apache/drill/exec/planner/logical/DrillOptiq.java
----------------------------------------------------------------------
diff --git 
a/exec/java-exec/src/main/java/org/apache/drill/exec/planner/logical/DrillOptiq.java
 
b/exec/java-exec/src/main/java/org/apache/drill/exec/planner/logical/DrillOptiq.java
index 1f8e14b..4926d7b 100644
--- 
a/exec/java-exec/src/main/java/org/apache/drill/exec/planner/logical/DrillOptiq.java
+++ 
b/exec/java-exec/src/main/java/org/apache/drill/exec/planner/logical/DrillOptiq.java
@@ -199,11 +199,11 @@ public class DrillOptiq {
           break;
       
         case "INTEGER": castType = Types.required(MinorType.INT); break;
-        case "FLOAT": Types.required(MinorType.FLOAT4); break;
-        case "DOUBLE": Types.required(MinorType.FLOAT8); break;
+        case "FLOAT": castType = Types.required(MinorType.FLOAT4); break;
+        case "DOUBLE": castType = Types.required(MinorType.FLOAT8); break;
         case "DECIMAL": throw new UnsupportedOperationException("Need to add 
decimal.");
-        case "INTERVAL_YEAR_MONTH": Types.required(MinorType.INTERVALYEAR); 
break;
-        case "INTERVAL_DAY_TIME": Types.required(MinorType.INTERVALDAY); break;
+        case "INTERVAL_YEAR_MONTH": castType = 
Types.required(MinorType.INTERVALYEAR); break;
+        case "INTERVAL_DAY_TIME": castType = 
Types.required(MinorType.INTERVALDAY); break;
         default: castType = 
Types.required(MinorType.valueOf(call.getType().getSqlTypeName().getName()));
       }
       

Reply via email to