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

kazuyukitanimura pushed a commit to branch main
in repository https://gitbox.apache.org/repos/asf/datafusion-comet.git


The following commit(s) were added to refs/heads/main by this push:
     new 2c1a6b9c fix: Spark 4.0-preview1 SPARK-47120 (#1156)
2c1a6b9c is described below

commit 2c1a6b9c576042f2e0a73cf76a3ad93db46b6a0b
Author: KAZUYUKI TANIMURA <[email protected]>
AuthorDate: Wed Dec 11 09:44:12 2024 -0800

    fix: Spark 4.0-preview1 SPARK-47120 (#1156)
    
    ## Which issue does this PR close?
    
    Part of https://github.com/apache/datafusion-comet/issues/372 and 
https://github.com/apache/datafusion-comet/issues/551
    
    ## Rationale for this change
    
    To be ready for Spark 4.0
    
    ## What changes are included in this PR?
    
    This PR fixes the new test SPARK-47120 added in Spark 4.0
    
    ## How are these changes tested?
    
    tests enabled
---
 dev/diffs/4.0.0-preview1.diff                            | 16 +++-------------
 docs/source/user-guide/source.md                         |  2 +-
 .../scala/org/apache/comet/parquet/ParquetFilters.scala  | 10 ++++++----
 3 files changed, 10 insertions(+), 18 deletions(-)

diff --git a/dev/diffs/4.0.0-preview1.diff b/dev/diffs/4.0.0-preview1.diff
index 1a6810a7..ba68d2a7 100644
--- a/dev/diffs/4.0.0-preview1.diff
+++ b/dev/diffs/4.0.0-preview1.diff
@@ -2088,7 +2088,7 @@ index cd6f41b4ef4..4b6a17344bc 100644
        ParquetOutputFormat.WRITER_VERSION -> 
ParquetProperties.WriterVersion.PARQUET_2_0.toString
      )
 diff --git 
a/sql/core/src/test/scala/org/apache/spark/sql/execution/datasources/parquet/ParquetFilterSuite.scala
 
b/sql/core/src/test/scala/org/apache/spark/sql/execution/datasources/parquet/ParquetFilterSuite.scala
-index 795e9f46a8d..6285a1e388b 100644
+index 795e9f46a8d..5306c94a686 100644
 --- 
a/sql/core/src/test/scala/org/apache/spark/sql/execution/datasources/parquet/ParquetFilterSuite.scala
 +++ 
b/sql/core/src/test/scala/org/apache/spark/sql/execution/datasources/parquet/ParquetFilterSuite.scala
 @@ -1100,7 +1100,11 @@ abstract class ParquetFilterSuite extends QueryTest 
with ParquetTest with Shared
@@ -2150,17 +2150,7 @@ index 795e9f46a8d..6285a1e388b 100644
      // block 1:
      //                      null count  min                                   
    max
      // page-0                         0  0                                    
     99
-@@ -2211,7 +2225,8 @@ abstract class ParquetFilterSuite extends QueryTest with 
ParquetTest with Shared
-     }
-   }
- 
--  test("SPARK-47120: subquery literal filter pushdown") {
-+  test("SPARK-47120: subquery literal filter pushdown",
-+    IgnoreComet("TODO: 
https://github.com/apache/datafusion-comet/issues/551";)) {
-     withTable("t1", "t2") {
-       sql("create table t1(d date) using parquet")
-       sql("create table t2(d date) using parquet")
-@@ -2301,7 +2316,11 @@ class ParquetV1FilterSuite extends ParquetFilterSuite {
+@@ -2301,7 +2315,11 @@ class ParquetV1FilterSuite extends ParquetFilterSuite {
            assert(pushedParquetFilters.exists(_.getClass === filterClass),
              s"${pushedParquetFilters.map(_.getClass).toList} did not contain 
${filterClass}.")
  
@@ -2173,7 +2163,7 @@ index 795e9f46a8d..6285a1e388b 100644
          } else {
            assert(selectedFilters.isEmpty, "There is filter pushed down")
          }
-@@ -2362,7 +2381,11 @@ class ParquetV2FilterSuite extends ParquetFilterSuite {
+@@ -2362,7 +2380,11 @@ class ParquetV2FilterSuite extends ParquetFilterSuite {
            assert(pushedParquetFilters.exists(_.getClass === filterClass),
              s"${pushedParquetFilters.map(_.getClass).toList} did not contain 
${filterClass}.")
  
diff --git a/docs/source/user-guide/source.md b/docs/source/user-guide/source.md
index 71c9060c..5f5d03d9 100644
--- a/docs/source/user-guide/source.md
+++ b/docs/source/user-guide/source.md
@@ -27,7 +27,7 @@ Official source releases can be downloaded from 
https://dist.apache.org/repos/di
 
 ```console
 # Pick the latest version
-export COMET_VERSION=0.3.0
+export COMET_VERSION=0.4.0
 # Download the tarball
 curl -O 
"https://dist.apache.org/repos/dist/release/datafusion/datafusion-comet-$COMET_VERSION/apache-datafusion-comet-$COMET_VERSION.tar.gz";
 # Unpack
diff --git a/spark/src/main/scala/org/apache/comet/parquet/ParquetFilters.scala 
b/spark/src/main/scala/org/apache/comet/parquet/ParquetFilters.scala
index 17844aba..bcb23986 100644
--- a/spark/src/main/scala/org/apache/comet/parquet/ParquetFilters.scala
+++ b/spark/src/main/scala/org/apache/comet/parquet/ParquetFilters.scala
@@ -723,20 +723,22 @@ class ParquetFilters(
           .lift(nameToParquetField(name).fieldType)
           .map(_(nameToParquetField(name).fieldNames, value))
 
-      case sources.LessThan(name, value) if canMakeFilterOn(name, value) =>
+      case sources.LessThan(name, value) if (value != null) && 
canMakeFilterOn(name, value) =>
         makeLt
           .lift(nameToParquetField(name).fieldType)
           .map(_(nameToParquetField(name).fieldNames, value))
-      case sources.LessThanOrEqual(name, value) if canMakeFilterOn(name, 
value) =>
+      case sources.LessThanOrEqual(name, value)
+          if (value != null) && canMakeFilterOn(name, value) =>
         makeLtEq
           .lift(nameToParquetField(name).fieldType)
           .map(_(nameToParquetField(name).fieldNames, value))
 
-      case sources.GreaterThan(name, value) if canMakeFilterOn(name, value) =>
+      case sources.GreaterThan(name, value) if (value != null) && 
canMakeFilterOn(name, value) =>
         makeGt
           .lift(nameToParquetField(name).fieldType)
           .map(_(nameToParquetField(name).fieldNames, value))
-      case sources.GreaterThanOrEqual(name, value) if canMakeFilterOn(name, 
value) =>
+      case sources.GreaterThanOrEqual(name, value)
+          if (value != null) && canMakeFilterOn(name, value) =>
         makeGtEq
           .lift(nameToParquetField(name).fieldType)
           .map(_(nameToParquetField(name).fieldNames, value))


---------------------------------------------------------------------
To unsubscribe, e-mail: [email protected]
For additional commands, e-mail: [email protected]

Reply via email to