Package org.openrdf.sail.federation.algebra

Examples of org.openrdf.sail.federation.algebra.OwnedTupleExpr


        join.replaceWith(new EmptySet());
        return;
      }
      else if (owners.size() == 1) {
        SignedConnection owner = owners.iterator().next();
        replacement.addArg(new OwnedTupleExpr(owner, joinArg));
      }
      else if (joinArg instanceof Join || distinct) {
        // Local join with multiple owners or distinct federation members
        Union union = new Union();
        for (SignedConnection owner : owners) {
          union.addArg(new OwnedTupleExpr(owner, joinArg.clone()));
        }
        replacement.addArg(union);
      }
      else {
        replacement.addArg(joinArg);
View Full Code Here


    throws StoreException
  {
    super.meetUnaryTupleOperator(node);
    SignedConnection owner = getSingleOwner(node.getArg());
    if (owner != null) {
      node.replaceWith(new OwnedTupleExpr(owner, node.clone()));
    }
  }
View Full Code Here

  {
    if (leftOwner == null && rightOwner == null) {
      if (local) {
        Union union = new Union();
        for (SignedConnection member : members) {
          union.addArg(new OwnedTupleExpr(member, node.clone()));
        }
        node.replaceWith(union);
      }
    }
    else if (leftOwner == rightOwner) {
      node.replaceWith(new OwnedTupleExpr(leftOwner, node.clone()));
    }
    else {
      if (local) {
        if (rightOwner == null) {
          node.replaceWith(new OwnedTupleExpr(leftOwner, node.clone()));
        }
        else if (leftOwner == null) {
          Union union = new Union();
          for (SignedConnection member : members) {
            if (rightOwner == member) {
              union.addArg(new OwnedTupleExpr(member, node.clone()));
            }
            else {
              union.addArg(new OwnedTupleExpr(member, node.getLeftArg().clone()));
            }
          }
          node.replaceWith(union);
        }
        else {
          node.replaceWith(new OwnedTupleExpr(leftOwner, node.getLeftArg().clone()));
        }
      }
      else {
        if (leftOwner != null) {
          node.getLeftArg().replaceWith(new OwnedTupleExpr(leftOwner, node.getLeftArg().clone()));
        }
        if (rightOwner != null) {
          node.getRightArg().replaceWith(new OwnedTupleExpr(rightOwner, node.getRightArg().clone()));
        }
      }
    }
  }
View Full Code Here

  private void addOwners(Union node, List<Owned<Union>> ownedJoins) {
    if (ownedJoins.size() == 1) {
      SignedConnection o = ownedJoins.get(0).getOwner();
      if (o != null) {
        // every element is used by the same owner
        node.replaceWith(new OwnedTupleExpr(o, node.clone()));
      }
    }
    else {
      Union replacement = new Union();
      for (Owned<Union> e : ownedJoins) {
        SignedConnection o = e.getOwner();
        Union union = e.getOperation();
        if (o == null) {
          // multiple owners
          for (TupleExpr arg : union.getArgs()) {
            replacement.addArg(arg.clone());
          }
        }
        else {
          replacement.addArg(new OwnedTupleExpr(o, union));
        }
      }
      node.replaceWith(replacement);
    }
  }
View Full Code Here

    @Override
    public void meetOther(QueryModelNode node) {
      if (node instanceof OwnedTupleExpr) {
        // Embed the filter in the owned tuple expression
        OwnedTupleExpr ownedTupleExpr = (OwnedTupleExpr)node;
        relocate(filter, ownedTupleExpr.getArg());
      }
    }
View Full Code Here

TOP

Related Classes of org.openrdf.sail.federation.algebra.OwnedTupleExpr

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.