Github user manishgupta88 commented on a diff in the pull request:

    https://github.com/apache/carbondata/pull/2725#discussion_r218138883
  
    --- Diff: 
core/src/main/java/org/apache/carbondata/core/util/CarbonMetadataUtil.java ---
    @@ -250,6 +275,42 @@ public static BlockletIndex 
getBlockletIndex(EncodedBlocklet encodedBlocklet,
       }
     
       /**
    +   * This method will combine the writeMinMax flag from all the pages. If 
any page for a given
    +   * dimension has writeMinMax flag set to false then min max for that 
dimension will nto be
    +   * written in any of the page and metadata
    +   *
    +   * @param blockletMinMaxIndex
    +   * @param encodedBlocklet
    +   */
    +  private static List<Boolean> mergeWriteMinMaxFlagForAllPages(
    +      BlockletMinMaxIndex blockletMinMaxIndex, EncodedBlocklet 
encodedBlocklet) {
    +    Boolean[] mergedWriteMinMaxFlag =
    +        new Boolean[encodedBlocklet.getNumberOfDimension() + 
encodedBlocklet.getNumberOfMeasure()];
    +    // set writeMinMax flag to true for all the columns by default and 
then update if stats object
    +    // has the this flag set to false
    +    Arrays.fill(mergedWriteMinMaxFlag, true);
    +    for (int i = 0; i < encodedBlocklet.getNumberOfDimension(); i++) {
    +      for (int pageIndex = 0; pageIndex < 
encodedBlocklet.getNumberOfPages(); pageIndex++) {
    +        EncodedColumnPage encodedColumnPage =
    +            
encodedBlocklet.getEncodedDimensionColumnPages().get(i).getEncodedColumnPageList()
    +                .get(pageIndex);
    +        SimpleStatsResult stats = encodedColumnPage.getStats();
    +        if (!stats.writeMinMax()) {
    +          mergedWriteMinMaxFlag[i] = stats.writeMinMax();
    +          String columnName = 
encodedColumnPage.getActualPage().getColumnSpec().getFieldName();
    +          LOGGER.info("Min Max writing ignored for column " + columnName + 
" from page 0 to "
    --- End diff --
    
    ok


---

Reply via email to