}
public void testOrFilterWithExtraneousParantheses() throws Exception {
Query query = QueryBuilder.getInstance().parseQuery(
" WHERE (((c1 < c2)) OR 4 >= `WHERE` OR (`c1` < `c 3`))");
QueryFilter filter = query.getFilter();
assertTrue(filter instanceof CompoundFilter);
CompoundFilter f = (CompoundFilter) filter;
assertEquals(CompoundFilter.LogicalOperator.OR, f.getOperator());
List<QueryFilter> subFilters = f.getSubFilters();
assertEquals(3, subFilters.size());
QueryFilter f1 = subFilters.get(0);
QueryFilter f2 = subFilters.get(1);
QueryFilter f3 = subFilters.get(2);
assertTrue(f1 instanceof ColumnColumnFilter);
assertTrue(f2 instanceof ColumnValueFilter);
assertTrue(f3 instanceof ColumnColumnFilter);
Set<String> allColumnIds = f.getAllColumnIds();
assertEquals(Sets.newHashSet("c1", "c2", "c 3", "WHERE"), allColumnIds);