switch (conjCall.getOperator().getKind()) { case EQUALS: if (!(RexUtil.isConstant(conjCall.operands.get(0))) && RexUtil.isConstant(conjCall.operands.get(1))) { conditions.put(conjCall.operands.get(0).toString(), conjCall.operands.get(1)); } else if (!(RexUtil.isConstant(conjCall.operands.get(1))) && RexUtil.isConstant(conjCall.operands.get(0))) { conditions.put(conjCall.operands.get(1).toString(), conjCall.operands.get(0));
if (foldExpr && RexUtil.isConstant(call)) { ExprNodeDesc constantExpr = ConstantPropagateProcFactory.foldExpr((ExprNodeGenericFuncDesc)gfDesc); if (constantExpr != null) {
switch (conjCall.getOperator().getKind()) { case EQUALS: if (!(RexUtil.isConstant(conjCall.operands.get(0))) && RexUtil.isConstant(conjCall.operands.get(1))) { conditions.put(conjCall.operands.get(0).toString(), conjCall.operands.get(1)); } else if (!(RexUtil.isConstant(conjCall.operands.get(1))) && RexUtil.isConstant(conjCall.operands.get(0))) { conditions.put(conjCall.operands.get(1).toString(), conjCall.operands.get(0));
if (foldExpr && RexUtil.isConstant(call)) { ExprNodeDesc constantExpr = ConstantPropagateProcFactory.foldExpr((ExprNodeGenericFuncDesc)gfDesc); if (constantExpr != null) {
return; if (!isConstant(right)) { return;
return; if (!isConstant(right)) { return;
equiColumnsPreds.add(e); } else if ((RexUtil.isReferenceOrAccess(eqCall.getOperands().get(0), false) && RexUtil.isConstant(eqCall.getOperands().get(1))) || (RexUtil.isReferenceOrAccess(eqCall.getOperands().get(1), false) && RexUtil.isConstant(eqCall.getOperands().get(0)))) { rangePreds.add(e); } else { RexCall rangeCall = (RexCall) e; if ((RexUtil.isReferenceOrAccess(rangeCall.getOperands().get(0), false) && RexUtil.isConstant(rangeCall.getOperands().get(1))) || (RexUtil.isReferenceOrAccess(rangeCall.getOperands().get(1), false) && RexUtil.isConstant(rangeCall.getOperands().get(0)))) { rangePreds.add(e); } else {
equiColumnsPreds.add(e); } else if ((RexUtil.isReferenceOrAccess(eqCall.getOperands().get(0), false) && RexUtil.isConstant(eqCall.getOperands().get(1))) || (RexUtil.isReferenceOrAccess(eqCall.getOperands().get(1), false) && RexUtil.isConstant(eqCall.getOperands().get(0)))) { rangePreds.add(e); } else { RexCall rangeCall = (RexCall) e; if ((RexUtil.isReferenceOrAccess(rangeCall.getOperands().get(0), false) && RexUtil.isConstant(rangeCall.getOperands().get(1))) || (RexUtil.isReferenceOrAccess(rangeCall.getOperands().get(1), false) && RexUtil.isConstant(rangeCall.getOperands().get(0)))) { rangePreds.add(e); } else {
rexBuilder.makeCall(SqlStdOperatorTable.IS_NULL, rexBuilder.makeInputRef(project, expr.i))); } else if (RexUtil.isConstant(expr.e)) { final List<RexNode> args = ImmutableList.of(rexBuilder.makeInputRef(project, expr.i), expr.e);
rexBuilder.makeCall(SqlStdOperatorTable.IS_NULL, rexBuilder.makeInputRef(project, expr.i))); } else if (RexUtil.isConstant(expr.e)) { final List<RexNode> args = ImmutableList.of(rexBuilder.makeInputRef(project, expr.i), expr.e);
posRef = 0; posConstant = -1; } else if (RexUtil.isConstant(call.getOperands().get(1))) { posRef = 0; posConstant = 1; } else if (RexUtil.isConstant(call.getOperands().get(0))) { posRef = 1; posConstant = 0;