Skip to content

test: add explicit negative-count cases for array_repeat#4182

Merged
andygrove merged 1 commit intoapache:mainfrom
slavlotski:test/array-repeat-negative-counts
May 5, 2026
Merged

test: add explicit negative-count cases for array_repeat#4182
andygrove merged 1 commit intoapache:mainfrom
slavlotski:test/array-repeat-negative-counts

Conversation

@slavlotski
Copy link
Copy Markdown
Contributor

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.

Which issue does this PR close?

Closes #3176

Rationale for this change

What changes are included in this PR?

How are these changes tested?

Spark treats negative counts as zero in array_repeat, returning an
empty array. DataFusion's array_repeat (used by Comet since apache#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 apache#3176
@slavlotski
Copy link
Copy Markdown
Contributor Author

Hi @andygrove. This addresses #3176 by adding explicit negative-count assertions. The runtime behavior was already aligned by #3516 (DataFusion's array_repeat clamps c <= 0 to 0); this just locks in the parity at the Scala test level. Would appreciate a review when you have time.

Comment on lines +764 to +766
checkSparkAnswerAndOperator(sql("SELECT array_repeat(_4, -1) from t1"))
checkSparkAnswerAndOperator(
sql("SELECT array_repeat(cast(_3 as string), -5) from t1"))
Copy link
Copy Markdown
Member

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

I think these cases were already covered in the Comet SQL Tests, but no harm adding them here as well.

Copy link
Copy Markdown
Member

@andygrove andygrove left a comment

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

Thanks @slavlotski

@andygrove andygrove merged commit 9bded95 into apache:main May 5, 2026
83 checks passed
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Labels

None yet

Projects

None yet

Development

Successfully merging this pull request may close these issues.

[Incompatibility] Document array_repeat negative count handling

2 participants