Skip to content

disable hybrid hash table for cross join#1106

Merged
yokofly merged 1 commit intodevelopfrom
disable-hybrid-hash-table-for-cross-join
Feb 5, 2026
Merged

disable hybrid hash table for cross join#1106
yokofly merged 1 commit intodevelopfrom
disable-hybrid-hash-table-for-cross-join

Conversation

@yokofly
Copy link
Copy Markdown
Collaborator

@yokofly yokofly commented Feb 5, 2026

PR checklist:

  • Did you run ClangFormat ?
  • Did you separate headers to a different section in existing community code base ?
  • Did you surround proton: starts/ends for new code in existing community code base ?

Please write user-readable short description of the changes:

@yokofly yokofly merged commit 3b86f0d into develop Feb 5, 2026
7 of 11 checks passed
@yokofly yokofly deleted the disable-hybrid-hash-table-for-cross-join branch February 5, 2026 06:14
Copy link
Copy Markdown
Contributor

@chatgpt-codex-connector chatgpt-codex-connector bot left a comment

Choose a reason for hiding this comment

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

💡 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".

Comment on lines +1297 to 1299
/// 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())
{
Copy link
Copy Markdown
Contributor

Choose a reason for hiding this comment

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

P2 Badge 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 👍 / 👎.

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.

2 participants