public Set<String> getAssuredBindingNames() { Set<String> bindingNames = new LinkedHashSet<String>(16); bindingNames.addAll(getLeftArg().getAssuredBindingNames()); bindingNames.retainAll(getRightArg().getAssuredBindingNames()); return bindingNames; }
public Set<String> getAssuredBindingNames() { Set<String> bindingNames = new LinkedHashSet<String>(16); bindingNames.addAll(getLeftArg().getAssuredBindingNames()); bindingNames.addAll(getRightArg().getAssuredBindingNames()); return bindingNames; }
public Set<String> getAssuredBindingNames() { Set<String> bindingNames = new LinkedHashSet<String>(16); bindingNames.addAll(getLeftArg().getAssuredBindingNames()); bindingNames.retainAll(getRightArg().getAssuredBindingNames()); return bindingNames; }
public Set<String> getAssuredBindingNames() { Set<String> bindingNames = new LinkedHashSet<String>(16); for (TupleExpr arg : getArgs()) { bindingNames.addAll(arg.getAssuredBindingNames()); } return bindingNames; }
public Set<String> getAssuredBindingNames() { Set<String> bindingNames = new LinkedHashSet<String>(16); for (TupleExpr arg : getArgs()) { bindingNames.addAll(arg.getAssuredBindingNames()); } return bindingNames; }
public Set<String> getAssuredBindingNames() { return getLeftArg().getAssuredBindingNames(); }
public Set<String> getAssuredBindingNames() { return getArg().getAssuredBindingNames(); }
public Set<String> getAssuredBindingNames() { return getLeftArg().getAssuredBindingNames(); }
@Override public Set<String> getAssuredBindingNames() { Set<String> bindingNames = new LinkedHashSet<String>(); bindingNames.addAll(getGroupBindingNames()); bindingNames.retainAll(getArg().getAssuredBindingNames()); return bindingNames; }
@Override public Set<String> getAssuredBindingNames() { Set<String> bindingNames = new HashSet<String>(); if (projections.size() >= 1) { Set<String> assuredSourceNames = getArg().getAssuredBindingNames(); bindingNames.addAll(projections.get(0).getTargetNamesFor(assuredSourceNames)); for (int i = 1; i < projections.size(); i++) { bindingNames.retainAll(projections.get(i).getTargetNamesFor(assuredSourceNames)); } } return bindingNames; }
private double getConnectedComponentRating(List<QueryModelNode> eNodes) { Multimap<String, Integer> commonVarBin = HashMultimap.create(); // bin QueryModelNode positions according to variable names for (int i = 0; i < eNodes.size(); i++) { QueryModelNode node = eNodes.get(i); if (node instanceof TupleExpr) { TupleExpr tup = (TupleExpr) node; Set<String> bindingNames = tup.getAssuredBindingNames(); for (String name : bindingNames) { if (!name.startsWith("-const-")) { commonVarBin.put(name, i); } } } } Set<List<Integer>> pairs = new HashSet<>(); for (String var : commonVarBin.keySet()) { Set<Integer> pos = Sets.newHashSet(commonVarBin.get(var)); pairs.addAll(Sets.cartesianProduct(pos, pos)); } int numComponents = countComponents(eNodes.size(), pairs); return ((double) numComponents) / eNodes.size(); }
public Set<String> getAssuredBindingNames() { Set<String> bindingNames = new HashSet<String>(8); if (subjectVar != null) { bindingNames.add(subjectVar.getName()); } if (pathExpression != null) { bindingNames.addAll(pathExpression.getAssuredBindingNames()); } if (objectVar != null) { bindingNames.add(objectVar.getName()); } if (contextVar != null) { bindingNames.add(contextVar.getName()); } return bindingNames; }
@Override public Set<String> getAssuredBindingNames() { // Return all target binding names for which the source binding is assured // by the argument return projElemList.getTargetNamesFor(getArg().getAssuredBindingNames()); }
@Override public void meet(Join node) { int tempCount = 0; Set<String> lNames = node.getLeftArg().getAssuredBindingNames(); Set<String> rNames = node.getRightArg().getAssuredBindingNames(); for(String s: node.getLeftArg().getBindingNames()) { if(s.startsWith("-const-")) { lNames.remove(s); } } for(String s: node.getRightArg().getBindingNames()) { if(s.startsWith("-const-")) { rNames.remove(s); } } joinVars += Math.min(lNames.size(), rNames.size()); tempCount = Sets.intersection(lNames, rNames).size(); if (tempCount == 0) { dirProdCount += 1; } else { commonJoinVars += tempCount; } joinCount += 1; super.meet(node); }
public FlattenedOptional(LeftJoin node) { rightArgs = getJoinArgs(node.getRightArg(), new HashSet<TupleExpr>()); boundVars = setWithOutConstants( Sets.intersection(node.getLeftArg().getAssuredBindingNames(), node.getRightArg().getBindingNames())); unboundVars = setWithOutConstants(Sets.difference(node.getRightArg().getBindingNames(), boundVars)); condition = node.getCondition(); rightArg = node.getRightArg(); getVarCounts(node); assuredBindingNames = new HashSet<>(leftArgVarCounts.keySet()); bindingNames = new HashSet<>(Sets.union(assuredBindingNames, unboundVars)); }
final Set<String> vars = extractVariables(condition); for (int i = 0; i < 2; ++i) { if (result[i].getAssuredBindingNames().containsAll(vars)) { result[i] = new Filter(result[i], condition); fixed = true; if (i == partition || result[i].getAssuredBindingNames().containsAll(vars)) { result[i] = new Extension(result[i], elems); fixed = true;
final Join join = (Join) arg; boolean rewritten = false; if (join.getLeftArg().getAssuredBindingNames().containsAll(filterVars)) { join.setLeftArg(new Filter(join.getLeftArg(), condition.clone())); rewritten = true; if (join.getRightArg().getAssuredBindingNames().containsAll(filterVars)) { join.setRightArg(new Filter(join.getRightArg(), condition.clone())); rewritten = true;
final Set<String> elemVars = extractVariables(elem.getExpr()); Extension newArg = null; if (join.getLeftArg().getAssuredBindingNames().containsAll(elemVars)) { newArg = join.getLeftArg() instanceof Extension ? (Extension) join .getLeftArg() : new Extension(join.getLeftArg()); join.setLeftArg(newArg); } else if (join.getRightArg().getAssuredBindingNames().contains(elemVars)) { newArg = join.getRightArg() instanceof Extension ? (Extension) join .getRightArg() : new Extension(join.getRightArg());
Set<String> assuredBindingNames = filterArg.getAssuredBindingNames(); if (isUnboundVar(leftArg, assuredBindingNames) || isUnboundVar(rightArg, assuredBindingNames)) {
Set<String> assuredBindingNames = filterArg.getAssuredBindingNames(); if (isUnboundVar(leftArg, assuredBindingNames) || isUnboundVar(rightArg, assuredBindingNames)) {