@Override public TupleFilter copy() { List<TupleFilter> cloneChildren = new LinkedList<TupleFilter>(children); TupleFilter cloneTuple = new LogicalTupleFilter(cloneChildren, operator); return cloneTuple; }
private LogicalTupleFilter logical(FilterOperatorEnum op, TupleFilter[] filters) { LogicalTupleFilter r = new LogicalTupleFilter(op); for (TupleFilter f : filters) r.addChild(f); return r; }
private LogicalTupleFilter logical(FilterOperatorEnum op, TupleFilter[] filters) { LogicalTupleFilter r = new LogicalTupleFilter(op); for (TupleFilter f : filters) r.addChild(f); return r; }
public static LogicalTupleFilter or(TupleFilter... children) { LogicalTupleFilter r = new LogicalTupleFilter(FilterOperatorEnum.OR); r.addChildren(children); return r; }
public static LogicalTupleFilter not(TupleFilter child) { LogicalTupleFilter r = new LogicalTupleFilter(FilterOperatorEnum.NOT); r.addChild(child); return r; }
public static LogicalTupleFilter logic(FilterOperatorEnum op, TupleFilter... children) { LogicalTupleFilter result = new LogicalTupleFilter(op); for (TupleFilter c : children) { result.addChild(c); } return result; }
@Test // Not(And(true, false)) ==> Or(false, true) public void removeNotTest2() { TupleFilter notFilter = new LogicalTupleFilter(TupleFilter.FilterOperatorEnum.NOT); TupleFilter andFilter = new LogicalTupleFilter(TupleFilter.FilterOperatorEnum.AND); andFilter.addChildren(ConstantTupleFilter.TRUE, ConstantTupleFilter.FALSE); notFilter.addChild(andFilter); TupleFilter orFilter = new LogicalTupleFilter(TupleFilter.FilterOperatorEnum.OR); orFilter.addChildren(ConstantTupleFilter.FALSE, ConstantTupleFilter.TRUE); Assert.assertEquals(orFilter, notFilter.removeNot()); }
@Test // And(Not(true), false) ==> And(false, false) public void removeNotTest3() { TupleFilter andFilter = new LogicalTupleFilter(TupleFilter.FilterOperatorEnum.AND); TupleFilter notFilter = new LogicalTupleFilter(TupleFilter.FilterOperatorEnum.NOT); notFilter.addChild(ConstantTupleFilter.TRUE); andFilter.addChildren(notFilter, ConstantTupleFilter.FALSE); TupleFilter andFilter2 = new LogicalTupleFilter(TupleFilter.FilterOperatorEnum.AND); andFilter2.addChildren(ConstantTupleFilter.FALSE, ConstantTupleFilter.FALSE); Assert.assertEquals(andFilter2, andFilter.removeNot()); }
protected TupleFilter buildAndFilter(List<TblColRef> columns) { CompareTupleFilter compareFilter1 = buildEQCompareFilter(columns, 0); CompareTupleFilter compareFilter2 = buildEQCompareFilter(columns, 1); LogicalTupleFilter andFilter = new LogicalTupleFilter(FilterOperatorEnum.AND); andFilter.addChild(compareFilter1); andFilter.addChild(compareFilter2); return andFilter; }
@Test // Not(true) ==> false public void removeNotTest1() { TupleFilter notFilter = new LogicalTupleFilter(TupleFilter.FilterOperatorEnum.NOT); notFilter.addChild(ConstantTupleFilter.TRUE); Assert.assertEquals(ConstantTupleFilter.FALSE, notFilter.removeNot()); }
@Test public void transformTest0() throws Exception { TupleFilter or = new LogicalTupleFilter(TupleFilter.FilterOperatorEnum.AND); TupleFilter a = new CompareTupleFilter(TupleFilter.FilterOperatorEnum.EQ); TupleFilter b = ConstantTupleFilter.TRUE; or.addChild(a); or.addChild(b); or = new FilterOptimizeTransformer().transform(or); Assert.assertEquals(1, or.children.size()); }
@Test public void transformTest1() throws Exception { TupleFilter or = new LogicalTupleFilter(TupleFilter.FilterOperatorEnum.OR); TupleFilter a = new CompareTupleFilter(TupleFilter.FilterOperatorEnum.EQ); TupleFilter b = ConstantTupleFilter.FALSE; or.addChild(a); or.addChild(b); or = new FilterOptimizeTransformer().transform(or); Assert.assertEquals(1, or.children.size()); }
@Test public void transformTest4() throws Exception { TupleFilter or = new LogicalTupleFilter(TupleFilter.FilterOperatorEnum.AND); TupleFilter a = ConstantTupleFilter.FALSE; TupleFilter b = ConstantTupleFilter.FALSE; or.addChild(a); or.addChild(b); or = new FilterOptimizeTransformer().transform(or); Assert.assertEquals(ConstantTupleFilter.FALSE, or); }
@Test public void transformTest3() throws Exception { TupleFilter or = new LogicalTupleFilter(TupleFilter.FilterOperatorEnum.OR); TupleFilter a = ConstantTupleFilter.TRUE; TupleFilter b = ConstantTupleFilter.TRUE; or.addChild(a); or.addChild(b); or = new FilterOptimizeTransformer().transform(or); Assert.assertEquals(ConstantTupleFilter.TRUE, or); }
@Test public void transformTest7() throws Exception { TupleFilter or = new LogicalTupleFilter(TupleFilter.FilterOperatorEnum.OR); TupleFilter a = ConstantTupleFilter.FALSE; TupleFilter b = ConstantTupleFilter.TRUE; or.addChild(a); or.addChild(b); or = new FilterOptimizeTransformer().transform(or); Assert.assertEquals(ConstantTupleFilter.TRUE, or); } }
@Test public void transformTest2() throws Exception { TupleFilter or = new LogicalTupleFilter(TupleFilter.FilterOperatorEnum.OR); TupleFilter a = ConstantTupleFilter.FALSE; TupleFilter b = ConstantTupleFilter.FALSE; or.addChild(a); or.addChild(b); or = new FilterOptimizeTransformer().transform(or); Assert.assertEquals(ConstantTupleFilter.FALSE, or); }
@Test public void transformTest6() throws Exception { TupleFilter or = new LogicalTupleFilter(TupleFilter.FilterOperatorEnum.AND); TupleFilter a = ConstantTupleFilter.FALSE; TupleFilter b = ConstantTupleFilter.TRUE; or.addChild(a); or.addChild(b); or = new FilterOptimizeTransformer().transform(or); Assert.assertEquals(ConstantTupleFilter.FALSE, or); }
@Test public void testSerialize10() { List<TblColRef> groups = buildGroups(); TupleFilter orFilter = buildOrFilter(groups); TupleFilter andFilter = buildAndFilter(groups); LogicalTupleFilter logicFilter = new LogicalTupleFilter(FilterOperatorEnum.OR); logicFilter.addChild(orFilter); logicFilter.addChild(andFilter); assertFilterSerDe(logicFilter); }
@Test public void testSerialize11() { List<TblColRef> groups = buildGroups(); TupleFilter orFilter = buildOrFilter(groups); TupleFilter andFilter = buildAndFilter(groups); LogicalTupleFilter logicFilter = new LogicalTupleFilter(FilterOperatorEnum.AND); logicFilter.addChild(orFilter); logicFilter.addChild(andFilter); assertFilterSerDe(logicFilter); }
private TupleFilter getMockFilter1() { LogicalTupleFilter ret = new LogicalTupleFilter(TupleFilter.FilterOperatorEnum.OR); TblColRef colRef1 = TblColRef.newInnerColumn("DEFAULT.TEST_KYLIN_FACT.LSTG_FORMAT_NAME", TblColRef.InnerDataTypeEnum.LITERAL); ret.addChildren(getCompareEQFilter(colRef1, "ABIN")); ret.addChildren(getCompareEQFilter(colRef1, "Auction")); TblColRef colRef2 = TblColRef.newInnerColumn("DEFAULT.TEST_KYLIN_FACT.DEAL_YEAR", TblColRef.InnerDataTypeEnum.LITERAL); ret.addChildren(getCompareEQFilter(colRef2, "2012")); ret.addChildren(getCompareEQFilter(colRef2, "2013")); return ret; }