[jira] [Commented] (CARBONDATA-552) Unthrown FilterUnsupportedException in catch block

classic Classic list List threaded Threaded
1 message Options
Reply | Threaded
Open this post in threaded view
|

[jira] [Commented] (CARBONDATA-552) Unthrown FilterUnsupportedException in catch block

Akash R Nilugal (Jira)

    [ https://issues.apache.org/jira/browse/CARBONDATA-552?page=com.atlassian.jira.plugin.system.issuetabpanels:comment-tabpanel&focusedCommentId=15800948#comment-15800948 ]

sandeep purohit commented on CARBONDATA-552:
--------------------------------------------

I see now the above defect is fix in some commit but i see getNoDictionaryRangeValues function also not throw the exception and just log the error so is it correct behaviour??

{code:title=RowLevelRangeFilterResolverImpl.java|theme=FadeToGrey|linenumbers=true|language=html/xml|firstline=0001|collapse=true}

  private List<byte[]> getNoDictionaryRangeValues() {
    List<ExpressionResult> listOfExpressionResults = new ArrayList<ExpressionResult>(20);
    if (this.getFilterExpression() instanceof BinaryConditionalExpression) {
      listOfExpressionResults =
          ((BinaryConditionalExpression) this.getFilterExpression()).getLiterals();
    }
    List<byte[]> filterValuesList = new ArrayList<byte[]>(20);
    boolean invalidRowsPresent = false;
    for (ExpressionResult result : listOfExpressionResults) {
      try {
        if (result.getString() == null) {
          filterValuesList.add(CarbonCommonConstants.MEMBER_DEFAULT_VAL.getBytes());
          continue;
        }
        filterValuesList.add(result.getString().getBytes());
      } catch (FilterIllegalMemberException e) {
        // Any invalid member while evaluation shall be ignored, system will log the
        // error only once since all rows the evaluation happens so inorder to avoid
        // too much log inforation only once the log will be printed.
        FilterUtil.logError(e, invalidRowsPresent);
      }
    }
    Comparator<byte[]> filterNoDictValueComaparator = new Comparator<byte[]>() {
      @Override public int compare(byte[] filterMember1, byte[] filterMember2) {
        return ByteUtil.UnsafeComparer.INSTANCE.compareTo(filterMember1, filterMember2);
      }

    };
    Collections.sort(filterValuesList, filterNoDictValueComaparator);
    return filterValuesList;
  }
{code}

> Unthrown FilterUnsupportedException in catch block
> --------------------------------------------------
>
>                 Key: CARBONDATA-552
>                 URL: https://issues.apache.org/jira/browse/CARBONDATA-552
>             Project: CarbonData
>          Issue Type: Bug
>          Components: core
>            Reporter: Jaechang Nam
>            Priority: Trivial
>          Time Spent: 40m
>  Remaining Estimate: 0h
>
> new FilterUnsupportedException(e) is not thrown in core/src/main/java/org/apache/carbondata/scan/filter/resolver/RowLevelRangeFilterResolverImpl.java (found in the current github snapshot, ddeb00425537ff59bdfba76779c5d96287e07d2e)
> {code}
> 230       }
> 231     } catch (FilterIllegalMemberException e) {
> 232       new FilterUnsupportedException(e);
> 233     }
> 234     return filterValuesList;
> {code}



--
This message was sent by Atlassian JIRA
(v6.3.4#6332)