use of org.apache.hadoop.hive.ql.io.sarg.SearchArgument.TruthValue in project hive by apache.
the class OrcInputFormat method isStripeSatisfyPredicate.
private static boolean isStripeSatisfyPredicate(StripeStatistics stripeStatistics, SearchArgument sarg, int[] filterColumns, final SchemaEvolution evolution) {
List<PredicateLeaf> predLeaves = sarg.getLeaves();
TruthValue[] truthValues = new TruthValue[predLeaves.size()];
for (int pred = 0; pred < truthValues.length; pred++) {
if (filterColumns[pred] != -1) {
if (evolution != null && !evolution.isPPDSafeConversion(filterColumns[pred])) {
truthValues[pred] = TruthValue.YES_NO_NULL;
} else {
// column statistics at index 0 contains only the number of rows
ColumnStatistics stats = stripeStatistics.getColumnStatistics()[filterColumns[pred]];
truthValues[pred] = RecordReaderImpl.evaluatePredicate(stats, predLeaves.get(pred), null);
}
} else {
// parition column case.
// partition filter will be evaluated by partition pruner so
// we will not evaluate partition filter here.
truthValues[pred] = TruthValue.YES_NO_NULL;
}
}
return sarg.evaluate(truthValues).isNeeded();
}
Aggregations