Skip to content

DRILL-6861: Hash-Join should not exit after an empty probe-side spilled partition#1546

Merged
Ben-Zvi merged 1 commit intoapache:masterfrom
Ben-Zvi:DRILL-6861
Nov 20, 2018
Merged

DRILL-6861: Hash-Join should not exit after an empty probe-side spilled partition#1546
Ben-Zvi merged 1 commit intoapache:masterfrom
Ben-Zvi:DRILL-6861

Conversation

@Ben-Zvi
Copy link
Contributor

@Ben-Zvi Ben-Zvi commented Nov 20, 2018

(The DIFF below is excessive due to indentation; but only two "lines" where actually changed).

The original code below handles the spilled partitions by getting the next one (as build+probe "incoming"), and then recursively calling innerNext(). Each recursive call would end by (recursively) processing the next spilled partition.

The DRILL-6755 change (line 556) caused an early exit when the probe side was empty. Thus in special cases when a probe-side of a spilled partition was empty, this change would terminate the recursive chain early, thus not processing the remaining partitions.

The fix: When an empty probe-side spilled partition is seen - skip and process the next partition. A new check was added (line 624), and the code was altered into a "while" loop (line 618) to allow skipping.

Copy link
Contributor

@ilooner ilooner left a comment

Choose a reason for hiding this comment

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

LGTM +1

@Ben-Zvi Ben-Zvi merged commit 6ecaed7 into apache:master Nov 20, 2018
@Ben-Zvi Ben-Zvi deleted the DRILL-6861 branch November 20, 2018 20:32
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

Comments