rsPreds.addFinalCandidate(targetAlias, replaced);
rsPreds.addFinalCandidate(targetAlias, replaced);
ctx.addFinalCandidate(alias, exprInfo.convertedExpr != null ? exprInfo.convertedExpr : expr); return;
ctx.addFinalCandidate(alias, exprInfo.convertedExpr != null ? exprInfo.convertedExpr : expr); return;
/** * Adds the specified expr as the top-most pushdown expr (ie all its children * can be pushed). * * @param expr */ public void addFinalCandidate(ExprNodeDesc expr) { addFinalCandidate(getAlias(expr), expr); }
/** * Walks through the top AND nodes and determine which of them are final * candidates. */ private static void extractFinalCandidates(ExprNodeDesc expr, ExprWalkerInfo ctx) { if (ctx.isCandidate(expr)) { ctx.addFinalCandidate(expr); return; } if (FunctionRegistry.isOpAnd(expr)) { // If the operator is AND, we need to determine if any of the children are // final candidates. for (Node ch : expr.getChildren()) { extractFinalCandidates((ExprNodeDesc) ch, ctx); } } }
ctx.addFinalCandidate(expr); return; } else if (!FunctionRegistry.isOpAnd(expr) &&
rsPreds.addFinalCandidate(targetAlias, replaced);