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

ASF GitHub Bot commented on PARQUET-2261:
-----------------------------------------

gszadovszky commented on code in PR #197:
URL: https://github.com/apache/parquet-format/pull/197#discussion_r1155304277


##########
src/main/thrift/parquet.thrift:
##########
@@ -190,6 +190,60 @@ enum FieldRepetitionType {
   /** The field is repeated and can contain 0 or more values */
   REPEATED = 2;
 }
+ /**
+   * Tracks a histogram of repetition and definition levels for either a page 
or column chunk. 
+   *
+   * This is useful for:
+   *   1. Estimating the size of the data when materialized in memory 
+   *   2. For filter push-down on nulls at various levels of nested structures 
and 
+   *      list lengths.
+   */ 
+ struct RepetitionDefinitionLevelHistogram {
+   /** 
+     * When present there is expected to be one element corresponding to each 
repetition (i.e. size=max repetition_level+1) 
+     * where each element represents the number of time the repetition level 
was observed in the data.
+     *
+     * This value is should not be written if max_repetition_level is 0.

Review Comment:
   ```suggestion
        * This value should not be written if max_repetition_level is 0.
   ```



##########
src/main/thrift/parquet.thrift:
##########
@@ -966,6 +1039,13 @@ struct ColumnIndex {
 
   /** A list containing the number of null values for each page **/
   5: optional list<i64> null_counts
+  /** 
+    * Repetition and definition level histograms for the page.  

Review Comment:
   ```suggestion
       * Repetition and definition level histograms for the pages.  
   ```



##########
src/main/thrift/parquet.thrift:
##########
@@ -190,6 +190,60 @@ enum FieldRepetitionType {
   /** The field is repeated and can contain 0 or more values */
   REPEATED = 2;
 }
+ /**
+   * Tracks a histogram of repetition and definition levels for either a page 
or column chunk. 
+   *
+   * This is useful for:
+   *   1. Estimating the size of the data when materialized in memory 
+   *   2. For filter push-down on nulls at various levels of nested structures 
and 
+   *      list lengths.
+   */ 
+ struct RepetitionDefinitionLevelHistogram {
+   /** 
+     * When present there is expected to be one element corresponding to each 
repetition (i.e. size=max repetition_level+1) 
+     * where each element represents the number of time the repetition level 
was observed in the data.
+     *
+     * This value is should not be written if max_repetition_level is 0.
+     **/
+   1: optional list<i64> repetition_level_histogram;
+   /**
+    * Same as repetition_level_histogram except for definition levels.
+    *
+    * This value is should not be written when max_definition_level is 0. 

Review Comment:
   ```suggestion
       * This value should not be written when max_definition_level is 0. 
   ```



##########
src/main/thrift/parquet.thrift:
##########
@@ -966,6 +1039,13 @@ struct ColumnIndex {
 
   /** A list containing the number of null values for each page **/
   5: optional list<i64> null_counts
+  /** 
+    * Repetition and definition level histograms for the page.  
+    *
+    * This contains has some redundancy with null_counts, however, to accomdate
+    * the widest range of readers both should be populated.

Review Comment:
   ```suggestion
       * This contains some redundancy with null_counts, however, to accomodate 
the
       * widest range of readers both should be populated.
   ```



##########
src/main/thrift/parquet.thrift:
##########
@@ -580,7 +648,12 @@ struct DataPageHeaderV2 {
   If missing it is considered compressed */
   7: optional bool is_compressed = 1;
 
-  /** optional statistics for the data in this page **/
+  /** 
+   * optional statistics for the data in this page 
+   *
+   * See notes on DataPage struct for use-cases and recommendations on a 
discussion on 
+   * recommendations around populating this field.

Review Comment:
   ```suggestion
      * See notes on DataPage struct for use-cases and recommendations around 
populating
      * this field.
   ```





> [Format] Add statistics that reflect decoded size to metadata
> -------------------------------------------------------------
>
>                 Key: PARQUET-2261
>                 URL: https://issues.apache.org/jira/browse/PARQUET-2261
>             Project: Parquet
>          Issue Type: Improvement
>          Components: parquet-format
>            Reporter: Micah Kornfield
>            Assignee: Micah Kornfield
>            Priority: Major
>




--
This message was sent by Atlassian Jira
(v8.20.10#820010)

Reply via email to