Skip to content

Conversation

@manishkr
Copy link
Contributor

Which issue does this PR close?

Rationale for this change

The existing implementation had issue for row or cast ops for RunArray. The equality implementation also did not support logical index-based comparisons.

What changes are included in this PR?

  1. Fixed RunArray row and cast handling
  2. Added logical index based equality check for RunArray.

Are these changes tested?

Yes

Are there any user-facing changes?

No.

@github-actions github-actions bot added the arrow Changes to the arrow crate label Jan 18, 2026
@manishkr manishkr force-pushed the 9018-fix-runarray-kernel-issues branch from 14f94b2 to da01470 Compare January 18, 2026 09:42
@manishkr manishkr force-pushed the 9018-fix-runarray-kernel-issues branch from 5842759 to 862378d Compare January 25, 2026 10:24
Copy link
Contributor

@Jefffrey Jefffrey left a comment

Choose a reason for hiding this comment

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

This looks quite good; thanks for the comments explaining the logic in the equal implementation 👍

let r_runs = r_end_phys - r_start_phys + 1;

if l_runs == r_runs {
// When the boundaries align perfectly, we don't need the complex stepping loop that calculates overlaps.
Copy link
Contributor

Choose a reason for hiding this comment

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

Thanks for these comments, they really helped my understanding of this code 👍

@manishkr manishkr force-pushed the 9018-fix-runarray-kernel-issues branch from 862378d to 9647a93 Compare January 26, 2026 09:48
@alamb
Copy link
Contributor

alamb commented Jan 26, 2026

@brancz and @vegarsti -- would you also be willing to review this PR as you have worked in this area recently?

@vegarsti
Copy link
Contributor

@brancz and @vegarsti -- would you also be willing to review this PR as you have worked in this area recently?

For sure!

Copy link
Contributor

@brancz brancz left a comment

Choose a reason for hiding this comment

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

Very cool! I'm generally happy with this implementation, but without having thought about it too much, I think this implementation may not be very auto-vectorizable by the compiler. Maybe it's impossible, or even not important, since ranges are already covered, but perhaps something to think about for future optimizations.

Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Labels

arrow Changes to the arrow crate

Projects

None yet

Development

Successfully merging this pull request may close these issues.

Kernels don't account for slicing of RunArrays

5 participants