Skip to content

fix: [branch-1.2] copy rows retained by identity broadcasts (#7260) - #7314

Open
andygrove wants to merge 3 commits into
apache:branch-1.2from
andygrove:backport-7260-branch-1.2
Open

andygrove wants to merge 3 commits into
apache:branch-1.2from
andygrove:backport-7260-branch-1.2

Conversation

@andygrove

Copy link
Copy Markdown
Member

Which issue does this PR close?

Backport of #7260 to branch-1.2. Part of #6741 on main; #7260 does not close it.

Rationale for this change

An identity broadcast retains every input row, but the JVM columnar-to-row converters reuse their row object. Materializing that iterator can repeat the last row of each batch instead of keeping the build rows, so the broadcast build side returns wrong results. branch-1.2 has the bug, so it needs the fix before 1.2.0 ships.

branch-1.2 is the newest release branch, so no newer branch needs a backport. #7260 carries no backport-1.1 label, so no branch-1.1 backport is part of this.

What changes are included in this PR?

git cherry-pick -x 84944e98d8 of the squash commit of #7260, with one adaptation. The pick conflicted in the import block of CometExecRuleSuite.scala, because branch-1.2's import list is shorter than main's. I kept branch-1.2's list and added InternalRow; IdentityBroadcastMode merged cleanly. CometColumnarToRowExec.scala is identical to the source commit.

How are these changes tested?

On this branch, with a libcomet built from branch-1.2 plus #7085 (this change touches no native code):

  • ./mvnw test-compile passes, including scalastyle.
  • CometExecRuleSuite passes: 99 succeeded, 0 failed, including columnar-to-row identity broadcasts retain every build row.
  • With CometColumnarToRowExec.scala reverted to branch-1.2, that test fails (98 succeeded, 1 failed), so the branch has the bug and the test catches it.

@andygrove andygrove added bug Something isn't working area:ffi Arrow FFI / JNI boundary labels Oct 29, 2026
GitHub retires the macos-14 runner image on November 2, 2026 and is
already cancelling jobs on it during scheduled brownouts.

(cherry picked from commit 2d168e8)
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Labels

area:ffi Arrow FFI / JNI boundary bug Something isn't working

Projects

None yet

Development

Successfully merging this pull request may close these issues.

3 participants