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


---

Reply via email to