Example #1
0
 public JoinNode(Joinable left, Joinable right, JoinType joinType) {
   this.left = left;
   left.setOutput(this);
   this.right = right;
   right.setOutput(this);
   this.joinType = joinType;
 }
Example #2
0
 @Override
 protected void deepCopy(DuplicateMap map) {
   super.deepCopy(map);
   left = (Joinable) left.duplicate(map);
   right = (Joinable) right.duplicate(map);
   joinConditions = joinConditions.duplicate(map);
 }
    public Set<MappableNodePattern> joinVars() {
      HashSet<MappableNodePattern> joinVars = new HashSet<MappableNodePattern>();

      for (Joinable joinable : joined) {
        joinVars.addAll(joinable.joinVars());
      }

      return joinVars;
    }
Example #4
0
 @Override
 public void replaceInput(PlanNode oldInput, PlanNode newInput) {
   if (left == oldInput) {
     left = (Joinable) newInput;
     left.setOutput(this);
   }
   if (right == oldInput) {
     right = (Joinable) newInput;
     right.setOutput(this);
   }
 }
    public void addJoin(
        final String joinType, final Joinable j, final HashMap<String, String> variableBindings) {

      if (j == null) {
        LOG.info("Skipping join");
        return;
      }
      JoinConditions conditions = new JoinConditions();

      for (MappableNodePattern existingVar : this.joinVars()) {
        for (MappableNodePattern candidateVar : j.joinVars()) {

          String existingVarName = existingVar.getVarName();
          String candidateVarName = candidateVar.getVarName();
          String candidateBinding = variableBindings.get(candidateVar.getVarName());
          String existingBinding = existingVar.mappedName();

          if (existingVarName.equals(candidateVarName)
              && existingBinding.equals(candidateBinding)) {
            conditions.addCondition(existingBinding, " = ", candidateVar.mappedName());
          }
        }
      }

      addJoin(joinType, j, conditions);
    }
 public void addJoin(final String joinType, final Joinable j, final String joinConstraints) {
   if (j == null) {
     LOG.info("Skipping join");
     return;
   }
   join.append(" " + joinType + " " + j.declaration());
   joined.add(j);
   if (joinConstraints != null && joinConstraints != "") {
     join.append(" ON (" + joinConstraints + ")");
   }
   joinCount++;
 }
Example #7
0
 public void setRight(Joinable right) {
   this.right = right;
   right.setOutput(this);
 }
Example #8
0
 public void setLeft(Joinable left) {
   this.left = left;
   left.setOutput(this);
 }
Example #9
0
 protected boolean acceptPlans(PlanVisitor v) {
   return (left.accept(v) && right.accept(v));
 }
 public JoinSequence(final Joinable start) {
   this.join = new StringBuilder(start.declaration());
   joined.add(start);
   joinCount = 1;
 }