This is an automated email from the ASF dual-hosted git repository.

fokko pushed a commit to branch master
in repository https://gitbox.apache.org/repos/asf/parquet-mr.git


The following commit(s) were added to refs/heads/master by this push:
     new a7447f6  PARQUET-1731: Use JDK 8 Facilities to Simplify 
FilteringRecordMaterializer (#719)
a7447f6 is described below

commit a7447f698e5d8a1fff5b1542a70e42273b1b6373
Author: belugabehr <[email protected]>
AuthorDate: Sun Jan 5 13:25:54 2020 -0500

    PARQUET-1731: Use JDK 8 Facilities to Simplify FilteringRecordMaterializer 
(#719)
---
 .../recordlevel/FilteringRecordMaterializer.java   | 34 +++++++---------------
 1 file changed, 10 insertions(+), 24 deletions(-)

diff --git 
a/parquet-column/src/main/java/org/apache/parquet/filter2/recordlevel/FilteringRecordMaterializer.java
 
b/parquet-column/src/main/java/org/apache/parquet/filter2/recordlevel/FilteringRecordMaterializer.java
index d8fa677..37a031d 100644
--- 
a/parquet-column/src/main/java/org/apache/parquet/filter2/recordlevel/FilteringRecordMaterializer.java
+++ 
b/parquet-column/src/main/java/org/apache/parquet/filter2/recordlevel/FilteringRecordMaterializer.java
@@ -18,11 +18,12 @@
  */
 package org.apache.parquet.filter2.recordlevel;
 
-import java.util.ArrayList;
+import java.util.Arrays;
 import java.util.Collections;
 import java.util.HashMap;
 import java.util.List;
 import java.util.Map;
+import java.util.stream.Collectors;
 
 import org.apache.parquet.hadoop.metadata.ColumnPath;
 import 
org.apache.parquet.filter2.recordlevel.IncrementallyUpdatedFilterPredicate.ValueInspector;
@@ -61,31 +62,20 @@ public class FilteringRecordMaterializer<T> extends 
RecordMaterializer<T> {
     this.delegate = checkNotNull(delegate, "delegate");
 
     // keep track of which path of indices leads to which primitive column
-    Map<List<Integer>, PrimitiveColumnIO> columnIOsByIndexFieldPath = new 
HashMap<List<Integer>, PrimitiveColumnIO>();
+    Map<List<Integer>, PrimitiveColumnIO> columnIOsByIndexFieldPath = new 
HashMap<>();
 
     for (PrimitiveColumnIO c : columnIOs) {
-      columnIOsByIndexFieldPath.put(getIndexFieldPathList(c), c);
+      List<Integer> indexFieldPath = Arrays.stream(c.getIndexFieldPath())
+          .boxed().collect(Collectors.toList());
+      columnIOsByIndexFieldPath.put(indexFieldPath, c);
     }
 
     // create a proxy for the delegate's root converter
     this.rootConverter = new FilteringGroupConverter(
-        delegate.getRootConverter(), Collections.<Integer>emptyList(), 
valueInspectorsByColumn, columnIOsByIndexFieldPath);
+        delegate.getRootConverter(), Collections.emptyList(),
+        valueInspectorsByColumn, columnIOsByIndexFieldPath);
   }
 
-  public static List<Integer> getIndexFieldPathList(PrimitiveColumnIO c) {
-    return intArrayToList(c.getIndexFieldPath());
-  }
-
-  public static List<Integer> intArrayToList(int[] arr) {
-    List<Integer> list = new ArrayList<Integer>(arr.length);
-    for (int i : arr) {
-      list.add(i);
-    }
-    return list;
-  }
-
-
-
   @Override
   public T getCurrentRecord() {
 
@@ -95,12 +85,8 @@ public class FilteringRecordMaterializer<T> extends 
RecordMaterializer<T> {
     // reset the stateful predicate no matter what
     IncrementallyUpdatedFilterPredicateResetter.reset(filterPredicate);
 
-    if (keep) {
-      return delegate.getCurrentRecord();
-    } else {
-      // signals a skip
-      return null;
-    }
+    // null - signals a skip
+    return (keep) ? delegate.getCurrentRecord() : null;
   }
 
   @Override

Reply via email to