@Override public RexNode visitCall(RexCall call) { RexNode node = visit(call); if (node != null) { this.replaced = true; return node; } return super.visitCall(call); }
@Override public RexNode visitCall(RexCall call) { RexNode node = visit(call); if (node != null) { this.replaced = true; return node; } return super.visitCall(call); }
@Override public RexNode visitCall(RexCall inputCall) { RexNode node = super.visitCall(inputCall); if (node instanceof RexCall) { RexCall call = (RexCall) node; switch (call.getKind()) { case OR: try { RexNode newNode = transformIntoInClauseCondition(rexBuilder, call, minNumORClauses); if (newNode != null) { return newNode; } } catch (SemanticException e) { LOG.error("Exception in HivePointLookupOptimizerRule", e); return call; } default: break; } } return node; }
@Override public RexNode visitCall(RexCall call) { final Integer integer = map.get(call.toString()); if (integer != null) { return new RexInputRef(integer, call.getType()); } return super.visitCall(call); } };
@Override public RexNode visitCall(final RexCall call) { if(!valueGenerator) { if(call.getOperands().size() == 2) { final List<RexNode> operands = new ArrayList<>(call.operands); RexNode o0 = operands.get(0); RexNode o1 = operands.get(1); boolean isCorrelated = false; if (o0 instanceof RexFieldAccess && (cm.mapFieldAccessToCorRef.get(o0) != null)) { o0 = decorrFieldAccess((RexFieldAccess) o0); isCorrelated = true; } if (o1 instanceof RexFieldAccess && (cm.mapFieldAccessToCorRef.get(o1) != null)) { o1 = decorrFieldAccess((RexFieldAccess) o1); isCorrelated = true; } if (isCorrelated && RexUtil.eq(o0, o1)) { return rexBuilder.makeCall(SqlStdOperatorTable.IS_NOT_NULL, o0); } final List<RexNode> newOperands = new ArrayList<>(); newOperands.add(o0); newOperands.add(o1); boolean[] update = {false}; List<RexNode> clonedOperands = visitList(newOperands, update); return relBuilder.call(call.getOperator(), clonedOperands); } } return super.visitCall(call); }
break; default: return super.visitCall(call);
return super.visitCall(call);
break; default: return super.visitCall(call);
RexNode node = super.visitCall(call); if (node != call) { node = RexUtil.simplify(rexBuilder, node);
RexNode node = super.visitCall(call); if (node != call) { node = RexUtil.simplify(rexBuilder, node);
public RexNode visitCall(RexCall call) { final RexNode expr = super.visitCall(call); return registerInternal(expr, false); }
@Override public RexNode visitCall(RexCall call) { for (;;) { call = (RexCall) super.visitCall(call); final RexCall old = call; call = pushPredicateIntoCase(call); if (call == old) { return call; } } } }
@Override public RexNode visitCall(RexCall call) { for (;;) { call = (RexCall) super.visitCall(call); final RexCall old = call; call = pushPredicateIntoCase(call); if (call == old) { return call; } } } }
@Override public RexNode visitCall(RexCall call) { final Integer integer = map.get(call); if (integer != null) { return new RexInputRef(integer, call.getType()); } return super.visitCall(call); } };
@Override public RexNode visitCall(final RexCall call) { Integer index = mapper.get(call); if (index != null) { return new RexInputRef(index, call.getType()); } return super.visitCall(call); }
@Override public RexNode visitCall(RexCall call) { RexNode node = visit(call); if (node != null) { return node; } node = super.visitCall(call); if (node != call) { node = simplify.simplifyUnknownAs(node, unknownAs); } return node; }
@Override public RexNode visitCall(RexCall call) { final Integer integer = map.get(call.toString()); if (integer != null) { return new RexInputRef(integer, call.getType()); } return super.visitCall(call); } };
@Override public RexNode visitCall(RexCall call) { if (call.getOperator() == RexBuilder.GET_OPERATOR) { final String name = (String) ((RexLiteral) call.getOperands().get(1)).getValue2(); final int i = lookup(fields, name); if (i >= 0) { return RexInputRef.of(i, fields); } } return super.visitCall(call); }
@Override public RexNode visitCall(RexCall call) { if (call.getOperator() == RexBuilder.GET_OPERATOR) { final String name = (String) ((RexLiteral) call.getOperands().get(1)).getValue2(); final int i = lookup(fields, name); if (i >= 0) { return RexInputRef.of(i, fields); } } return super.visitCall(call); }
@Override public RexNode visitCall(RexCall call) { final boolean isItem = call.getOperator().getSyntax() == SqlSyntax.SPECIAL && call.getOperator() == SqlStdOperatorTable.ITEM; if(isItem){ return visitCandidate(call); } return super.visitCall(call); }