disable hybrid hash table for cross join#1106
Conversation
There was a problem hiding this comment.
💡 Codex Review
Here are some automated review suggestions for this pull request.
Reviewed commit: e73ccf9b7e
ℹ️ About Codex in GitHub
Your team has set up Codex to review pull requests in this repo. Reviews are triggered when you
- Open a pull request for review
- Mark a draft as ready
- Comment "@codex review".
If Codex has suggestions, it will comment; otherwise it will react with 👍.
Codex can also answer questions or update the PR. Try commenting "@codex address that feedback".
| /// proton: starts. Enable hybrid hash table at right side for case `Stream join Table` (Only works with one disjunct) | ||
| if (streaming && settings.default_hash_join.value == HashJoinType::Hybrid && analyzed_join->oneDisjunct()) | ||
| { |
There was a problem hiding this comment.
Narrow cross-join guard to avoid disabling hybrid for OR joins
This new oneDisjunct() gate disables the streaming hybrid hash join for any JOIN with multiple OR disjuncts, not just cross/constant joins. HybridHashJoin already has a multi‑disjunct code path, so stream‑to‑table joins that previously honored default_hash_join='hybrid' will now silently fall back to the in‑memory HashJoin/ConcurrentHashJoin. For large right tables this can cause memory blowups or loss of spill/hot‑key handling compared to the prior behavior. Consider checking for an empty‑keys/cross join instead of oneDisjunct() so OR‑based joins still get hybrid.
Useful? React with 👍 / 👎.
PR checklist:
proton: starts/endsfor new code in existing community code base ?Please write user-readable short description of the changes: