Github user kevinjmh commented on a diff in the pull request:
https://github.com/apache/carbondata/pull/2767#discussion_r221117943
--- Diff:
core/src/main/java/org/apache/carbondata/core/datamap/DataMapChooser.java ---
@@ -177,34 +180,35 @@ private ExpressionTuple selectDataMap(Expression
expression, List<TableDataMap>
// If both left and right has datamap then we can either merge
both datamaps to single
// datamap if possible. Otherwise apply AND expression.
if (left.dataMapExprWrapper != null && right.dataMapExprWrapper
!= null) {
- filterExpressionTypes.add(
-
left.dataMapExprWrapper.getFilterResolverIntf().getFilterExpression()
- .getFilterExpressionType());
- filterExpressionTypes.add(
-
right.dataMapExprWrapper.getFilterResolverIntf().getFilterExpression()
- .getFilterExpressionType());
+ filterExpressionTypes.addAll(left.filterExpressionTypes);
+ filterExpressionTypes.addAll(right.filterExpressionTypes);
List<ColumnExpression> columnExpressions = new ArrayList<>();
columnExpressions.addAll(left.columnExpressions);
columnExpressions.addAll(right.columnExpressions);
// Check if we can merge them to single datamap.
TableDataMap dataMap =
chooseDataMap(allDataMap, columnExpressions,
filterExpressionTypes);
+ TrueConditionalResolverImpl resolver = new
TrueConditionalResolverImpl(
+ new AndExpression(left.expression, right.expression),
false,
+ true);
--- End diff --
so this resolver is used for re-organizing the required expressions?
---