public static TupleFilter convertFilterUnevaluatable(TupleFilter rootFilter, GTInfo info, // Set<TblColRef> unevaluatableColumnCollector) { return convertFilter(rootFilter, info, null, false, unevaluatableColumnCollector); }
public static TupleFilter convertFilterColumnsAndConstants(TupleFilter rootFilter, GTInfo info, // Map<TblColRef, Integer> colMapping, Set<TblColRef> unevaluatableColumnCollector) { TupleFilter filter = convertFilter(rootFilter, info, colMapping, true, unevaluatableColumnCollector); // optimize the filter: after translating with dictionary, some filters become determined // e.g. // ( a = 'value_in_dict' OR a = 'value_not_in_dict') will become (a = 'value_in_dict' OR ConstantTupleFilter.FALSE) // use the following to further trim the filter to (a = 'value_in_dict') // The goal is to avoid too many children after flatten filter step filter = new FilterOptimizeTransformer().transform(filter); return filter; }
public static TupleFilter convertFilterUnevaluatable(TupleFilter rootFilter, GTInfo info, // Set<TblColRef> unevaluatableColumnCollector) { return convertFilter(rootFilter, info, null, false, unevaluatableColumnCollector); }
public static TupleFilter convertFilterColumnsAndConstants(TupleFilter rootFilter, GTInfo info, // Map<TblColRef, Integer> colMapping, Set<TblColRef> unevaluatableColumnCollector) { TupleFilter filter = convertFilter(rootFilter, info, colMapping, true, unevaluatableColumnCollector); // optimize the filter: after translating with dictionary, some filters become determined // e.g. // ( a = 'value_in_dict' OR a = 'value_not_in_dict') will become (a = 'value_in_dict' OR ConstantTupleFilter.FALSE) // use the following to further trim the filter to (a = 'value_in_dict') // The goal is to avoid too many children after flatten filter step filter = new FilterOptimizeTransformer().transform(filter); return filter; }