aboutsummaryrefslogtreecommitdiff
path: root/common
diff options
context:
space:
mode:
authorMehant Baid <mehantr@gmail.com>2014-03-31 20:41:06 -0700
committerJacques Nadeau <jacques@apache.org>2014-04-19 18:07:09 -0700
commitdb0ff6364ee3ff27f6fe4a9a506617ee47c88ae5 (patch)
treec52c07ae64a53bf1946e77167787245657e7d413 /common
parent6976f92adeaf5e82729a0ff5f8581a0c405a6fec (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.java3
-rw-r--r--common/src/main/java/org/apache/drill/common/expression/ValueExpressions.java8
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) {