private TupleFilter newCompareFilter(FilterOperatorEnum op, TblColRef col, ByteArray code) { CompareTupleFilter r = new CompareTupleFilter(op); r.addChild(new ColumnTupleFilter(col)); r.addChild(new ConstantTupleFilter(code)); return r; }
protected CompareTupleFilter buildINCompareFilter(TblColRef dateColumn) throws ParseException { CompareTupleFilter compareFilter = new CompareTupleFilter(FilterOperatorEnum.IN); ColumnTupleFilter columnFilter = new ColumnTupleFilter(dateColumn); compareFilter.addChild(columnFilter); List<String> inValues = Lists.newArrayList(); SimpleDateFormat simpleDateFormat = new SimpleDateFormat("yyyy-MM-dd", Locale.ROOT); Date startDate = simpleDateFormat.parse("1970-01-01"); Date endDate = simpleDateFormat.parse("2100-01-01"); Calendar start = Calendar.getInstance(TimeZone.getTimeZone("GMT"), Locale.ROOT); start.setTime(startDate); Calendar end = Calendar.getInstance(TimeZone.getTimeZone("GMT"), Locale.ROOT); end.setTime(endDate); for (Date date = start.getTime(); start.before(end); start.add(Calendar.DATE, 1), date = start.getTime()) { inValues.add(simpleDateFormat.format(date)); } ConstantTupleFilter constantFilter = new ConstantTupleFilter(inValues); compareFilter.addChild(constantFilter); return compareFilter; }
protected CompareTupleFilter buildEQCompareFilter(List<TblColRef> groups, int index) { TblColRef column = groups.get(index); CompareTupleFilter compareFilter = new CompareTupleFilter(FilterOperatorEnum.EQ); ColumnTupleFilter columnFilter = new ColumnTupleFilter(column); compareFilter.addChild(columnFilter); ConstantTupleFilter constantFilter = null; if (index == 0) { constantFilter = new ConstantTupleFilter("2013-03-10"); } else if (index == 1) { constantFilter = new ConstantTupleFilter("ClothinShoes & Accessories"); } compareFilter.addChild(constantFilter); return compareFilter; }
public static CompareTupleFilter compare(TblColRef col, FilterOperatorEnum op, Object... value) { CompareTupleFilter result = new CompareTupleFilter(op); result.addChild(new ColumnTupleFilter(col)); result.addChild(new ConstantTupleFilter(Arrays.asList(value))); return result; }
private CompareTupleFilter eq(ColumnTupleFilter col, int... values) { CompareTupleFilter r = new CompareTupleFilter(FilterOperatorEnum.IN); r.addChild(col); List<ByteArray> list = Lists.newArrayList(); for (int v : values) { int c = col.getColumn().getColumnDesc().getZeroBasedIndex(); int len = info.getCodeSystem().maxCodeLength(c); ByteArray bytes = new ByteArray(len); BytesUtil.writeLong(v, bytes.array(), bytes.offset(), len); list.add(bytes); } r.addChild(new ConstantTupleFilter(list)); return r; }
public static CompareTupleFilter compare(TblColRef col, FilterOperatorEnum op, Object val) { CompareTupleFilter r = new CompareTupleFilter(op); r.addChild(new ColumnTupleFilter(col)); if (val instanceof TupleFilter) r.addChild((TupleFilter) val); else if (val instanceof TblColRef) r.addChild(new ColumnTupleFilter((TblColRef) col)); else r.addChild(new ConstantTupleFilter(val)); return r; }
private CompareTupleFilter getCompareEQFilter(TblColRef colRef, String... values) { CompareTupleFilter ret = new CompareTupleFilter(TupleFilter.FilterOperatorEnum.EQ); ret.addChild(new ColumnTupleFilter(colRef)); ret.addChild(new ConstantTupleFilter(Lists.newArrayList(values))); return ret; } }
private CompareTupleFilter eq(ColumnTupleFilter col, int... values) { CompareTupleFilter r = new CompareTupleFilter(FilterOperatorEnum.IN); r.addChild(col); List<ByteArray> list = Lists.newArrayList(); for (int v : values) { int c = col.getColumn().getColumnDesc().getZeroBasedIndex(); int len = info.getCodeSystem().maxCodeLength(c); ByteArray bytes = new ByteArray(len); BytesUtil.writeLong(v, bytes.array(), bytes.offset(), len); list.add(bytes); } r.addChild(new ConstantTupleFilter(list)); return r; }
public CompareTupleFilter buildFilter2(TblColRef column) { CompareTupleFilter compareFilter = new CompareTupleFilter(TupleFilter.FilterOperatorEnum.EQ); ColumnTupleFilter columnFilter2 = new ColumnTupleFilter(column); compareFilter.addChild(columnFilter2); ConstantTupleFilter constantFilter2 = new ConstantTupleFilter("ClothinShoes & Accessories"); compareFilter.addChild(constantFilter2); return compareFilter; }
protected CompareTupleFilter buildCompareCaseFilter(List<TblColRef> groups, String constValue) { CompareTupleFilter compareFilter = new CompareTupleFilter(FilterOperatorEnum.EQ); CaseTupleFilter caseFilter = buildCaseFilter(groups); compareFilter.addChild(caseFilter); ConstantTupleFilter constantFilter = new ConstantTupleFilter(constValue); compareFilter.addChild(constantFilter); return compareFilter; }
public CompareTupleFilter buildTs2010Filter(TblColRef column) { CompareTupleFilter compareFilter = new CompareTupleFilter(TupleFilter.FilterOperatorEnum.GT); ColumnTupleFilter columnFilter1 = new ColumnTupleFilter(column); compareFilter.addChild(columnFilter1); ConstantTupleFilter constantFilter1 = new ConstantTupleFilter("2010-01-01"); compareFilter.addChild(constantFilter1); return compareFilter; }
public CompareTupleFilter buildFilter1(TblColRef column) { CompareTupleFilter compareFilter = new CompareTupleFilter(TupleFilter.FilterOperatorEnum.LTE); ColumnTupleFilter columnFilter1 = new ColumnTupleFilter(column); compareFilter.addChild(columnFilter1); ConstantTupleFilter constantFilter1 = new ConstantTupleFilter("2012-05-23"); compareFilter.addChild(constantFilter1); return compareFilter; }
public CompareTupleFilter buildTs2011Filter(TblColRef column) { CompareTupleFilter compareFilter = new CompareTupleFilter(TupleFilter.FilterOperatorEnum.GT); ColumnTupleFilter columnFilter1 = new ColumnTupleFilter(column); compareFilter.addChild(columnFilter1); ConstantTupleFilter constantFilter1 = new ConstantTupleFilter("2011-01-01"); compareFilter.addChild(constantFilter1); return compareFilter; }
public CompareTupleFilter buildFilter3(TblColRef column) { CompareTupleFilter compareFilter = new CompareTupleFilter(TupleFilter.FilterOperatorEnum.EQ); ColumnTupleFilter columnFilter1 = new ColumnTupleFilter(column); compareFilter.addChild(columnFilter1); ConstantTupleFilter constantFilter1 = new ConstantTupleFilter("2012-05-23"); compareFilter.addChild(constantFilter1); return compareFilter; }
private TupleFilter createEQFilter(String colName, String colVal) { CompareTupleFilter compareTupleFilter = new CompareTupleFilter(FilterOperatorEnum.EQ); compareTupleFilter .addChild(new ColumnTupleFilter(TblColRef.newInnerColumn(colName, InnerDataTypeEnum.LITERAL))); compareTupleFilter.addChild(new ConstantTupleFilter(colVal)); return compareTupleFilter; }
private CompareTupleFilter gt(ColumnTupleFilter col, int v) { CompareTupleFilter r = new CompareTupleFilter(FilterOperatorEnum.GT); r.addChild(col); int c = col.getColumn().getColumnDesc().getZeroBasedIndex(); int len = info.getCodeSystem().maxCodeLength(c); ByteArray bytes = new ByteArray(len); BytesUtil.writeLong(v, bytes.array(), bytes.offset(), len); r.addChild(new ConstantTupleFilter(bytes)); return r; }
private CompareTupleFilter gt(ColumnTupleFilter col, int v) { CompareTupleFilter r = new CompareTupleFilter(FilterOperatorEnum.GT); r.addChild(col); int c = col.getColumn().getColumnDesc().getZeroBasedIndex(); int len = info.getCodeSystem().maxCodeLength(c); ByteArray bytes = new ByteArray(len); BytesUtil.writeLong(v, bytes.array(), bytes.offset(), len); r.addChild(new ConstantTupleFilter(bytes)); return r; }
@Test public void testSerialization() { TblColRef colD = TblColRef.mockup(t, 1, "C1", "decimal"); TblColRef colM = TblColRef.mockup(t, 2, "C2", "string"); BigDecimal value = BigDecimal.valueOf(10L); ColumnTupleFilter colFilter = new ColumnTupleFilter(colD); ConstantTupleFilter constFilter = new ConstantTupleFilter("col"); CompareTupleFilter compareFilter = new CompareTupleFilter(TupleFilter.FilterOperatorEnum.EQ); compareFilter.addChild(colFilter); compareFilter.addChild(constFilter); ColumnTupleExpression colTuple = new ColumnTupleExpression(colM); NumberTupleExpression constTuple = new NumberTupleExpression(value); Pair<TupleFilter, TupleExpression> whenEntry = new Pair<TupleFilter, TupleExpression>(compareFilter, colTuple); CaseTupleExpression caseTuple = new CaseTupleExpression(Lists.newArrayList(whenEntry), constTuple); byte[] result = TupleExpressionSerializer.serialize(caseTuple, StringCodeSystem.INSTANCE); TupleExpression desTuple = TupleExpressionSerializer.deserialize(result, StringCodeSystem.INSTANCE); assertEquals(caseTuple, desTuple); } }
public static CompareTupleFilter getCompareTupleFilter(int col, Object value) { TblColRef colRef = gtInfo.colRef(col); ColumnTupleFilter colFilter = new ColumnTupleFilter(colRef); ByteArray space = new ByteArray(gtInfo.getCodeSystem().maxCodeLength(col)); gtInfo.getCodeSystem().encodeColumnValue(col, value, space.asBuffer()); ConstantTupleFilter constFilter = new ConstantTupleFilter(space); CompareTupleFilter compareFilter = new CompareTupleFilter(TupleFilter.FilterOperatorEnum.EQ); compareFilter.addChild(colFilter); compareFilter.addChild(constFilter); return compareFilter; }
@Test public void basicTest() { TableDesc t1 = TableDesc.mockup("DEFAULT.TEST_KYLIN_FACT"); TblColRef column = TblColRef.mockup(t1, 2, "CAL_DT", "date"); CompareTupleFilter compareFilter = new CompareTupleFilter(TupleFilter.FilterOperatorEnum.EQ); ColumnTupleFilter columnFilter = new ColumnTupleFilter(column); compareFilter.addChild(columnFilter); ConstantTupleFilter constantFilter = null; constantFilter = new ConstantTupleFilter("946684800000"); compareFilter.addChild(constantFilter); TimeConditionLiteralsReplacer filterDecorator = new TimeConditionLiteralsReplacer(compareFilter); byte[] bytes = TupleFilterSerializer.serialize(compareFilter, filterDecorator, DictCodeSystem.INSTANCE); CompareTupleFilter compareTupleFilter = (CompareTupleFilter) TupleFilterSerializer.deserialize(bytes, DictCodeSystem.INSTANCE); Assert.assertEquals("2000-01-01", compareTupleFilter.getFirstValue()); } }