Skip to content

fix(visualization, v1.2): take the union of Network Graph's two node columns - #7518

Open
kz930 wants to merge 1 commit into
apache:release/v1.2from
kz930:backport/7327-network-graph-node-union-v1.2
Open

fix(visualization, v1.2): take the union of Network Graph's two node columns#7518
kz930 wants to merge 1 commit into
apache:release/v1.2from
kz930:backport/7327-network-graph-node-union-v1.2

Conversation

@kz930

@kz930 kz930 commented Aug 10, 2026

Copy link
Copy Markdown
Contributor

What changes were proposed in this PR?

Backport of #7327 to release/v1.2, superseding #7401. That PR's branch lives on apache/texera rather than a fork, so the conflict resolution could not be pushed to it.

The operator change is #7327's, unchanged. Network Graph built its node set with set(sources + destinations); on two pandas Series + is element-wise, so the set held each source glued to its destination rather than the union of the two columns. This takes the union in first-appearance order.

The cherry-pick's one conflict was NetworkGraphOpDescSpec.scala, which does not exist on release/v1.2 — it was created on main by #5640, which was never backported. Resolving that modify/delete by taking the whole file, which is what #7401 carries, brings across three cases asserting the assertion text names the empty field. This branch still has a bare assert(source.nonEmpty), so those three fail here: running #7401's branch as it stands gives three passed and three failed. This backport instead carries only the case #7327 added, so what lands is the one-line operator fix and the test that pins it.

Any related issues, documentation, discussions?

Backport of #7327. Originally linked #7325. Supersedes #7401, which can be closed.

How was this PR tested?

NetworkGraphOpDescSpec on this branch: one case, passing. Reverting the operator line leaves it failing. WorkflowOperator/scalafmtCheckAll and WorkflowOperator/scalafixAll --check are both clean.

The operator change is byte-identical to #7327, where it was verified by dumping and executing the generated module over rows carrying known edges.

Was this PR authored or co-authored using generative AI tooling?

Generated-by: Claude Code (Claude Opus 5)

…columns

Network Graph built its node set with `set(sources + destinations)`. On two
pandas Series `+` is element-wise, so the set held each source glued to its
destination rather than the union of the two columns; those glued values were
added to the graph as nodes, and the genuine nodes only arrived afterwards
with the edges. This takes the union instead, in first-appearance order -- a
`set` iterates strings in an order that varies between processes, which would
leave the node sequence unstable from run to run.

NetworkGraphOpDescSpec does not exist on this branch, so it arrives with the
one case asserting the node set is built as a union. Its other cases on main
belong to the not-blank validation messages, which this branch does not carry.

(backported from commit 357296d)

Co-Authored-By: Claude Opus 5 (1M context) <noreply@anthropic.com>
@github-actions

Copy link
Copy Markdown
Contributor

Automated Reviewer Suggestions

Based on the git blame history of the changed files, we recommend the following reviewers:

  • Contributors with relevant context: @aglinxinyuan
    You can notify them by mentioning @aglinxinyuan in a comment.

@kz930

kz930 commented Aug 10, 2026

Copy link
Copy Markdown
Contributor Author

@xuang7 I think this is good to merge.

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

Labels

Projects

None yet

Development

Successfully merging this pull request may close these issues.

2 participants