[Feature] Support RuntimeFilter in Doris (BE Implement) (#6077)

1. support in/bloomfilter/minmax
2. support broadcast/shuffle/bucket shuffle/colocate join
3. opt memory use and cpu cache miss while build runtime filter
4. opt memory use in left semi join (works well on tpcds-95)
This commit is contained in:
stdpain
2021-07-04 20:59:05 +08:00
committed by GitHub
parent 4dd2617bd1
commit 149def9e42
56 changed files with 4039 additions and 283 deletions

View File

@ -19,8 +19,8 @@
#include <sstream>
#include "exprs/expr_context.h"
#include "exprs/anyval_util.h"
#include "exprs/expr_context.h"
#include "runtime/raw_value.h"
#include "runtime/runtime_state.h"
#include "runtime/string_value.hpp"
@ -36,12 +36,12 @@ InPredicate::InPredicate(const TExprNode& node)
InPredicate::~InPredicate() {}
Status InPredicate::prepare(RuntimeState* state, const TypeDescriptor& type) {
Status InPredicate::prepare(RuntimeState* state, HybridSetBase* hset) {
if (_is_prepare) {
return Status::OK();
}
_hybrid_set.reset(HybridSetBase::create_set(type.type));
if (NULL == _hybrid_set.get()) {
_hybrid_set.reset(hset);
if (NULL == _hybrid_set) {
return Status::InternalError("Unknown column type.");
}
_is_prepare = true;