wgtmac commented on PR #1028:
URL: https://github.com/apache/parquet-mr/pull/1028#issuecomment-1432527608

   > I did a quick test using Spark
   > 
   > ```
   >           Seq("A", "A", 
null).toDF("column").repartition(1).write.mode("overwrite").parquet("t")
   >           spark.read.parquet("t").where("NOT (column <=> 'A')").show    // 
this returns null
   >           spark.read.parquet("t").where("NOT (column = 'A')").show    // 
this returns empty
   >           spark.read.parquet("t").where("column IN ('A')").show    // this 
returns A A
   >           spark.read.parquet("t").where("column NOT IN ('A')").show    // 
this returns empty
   > ```
   > 
   > If we only has `A` and `null` for `column` and we have predicate `column 
not in ('A')`, should we return empty instead of null?
   
   IIUC, 
   - `col IN (A, B)` is equal to `col = A OR col = B`
   - `col NOT IN (A, B)` is equal to `col <> A AND col <> B`. where `col <> A` 
means `col IS NOT NULL and col != A`
   
   So my answer to your question above is empty. @huaxingao 
   
   It seems that we lose the chance to skip the row group with this fix. 
@gszadovszky 


-- 
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

Reply via email to