Skip to content

Commit 99ff026

Browse files
committed
address comment
1 parent 2fbfab6 commit 99ff026

3 files changed

Lines changed: 12 additions & 12 deletions

File tree

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

Lines changed: 10 additions & 6 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

@@ -34,6 +35,7 @@ import org.apache.spark.sql.types.{ArrayType, BinaryType, BooleanType, ByteType,
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 {
@@ -1047,11 +1049,13 @@ class CometCastSuite extends CometTestBase with AdaptiveSparkPlanHelper {
10471049
}
10481050

10491051
test("cast ArrayType to StringType") {
1050-
val scanImpl = sys.env
1051-
.getOrElse(
1052-
"COMET_PARQUET_SCAN_IMPL",
1053-
conf.getConfString(CometConf.COMET_NATIVE_SCAN_IMPL.key, "native_comet"))
1054-
val isNativeCometScan = scanImpl == "native_comet"
1052+
val hasIncompatibleType = (dt: DataType) =>
1053+
if (CometConf.COMET_NATIVE_SCAN_IMPL.get() == "auto") {
1054+
true
1055+
} else {
1056+
!CometScanTypeChecker(CometConf.COMET_NATIVE_SCAN_IMPL.get())
1057+
.isTypeSupported(dt, "a", ListBuffer.empty)
1058+
}
10551059
Seq(
10561060
BooleanType,
10571061
StringType,
@@ -1065,7 +1069,7 @@ class CometCastSuite extends CometTestBase with AdaptiveSparkPlanHelper {
10651069
DecimalType(38, 18),
10661070
BinaryType).foreach { dt =>
10671071
val input = generateArrays(100, dt)
1068-
castTest(input, StringType, hasIncompatibleType = isNativeCometScan)
1072+
castTest(input, StringType, hasIncompatibleType = hasIncompatibleType(input.schema))
10691073
}
10701074
}
10711075

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

Lines changed: 1 addition & 3 deletions
Original file line numberDiff line numberDiff line change
@@ -34,8 +34,6 @@ 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)
3937
val df = spark.read.parquet(filename)
4038
df.createOrReplaceTempView("t1")
4139
val table = spark.sessionState.catalog.lookupRelation(TableIdentifier("t1"))
@@ -47,7 +45,7 @@ class CometToPrettyStringSuite extends CometFuzzTestBase {
4745
val analyzed = spark.sessionState.analyzer.execute(plan)
4846
val result: DataFrame = Dataset.ofRows(spark, analyzed)
4947
CometCast.isSupported(field.dataType, DataTypes.StringType, Some(spark.sessionState.conf.sessionLocalTimeZone), CometEvalMode.TRY) match {
50-
case _: Compatible if cometScanTypeChecker.isTypeSupported(field.dataType, scanImpl, ListBuffer.empty) =>
48+
case _: Compatible if CometScanTypeChecker(CometConf.COMET_NATIVE_SCAN_IMPL.get()).isTypeSupported(field.dataType, field.name, ListBuffer.empty) =>
5149
checkSparkAnswerAndOperator(result)
5250
case _ => checkSparkAnswer(result)
5351
}

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

Lines changed: 1 addition & 3 deletions
Original file line numberDiff line numberDiff line change
@@ -37,8 +37,6 @@ import org.apache.spark.sql.types.DataTypes
3737
class CometToPrettyStringSuite extends CometFuzzTestBase {
3838

3939
test("ToPrettyString") {
40-
val cometScanTypeChecker = CometScanTypeChecker(conf.getConfString(CometConf.COMET_NATIVE_SCAN_IMPL.key))
41-
val scanImpl = conf.getConfString(CometConf.COMET_NATIVE_SCAN_IMPL.key)
4240
val style = List(
4341
BinaryOutputStyle.UTF8,
4442
BinaryOutputStyle.BASIC,
@@ -59,7 +57,7 @@ class CometToPrettyStringSuite extends CometFuzzTestBase {
5957
val analyzed = spark.sessionState.analyzer.execute(plan)
6058
val result: DataFrame = Dataset.ofRows(spark, analyzed)
6159
CometCast.isSupported(field.dataType, DataTypes.StringType, Some(spark.sessionState.conf.sessionLocalTimeZone), CometEvalMode.TRY) match {
62-
case _: Compatible if cometScanTypeChecker.isTypeSupported(field.dataType, scanImpl, ListBuffer.empty) =>
60+
case _: Compatible if CometScanTypeChecker(CometConf.COMET_NATIVE_SCAN_IMPL.get()).isTypeSupported(field.dataType, field.name, ListBuffer.empty) =>
6361
checkSparkAnswerAndOperator(result)
6462
case _ => checkSparkAnswer(result)
6563
}

0 commit comments

Comments
 (0)