Github user kevinjmh commented on a diff in the pull request: https://github.com/apache/carbondata/pull/2665#discussion_r219378413 --- Diff: datamap/bloom/src/main/java/org/apache/carbondata/datamap/bloom/BloomCoarseGrainDataMapFactory.java --- @@ -123,6 +129,42 @@ public BloomCoarseGrainDataMapFactory(CarbonTable carbonTable, DataMapSchema dat } } + @Override + public boolean isSupport(Expression expression) { + ColumnExpression filterColumn = null; + // First check type of child nodes, and get filter column name + switch (expression.getFilterExpressionType()) { + case IN: + InExpression inExpr = (InExpression) expression; + if (inExpr.getLeft() instanceof ColumnExpression && + inExpr.getRight() instanceof ListExpression) { + filterColumn = (ColumnExpression) inExpr.getLeft(); + } else if (inExpr.getRight() instanceof ColumnExpression && + inExpr.getLeft() instanceof ListExpression) { + filterColumn = (ColumnExpression) inExpr.getRight(); + } + break; + case EQUALS: + EqualToExpression equalToExpr = (EqualToExpression) expression; + if (equalToExpr.getLeft() instanceof ColumnExpression && + equalToExpr.getRight() instanceof LiteralExpression) { + filterColumn = (ColumnExpression) equalToExpr.getLeft(); + } else if (equalToExpr.getRight() instanceof ColumnExpression && + equalToExpr.getLeft() instanceof LiteralExpression) { + filterColumn = (ColumnExpression) equalToExpr.getRight(); + } + break; + default: + break; --- End diff -- ok
---