Skip to content

fix: Robin backend join materializer and plan path support (#473)#483

Merged
eddiethedean merged 2 commits intov4.0.0from
fix/473-robin-join-plan-path
Feb 12, 2026
Merged

fix: Robin backend join materializer and plan path support (#473)#483
eddiethedean merged 2 commits intov4.0.0from
fix/473-robin-join-plan-path

Conversation

@eddiethedean
Copy link
Owner

Summary

Fixes #473: join no longer raises SparkUnsupportedOperationError: Operation 'Operations: join' is not supported when using the Robin backend with same-name join keys.

Changes

  • lazy.py: When backend is Robin and the operations queue contains join or union, skip the Robin plan path and run the materializer (op path) directly. This avoids to_robin_plan raising for join and ensures join is handled only by the materializer, which already supports same-name on.
  • materializer.py: Document in _join_on_to_column_names that different-name join keys (e.g. left["id"] == right["id_right"]) are not supported; same-name on or on="col" / on=["c1", "c2"] are supported.
  • test_robin_materializer.py: Add test_join_same_name_on_robin that runs left.join(right, on="id", how="inner").collect() with Robin and asserts row count and contents.
  • v4_behavior_changes_and_known_differences.md: Document that join uses the op path only, same-name keys supported, different-name keys not supported (with link to Robin backend: Join materializer and plan path support #473).

Expected behavior (per issue)

  • left.join(right, on="id", how="inner") runs on the op path and returns joined rows when backend is Robin.
  • Same-name join keys work (materializer already supported this).
  • Different-name keys are documented as a limitation; tests using them can be skipped or adapted.

Made with Cursor

eddiethedean and others added 2 commits February 12, 2026 10:52
- Skip Robin plan path when queue contains join or union; use materializer
  (op path) directly so join no longer hits 'Operation join is not supported'.
- Document in materializer that different-name join keys are not supported.
- Add test_join_same_name_on_robin for left.join(right, on='id', how='inner').
- Document in v4_behavior_changes: join op path only, same-name keys supported,
  different-name keys not supported.

Co-authored-by: Cursor <cursoragent@cursor.com>
Co-authored-by: Cursor <cursoragent@cursor.com>
@eddiethedean eddiethedean merged commit 781f6c1 into v4.0.0 Feb 12, 2026
@eddiethedean eddiethedean deleted the fix/473-robin-join-plan-path branch February 12, 2026 15:54
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.

1 participant