@Override public int hashCode() { return vars.hashCode() ^ getSubOp().hashCode() ; }
@Override public void visit(OpProject op) { op.getSubOp().visit(this); }
@Override public void visit(OpProject op) { op.getSubOp().visit(this); }
@Override public void visit(OpProject opProject) { opProject.getSubOp().visit(this) ; }
@Override public void visit(OpProject opProject) { List<Var> vars = opProject.getVars(); VarUsageVisitor subUsage = VarUsageVisitor.apply(opProject.getSubOp()); subUsage.defines.retainAll(vars); subUsage.optDefines.retainAll(vars); subUsage.filterMentions.retainAll(vars) ; subUsage.filterMentionsOnly.retainAll(vars) ; subUsage.assignMentions.retainAll(vars) ; defines.addAll(subUsage.defines); optDefines.addAll(subUsage.optDefines); filterMentions.addAll(subUsage.filterMentions); filterMentionsOnly.addAll(subUsage.filterMentionsOnly); assignMentions.addAll(subUsage.assignMentions); }
public Op transform1(OpDistinct opDistinct, Op subOp) { if (subOp instanceof OpProject) { OpProject opProject = (OpProject) subOp; if (opProject.getSubOp() instanceof OpOrder) { OpOrder opOrder = (OpOrder) opProject.getSubOp(); Set<Var> projectVars = new HashSet<>(opProject.getVars()) ; if (isSafe(projectVars, opOrder)) { return OpReduced.create(subOp); } } } return super.transform(opDistinct, subOp); }
public Op _optimize(OpProject op, RestrictionManagerImpl cnf) { Op subOp = optimize(op.getSubOp(), cnf); Op result = new OpProject(subOp, op.getVars()); return result; }
public Mapping rewrite(OpProject op) { Mapping a = rewrite(op.getSubOp()); Mapping result = ops.project(a, op.getVars()); return result; }
public Op getApplicableViews(OpProject op, RestrictionManagerImpl restrictions) { return new OpProject(_getApplicableViews(op.getSubOp(), restrictions), op.getVars()); }
public static Op _replace(OpProject op) { return new OpProject(replace(op.getSubOp()), op.getVars()); }
public static Op _optimize(OpProject op, Set<Set<Expr>> cnf) { return new OpProject(optimize(op.getSubOp(), cnf), op.getVars()); }
public Op getApplicableViews(OpProject op, RestrictionManagerImpl restrictions) { return new OpProject(_getApplicableViews(op.getSubOp(), restrictions), op.getVars()); }
@Override public void visit(OpProject opProject) { Table table = eval(opProject.getSubOp()) ; table = evaluator.project(table, opProject.getVars()) ; push(table) ; }
@Override public void visit(OpProject opProject) { opProject.getSubOp().visit(this); List<Var> vars = new ArrayList<>(); for (Var v : opProject.getVars()) { Node n = changeNode(v); vars.add(Var.alloc(n)); } push(new OpProject(pop(), vars)); }
protected QueryIterator execute(OpProject opProject, QueryIterator input) { // This may be under a (graph) in which case we need to operate // on the active graph. // More intelligent QueryIterProject needed. if (input instanceof QueryIterRoot) { QueryIterator qIter = exec(opProject.getSubOp(), input) ; qIter = new QueryIterProject(qIter, opProject.getVars(), execCxt) ; return qIter ; } // Nested projected : need to ensure the input is seen. QueryIterator qIter = new QueryIterProjectMerge(opProject, input, this, execCxt) ; return qIter ; }
@Override public void visit(OpProject opProject) { opProject.getSubOp().visit(this); List<Var> vars = new ArrayList<>(); for (Var v : opProject.getVars()) { Node n = changeNode(v); vars.add(Var.alloc(n)); } push(new OpProject(pop(), vars)); }
@Override public void visit(OpProject opProject) { start(opProject, NoNL) ; writeVarList(opProject.getVars()) ; out.println() ; printOp(opProject.getSubOp()) ; finish(opProject) ; }
@Override public Op transform(OpSlice opSlice, Op subOp) { // (slice (project...)) ==> (project (slice ...)) if ( subOp instanceof OpProject ) { OpProject p = (OpProject)subOp ; Op sub = p.getSubOp() ; Op x = new OpSlice(sub, opSlice.getStart(), opSlice.getLength()) ; x = new OpProject(x, p.getVars()) ; return x ; } return super.transform(opSlice, subOp) ; } }
@Override protected QueryIterator nextStage(Binding binding) { QueryIterator qIter = engine.executeOp(opProject.getSubOp(), QueryIterSingleton.create(binding, getExecContext())) ; qIter = new QueryIterConvert(qIter, new ProjectEnsureBindingConverter(binding, opProject.getVars()), getExecContext()) ; return qIter ; }