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

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

huaxingao commented on a change in pull request #923:
URL: https://github.com/apache/parquet-mr/pull/923#discussion_r717696646



##########
File path: parquet-column/src/main/java/org/apache/parquet/column/MinMax.java
##########
@@ -18,25 +18,17 @@
  */
 package org.apache.parquet.column;
 
-import java.util.Iterator;
-import java.util.Set;
-
-import org.apache.parquet.io.api.Binary;
 import org.apache.parquet.schema.PrimitiveComparator;
 
 /**
- * This class calculates the max and min values of a Set.
+ * This class calculates the max and min values of an iterable collection.
  */
 public final class MinMax<T> {
-  private PrimitiveComparator comparator;
-  private Iterator<T> iterator;
   private T min = null;
   private T max = null;
 
-  public MinMax(PrimitiveComparator comparator, Iterator<T> iterator) {
-    this.comparator = comparator;
-    this.iterator = iterator;
-    getMinAndMax();
+  public MinMax(PrimitiveComparator comparator, Iterable<T> iterable) {

Review comment:
       Fixed. Thanks!

##########
File path: parquet-column/src/main/java/org/apache/parquet/column/MinMax.java
##########
@@ -47,43 +39,22 @@ public T getMax() {
     return max;
   }
 
-  private void getMinAndMax() {
-    while(iterator.hasNext())  {
-      T element = iterator.next();
+  private void getMinAndMax(PrimitiveComparator comparator, Iterable<T> 
iterable) {
+    iterable.forEach(element -> {
       if (max == null) {
         max = element;
-      } else if (max != null && element != null) {
-        if ((element instanceof Integer &&
-          ((PrimitiveComparator<Integer>)comparator).compare((Integer)max, 
(Integer)element) < 0) ||
-          (element instanceof Binary &&
-            ((PrimitiveComparator<Binary>)comparator).compare((Binary)max, 
(Binary)element) < 0) ||
-          (element instanceof Double &&
-             ((PrimitiveComparator<Double>)comparator).compare((Double)max, 
(Double)element) < 0) ||
-          (element instanceof Float &&
-             ((PrimitiveComparator<Float>)comparator).compare((Float)max, 
(Float)element) < 0) ||
-          (element instanceof Boolean &&
-            ((PrimitiveComparator<Boolean>)comparator).compare((Boolean)max, 
(Boolean)element) < 0) ||
-          (element instanceof Long &&
-            ((PrimitiveComparator<Long>)comparator).compare((Long) max, 
(Long)element) < 0))
+      } else if (element != null) {
+        if (comparator.compare(max, element) < 0) {

Review comment:
       Done.




-- 
This is an automated message from the Apache Git Service.
To respond to the message, please log on to GitHub and use the
URL above to go to the specific comment.

To unsubscribe, e-mail: dev-unsubscr...@parquet.apache.org

For queries about this service, please contact Infrastructure at:
us...@infra.apache.org


> FilterApi support In predicate
> ------------------------------
>
>                 Key: PARQUET-1968
>                 URL: https://issues.apache.org/jira/browse/PARQUET-1968
>             Project: Parquet
>          Issue Type: Improvement
>          Components: parquet-mr
>    Affects Versions: 1.12.0
>            Reporter: Yuming Wang
>            Priority: Major
>
> FilterApi should support native In predicate.
> Spark:
> https://github.com/apache/spark/blob/d6a68e0b67ff7de58073c176dd097070e88ac831/sql/core/src/main/scala/org/apache/spark/sql/execution/datasources/parquet/ParquetFilters.scala#L600-L605
> Impala:
> https://issues.apache.org/jira/browse/IMPALA-3654



--
This message was sent by Atlassian Jira
(v8.3.4#803005)

Reply via email to