Skip to content
New issue

Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.

By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.

Already on GitHub? Sign in to your account

Patch 3 #1

Closed
wants to merge 69 commits into from
Closed
Show file tree
Hide file tree
Changes from all commits
Commits
Show all changes
69 commits
Select commit Hold shift + click to select a range
3644dfa
[fix](Nereids) stddev functions not support decimalv3 type arg (#18840)
morrySnow Apr 20, 2023
b2757c4
[test](fix) Fix invalid decimal type in regresion test cases (#18844)
Gabriel39 Apr 20, 2023
c659e0b
[Improvement](bloom filter) adjust bloom filter size (#18846)
Gabriel39 Apr 20, 2023
918a244
[chore](pom) update apache pom to 29 (#18843)
yangzhg Apr 20, 2023
ea795b9
[fix](nereids)disable SelectMaterializedIndexWithAggregate rule (#18380)
starocean999 Apr 20, 2023
8e2146f
[Enhencement](Export) support export with outfile syntax (#18325)
BePPPower Apr 20, 2023
668c681
[Fix](Nereids) Check bound status in analyze straight after bounding…
LiBinfeng-01 Apr 20, 2023
c4e469c
[feature](agg) Support spill to disk in aggregation (#18051)
mrhhsg Apr 20, 2023
94509e5
[fix](editLog) add sufficient replay logic and edit log for altering …
TangSiyang2001 Apr 20, 2023
097dcf2
[fix](outfile) unify broker and hdfs path in outfile (#18809)
wsjz Apr 20, 2023
2c79f63
change function version (#18811)
yuanyuan8983 Apr 20, 2023
c6b1b9d
[Improvement](broker) support broker load from tencent Goose File Sys…
Yulei-Yang Apr 20, 2023
9e64951
[Chore](asan) set decrementOutputRecursionDepth to suppressions and r…
BiteTheDDDDt Apr 20, 2023
b26e2d5
[bugfix](memoryleak) close expr after it is pushdown to storage layer…
yiguolei Apr 20, 2023
eb93afc
[MemLeak](pipeline) fix mem leak by exchange node in pipeline (#18864)
HappenLee Apr 21, 2023
5a0c1cb
[typo](doc)Update materialized-view.md (#18826)
lljqy Apr 21, 2023
63a76ed
[refactor](exceptionsafe) disallow call new method explicitly (#18830)
yiguolei Apr 21, 2023
60640bd
[chore](cold_heat) fix cold heat case to use correct http api (#18870)
ByteYue Apr 21, 2023
c033c62
[Bug](table-function) fix wrong result when seprator of explode_split…
BiteTheDDDDt Apr 21, 2023
8cc0af1
[Fix](dynamic table) fix dynamic table with insert into and column al…
eldenmoon Apr 21, 2023
fc63747
[improvement](test) remove set global (#18807)
morningman Apr 21, 2023
b84bd15
[enhancement](Nereids) two phase read for topn (#18829)
morrySnow Apr 21, 2023
2cc811b
[typo](docs)Fix explode_json_array document error (#18867)
liujiwen-up Apr 21, 2023
ae76b59
[fix](external table) Use FederationBackendPolicy in Coordinator for …
Jibing-Li Apr 21, 2023
1a6401d
[enchancement](statistics) support sampling collection of statistics …
weizhengte Apr 21, 2023
063dfef
[fix](planner) Failed to create table with CTAS when multiple varchar…
Kikyou1997 Apr 21, 2023
0c26f8d
[refactor](Nereids): move out misunderstanding func from JoinUtils (#…
jackwener Apr 21, 2023
c41b486
[fix](nereids) LogicalProject should always has non-empty project lis…
starocean999 Apr 21, 2023
3007cd4
[enhancement](mysql) enable two-way ssl authentication (#18530)
Xiaoccer Apr 21, 2023
ec1ab1a
[Improve](GEO)wkb input and output are represented as hexadecimal str…
LemonLiTree Apr 21, 2023
dba27a6
[typo](docs) fix docs SHOW-COLUMNS.md (#18875)
xutaoustc Apr 21, 2023
5570b57
[typo](doc)fix invalid url (#18855)
hechao-ustc Apr 21, 2023
c82964a
[typo](doc) Fixed typos in lateral-view.md (#18842)
zzzzzzzs Apr 21, 2023
c72a46f
[Improvement](bitmap-filter) enable bitmap runtime filter in fuzzy mo…
Apr 21, 2023
5706bef
[feature](common) Add unexpected/result support (#18312)
JackDrogon Apr 21, 2023
af20b2c
[Bug](topn opt) Fix be crash when enable topn opt with larger thresho…
eldenmoon Apr 21, 2023
317d9ee
[feat](Nereids): Simplify Agg GroupBy (#18887)
jackwener Apr 21, 2023
0ae3a6d
[bug](bdbje) Add retry for reSetupBdbEnvironment() `restore.execute()…
SWJTU-ZhangLei Apr 21, 2023
f7651d8
(fix)[olap] not support in_memory=true now (#18731)
nextdreamblue Apr 21, 2023
425101b
[fix](test)Move broker test to p2. Move test data to cos in Beijing r…
Jibing-Li Apr 21, 2023
313fab0
[fix](mtmv) fix mtmv thread interruption issue (#18884)
morningman Apr 21, 2023
d56fed3
[chore](doc) fix mv doc typo and cold heat separation (#18892)
ByteYue Apr 21, 2023
6eea3d9
[Test](multi-catalog) Fix test_hive_parquet regression test order iss…
kaka11chen Apr 21, 2023
5db0b66
update doc (#18871)
JNSimba Apr 21, 2023
24ee391
[bugfix](memoryleak) inlist is memory leak if the type is int (#18883)
yiguolei Apr 21, 2023
de0e89d
[feature](function) Modified cast as time to behave more like MySQL …
Mryange Apr 21, 2023
b75f4c9
[function](string) support char function (#18878)
jacktengg Apr 22, 2023
a1c05b5
[fix](compaction) fix potential null pointer dereference (#18915)
gitccl Apr 22, 2023
13894ae
[fix](jdbc catalog) Use default value if the user does not set the po…
BePPPower Apr 22, 2023
a49311b
[typo](doc) Fixed typos in DROP-CATALOG.md (#18909)
zzzzzzzs Apr 22, 2023
04d18ee
[Improve](be)check max open file #18888
zddr Apr 22, 2023
c80dc91
[bugfix](memleak) UserFunctionCache may have memory leak during close…
yiguolei Apr 22, 2023
814f129
[feat](Nereids): validate Project list. (#18868)
jackwener Apr 22, 2023
1ffd34f
[Refact](type system)refact interconversion for jsonb with column (#…
amorynan Apr 22, 2023
1ff2ccc
[Fix](docker) Fix regression test docker issues. (#18928)
kaka11chen Apr 22, 2023
fd905b6
[refactor](jdbc) close datasource if no need to maintain the cache (#…
zhangstar333 Apr 22, 2023
34ce946
[tools](profile) add script file to get all tree profiles off a query…
jacktengg Apr 22, 2023
e44aad2
[typo](docs)add new attention of doris flink connector (#18930)
lsy3993 Apr 22, 2023
bc379ee
[doc](show-rollup)delete SHOW-ROLLUP doc. (#18924)
smallhibiscus Apr 22, 2023
e7ad536
[scirpte](download) add 1.2.4 download script (#18932)
morningman Apr 22, 2023
9756be6
[improvement](stream-load) use vector instead of skiplist when insert…
hust-hhb Apr 23, 2023
b81b470
[fix](planner) fix pr "using crchash replace murmurhash in the runtim…
Mryange Apr 23, 2023
29f5023
[opt](FileReader) merge small IO to optimize read performace (#18796)
AshinGau Apr 23, 2023
61b4410
[bugfix](asan) fix possible asan check bug in exception to string (#1…
yiguolei Apr 23, 2023
166bed1
[Enchancement](auth) Forbid to login doris from 127.0.0.1 without pas…
Cai-Yao Apr 23, 2023
63e8fb7
[chore](regression) Add 'sync' after stream_load in some cases (#18945)
mrhhsg Apr 23, 2023
0da2cf2
[improvement](fetch data) Merge result into batch to reduce rpc times…
zenoyang Apr 23, 2023
2c77658
[doc](releasenote)release 1.2.4 (#18934)
luzhijing Apr 23, 2023
2514d55
[Chore](CI)Enable sonar and judge the running environment to decide w…
CalvinKirs Apr 23, 2023
File filter

Filter by extension

Filter by extension


Conversations
Failed to load comments.
Loading
Jump to
The table of contents is too big for display.
Diff view
Diff view
  •  
  •  
  •  
5 changes: 4 additions & 1 deletion .github/workflows/sonarcloud.yml
Original file line number Diff line number Diff line change
Expand Up @@ -21,7 +21,6 @@ on:
push:
branches:
- master
types: [closed]

jobs:
build:
Expand Down Expand Up @@ -79,6 +78,10 @@ jobs:
GITHUB_TOKEN: ${{ secrets.GITHUB_TOKEN }} # Needed to get PR information, if any
SONAR_TOKEN: ${{ secrets.SONAR_TOKEN }}
run: |
if [ ! "$SONAR_TOKEN" ]; then
echo "SONAR_TOKEN environment is null, skip check"
exit 0
fi
cd fe
mvn -B verify org.sonarsource.scanner.maven:sonar-maven-plugin:sonar -Dsonar.projectKey=apache_incubator-doris -DskipTests
# scanner be
Expand Down
6 changes: 5 additions & 1 deletion .licenserc.yaml
Original file line number Diff line number Diff line change
Expand Up @@ -37,7 +37,6 @@ header:
- "**/*.sql"
- "**/*.lock"
- "**/*.out"
- "tsan_suppressions"
- "docs/.markdownlintignore"
- "fe/fe-core/src/test/resources/data/net_snmp_normal"
- "fe/fe-core/src/main/antlr4/org/apache/doris/nereids/JavaLexer.g4"
Expand Down Expand Up @@ -81,6 +80,11 @@ header:
- "docker/thirdparties/docker-compose/hive/scripts/create_tpch1_parquet.hql"
- "docker/thirdparties/docker-compose/hive/scripts/preinstalled_data/"
- "docker/thirdparties/docker-compose/iceberg/spark-defaults.conf.tpl"
- "conf/mysql_ssl_default_certificate/*"
- "conf/mysql_ssl_default_certificate/client_certificate/ca.pem"
- "conf/mysql_ssl_default_certificate/client_certificate/client-cert.pem"
- "conf/mysql_ssl_default_certificate/client_certificate/client-key.pem"
- "regression-test/ssl_default_certificate/*"
- "extension/beats/go.mod"
- "extension/beats/go.sum"

Expand Down
1 change: 0 additions & 1 deletion .rat-excludes
Original file line number Diff line number Diff line change
Expand Up @@ -35,5 +35,4 @@ condition_variable.*
murmur_hash3.*
utf8_check.cpp
.markdownlintignore
tsan_suppressions
sse2neon.h
2 changes: 1 addition & 1 deletion README.md
Original file line number Diff line number Diff line change
Expand Up @@ -37,7 +37,7 @@ Apache Doris is an easy-to-use, high-performance and real-time analytical databa
All this makes Apache Doris an ideal tool for scenarios including report analysis, ad-hoc query, unified data warehouse, and data lake query acceleration. On Apache Doris, users can build various applications, such as user behavior analysis, AB test platform, log retrieval analysis, user portrait analysis, and order analysis.


🎉 Version 1.2.3 released now! It is fully evolved release and all users are encouraged to upgrade to this release. Check out the 🔗[Release Notes](https://doris.apache.org/docs/dev/releasenotes/release-1.2.3) here.
🎉 Version 1.2.4 released now! It is fully evolved release and all users are encouraged to upgrade to this release. Check out the 🔗[Release Notes](https://doris.apache.org/docs/dev/releasenotes/release-1.2.4) here.

🎉 Version 1.1.5 released now. It is a stability improvement and bugfix release based on version 1.1. Check out the 🔗[Release Notes](https://doris.apache.org/docs/dev/releasenotes/release-1.1.5) here.

Expand Down
1 change: 1 addition & 0 deletions be/CMakeLists.txt
Original file line number Diff line number Diff line change
Expand Up @@ -1016,6 +1016,7 @@ install(FILES
${BASE_DIR}/../conf/be.conf
${BASE_DIR}/../conf/odbcinst.ini
${BASE_DIR}/../conf/asan_suppr.conf
${BASE_DIR}/../conf/lsan_suppr.conf
${BASE_DIR}/../conf/hdfs-site.xml
DESTINATION ${OUTPUT_DIR}/conf)

Expand Down
5 changes: 1 addition & 4 deletions be/src/common/exception.h
Original file line number Diff line number Diff line change
Expand Up @@ -45,10 +45,7 @@ class Exception : public std::exception {
Exception(int code, const std::string_view fmt, Args&&... args)
: Exception(code, fmt::format(fmt, std::forward<Args>(args)...)) {}

std::string code_as_string() const {
return (int)_code >= 0 ? doris::to_string(static_cast<TStatusCode::type>(_code))
: fmt::format("E{}", (int16_t)_code);
}
std::string code_as_string() const { return fmt::format("E{}", _code); }

int code() const { return _code; }

Expand Down
48 changes: 48 additions & 0 deletions be/src/common/expected.h
Original file line number Diff line number Diff line change
@@ -0,0 +1,48 @@
// Licensed to the Apache Software Foundation (ASF) under one
// or more contributor license agreements. See the NOTICE file
// distributed with this work for additional information
// regarding copyright ownership. The ASF licenses this file
// to you under the Apache License, Version 2.0 (the
// "License"); you may not use this file except in compliance
// with the License. You may obtain a copy of the License at
//
// http://www.apache.org/licenses/LICENSE-2.0
//
// Unless required by applicable law or agreed to in writing,
// software distributed under the License is distributed on an
// "AS IS" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY
// KIND, either express or implied. See the License for the
// specific language governing permissions and limitations
// under the License.

#pragma once

#ifndef __cplusplus
#error need cpp support
#endif

#if __cplusplus <= 202002L
#include "util/expected.hpp"
namespace doris {
template <typename T, typename E>
using expected = tl::expected<T, E>;
template <typename E>
using unexpected = tl::unexpected<E>;
template <class E>
using bad_expected_access = tl::bad_expected_access<E>;
using unexpect_t = tl::unexpect_t;
using tl::unexpect; // NOLINT
} // namespace doris
#else
#include <expected>
namespace doris {
template <typename T, typename E>
using expected = std::expected<T, E>;
template <typename E>
using unexpected = std::unexpected<E>;
template <class E>
using bad_expected_access = std::bad_expected_access<E>;
using unexpect_t = std::unexpect_t;
using std::unexpect; // NOLINT
} // namespace doris
#endif
55 changes: 55 additions & 0 deletions be/src/common/factory_creator.h
Original file line number Diff line number Diff line change
@@ -0,0 +1,55 @@
// Licensed to the Apache Software Foundation (ASF) under one
// or more contributor license agreements. See the NOTICE file
// distributed with this work for additional information
// regarding copyright ownership. The ASF licenses this file
// to you under the Apache License, Version 2.0 (the
// "License"); you may not use this file except in compliance
// with the License. You may obtain a copy of the License at
//
// http://www.apache.org/licenses/LICENSE-2.0
//
// Unless required by applicable law or agreed to in writing,
// software distributed under the License is distributed on an
// "AS IS" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY
// KIND, either express or implied. See the License for the
// specific language governing permissions and limitations
// under the License.

#pragma once
#include <memory>

// All object should inherit from this class, like
// class A {
// DISALLOW_EXPILICT_NEW(A);
// };
//
// Then the caller could not call new A() any more, has to call A::create_shared(...)
// or A::create_unique(...), then we could make sure all object in our project is shared
// pointer.
// But could call A a(...);

// A macro to disallow the copy constructor and operator= functions
// This should be used in the private: declarations for a class
//
// Not use template like cowhelper to implements this feature because it has problem
// during inherits
// TODO try to allow make_unique
//
#define ENABLE_FACTORY_CREATOR(TypeName) \

Choose a reason for hiding this comment

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

warning: macro is not used [clang-diagnostic-unused-macros]

#define ENABLE_FACTORY_CREATOR(TypeName)                                                     \
        ^

private: \
void* operator new(std::size_t size) { return ::operator new(size); } \
void* operator new[](std::size_t size) { return ::operator new[](size); } \
\
public: \
void* operator new(std::size_t count, void* ptr) { return ::operator new(count, ptr); } \
void operator delete(void* ptr) noexcept { ::operator delete(ptr); } \
void operator delete[](void* ptr) noexcept { ::operator delete[](ptr); } \
void operator delete(void* ptr, void* place) noexcept { ::operator delete(ptr, place); } \
template <typename... Args> \
static std::shared_ptr<TypeName> create_shared(Args&&... args) { \
return std::make_shared<TypeName>(std::forward<Args>(args)...); \
} \
template <typename... Args> \
static std::unique_ptr<TypeName> create_unique(Args&&... args) { \
return std::unique_ptr<TypeName>(new TypeName(std::forward<Args>(args)...)); \
}
15 changes: 15 additions & 0 deletions be/src/exprs/block_bloom_filter.hpp
Original file line number Diff line number Diff line change
Expand Up @@ -78,6 +78,13 @@ class BlockBloomFilter {
}
}

// This function is only to be used if the be_exec_version may be less than 2. If updated, please delete it.
void insert_crc32_hash(const Slice& key) noexcept {
if (key.data) {
insert(HashUtil::crc_hash(key.data, key.size, _hash_seed));
}
}

#ifdef __AVX2__

static inline ATTRIBUTE_ALWAYS_INLINE __attribute__((__target__("avx2"))) __m256i make_mark(
Expand Down Expand Up @@ -124,6 +131,14 @@ class BlockBloomFilter {
}
}

// This function is only to be used if the be_exec_version may be less than 2. If updated, please delete it.
bool find_crc32_hash(const Slice& key) const noexcept {
if (key.data) {
return find(HashUtil::crc_hash(key.data, key.size, _hash_seed));
} else {
return false;
}
}
// Computes the logical OR of this filter with 'other' and stores the result in this
// filter.
// Notes:
Expand Down
63 changes: 63 additions & 0 deletions be/src/exprs/bloom_filter_func.h
Original file line number Diff line number Diff line change
Expand Up @@ -53,8 +53,23 @@ class BloomFilterAdaptor {
return _bloom_filter->find(data);
}

// This function is only to be used if the be_exec_version may be less than 2. If updated, please delete it.
template <typename T>
bool test_new_hash(T data) const {
if constexpr (std::is_same_v<T, Slice>) {
return _bloom_filter->find_crc32_hash(data);
} else {
return _bloom_filter->find(data);
}
}

void add_bytes(const char* data, size_t len) { _bloom_filter->insert(Slice(data, len)); }

// This function is only to be used if the be_exec_version may be less than 2. If updated, please delete it.
void add_bytes_new_hash(const char* data, size_t len) {
_bloom_filter->insert_crc32_hash(Slice(data, len));
}

// test_element/find_element only used on vectorized engine
template <typename T>
bool test_element(T element) const {
Expand Down Expand Up @@ -198,8 +213,14 @@ class BloomFilterFuncBase {

virtual void insert(const void* data) = 0;

// This function is only to be used if the be_exec_version may be less than 2. If updated, please delete it.
virtual void insert_crc32_hash(const void* data) = 0;

virtual bool find(const void* data) const = 0;

// This function is only to be used if the be_exec_version may be less than 2. If updated, please delete it.
virtual bool find_crc32_hash(const void* data) const = 0;

virtual bool find_olap_engine(const void* data) const = 0;

virtual bool find_uint32_t(uint32_t data) const = 0;
Expand Down Expand Up @@ -343,13 +364,32 @@ struct StringFindOp {
bloom_filter.add_bytes(value->data, value->size);
}
}

// This function is only to be used if the be_exec_version may be less than 2. If updated, please delete it.
void insert_crc32_hash(BloomFilterAdaptor& bloom_filter, const void* data) const {
const auto* value = reinterpret_cast<const StringRef*>(data);
if (value) {
bloom_filter.add_bytes_new_hash(value->data, value->size);
}
}

bool find(const BloomFilterAdaptor& bloom_filter, const void* data) const {
const auto* value = reinterpret_cast<const StringRef*>(data);
if (value == nullptr) {
return false;
}
return bloom_filter.test(Slice(value->data, value->size));
}

//This function is only to be used if the be_exec_version may be less than 2. If updated, please delete it.
bool find_crc32_hash(const BloomFilterAdaptor& bloom_filter, const void* data) const {
const auto* value = reinterpret_cast<const StringRef*>(data);
if (value == nullptr) {
return false;
}
return bloom_filter.test_new_hash(Slice(value->data, value->size));
}

bool find_olap_engine(const BloomFilterAdaptor& bloom_filter, const void* data) const {
return StringFindOp::find(bloom_filter, data);
}
Expand Down Expand Up @@ -463,6 +503,18 @@ class BloomFilterFunc final : public BloomFilterFuncBase {
dummy.insert(*_bloom_filter, data);
}

// This function is only to be used if the be_exec_version may be less than 2. If updated, please delete it.
void insert_crc32_hash(const void* data) override {
if constexpr (std::is_same_v<typename BloomFilterTypeTraits<type>::FindOp, StringFindOp> ||
std::is_same_v<typename BloomFilterTypeTraits<type>::FindOp,
FixedStringFindOp>) {
DCHECK(_bloom_filter != nullptr);
dummy.insert_crc32_hash(*_bloom_filter, data);
} else {
insert(data);
}
}

void insert_fixed_len(const char* data, const int* offsets, int number) override {
DCHECK(_bloom_filter != nullptr);
dummy.insert_batch(*_bloom_filter, data, offsets, number);
Expand All @@ -489,6 +541,17 @@ class BloomFilterFunc final : public BloomFilterFuncBase {
return dummy.find(*_bloom_filter, data);
}

// This function is only to be used if the be_exec_version may be less than 2. If updated, please delete it.
bool find_crc32_hash(const void* data) const override {
if constexpr (std::is_same_v<typename BloomFilterTypeTraits<type>::FindOp, StringFindOp> ||
std::is_same_v<typename BloomFilterTypeTraits<type>::FindOp,
FixedStringFindOp>) {
DCHECK(_bloom_filter != nullptr);
return dummy.find_crc32_hash(*_bloom_filter, data);
}
return find(data);
}

bool find_olap_engine(const void* data) const override {
return dummy.find_olap_engine(*_bloom_filter, data);
}
Expand Down
29 changes: 24 additions & 5 deletions be/src/exprs/runtime_filter.cpp
Original file line number Diff line number Diff line change
Expand Up @@ -353,7 +353,8 @@ class RuntimePredicateWrapper {
_fragment_instance_id(params->fragment_instance_id),
_filter_id(params->filter_id),
_use_batch(IRuntimeFilter::enable_use_batch(_state->be_exec_version(),
_column_return_type)) {}
_column_return_type)),
_use_new_hash(_state->be_exec_version() >= 2) {}
// for a 'tmp' runtime predicate wrapper
// only could called assign method or as a param for merge
RuntimePredicateWrapper(RuntimeState* state, ObjectPool* pool, PrimitiveType column_type,
Expand All @@ -366,7 +367,8 @@ class RuntimePredicateWrapper {
_fragment_instance_id(fragment_instance_id),
_filter_id(filter_id),
_use_batch(IRuntimeFilter::enable_use_batch(_state->be_exec_version(),
_column_return_type)) {}
_column_return_type)),
_use_new_hash(_state->be_exec_version() >= 2) {}
// init runtime filter wrapper
// alloc memory to init runtime filter function
Status init(const RuntimeFilterParams* params) {
Expand Down Expand Up @@ -430,7 +432,12 @@ class RuntimePredicateWrapper {
}
} else {
while (it->has_next()) {
bloom_filter->insert(it->get_value());
if (_use_new_hash) {
bloom_filter->insert_crc32_hash(it->get_value());
} else {
bloom_filter->insert(it->get_value());
}

it->next();
}
}
Expand All @@ -453,12 +460,20 @@ class RuntimePredicateWrapper {
break;
}
case RuntimeFilterType::BLOOM_FILTER: {
_context.bloom_filter_func->insert(data);
if (_use_new_hash) {
_context.bloom_filter_func->insert_crc32_hash(data);
} else {
_context.bloom_filter_func->insert(data);
}
break;
}
case RuntimeFilterType::IN_OR_BLOOM_FILTER: {
if (_is_bloomfilter) {
_context.bloom_filter_func->insert(data);
if (_use_new_hash) {
_context.bloom_filter_func->insert_crc32_hash(data);
} else {
_context.bloom_filter_func->insert(data);
}
} else {
_context.hybrid_set->insert(data);
}
Expand Down Expand Up @@ -1036,6 +1051,10 @@ class RuntimePredicateWrapper {

// When _column_return_type is invalid, _use_batch will be always false.
bool _use_batch;

// When _use_new_hash is set to true, use the new hash method.
// This is only to be used if the be_exec_version may be less than 2. If updated, please delete it.
const bool _use_new_hash;
};

Status IRuntimeFilter::create(RuntimeState* state, ObjectPool* pool, const TRuntimeFilterDesc* desc,
Expand Down
Loading