forked from bloom-lang/bud
Commit
This commit does not belong to any branch on this repository, and may belong to a fork outside of the repository.
Fix bug in outer joins w/ multiple predicates.
In the previous coding, we only used the first join predicate to probe the join's hash table; the rest of the predicates were checked manually (`test_locals`). The outer join code incorrectly assumed that finding a match on the hash table probe was equivalent to finding a matching tuple for a given join input. To fix this, we could apply `test_locals` in the outer join code. However, the previous coding also imposes a performance penalty on join operators with multiple predicates. So instead, check all the join predicates by probing the hash table. One consequence is that the keys of the join hash table are now arrays, rather than scalar values. This results in a ~10% slowdown for a join microbenchmark (test/perf/join_bench.rb), which just does a ton of hash table probes. I'll look into addressing that shortly. Fixes bloom-lang#315.
- Loading branch information
1 parent
7456d6d
commit f211b10
Showing
3 changed files
with
54 additions
and
49 deletions.
There are no files selected for viewing
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters