@Override public void visit(OpConditional opLeftJoin) { leftJoin(opLeftJoin.getLeft(), opLeftJoin.getRight(), null); }
public Op getApplicableViews(OpConditional op, RestrictionManagerImpl restrictions) { Op result = processLeftJoin(op.getLeft(), op.getRight(), null, restrictions); //OpLeftJoin tmp = //Op result = new OpConditional(tmp.getLeft(), tmp.getRight()); return result; }
public Op _optimize(OpConditional op, RestrictionManagerImpl cnf) { Op result = handleLeftJoin(op.getLeft(), op.getRight(), cnf, OpConditional::new); return result; }
protected QueryIterator execute(OpConditional opCondition, QueryIterator input) { QueryIterator left = exec(opCondition.getLeft(), input) ; QueryIterator qIter = new QueryIterOptionalIndex(left, opCondition.getRight(), execCxt) ; return qIter ; }
public Mapping rewrite(OpConditional op) { OpLeftJoin tmp = (OpLeftJoin)OpLeftJoin.create(op.getLeft(), op.getRight(), new ExprList()); Mapping result = rewrite(tmp); return result; }
public static Op _replace(OpConditional op) { Op newLeft = replace(op.getLeft()); Op newRight = replace(op.getRight()); Op result = new OpConditional(newLeft, newRight); return result; }
@Override public void visit(OpConditional opCond) { Table left = eval(opCond.getLeft()) ; // Ref engine - don;'t care about efficiency Table right = eval(opCond.getRight()) ; Table table = evaluator.condition(left, right) ; push(table) ; }
private static Op transformFilterConditional(ExprList exprs, Set<Var> varScope, OpConditional opConditional) { // Any filters that depend on no variables. Op op = insertAnyFilter(exprs, varScope, null); Op left = opConditional.getLeft(); left = transform(exprs, varScope, left); Op right = opConditional.getRight(); op = new OpConditional(left, right); op = insertAnyFilter(exprs, varScope, op); return op; }
private Placement placeConditional(ExprList exprs, OpConditional opConditional) { Op left = opConditional.getLeft() ; Op right = opConditional.getRight() ; Placement nLeft = transform(exprs, left) ; if ( isNoChange(nLeft) ) return result(opConditional, exprs) ; Op op = new OpConditional(nLeft.op, right) ; return result(op, nLeft.unplaced) ; }
@Override public void visit(OpConditional opCondition) { opCondition.getRight().visit(this); opCondition.getLeft().visit(this); push(new OpConditional(pop(), pop())); }
@Override public void visit(OpConditional opCondition) { opCondition.getRight().visit(this); opCondition.getLeft().visit(this); push(new OpConditional(pop(), pop())); }