/** * check if current need to be replaced with TrueFilter expression. This will happen in case * filter column min/max is not cached in the driver * * @param filterExpressionResolverTree * @param segmentProperties * @param minMaxCacheColumns * @return */ private static boolean checkIfCurrentNodeToBeReplacedWithTrueFilterExpression( FilterResolverIntf filterExpressionResolverTree, SegmentProperties segmentProperties, List<CarbonColumn> minMaxCacheColumns) { boolean replaceCurrentNodeWithTrueFilter = false; ColumnResolvedFilterInfo columnResolvedFilterInfo = null; if (null != filterExpressionResolverTree.getMsrColResolvedFilterInfo()) { columnResolvedFilterInfo = filterExpressionResolverTree.getMsrColResolvedFilterInfo(); replaceCurrentNodeWithTrueFilter = checkIfFilterColumnIsCachedInDriver(columnResolvedFilterInfo, segmentProperties, minMaxCacheColumns, true); } else { columnResolvedFilterInfo = filterExpressionResolverTree.getDimColResolvedFilterInfo(); if (!columnResolvedFilterInfo.getDimension().hasEncoding(Encoding.IMPLICIT)) { replaceCurrentNodeWithTrueFilter = checkIfFilterColumnIsCachedInDriver(columnResolvedFilterInfo, segmentProperties, minMaxCacheColumns, false); } } return replaceCurrentNodeWithTrueFilter; }
switch (filterExecuterType) { case INCLUDE: if (null != filterExpressionResolverTree.getDimColResolvedFilterInfo() && null != filterExpressionResolverTree.getDimColResolvedFilterInfo() .getFilterValues() && filterExpressionResolverTree.getDimColResolvedFilterInfo() .getFilterValues().isOptimized()) { return getExcludeFilterExecuter( filterExpressionResolverTree.getDimColResolvedFilterInfo(), filterExpressionResolverTree.getMsrColResolvedFilterInfo(), segmentProperties); filterExpressionResolverTree.getDimColResolvedFilterInfo(), filterExpressionResolverTree.getMsrColResolvedFilterInfo(), segmentProperties); case EXCLUDE: return getExcludeFilterExecuter( filterExpressionResolverTree.getDimColResolvedFilterInfo(), filterExpressionResolverTree.getMsrColResolvedFilterInfo(), segmentProperties); case OR: filterExpressionResolverTree.getDimColResolvedFilterInfo(), filterExpressionResolverTree.getFilterExpression(), ((ConditionalFilterResolverImpl) filterExpressionResolverTree)