private List<Var> vars = new ArrayList<Var>();
@Override
public void meet(Filter filter) {
if (filter.getCondition() instanceof Bound) {
Bound bound = (Bound)filter.getCondition();
vars.add(bound.getArg());
innerJoins.add(Boolean.FALSE);
filter.getArg().visit(this);
vars.remove(vars.size() - 1);
if (innerJoins.remove(innerJoins.size() - 1)) {
filter.replaceWith(filter.getArg());