Skip to content

Commit 600ab27

Browse files
committed
fix ci
1 parent 7630b8a commit 600ab27

3 files changed

Lines changed: 19 additions & 9 deletions

File tree

spark/src/test/scala/org/apache/comet/CometCastSuite.scala

Lines changed: 10 additions & 5 deletions
Original file line numberDiff line numberDiff line change
@@ -21,6 +21,7 @@ package org.apache.comet
2121

2222
import java.io.File
2323

24+
import scala.collection.mutable.ListBuffer
2425
import scala.util.Random
2526
import scala.util.matching.Regex
2627

@@ -30,10 +31,11 @@ import org.apache.spark.sql.catalyst.expressions.Cast
3031
import org.apache.spark.sql.execution.adaptive.AdaptiveSparkPlanHelper
3132
import org.apache.spark.sql.functions.col
3233
import org.apache.spark.sql.internal.SQLConf
33-
import org.apache.spark.sql.types.{ArrayType, BinaryType, BooleanType, ByteType, DataType, DataTypes, DecimalType, IntegerType, LongType, ShortType, StringType, StructField, StructType}
34+
import org.apache.spark.sql.types.{ArrayType, BinaryType, BooleanType, ByteType, DataType, DataTypes, DecimalType, DoubleType, FloatType, IntegerType, LongType, ShortType, StringType, StructField, StructType}
3435

3536
import org.apache.comet.CometSparkSessionExtensions.isSpark40Plus
3637
import org.apache.comet.expressions.{CometCast, CometEvalMode}
38+
import org.apache.comet.rules.CometScanTypeChecker
3739
import org.apache.comet.serde.Compatible
3840

3941
class CometCastSuite extends CometTestBase with AdaptiveSparkPlanHelper {
@@ -1035,7 +1037,9 @@ class CometCastSuite extends CometTestBase with AdaptiveSparkPlanHelper {
10351037
}
10361038

10371039
test("cast ArrayType to StringType") {
1038-
sql("set spark.comet.explainFallback.enabled=true")
1040+
val cometScanTypeChecker = CometScanTypeChecker(conf.getConfString(CometConf.COMET_NATIVE_SCAN_IMPL.key))
1041+
val scanImpl = conf.getConfString(CometConf.COMET_NATIVE_SCAN_IMPL.key)
1042+
val hasIncompatibleType = (dt: DataType) => cometScanTypeChecker.isTypeSupported(dt, scanImpl, ListBuffer.empty)
10391043
Seq(
10401044
BooleanType,
10411045
StringType,
@@ -1046,9 +1050,10 @@ class CometCastSuite extends CometTestBase with AdaptiveSparkPlanHelper {
10461050
// FloatType,
10471051
// DoubleType,
10481052
DecimalType(10, 2),
1049-
BinaryType).foreach { tpe =>
1050-
val input = generateArrays(100, tpe)
1051-
castTest(input, StringType)
1053+
DecimalType(38,18),
1054+
BinaryType).foreach { dt =>
1055+
val input = generateArrays(100, dt)
1056+
castTest(input, StringType, hasIncompatibleType(input.schema))
10521057
}
10531058
}
10541059

spark/src/test/spark-3.5/org/apache/spark/sql/CometToPrettyStringSuite.scala

Lines changed: 6 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -21,16 +21,21 @@ package org.apache.spark.sql
2121

2222
import org.apache.comet.{CometConf, CometFuzzTestBase}
2323
import org.apache.comet.expressions.{CometCast, CometEvalMode}
24+
import org.apache.comet.rules.CometScanTypeChecker
2425
import org.apache.comet.serde.Compatible
2526
import org.apache.spark.sql.catalyst.TableIdentifier
2627
import org.apache.spark.sql.catalyst.analysis.UnresolvedAttribute
2728
import org.apache.spark.sql.catalyst.expressions.{Alias, ToPrettyString}
2829
import org.apache.spark.sql.catalyst.plans.logical.Project
2930
import org.apache.spark.sql.types.DataTypes
3031

32+
import scala.collection.mutable.ListBuffer
33+
3134
class CometToPrettyStringSuite extends CometFuzzTestBase {
3235

3336
test("ToPrettyString") {
37+
val cometScanTypeChecker = CometScanTypeChecker(conf.getConfString(CometConf.COMET_NATIVE_SCAN_IMPL.key))
38+
val scanImpl = conf.getConfString(CometConf.COMET_NATIVE_SCAN_IMPL.key)
3439
val df = spark.read.parquet(filename)
3540
df.createOrReplaceTempView("t1")
3641
val table = spark.sessionState.catalog.lookupRelation(TableIdentifier("t1"))
@@ -42,8 +47,7 @@ class CometToPrettyStringSuite extends CometFuzzTestBase {
4247
val analyzed = spark.sessionState.analyzer.execute(plan)
4348
val result: DataFrame = Dataset.ofRows(spark, analyzed)
4449
CometCast.isSupported(field.dataType, DataTypes.StringType, Some(spark.sessionState.conf.sessionLocalTimeZone), CometEvalMode.TRY) match {
45-
// `native_comet` doesn't support complex type scan, see CometScanTypeChecker#isTypeSupported for more details
46-
case _: Compatible if conf.getConfString(CometConf.COMET_NATIVE_SCAN_IMPL.key) != CometConf.SCAN_NATIVE_COMET =>
50+
case _: Compatible if cometScanTypeChecker.isTypeSupported(field.dataType, scanImpl, ListBuffer.empty) =>
4751
checkSparkAnswerAndOperator(result)
4852
case _ => checkSparkAnswer(result)
4953
}

spark/src/test/spark-4.0/org/apache/spark/sql/CometToPrettyStringSuite.scala

Lines changed: 3 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -34,6 +34,8 @@ import org.apache.spark.sql.types.DataTypes
3434
class CometToPrettyStringSuite extends CometFuzzTestBase {
3535

3636
test("ToPrettyString") {
37+
val cometScanTypeChecker = CometScanTypeChecker(conf.getConfString(CometConf.COMET_NATIVE_SCAN_IMPL.key))
38+
val scanImpl = conf.getConfString(CometConf.COMET_NATIVE_SCAN_IMPL.key)
3739
val style = List(
3840
BinaryOutputStyle.UTF8,
3941
BinaryOutputStyle.BASIC,
@@ -54,8 +56,7 @@ class CometToPrettyStringSuite extends CometFuzzTestBase {
5456
val analyzed = spark.sessionState.analyzer.execute(plan)
5557
val result: DataFrame = Dataset.ofRows(spark, analyzed)
5658
CometCast.isSupported(field.dataType, DataTypes.StringType, Some(spark.sessionState.conf.sessionLocalTimeZone), CometEvalMode.TRY) match {
57-
// `native_comet` doesn't support complex type scan, see CometScanTypeChecker#isTypeSupported for more details
58-
case _: Compatible if conf.getConfString(CometConf.COMET_NATIVE_SCAN_IMPL.key) != CometConf.SCAN_NATIVE_COMET =>
59+
case _: Compatible if cometScanTypeChecker.isTypeSupported(field.dataType, scanImpl, ListBuffer.empty) =>
5960
checkSparkAnswerAndOperator(result)
6061
case _ => checkSparkAnswer(result)
6162
}

0 commit comments

Comments
 (0)