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())); }
