[ https://issues.apache.org/jira/browse/CALCITE-1653?page=com.atlassian.jira.plugin.system.issuetabpanels:comment-tabpanel&focusedCommentId=15878479#comment-15878479 ]
Remus Rusanu commented on CALCITE-1653: --------------------------------------- In some cases the executor has to percolate through quite a lengthy stack to reach the place is needed: {{noformat}} Thread [00a86df3-c98c-4766-b3ee-3ab82a63219e main] (Suspended (exception NumberFormatException)) BigDecimal.<init>(double, MathContext) line: 895 RexBuilder.clean(Object, RelDataType) line: 1390 RexBuilder.makeLiteral(Object, RelDataType, boolean) line: 1237 RexBuilder.makeLiteral(Object, RelDataType, boolean) line: 1234 RexExecutable.reduce(RexBuilder, List<RexNode>, List<RexNode>) line: 84 RexExecutorImpl.reduce(RexBuilder, List<RexNode>, List<RexNode>) line: 129 RexUtil.simplifyCast(RexBuilder, RexCall, RelOptPlanner$Executor) line: 2387 <-- we need the executor here RexUtil.simplify(RexBuilder, RexNode, boolean, RelOptPlanner$Executor) line: 1626 RexUtil$ExprSimplifier.visitCall(RexCall) line: 2984 RexUtil$ExprSimplifier.visitCall(RexCall) line: 2953 RexCall.accept(RexVisitor<R>) line: 107 RexUtil$ExprSimplifier(RexShuttle).apply(RexNode) line: 275 ReduceExpressionsRule.reduceExpressions(RelNode, List<RexNode>, RelOptPredicateList, boolean) line: 468 ReduceExpressionsRule.reduceExpressions(RelNode, List<RexNode>, RelOptPredicateList) line: 445 ReduceExpressionsRule$ProjectReduceExpressionsRule.onMatch(RelOptRuleCall) line: 268 HepPlanner(AbstractRelOptPlanner).fireRule(RelOptRuleCall) line: 316 HepPlanner.applyRule(RelOptRule, HepRelVertex, boolean) line: 506 HepPlanner.applyRules(Collection<RelOptRule>, boolean) line: 385 HepPlanner.executeInstruction(HepInstruction$RuleCollection) line: 279 HepInstruction$RuleCollection.execute(HepPlanner) line: 72 HepPlanner.executeProgram(HepProgram) line: 210 HepPlanner.findBestExp() line: 197 CalcitePlanner$CalcitePlannerAction.hepPlan(RelNode, boolean, RelMetadataProvider, RelOptPlanner$Executor, HepMatchOrder, RelOptRule...) line: 1749 <-- we have the executor here {{noformat}} > Allow for custom RelOptPlanner.Executor in RexUtil.simplify > ----------------------------------------------------------- > > Key: CALCITE-1653 > URL: https://issues.apache.org/jira/browse/CALCITE-1653 > Project: Calcite > Issue Type: Bug > Reporter: Remus Rusanu > Assignee: Julian Hyde > > {{RexUtil.simplify}} (and derivatives) use a default {{EXECUTOR}} for > evaluating literals and expression in {{simplifyCast}}. This causes value > differences from Hive, triggering issues like CALCITE-1650, CALCITE-1651. -- This message was sent by Atlassian JIRA (v6.3.15#6346)