diff options
author | Josiah Yan <josiah.yan@gmail.com> | 2017-08-02 22:50:54 +0800 |
---|---|---|
committer | Paul Rogers <progers@maprtech.com> | 2017-10-11 10:19:29 -0700 |
commit | a7b25714d824c7447a73251314383eccb9b7b18b (patch) | |
tree | 72bfa517001ed39957bc7040be1a97b9e9c97fe3 /exec/java-exec/src/main/java/org/apache/drill/exec/planner/logical | |
parent | bbc42240483a0658691149aea3c509ccd0db4c79 (diff) |
DRILL-5645: negation of expression causes null pointer exception
closes #892
Diffstat (limited to 'exec/java-exec/src/main/java/org/apache/drill/exec/planner/logical')
-rw-r--r-- | exec/java-exec/src/main/java/org/apache/drill/exec/planner/logical/DrillOptiq.java | 11 |
1 files changed, 3 insertions, 8 deletions
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 db0cfbd01..0d8efd567 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 @@ -167,14 +167,9 @@ public class DrillOptiq { return FunctionCallFactory.createExpression(call.getOperator().getName().toLowerCase(), ExpressionPosition.UNKNOWN, arg); case MINUS_PREFIX: - final RexBuilder builder = inputs.get(0).getCluster().getRexBuilder(); - final List<RexNode> operands = Lists.newArrayList(); - operands.add(builder.makeExactLiteral(new BigDecimal(-1))); - operands.add(call.getOperands().get(0)); - - return visitCall((RexCall) builder.makeCall( - SqlStdOperatorTable.MULTIPLY, - operands)); + List<LogicalExpression> operands = Lists.newArrayList(); + operands.add(call.getOperands().get(0).accept(this)); + return FunctionCallFactory.createExpression("u-", operands); } throw new AssertionError("todo: implement syntax " + syntax + "(" + call + ")"); case SPECIAL: |