diff options
author | tnachen <tnachen@apache.org> | 2014-02-18 14:45:22 -0800 |
---|---|---|
committer | Jacques Nadeau <jacques@apache.org> | 2014-05-28 15:13:06 -0700 |
commit | 2cdbd6000abc33965f1f7b960b954fd6a4f7b58f (patch) | |
tree | c09d43c10b9d1a0f769ada7a6db0088c64def7af /exec/java-exec/src/main/java/org/apache/drill/exec/expr/EvaluationVisitor.java | |
parent | 1012784682a3e9ed27076bfa33b8c4cb2361a542 (diff) |
DRILL-665: Handle null values in case expressions.
Signed-off-by: vkorukanti <venki.korukanti@gmail.com>
Diffstat (limited to 'exec/java-exec/src/main/java/org/apache/drill/exec/expr/EvaluationVisitor.java')
-rw-r--r-- | exec/java-exec/src/main/java/org/apache/drill/exec/expr/EvaluationVisitor.java | 6 |
1 files changed, 3 insertions, 3 deletions
diff --git a/exec/java-exec/src/main/java/org/apache/drill/exec/expr/EvaluationVisitor.java b/exec/java-exec/src/main/java/org/apache/drill/exec/expr/EvaluationVisitor.java index dcc273c5c..1c012ab61 100644 --- a/exec/java-exec/src/main/java/org/apache/drill/exec/expr/EvaluationVisitor.java +++ b/exec/java-exec/src/main/java/org/apache/drill/exec/expr/EvaluationVisitor.java @@ -29,6 +29,7 @@ import org.apache.drill.common.expression.IfExpression.IfCondition; import org.apache.drill.common.expression.LogicalExpression; import org.apache.drill.common.expression.PathSegment; import org.apache.drill.common.expression.SchemaPath; +import org.apache.drill.common.expression.NullExpression; import org.apache.drill.common.expression.TypedNullConstant; import org.apache.drill.common.expression.ValueExpressions.BooleanExpression; import org.apache.drill.common.expression.ValueExpressions.DateExpression; @@ -55,7 +56,6 @@ import org.apache.drill.exec.expr.fn.DrillFuncHolder; import org.apache.drill.exec.expr.fn.FunctionImplementationRegistry; import org.apache.drill.exec.expr.fn.HiveFuncHolder; import org.apache.drill.exec.physical.impl.filter.ReturnValueExpression; -import org.apache.drill.exec.record.NullExpression; import org.apache.drill.exec.vector.ValueHolderHelper; import org.apache.drill.exec.vector.complex.reader.FieldReader; import org.apache.drill.exec.vector.complex.writer.FieldWriter; @@ -160,7 +160,7 @@ public class EvaluationVisitor { HoldingContainer thenExpr = c.expression.accept(this, generator); if (thenExpr.isOptional()) { - JConditional newCond = jc._then()._if(thenExpr.getIsSet()); + JConditional newCond = jc._then()._if(thenExpr.getIsSet().ne(JExpr.lit(0))); JBlock b = newCond._then(); b.assign(output.getHolder(), thenExpr.getHolder()); b.assign(output.getIsSet(), thenExpr.getIsSet()); @@ -172,7 +172,7 @@ public class EvaluationVisitor { HoldingContainer elseExpr = ifExpr.elseExpression.accept(this, generator); if (elseExpr.isOptional()) { - JConditional newCond = jc._else()._if(elseExpr.getIsSet()); + JConditional newCond = jc._else()._if(elseExpr.getIsSet().ne(JExpr.lit(0))); JBlock b = newCond._then(); b.assign(output.getHolder(), elseExpr.getHolder()); b.assign(output.getIsSet(), elseExpr.getIsSet()); |