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

agrove 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 4c640033 chore: Fix most of the scala/java build warnings (#562)
4c640033 is described below

commit 4c640033de292e6181966fa809dbd534740787c0
Author: Andy Grove <[email protected]>
AuthorDate: Thu Jun 13 12:54:35 2024 -0600

    chore: Fix most of the scala/java build warnings (#562)
    
    * fix ArrowAssoc compiler warnings
    
    * fix compiler warning: a pure expression does nothing in statement position
    
    * Stop using deprecated withRowGroupSize(Int) and use 
withRowGroupSize(Long) instead
    
    * Explicitly specify that we are catching all Throwable types
    
    * stop using deprecated methods on java.sql.Timestamp
    
    * refactor
    
    * revert whitespace changes
    
    * fix regression
    
    * add TODO
    
    * add TODO
    
    * fix two 'eliminated by erasure' warnings
    
    * address feedback
---
 .../apache/comet/CometSparkSessionExtensions.scala |   5 +-
 .../comet/CometExpressionCoverageSuite.scala       | 154 +++++++++++++--------
 .../org/apache/comet/CometExpressionSuite.scala    |   7 +-
 .../scala/org/apache/spark/sql/CometTestBase.scala |  18 +--
 4 files changed, 112 insertions(+), 72 deletions(-)

diff --git 
a/spark/src/main/scala/org/apache/comet/CometSparkSessionExtensions.scala 
b/spark/src/main/scala/org/apache/comet/CometSparkSessionExtensions.scala
index d6ec85f5..0136b62a 100644
--- a/spark/src/main/scala/org/apache/comet/CometSparkSessionExtensions.scala
+++ b/spark/src/main/scala/org/apache/comet/CometSparkSessionExtensions.scala
@@ -25,7 +25,6 @@ import org.apache.spark.SparkConf
 import org.apache.spark.internal.Logging
 import org.apache.spark.network.util.ByteUnit
 import org.apache.spark.sql.{SparkSession, SparkSessionExtensions}
-import org.apache.spark.sql.catalyst.expressions.AttributeReference
 import org.apache.spark.sql.catalyst.expressions.aggregate.{Final, Partial}
 import org.apache.spark.sql.catalyst.rules.Rule
 import org.apache.spark.sql.catalyst.trees.TreeNode
@@ -158,7 +157,7 @@ class CometSparkSessionExtensions
           // data source V1
           case scanExec @ FileSourceScanExec(
                 HadoopFsRelation(_, partitionSchema, _, _, _: 
ParquetFileFormat, _),
-                _: Seq[AttributeReference],
+                _: Seq[_],
                 requiredSchema,
                 _,
                 _,
@@ -172,7 +171,7 @@ class CometSparkSessionExtensions
           // data source v1 not supported case
           case scanExec @ FileSourceScanExec(
                 HadoopFsRelation(_, partitionSchema, _, _, _: 
ParquetFileFormat, _),
-                _: Seq[AttributeReference],
+                _: Seq[_],
                 requiredSchema,
                 _,
                 _,
diff --git 
a/spark/src/test/scala/org/apache/comet/CometExpressionCoverageSuite.scala 
b/spark/src/test/scala/org/apache/comet/CometExpressionCoverageSuite.scala
index 55d45a21..7ea2f502 100644
--- a/spark/src/test/scala/org/apache/comet/CometExpressionCoverageSuite.scala
+++ b/spark/src/test/scala/org/apache/comet/CometExpressionCoverageSuite.scala
@@ -80,62 +80,102 @@ class CometExpressionCoverageSuite extends CometTestBase 
with AdaptiveSparkPlanH
   // This can be simplified once comet supports MemoryScan, now Comet triggers 
from the FileScan
   // If MemoryScan supported we can just run Spark examples as is
   val manualTests: Map[String, (String, String)] = Map(
-    "!" -> ("select true a", "select ! true from tbl"),
-    "%" -> ("select 1 a, 2 b", "select a % b from tbl"),
-    "&" -> ("select 1 a, 2 b", "select a & b from tbl"),
-    "*" -> ("select 1 a, 2 b", "select a * b from tbl"),
-    "+" -> ("select 1 a, 2 b", "select a + b from tbl"),
-    "-" -> ("select 1 a, 2 b", "select a - b from tbl"),
-    "/" -> ("select 1 a, 2 b", "select a / b from tbl"),
-    "<" -> ("select 1 a, 2 b", "select a < b from tbl"),
-    "<=" -> ("select 1 a, 2 b", "select a <= b from tbl"),
-    "<=>" -> ("select 1 a, 2 b", "select a <=> b from tbl"),
-    "=" -> ("select 1 a, 2 b", "select a = b from tbl"),
-    "==" -> ("select 1 a, 2 b", "select a == b from tbl"),
-    ">" -> ("select 1 a, 2 b", "select a > b from tbl"),
-    ">=" -> ("select 1 a, 2 b", "select a >= b from tbl"),
-    "^" -> ("select 1 a, 2 b", "select a ^ b from tbl"),
-    "|" -> ("select 1 a, 2 b", "select a | b from tbl"),
-    "try_multiply" -> ("select 2000000 a, 30000000 b", "select try_multiply(a, 
b) from tbl"),
-    "try_add" -> ("select 2147483647 a, 1 b", "select try_add(a, b) from tbl"),
-    "try_subtract" -> ("select cast(-2147483647 as int) a, cast(1 as int) b", 
"select try_subtract(a, b) from tbl"),
-    "stack" -> ("select 1 a, 2 b", "select stack(1, a, b) from tbl"),
-    "~" -> ("select 1 a", "select ~ a from tbl"),
-    "unhex" -> ("select '537061726B2053514C' a", "select unhex(a) from tbl"),
-    "when" -> ("select 1 a, 2 b, 3 c, 4 d", "select case a > b then c else d 
end from tbl"),
-    "case" -> ("select 1 a, 2 b, 3 c, 4 d", "select case a when 1 then c else 
d end from tbl"),
-    "transform_values" -> ("select array(1, 2, 3) a", "select 
transform_values(map_from_arrays(a, a), (k, v) -> v + 1) from tbl"),
-    "transform_keys" -> ("select array(1, 2, 3) a", "select 
transform_keys(map_from_arrays(a, a), (k, v) -> v + 1) from tbl"),
-    "transform" -> ("select array(1, 2, 3) a", "select transform(a, (k, v) -> 
v + 1) from tbl"),
-    "reduce" -> ("select array(1, 2, 3) a", "select reduce(a, 0, (acc, x) -> 
acc + x) from tbl"),
-    "struct" -> ("select 1 a, 2 b", "select struct(a, b) from tbl"),
-    "space" -> ("select 1 a", "select space(a) from tbl"),
-    "sort_array" -> ("select array('b', 'd', null, 'c', 'a') a", "select 
sort_array(a) from tbl"),
-    "or" -> ("select true a, false b", "select a or b from tbl"),
-    "overlay" -> ("select 'Spark SQL' a", "select overlay(a PLACING '_' FROM 
6) from tbl"),
-    "nvl" -> ("select 1 a, cast(null as int) b", "select nvl(b, a) from tbl"),
-    "nvl2" -> ("select 1 a, cast(null as int) b, cast(null as int) c", "select 
nvl2(c, b, a) from tbl"),
-    "coalesce" -> ("select 1 a, cast(null as int) b, cast(null as int) c", 
"select coalesce(c, b, a) from tbl"),
-    "and" -> ("select true a, false b", "select a and b from tbl"),
-    "not" -> ("select true a", "select not a from tbl"),
-    "named_struct" -> ("select 1 a", "select named_struct('a', a) from tbl"),
-    "mod" -> ("select 1 a, 1 b", "select mod(b, a) from tbl"),
-    "div" -> ("select 1 a, 1 b", "select div(b, a) from tbl"),
-    "map_zip_with" -> ("select map(1, 'a', 2, 'b') a, map(1, 'x', 2, 'y') b", 
"SELECT map_zip_with(a, b, (k, v1, v2) -> concat(v1, v2)) from tbl"),
-    "map_filter" -> ("select map(1, 0, 2, 2, 3, -1) a", "SELECT map_filter(a, 
(k, v) -> k > v) from tbl"),
-    "in" -> ("select 1 a", "SELECT a in ('1', '2', '3') from tbl"),
-    "ifnull" -> ("select 1 a, cast(null as int) b", "SELECT ifnull(b, a) from 
tbl"),
-    "from_json" -> ("select '{\"a\":1, \"b\":0.8}' a", "SELECT from_json(a, 'a 
INT, b DOUBLE') from tbl"),
-    "from_csv" -> ("select '1, 0.8' a", "SELECT from_csv(a, 'a INT, b DOUBLE') 
from tbl"),
-    "forall" -> ("select array(1, 2, 3) a", "SELECT forall(a, x -> x % 2 == 0) 
from tbl"),
-    "filter" -> ("select array(1, 2, 3) a", "SELECT filter(a, x -> x % 2 == 1) 
from tbl"),
-    "exists" -> ("select array(1, 2, 3) a", "SELECT filter(a, x -> x % 2 == 0) 
from tbl"),
-    "aggregate" -> ("select array(1, 2, 3) a", "SELECT aggregate(a, 0, (acc, 
x) -> acc + x) from tbl"),
-    "extract" -> ("select TIMESTAMP '2019-08-12 01:00:00.123456' a", "SELECT 
extract(YEAR FROM a) from tbl"),
-    "datepart" -> ("select TIMESTAMP '2019-08-12 01:00:00.123456' a", "SELECT 
datepart('YEAR', a) from tbl"),
-    "date_part" -> ("select TIMESTAMP '2019-08-12 01:00:00.123456' a", "SELECT 
date_part('YEAR', a) from tbl"),
-    "cast" -> ("select '10' a", "SELECT cast(a as int) from tbl"),
-    "aes_encrypt" -> ("select 'Spark' a, '0000111122223333' b", "SELECT 
aes_encrypt(a, b) from tbl"))
+    ("!", ("select true a", "select ! true from tbl")),
+    ("%", ("select 1 a, 2 b", "select a % b from tbl")),
+    ("&", ("select 1 a, 2 b", "select a & b from tbl")),
+    ("*", ("select 1 a, 2 b", "select a * b from tbl")),
+    ("+", ("select 1 a, 2 b", "select a + b from tbl")),
+    ("-", ("select 1 a, 2 b", "select a - b from tbl")),
+    ("/", ("select 1 a, 2 b", "select a / b from tbl")),
+    ("<", ("select 1 a, 2 b", "select a < b from tbl")),
+    ("<=", ("select 1 a, 2 b", "select a <= b from tbl")),
+    ("<=>", ("select 1 a, 2 b", "select a <=> b from tbl")),
+    ("=", ("select 1 a, 2 b", "select a = b from tbl")),
+    ("==", ("select 1 a, 2 b", "select a == b from tbl")),
+    (">", ("select 1 a, 2 b", "select a > b from tbl")),
+    (">=", ("select 1 a, 2 b", "select a >= b from tbl")),
+    ("^", ("select 1 a, 2 b", "select a ^ b from tbl")),
+    ("|", ("select 1 a, 2 b", "select a | b from tbl")),
+    ("try_multiply", ("select 2000000 a, 30000000 b", "select try_multiply(a, 
b) from tbl")),
+    ("try_add", ("select 2147483647 a, 1 b", "select try_add(a, b) from tbl")),
+    (
+      "try_subtract",
+      (
+        "select cast(-2147483647 as int) a, cast(1 as int) b",
+        "select try_subtract(a, b) from tbl")),
+    ("stack", ("select 1 a, 2 b", "select stack(1, a, b) from tbl")),
+    ("~", ("select 1 a", "select ~ a from tbl")),
+    ("unhex", ("select '537061726B2053514C' a", "select unhex(a) from tbl")),
+    ("when", ("select 1 a, 2 b, 3 c, 4 d", "select case a > b then c else d 
end from tbl")),
+    ("case", ("select 1 a, 2 b, 3 c, 4 d", "select case a when 1 then c else d 
end from tbl")),
+    (
+      "transform_values",
+      (
+        "select array(1, 2, 3) a",
+        "select transform_values(map_from_arrays(a, a), (k, v), v + 1) from 
tbl")),
+    (
+      "transform_keys",
+      (
+        "select array(1, 2, 3) a",
+        "select transform_keys(map_from_arrays(a, a), (k, v), v + 1) from 
tbl")),
+    ("transform", ("select array(1, 2, 3) a", "select transform(a, (k, v), v + 
1) from tbl")),
+    ("reduce", ("select array(1, 2, 3) a", "select reduce(a, 0, (acc, x), acc 
+ x) from tbl")),
+    ("struct", ("select 1 a, 2 b", "select struct(a, b) from tbl")),
+    ("space", ("select 1 a", "select space(a) from tbl")),
+    ("sort_array", ("select array('b', 'd', null, 'c', 'a') a", "select 
sort_array(a) from tbl")),
+    ("or", ("select true a, false b", "select a or b from tbl")),
+    ("overlay", ("select 'Spark SQL' a", "select overlay(a PLACING '_' FROM 6) 
from tbl")),
+    ("nvl", ("select 1 a, cast(null as int) b", "select nvl(b, a) from tbl")),
+    (
+      "nvl2",
+      ("select 1 a, cast(null as int) b, cast(null as int) c", "select nvl2(c, 
b, a) from tbl")),
+    (
+      "coalesce",
+      (
+        "select 1 a, cast(null as int) b, cast(null as int) c",
+        "select coalesce(c, b, a) from tbl")),
+    ("and", ("select true a, false b", "select a and b from tbl")),
+    ("not", ("select true a", "select not a from tbl")),
+    ("named_struct", ("select 1 a", "select named_struct('a', a) from tbl")),
+    ("mod", ("select 1 a, 1 b", "select mod(b, a) from tbl")),
+    ("div", ("select 1 a, 1 b", "select div(b, a) from tbl")),
+    (
+      "map_zip_with",
+      (
+        "select map(1, 'a', 2, 'b') a, map(1, 'x', 2, 'y') b",
+        "SELECT map_zip_with(a, b, (k, v1, v2), concat(v1, v2)) from tbl")),
+    (
+      "map_filter",
+      ("select map(1, 0, 2, 2, 3, -1) a", "SELECT map_filter(a, (k, v), k > v) 
from tbl")),
+    ("in", ("select 1 a", "SELECT a in ('1', '2', '3') from tbl")),
+    ("ifnull", ("select 1 a, cast(null as int) b", "SELECT ifnull(b, a) from 
tbl")),
+    (
+      "from_json",
+      ("select '{\"a\":1, \"b\":0.8}' a", "SELECT from_json(a, 'a INT, b 
DOUBLE') from tbl")),
+    ("from_csv", ("select '1, 0.8' a", "SELECT from_csv(a, 'a INT, b DOUBLE') 
from tbl")),
+    ("forall", ("select array(1, 2, 3) a", "SELECT forall(a, x, x % 2 == 0) 
from tbl")),
+    ("filter", ("select array(1, 2, 3) a", "SELECT filter(a, x, x % 2 == 1) 
from tbl")),
+    ("exists", ("select array(1, 2, 3) a", "SELECT filter(a, x, x % 2 == 0) 
from tbl")),
+    (
+      "aggregate",
+      ("select array(1, 2, 3) a", "SELECT aggregate(a, 0, (acc, x), acc + x) 
from tbl")),
+    (
+      "extract",
+      (
+        "select TIMESTAMP '2019-08-12 01:00:00.123456' a",
+        "SELECT extract(YEAR FROM a) from tbl")),
+    (
+      "datepart",
+      ("select TIMESTAMP '2019-08-12 01:00:00.123456' a", "SELECT 
datepart('YEAR', a) from tbl")),
+    (
+      "date_part",
+      (
+        "select TIMESTAMP '2019-08-12 01:00:00.123456' a",
+        "SELECT date_part('YEAR', a) from tbl")),
+    ("cast", ("select '10' a", "SELECT cast(a as int) from tbl")),
+    (
+      "aes_encrypt",
+      ("select 'Spark' a, '0000111122223333' b", "SELECT aes_encrypt(a, b) 
from tbl")))
 
   // key - function name
   // value - examples
@@ -284,7 +324,7 @@ class CometExpressionCoverageSuite extends CometTestBase 
with AdaptiveSparkPlanH
                   datafusionMessage = dfMessage.getOrElse("")),
                 group = func.group)
 
-            case e =>
+            case e: Throwable =>
               CoverageResult(
                 q,
                 CoverageResultStatus.Failed,
diff --git a/spark/src/test/scala/org/apache/comet/CometExpressionSuite.scala 
b/spark/src/test/scala/org/apache/comet/CometExpressionSuite.scala
index 9a1851a5..2457f70a 100644
--- a/spark/src/test/scala/org/apache/comet/CometExpressionSuite.scala
+++ b/spark/src/test/scala/org/apache/comet/CometExpressionSuite.scala
@@ -229,9 +229,10 @@ class CometExpressionSuite extends CometTestBase with 
AdaptiveSparkPlanHelper {
               case None =>
                 Row(null, null, null)
               case Some(i) =>
-                val hour = new java.sql.Timestamp(i).getHours
-                val minute = new java.sql.Timestamp(i).getMinutes
-                val second = new java.sql.Timestamp(i).getSeconds
+                val timestamp = new java.sql.Timestamp(i).toLocalDateTime
+                val hour = timestamp.getHour
+                val minute = timestamp.getMinute
+                val second = timestamp.getSecond
 
                 Row(hour, minute, second)
             })
diff --git a/spark/src/test/scala/org/apache/spark/sql/CometTestBase.scala 
b/spark/src/test/scala/org/apache/spark/sql/CometTestBase.scala
index ddeb4fb5..97ae879a 100644
--- a/spark/src/test/scala/org/apache/spark/sql/CometTestBase.scala
+++ b/spark/src/test/scala/org/apache/spark/sql/CometTestBase.scala
@@ -172,16 +172,14 @@ abstract class CometTestBase
   protected def checkCometOperators(plan: SparkPlan, excludedClasses: 
Class[_]*): Unit = {
     val wrapped = wrapCometRowToColumnar(plan)
     wrapped.foreach {
-      case _: CometScanExec | _: CometBatchScanExec => true
-      case _: CometSinkPlaceHolder | _: CometScanWrapper => false
-      case _: CometRowToColumnarExec => false
-      case _: CometExec | _: CometShuffleExchangeExec => true
-      case _: CometBroadcastExchangeExec => true
-      case _: WholeStageCodegenExec | _: ColumnarToRowExec | _: InputAdapter 
=> true
+      case _: CometScanExec | _: CometBatchScanExec =>
+      case _: CometSinkPlaceHolder | _: CometScanWrapper =>
+      case _: CometRowToColumnarExec =>
+      case _: CometExec | _: CometShuffleExchangeExec =>
+      case _: CometBroadcastExchangeExec =>
+      case _: WholeStageCodegenExec | _: ColumnarToRowExec | _: InputAdapter =>
       case op =>
-        if (excludedClasses.exists(c => c.isAssignableFrom(op.getClass))) {
-          true
-        } else {
+        if (!excludedClasses.exists(c => c.isAssignableFrom(op.getClass))) {
           assert(
             false,
             s"Expected only Comet native operators, but found 
${op.nodeName}.\n" +
@@ -404,6 +402,8 @@ abstract class CometTestBase
       .builder(path)
       .withDictionaryEncoding(dictionaryEnabled)
       .withType(schema)
+      // TODO we need to shim this and use withRowGroupSize(Long) with later 
parquet-hadoop versions to remove
+      // the deprecated warning here
       .withRowGroupSize(rowGroupSize.toInt)
       .withPageSize(pageSize)
       .withDictionaryPageSize(dictionaryPageSize)


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

Reply via email to