diff options
author | Mehant Baid <mehantr@gmail.com> | 2014-03-31 20:41:06 -0700 |
---|---|---|
committer | Jacques Nadeau <jacques@apache.org> | 2014-04-19 18:07:09 -0700 |
commit | db0ff6364ee3ff27f6fe4a9a506617ee47c88ae5 (patch) | |
tree | c52c07ae64a53bf1946e77167787245657e7d413 /common | |
parent | 6976f92adeaf5e82729a0ff5f8581a0c405a6fec (diff) |
Build the IfExpression correcty in ExpressionStringBuilder
Use IntExpression instead of LongExpression for integers
Diffstat (limited to 'common')
-rw-r--r-- | common/src/main/java/org/apache/drill/common/expression/ExpressionStringBuilder.java | 3 | ||||
-rw-r--r-- | common/src/main/java/org/apache/drill/common/expression/ValueExpressions.java | 8 |
2 files changed, 10 insertions, 1 deletions
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 4bbc09a7e..16b3f4db4 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 @@ -75,6 +75,9 @@ public class ExpressionStringBuilder extends AbstractExprVisitor<Void, StringBui c.expression.accept(this, sb); sb.append(" ) "); } + sb.append(" else ("); + ifExpr.elseExpression.accept(this, sb); + sb.append(" ) "); sb.append(" end "); sb.append(" ) "); return null; diff --git a/common/src/main/java/org/apache/drill/common/expression/ValueExpressions.java b/common/src/main/java/org/apache/drill/common/expression/ValueExpressions.java index 10cf152b8..4b83e7d79 100644 --- a/common/src/main/java/org/apache/drill/common/expression/ValueExpressions.java +++ b/common/src/main/java/org/apache/drill/common/expression/ValueExpressions.java @@ -35,7 +35,7 @@ public class ValueExpressions { } public static LogicalExpression getInt(int i){ - return new LongExpression(i); + return new IntExpression(i, ExpressionPosition.UNKNOWN); } public static LogicalExpression getFloat8(double d){ @@ -76,6 +76,12 @@ public class ValueExpressions { public static LogicalExpression getNumericExpression(String s, ExpressionPosition ep) { try { + int a = Integer.parseInt(s); + return new IntExpression(a, ep); + } catch (Exception e) { + + } + try { long l = Long.parseLong(s); return new LongExpression(l, ep); } catch (Exception e) { |