@@ -232,43 +232,47 @@ class CometArrayExpressionSuite extends CometTestBase with AdaptiveSparkPlanHelp
232232 }
233233
234234 test(" array_contains - test all types (native Parquet reader)" ) {
235- withTempDir { dir =>
236- val path = new Path (dir.toURI.toString, " test.parquet" )
237- val filename = path.toString
238- val random = new Random (42 )
239- withSQLConf(CometConf .COMET_ENABLED .key -> " false" ) {
240- ParquetGenerator .makeParquetFile(
241- random,
242- spark,
243- filename,
244- 100 ,
245- DataGenOptions (
246- allowNull = true ,
247- generateNegativeZero = true ,
248- generateArray = true ,
249- generateStruct = true ,
250- generateMap = false ))
251- }
252- val table = spark.read.parquet(filename)
253- table.createOrReplaceTempView(" t1" )
254- val complexTypeFields =
255- table.schema.fields.filter(field => isComplexType(field.dataType))
256- val primitiveTypeFields =
257- table.schema.fields.filterNot(field => isComplexType(field.dataType))
258- for (field <- primitiveTypeFields) {
259- val fieldName = field.name
260- val typeName = field.dataType.typeName
261- sql(s " SELECT array( $fieldName, $fieldName) as a, $fieldName as b FROM t1 " )
262- .createOrReplaceTempView(" t2" )
263- checkSparkAnswerAndOperator(sql(" SELECT array_contains(a, b) FROM t2" ))
264- checkSparkAnswerAndOperator(
265- sql(s " SELECT array_contains(a, cast(null as $typeName)) FROM t2 " ))
266- }
267- for (field <- complexTypeFields) {
268- val fieldName = field.name
269- sql(s " SELECT array( $fieldName, $fieldName) as a, $fieldName as b FROM t1 " )
270- .createOrReplaceTempView(" t3" )
271- checkSparkAnswer(sql(" SELECT array_contains(a, b) FROM t3" ))
235+ // TODO test fails if scan is auto
236+ // https://github.com/apache/datafusion-comet/issues/2173
237+ withSQLConf(CometConf .COMET_NATIVE_SCAN_IMPL .key -> CometConf .SCAN_NATIVE_COMET ) {
238+ withTempDir { dir =>
239+ val path = new Path (dir.toURI.toString, " test.parquet" )
240+ val filename = path.toString
241+ val random = new Random (42 )
242+ withSQLConf(CometConf .COMET_ENABLED .key -> " false" ) {
243+ ParquetGenerator .makeParquetFile(
244+ random,
245+ spark,
246+ filename,
247+ 100 ,
248+ DataGenOptions (
249+ allowNull = true ,
250+ generateNegativeZero = true ,
251+ generateArray = true ,
252+ generateStruct = true ,
253+ generateMap = false ))
254+ }
255+ val table = spark.read.parquet(filename)
256+ table.createOrReplaceTempView(" t1" )
257+ val complexTypeFields =
258+ table.schema.fields.filter(field => isComplexType(field.dataType))
259+ val primitiveTypeFields =
260+ table.schema.fields.filterNot(field => isComplexType(field.dataType))
261+ for (field <- primitiveTypeFields) {
262+ val fieldName = field.name
263+ val typeName = field.dataType.typeName
264+ sql(s " SELECT array( $fieldName, $fieldName) as a, $fieldName as b FROM t1 " )
265+ .createOrReplaceTempView(" t2" )
266+ checkSparkAnswerAndOperator(sql(" SELECT array_contains(a, b) FROM t2" ))
267+ checkSparkAnswerAndOperator(
268+ sql(s " SELECT array_contains(a, cast(null as $typeName)) FROM t2 " ))
269+ }
270+ for (field <- complexTypeFields) {
271+ val fieldName = field.name
272+ sql(s " SELECT array( $fieldName, $fieldName) as a, $fieldName as b FROM t1 " )
273+ .createOrReplaceTempView(" t3" )
274+ checkSparkAnswer(sql(" SELECT array_contains(a, b) FROM t3" ))
275+ }
272276 }
273277 }
274278 }
@@ -406,9 +410,11 @@ class CometArrayExpressionSuite extends CometTestBase with AdaptiveSparkPlanHelp
406410 }
407411
408412 test(" array_intersect" ) {
409- // https://github.com/apache/datafusion-comet/issues/1441
410- assume(! usingDataSourceExec)
411- withSQLConf(CometConf .COMET_EXPR_ALLOW_INCOMPATIBLE .key -> " true" ) {
413+ // TODO test fails if scan is auto
414+ // https://github.com/apache/datafusion-comet/issues/2174
415+ withSQLConf(
416+ CometConf .COMET_NATIVE_SCAN_IMPL .key -> CometConf .SCAN_NATIVE_COMET ,
417+ CometConf .COMET_EXPR_ALLOW_INCOMPATIBLE .key -> " true" ) {
412418
413419 Seq (true , false ).foreach { dictionaryEnabled =>
414420 withTempDir { dir =>
0 commit comments