for (int i = 0; i < leaves.size(); ++i) { PredicateLeaf pl = leaves.get(i); Integer colId = nameIdMap.get(pl.getColumnName()); String newColName = RecordReaderImpl.encodeTranslatedSargColumn(rootColumn, colId); SearchArgumentFactory.setPredicateLeafColumn(pl, newColName);
for (int i = 0; i < leaves.size(); ++i) { PredicateLeaf pl = leaves.get(i); Integer colId = nameIdMap.get(pl.getColumnName()); String newColName = RecordReaderImpl.encodeTranslatedSargColumn(rootColumn, colId); SearchArgumentFactory.setPredicateLeafColumn(pl, newColName);
private static FilterPredicate buildFilterPredicateFromPredicateLeaf (PredicateLeaf leaf, Type parquetType) throws Exception { LeafFilterFactory leafFilterFactory = new LeafFilterFactory(); FilterPredicateLeafBuilder builder; try { builder = leafFilterFactory .getLeafFilterBuilderByType(leaf.getType(), parquetType); if (isMultiLiteralsOperator(leaf.getOperator())) { return builder.buildPredicate(leaf.getOperator(), leaf.getLiteralList(), leaf.getColumnName()); } else { return builder .buildPredict(leaf.getOperator(), leaf.getLiteral(), leaf.getColumnName()); } } catch (Exception e) { LOG.error("fail to build predicate filter leaf with errors" + e, e); throw e; } }
private static FilterPredicate buildFilterPredicateFromPredicateLeaf (PredicateLeaf leaf, Type parquetType) throws Exception { LeafFilterFactory leafFilterFactory = new LeafFilterFactory(); FilterPredicateLeafBuilder builder; try { builder = leafFilterFactory .getLeafFilterBuilderByType(leaf.getType(), parquetType); if (isMultiLiteralsOperator(leaf.getOperator())) { return builder.buildPredicate(leaf.getOperator(), leaf.getLiteralList(), leaf.getColumnName()); } else { return builder .buildPredict(leaf.getOperator(), leaf.getLiteral(), leaf.getColumnName()); } } catch (Exception e) { LOG.error("fail to build predicate filter leaf with errors" + e, e); throw e; } }
if (columns.contains(leaf.getColumnName())) { Type parquetType = schema.getType(leaf.getColumnName()); return buildFilterPredicateFromPredicateLeaf(leaf, parquetType); } else {
if (columns.contains(leaf.getColumnName())) { Type parquetType = schema.getType(leaf.getColumnName()); return buildFilterPredicateFromPredicateLeaf(leaf, parquetType); } else {
Set<PredicateLeaf> bucketLeaves = new HashSet<PredicateLeaf>(); for (PredicateLeaf l : leaves) { if (bucketCol.equals(l.getColumnName())) { switch (l.getOperator()) { case EQUALS:
Set<PredicateLeaf> bucketLeaves = new HashSet<PredicateLeaf>(); for (PredicateLeaf l : leaves) { if (bucketCol.equals(l.getColumnName())) { switch (l.getOperator()) { case EQUALS:
assertEquals(PredicateLeaf.Type.STRING, leaf.getType()); assertEquals(PredicateLeaf.Operator.EQUALS, leaf.getOperator()); assertEquals("first_name", leaf.getColumnName()); assertEquals("john", leaf.getLiteral()); assertEquals(PredicateLeaf.Type.STRING, leaf.getType()); assertEquals(PredicateLeaf.Operator.LESS_THAN_EQUALS, leaf.getOperator()); assertEquals("first_name", leaf.getColumnName()); assertEquals("greg", leaf.getLiteral()); assertEquals(PredicateLeaf.Type.STRING, leaf.getType()); assertEquals(PredicateLeaf.Operator.LESS_THAN, leaf.getOperator()); assertEquals("first_name", leaf.getColumnName()); assertEquals("alan", leaf.getLiteral()); assertEquals(PredicateLeaf.Type.LONG, leaf.getType()); assertEquals(PredicateLeaf.Operator.LESS_THAN_EQUALS, leaf.getOperator()); assertEquals("id", leaf.getColumnName()); assertEquals(12L, leaf.getLiteral()); assertEquals(PredicateLeaf.Type.LONG, leaf.getType()); assertEquals(PredicateLeaf.Operator.LESS_THAN_EQUALS, leaf.getOperator()); assertEquals("id", leaf.getColumnName()); assertEquals(13L, leaf.getLiteral()); assertEquals(PredicateLeaf.Type.LONG, leaf.getType()); assertEquals(PredicateLeaf.Operator.LESS_THAN, leaf.getOperator()); assertEquals("id", leaf.getColumnName()); assertEquals(15L, leaf.getLiteral());
assertEquals(PredicateLeaf.Type.LONG, leaf.getType()); assertEquals(PredicateLeaf.Operator.LESS_THAN, leaf.getOperator()); assertEquals("id", leaf.getColumnName()); assertEquals(18L, leaf.getLiteral()); assertEquals(PredicateLeaf.Type.LONG, leaf.getType()); assertEquals(PredicateLeaf.Operator.LESS_THAN, leaf.getOperator()); assertEquals("id", leaf.getColumnName()); assertEquals(10L, leaf.getLiteral()); assertEquals(PredicateLeaf.Type.LONG, leaf.getType()); assertEquals(PredicateLeaf.Operator.LESS_THAN, leaf.getOperator()); assertEquals("id", leaf.getColumnName()); assertEquals(13L, leaf.getLiteral()); assertEquals(PredicateLeaf.Type.LONG, leaf.getType()); assertEquals(PredicateLeaf.Operator.LESS_THAN, leaf.getOperator()); assertEquals("id", leaf.getColumnName()); assertEquals(16L, leaf.getLiteral()); assertEquals(PredicateLeaf.Type.LONG, leaf.getType()); assertEquals(PredicateLeaf.Operator.LESS_THAN, leaf.getOperator()); assertEquals("id", leaf.getColumnName()); assertEquals(11L, leaf.getLiteral()); assertEquals(PredicateLeaf.Type.LONG, leaf.getType()); assertEquals(PredicateLeaf.Operator.LESS_THAN, leaf.getOperator()); assertEquals("id", leaf.getColumnName()); assertEquals(12L, leaf.getLiteral());
assertEquals(PredicateLeaf.Type.LONG, leaf.getType()); assertEquals(PredicateLeaf.Operator.BETWEEN, leaf.getOperator()); assertEquals("id", leaf.getColumnName()); assertEquals(null, leaf.getLiteral()); assertEquals(23L, leaf.getLiteralList().get(0)); assertEquals(PredicateLeaf.Type.STRING, leaf.getType()); assertEquals(PredicateLeaf.Operator.EQUALS, leaf.getOperator()); assertEquals("first_name", leaf.getColumnName()); assertEquals("alan", leaf.getLiteral()); assertEquals(PredicateLeaf.Type.STRING, leaf.getType()); assertEquals(PredicateLeaf.Operator.EQUALS, leaf.getOperator()); assertEquals("last_name", leaf.getColumnName()); assertEquals("smith", leaf.getLiteral());
assertEquals(PredicateLeaf.Type.LONG, leaf.getType()); assertEquals(PredicateLeaf.Operator.EQUALS, leaf.getOperator()); assertEquals("id", leaf.getColumnName()); assertEquals(12L, leaf.getLiteral()); assertEquals(PredicateLeaf.Type.STRING, leaf.getType()); assertEquals(PredicateLeaf.Operator.IN, leaf.getOperator()); assertEquals("first_name", leaf.getColumnName()); assertEquals("john", leaf.getLiteralList().get(0)); assertEquals("sue", leaf.getLiteralList().get(1)); assertEquals(PredicateLeaf.Type.LONG, leaf.getType()); assertEquals(PredicateLeaf.Operator.IN, leaf.getOperator()); assertEquals("id", leaf.getColumnName()); assertEquals(34L, leaf.getLiteralList().get(0)); assertEquals(50L, leaf.getLiteralList().get(1));
assertEquals(PredicateLeaf.Operator.BETWEEN, leaves.get(0).getOperator()); assertEquals("first_name", leaves.get(0).getColumnName());
assertEquals(PredicateLeaf.Type.STRING, leaf.getType()); assertEquals(PredicateLeaf.Operator.IS_NULL, leaf.getOperator()); assertEquals("first_name", leaf.getColumnName()); assertEquals(null, leaf.getLiteral()); assertEquals(null, leaf.getLiteralList()); assertEquals(PredicateLeaf.Type.STRING, leaf.getType()); assertEquals(PredicateLeaf.Operator.EQUALS, leaf.getOperator()); assertEquals("first_name", leaf.getColumnName()); assertEquals("sue", leaf.getLiteral()); assertEquals(PredicateLeaf.Type.LONG, leaf.getType()); assertEquals(PredicateLeaf.Operator.LESS_THAN, leaf.getOperator()); assertEquals("id", leaf.getColumnName()); assertEquals(12L, leaf.getLiteral()); assertEquals(PredicateLeaf.Type.LONG, leaf.getType()); assertEquals(PredicateLeaf.Operator.LESS_THAN_EQUALS, leaf.getOperator()); assertEquals("id", leaf.getColumnName()); assertEquals(4L, leaf.getLiteral());
assertEquals(PredicateLeaf.Operator.LESS_THAN, leaves.get(0).getOperator()); assertEquals("id", leaves.get(0).getColumnName()); assertEquals(10L, leaves.get(0).getLiteral());
SearchArgument arg = options.getSearchArgument(); List<PredicateLeaf> leaves = arg.getLeaves(); assertEquals("cost", leaves.get(0).getColumnName()); assertEquals(PredicateLeaf.Operator.IS_NULL, leaves.get(0).getOperator());
@SuppressWarnings({ "rawtypes", "unchecked" }) private Evaluator<?> inEvaluator(PredicateLeaf predicateLeaf, PrimitiveCategory category) { List<Comparable<?>> literals = new ArrayList<>(predicateLeaf.getLiteralList().size()); for (Object literalItem : predicateLeaf.getLiteralList()) { literals.add(toComparable(category, literalItem)); } return new InEvaluator(predicateLeaf.getColumnName(), literals); }
@SuppressWarnings({ "rawtypes", "unchecked" }) private Evaluator<?> betweenEvaluator(PredicateLeaf predicateLeaf, PrimitiveCategory category) { List<Object> literalList = predicateLeaf.getLiteralList(); Comparable<?> minLiteral = toComparable(category, literalList.get(0)); Comparable<?> maxLiteral = toComparable(category, literalList.get(1)); return new BetweenEvaluator(predicateLeaf.getColumnName(), minLiteral, maxLiteral); }
@SuppressWarnings({ "rawtypes", "unchecked" }) private Evaluator<?> equalsEvaluator(PredicateLeaf predicateLeaf, PrimitiveCategory category) { Comparable<?> literal = toComparable(category, predicateLeaf.getLiteral()); return new EqualsEvaluator(predicateLeaf.getColumnName(), literal); }
@SuppressWarnings({ "rawtypes", "unchecked" }) private Evaluator<?> lessThanEvaluator(PredicateLeaf predicateLeaf, PrimitiveCategory category) { Comparable<?> literal = toComparable(category, predicateLeaf.getLiteral()); return new LessThanEvaluator(predicateLeaf.getColumnName(), literal, predicateLeaf.getOperator()); }