Package lupos.engine.operators

Examples of lupos.engine.operators.BasicOperator


            } else return false;
          } else return false;
        } else return false;
      } else return false;
     
      BasicOperator bo=add.getPrecedingOperators().get(0);
      if(bo instanceof AddBinding)
        add=(AddBinding)bo;
      else return false;
   
    } while(add.getPrecedingOperators().size()==1);
View Full Code Here


    // current op was deleted from graph
    deleted.add(currentOp);
   
    // as long as there are successors, detach the first successor of current operator
    while (currentOp.getSucceedingOperators().size() > 0) {
      final BasicOperator nextOp = currentOp.getSucceedingOperators().get(0).getOperator();
      currentOp.removeSucceedingOperator(nextOp);
      nextOp.removePrecedingOperator(currentOp);
     
      if (nextOp.getPrecedingOperators().size() == 0) {
       
        // walk the graph recursively if no predecessors are left
        deleteSubGraph(nextOp, deleted);
      } else if (nextOp instanceof Join) {
       
        // nextOp is a join: check if all remaining predecessors have same operand id
        int opId = -1;
        for (BasicOperator pred: nextOp.getPrecedingOperators()) {
          for (OperatorIDTuple tuple: pred.getSucceedingOperators()) {
            if (tuple.getOperator() == nextOp) {
              if (opId == -1) {
                opId = tuple.getId();
              } else if (opId != tuple.getId()) {
                return;
              }
            }
          }
        }
       
        // all predecessors have same id: delete the join
        for (BasicOperator pred: nextOp.getPrecedingOperators()) {
          pred.removeSucceedingOperator(nextOp);
          pred.addSucceedingOperators(nextOp.getSucceedingOperators());
          for (OperatorIDTuple tuple: nextOp.getSucceedingOperators()) {
            tuple.getOperator().addPrecedingOperator(pred);
          }
        }
        for (OperatorIDTuple tuple: nextOp.getSucceedingOperators()) {
          tuple.getOperator().removePrecedingOperator(nextOp);
        }
        deleted.add(nextOp);
      }
    }
View Full Code Here

                break;
            }

            // --- handle JumpOver - begin ---
            this.j_begin = (lupos.engine.operators.BasicOperator) _sucOpIDTup_1_0.getOperator();
            BasicOperator _searchIndex_1_0 = _sucOpIDTup_1_0.getOperator();
            boolean _continueFlag_1_0 = false;

            while(_searchIndex_1_0 != null && (_searchIndex_1_0.getClass() != lupos.engine.operators.singleinput.filter.Filter.class)) {
                if(_searchIndex_1_0.getClass() != lupos.engine.operators.singleinput.filter.Filter.class) {
                    _continueFlag_1_0 = true;
                    break;
                }

                if(_searchIndex_1_0.getSucceedingOperators().size() != 1 || _searchIndex_1_0.getPrecedingOperators().size() != 1) {
                    _continueFlag_1_0 = true;
                    break;
                }

                _searchIndex_1_0 = _searchIndex_1_0.getSucceedingOperators().get(0).getOperator();
            }

            if(_continueFlag_1_0) {
                continue;
            }

            this.j_end = (lupos.engine.operators.BasicOperator) _searchIndex_1_0.getPrecedingOperators().get(0);
            // --- handle JumpOver - end ---


            List<OperatorIDTuple> _succedingOperators_2_0 = this.j_end.getSucceedingOperators();
View Full Code Here

        this.i.replace(this.var, this.otherVar);
       
        b.setVar(this.var);
        b.setOtherVar(this.otherVar);
       
        BasicOperator tmp = this.i;
       
        while(!tmp.equals(b)) {
            tmp.getUnionVariables().remove(this.var);
            tmp.getIntersectionVariables().remove(this.var);
       
            tmp = tmp.getSucceedingOperators().get(0).getOperator();
        }
       
        b.setUnionVariables(this.f.getUnionVariables());
        b.setIntersectionVariables(this.f.getIntersectionVariables());
        b.getOperatorIDTuple(o).setId(this.operandIDOfFilter);
View Full Code Here

        .getPrecedingOperators();
    final LinkedList<OperatorIDTuple> succs = (LinkedList<OperatorIDTuple>) rep2
        .getSucceedingOperators();

    // Set precessors
    BasicOperator pre;
    for (int i = 0; i < pres.size(); i++) {
      pre = pres.get(i);
      pre.addSucceedingOperator(new OperatorIDTuple(rep_new, pre
          .getOperatorIDTuple(rep1).getId()));
      pre.removeSucceedingOperator(rep1);
    }

    rep_new.setPrecedingOperators(pres);
    rep_new.setSucceedingOperators(succs);

    // Set successors
    BasicOperator succ;
    for (int i = 0; i < succs.size(); i++) {
      succ = succs.get(i).getOperator();
      succ.addPrecedingOperator(rep_new);
      succ.removePrecedingOperator(rep2);
    }

    rootOperator.deleteParents();
    rootOperator.setParents();
    rootOperator.detectCycles();
View Full Code Here

                break;
            }

            // --- handle JumpOver - begin ---
            this.f2_end = (lupos.engine.operators.BasicOperator) _precOp_1_0;
            BasicOperator _searchIndex_1_0 = _precOp_1_0;
            boolean _continueFlag_1_0 = false;

            while(_searchIndex_1_0 != null && (!(_searchIndex_1_0 instanceof lupos.engine.operators.index.BasicIndexScan))) {
                if(_searchIndex_1_0.getClass() != lupos.engine.operators.singleinput.filter.Filter.class) {
                    _continueFlag_1_0 = true;
                    break;
                }

                if(_searchIndex_1_0.getSucceedingOperators().size() != 1 || _searchIndex_1_0.getPrecedingOperators().size() != 1) {
                    _continueFlag_1_0 = true;
                    break;
                }

                _searchIndex_1_0 = _searchIndex_1_0.getPrecedingOperators().get(0);
            }

            if(_continueFlag_1_0) {
                continue;
            }

            this.f2_begin = (lupos.engine.operators.BasicOperator) _searchIndex_1_0.getSucceedingOperators().get(0).getOperator();
            // --- handle JumpOver - end ---


            List<BasicOperator> _precedingOperators_2_0 = this.f2_begin.getPrecedingOperators();
View Full Code Here

    final Collection<BasicOperator> added = new LinkedList<BasicOperator>();

    final Filter filter = (Filter) mso.get("filter");

    // delete the filter operator
    final BasicOperator aboveFilter = filter.getPrecedingOperators().get(0);

    if (eliminateOnlyFilter) {
      deleted.add(filter);

      final List<OperatorIDTuple> list = new LinkedList<OperatorIDTuple>();
      list.addAll(filter.getSucceedingOperators());
      for (final OperatorIDTuple oid : list) {
        oid.getOperator().removePrecedingOperator(filter);
        oid.getOperator().getPrecedingOperators().addAll(
            filter.getPrecedingOperators());
        for (final BasicOperator precFilter : filter
            .getPrecedingOperators()) {
          precFilter.removeSucceedingOperator(filter);
          precFilter.addSucceedingOperator(new OperatorIDTuple(oid
              .getOperator(), oid.getId()));
        }
      }
    } else {
      filter.visit(new SimpleOperatorGraphVisitor() {
        boolean ignore = false;

        public Object visit(final BasicOperator basicOperator) {
          if (ignore || (basicOperator instanceof PatternMatcher)
              || (basicOperator instanceof Union))
            ignore = true;
          else {
            deleted.add(basicOperator);
            if (basicOperator instanceof Join) {
              if (basicOperator.getPrecedingOperators().size() <= 2) {
                for (BasicOperator prec : basicOperator
                    .getPrecedingOperators()) {
                  if (!deleted.contains(prec)
                      && prec.getSucceedingOperators()
                          .size() == 1) {
                    deleted.add(prec);
                    while (!(prec instanceof PatternMatcher)
                        && prec.getPrecedingOperators()
                            .size() == 1) {
                      prec = prec.getPrecedingOperators()
                          .get(0);
                      if (prec.getSucceedingOperators()
                          .size() > 1)
                        break;
                      deleted.add(prec);
                    }
                  }
                }
              }
            }
          }
          return null;
        }
      });

      BasicOperator parent = aboveFilter;
      while (parent.getSucceedingOperators().size() <= 1
          && parent.getPrecedingOperators().size() == 1) {
        deleted.add(parent);
        parent = parent.getPrecedingOperators().get(0);
      }

      for (final BasicOperator basicOperator : deleted) {
        final List<BasicOperator> list = new LinkedList<BasicOperator>();
        list.addAll(basicOperator.getPrecedingOperators());
View Full Code Here

                break;
            }

            // --- handle JumpOver - begin ---
            this.offset_end = (lupos.engine.operators.BasicOperator) _precOp_1_0;
            BasicOperator _searchIndex_1_0 = _precOp_1_0;
            boolean _continueFlag_1_0 = false;

            while(_searchIndex_1_0 != null && (!(_searchIndex_1_0 instanceof lupos.engine.operators.singleinput.sort.Sort))) {
                if(!(_searchIndex_1_0 instanceof lupos.engine.operators.singleinput.modifiers.Offset)) {
                    _continueFlag_1_0 = true;
                    break;
                }

                if(_searchIndex_1_0.getSucceedingOperators().size() != 1 || _searchIndex_1_0.getPrecedingOperators().size() != 1) {
                    _continueFlag_1_0 = true;
                    break;
                }

                _searchIndex_1_0 = _searchIndex_1_0.getPrecedingOperators().get(0);
            }

            if(_continueFlag_1_0) {
                continue;
            }

            this.offset_begin = (lupos.engine.operators.BasicOperator) _searchIndex_1_0.getSucceedingOperators().get(0).getOperator();
            // --- handle JumpOver - end ---


            List<BasicOperator> _precedingOperators_2_0 = this.offset_begin.getPrecedingOperators();
View Full Code Here

  private Filter getFilterFromIndexScan(final BasicOperator root) {
    final List<OperatorIDTuple> succs = root.getSucceedingOperators();
    if (succs.size() == 1) {
      for (final OperatorIDTuple succ : succs) {
        final BasicOperator op = succ.getOperator();
        if (op instanceof Filter) {
          return (Filter) op;
        }
      }
    }
View Full Code Here

    final LinkedList<BasicOperator> pres = (LinkedList<BasicOperator>) replaceLit
        .getPrecedingOperators();
    final LinkedList<OperatorIDTuple> succs = (LinkedList<OperatorIDTuple>) replaceLit
        .getSucceedingOperators();

    BasicOperator pre;
    OperatorIDTuple idTuple;
    // Connect all precessors to all successors
    for (int i = 0; i < pres.size(); i++) {
      for (int a = 0; a < succs.size(); a++) {
        idTuple = succs.get(a);
        pre = pres.get(i);
        pre.addSucceedingOperator(new OperatorIDTuple(idTuple
            .getOperator(), idTuple.getId()));
        pre.removeSucceedingOperator(replaceLit);
      }
    }

    BasicOperator succ;
    // And all successors to all precessors
    for (int i = 0; i < succs.size(); i++) {
      for (int a = 0; a < pres.size(); a++) {
        succ = succs.get(i).getOperator();
        succ.addPrecedingOperator(pres.get(a));
        succ.removePrecedingOperator(replaceLit);
      }
    }

    rootOperator.deleteParents();
    rootOperator.setParents();
View Full Code Here

TOP

Related Classes of lupos.engine.operators.BasicOperator

Copyright © 2018 www.massapicom. All rights reserved.
All source code are property of their respective owners. Java is a trademark of Sun Microsystems, Inc and owned by ORACLE Inc. Contact coftware#gmail.com.