IMPALA-3241: Send dummy filters for non-partitioned joins This is the non-partitioned hash-join counterpart for IMPALA-3141, sending dummy filters when no real filter will be produced.
Tested manually with PHJ disabled. Change-Id: I54be1e0f4282641a451bcf765c29189432dea0b3 Reviewed-on: http://gerrit.cloudera.org:8080/2649 Reviewed-by: Marcel Kornacker <[email protected]> Tested-by: Internal Jenkins Project: http://git-wip-us.apache.org/repos/asf/incubator-impala/repo Commit: http://git-wip-us.apache.org/repos/asf/incubator-impala/commit/943b7cc7 Tree: http://git-wip-us.apache.org/repos/asf/incubator-impala/tree/943b7cc7 Diff: http://git-wip-us.apache.org/repos/asf/incubator-impala/diff/943b7cc7 Branch: refs/heads/master Commit: 943b7cc7a7a5090be139f08fa4712c596870e270 Parents: 49a73cd Author: Henry Robinson <[email protected]> Authored: Mon Mar 28 16:22:23 2016 -0700 Committer: Internal Jenkins <[email protected]> Committed: Wed Mar 30 03:58:33 2016 +0000 ---------------------------------------------------------------------- be/src/exec/hash-join-node.cc | 6 ++++++ 1 file changed, 6 insertions(+) ---------------------------------------------------------------------- http://git-wip-us.apache.org/repos/asf/incubator-impala/blob/943b7cc7/be/src/exec/hash-join-node.cc ---------------------------------------------------------------------- diff --git a/be/src/exec/hash-join-node.cc b/be/src/exec/hash-join-node.cc index 7f8f410..fda90d7 100644 --- a/be/src/exec/hash-join-node.cc +++ b/be/src/exec/hash-join-node.cc @@ -24,6 +24,7 @@ #include "runtime/row-batch.h" #include "runtime/runtime-state.h" #include "util/debug-util.h" +#include "util/bloom-filter.h" #include "util/runtime-profile.h" #include "gen-cpp/PlanNodes_types.h" @@ -241,6 +242,11 @@ Status HashJoinNode::ConstructBuildSide(RuntimeState* state) { AddRuntimeExecOption("Build-Side Runtime-Filter Disabled (FP Rate Too High)"); VLOG(2) << "Disabling runtime filter build because build table is too large: " << hash_tbl_->size(); + // Send dummy filters to unblock any waiting scans. + BOOST_FOREACH(RuntimeFilter* filter, filters_) { + state->filter_bank()->UpdateFilterFromLocal(filter->filter_desc().filter_id, + BloomFilter::ALWAYS_TRUE_FILTER); + } } } return Status::OK();
