public static Set<Binding> join(Set<Binding> left, Set<Binding> right) {
		
		
		if(left == null) {
			return right;
		}
		
		if(right == null) {
			return left;
		}
		
		Set<Binding> results = new HashSet<Binding>();
		if(left.size() ==0 || right.size() == 0)
			return results;
		
		if(left.equals(right)) {
			return left;
		}
		Set<Var> joinVars = getJoinVars(left,right);
		return hashJoin(left,right,joinVars);
	}