From 5c08ecccdb3476b061a1aa114387971fe78d4b43 Mon Sep 17 00:00:00 2001 From: Vlad Slavlotski Date: Sat, 2 May 2026 16:00:24 +0500 Subject: [PATCH] test: add explicit negative-count cases for array_repeat Spark treats negative counts as zero in array_repeat, returning an empty array. DataFusion's array_repeat (used by Comet since #3516) already matches this: get_count_with_validity clamps c <= 0 to 0. The existing SQL-file test covers a (1, -1) row, but the Scala-level test in CometArrayExpressionSuite did not assert this case. Add two assertions (integer column + string-cast column) so the parity is locked in against future regressions. Closes #3176 --- .../scala/org/apache/comet/CometArrayExpressionSuite.scala | 3 +++ 1 file changed, 3 insertions(+) diff --git a/spark/src/test/scala/org/apache/comet/CometArrayExpressionSuite.scala b/spark/src/test/scala/org/apache/comet/CometArrayExpressionSuite.scala index 0abf4e4e9e..48b8905035 100644 --- a/spark/src/test/scala/org/apache/comet/CometArrayExpressionSuite.scala +++ b/spark/src/test/scala/org/apache/comet/CometArrayExpressionSuite.scala @@ -761,6 +761,9 @@ class CometArrayExpressionSuite extends CometTestBase with AdaptiveSparkPlanHelp checkSparkAnswerAndOperator(sql("SELECT array_repeat(_4, null) from t1")) checkSparkAnswerAndOperator(sql("SELECT array_repeat(_4, 0) from t1")) + checkSparkAnswerAndOperator(sql("SELECT array_repeat(_4, -1) from t1")) + checkSparkAnswerAndOperator( + sql("SELECT array_repeat(cast(_3 as string), -5) from t1")) checkSparkAnswerAndOperator( sql("SELECT array_repeat(_2, 5) from t1 where _2 is not null")) checkSparkAnswerAndOperator(