This is an automated email from the ASF dual-hosted git repository.
lihaopeng pushed a commit to branch branch-1.2-lts
in repository https://gitbox.apache.org/repos/asf/doris.git
The following commit(s) were added to refs/heads/branch-1.2-lts by this push:
new 7212bc5b1d [vectorized][cherry-pick] remove unless null key when no
split in convert key range (#18506)
7212bc5b1d is described below
commit 7212bc5b1d3da71896bf54b291499e1654e690fb
Author: zhangstar333 <[email protected]>
AuthorDate: Mon Apr 10 17:32:50 2023 +0800
[vectorized][cherry-pick] remove unless null key when no split in convert
key range (#18506)
---
be/src/exec/olap_common.h | 14 +++++++-------
be/src/vec/exec/scan/new_olap_scan_node.cpp | 2 +-
be/src/vec/exec/scan/new_olap_scanner.cpp | 3 +--
be/src/vec/exec/scan/new_olap_scanner.h | 3 +--
4 files changed, 10 insertions(+), 12 deletions(-)
diff --git a/be/src/exec/olap_common.h b/be/src/exec/olap_common.h
index 6ac6559996..5f11f56899 100644
--- a/be/src/exec/olap_common.h
+++ b/be/src/exec/olap_common.h
@@ -598,13 +598,6 @@ bool
ColumnValueRange<primitive_type>::convert_to_avg_range_value(
max_value.set_type(TimeType::TIME_DATE);
}
- if (contain_null()) {
- begin_scan_keys.emplace_back();
- begin_scan_keys.back().add_null();
- end_scan_keys.emplace_back();
- end_scan_keys.back().add_null();
- }
-
if (min_value > max_value || max_scan_key_num == 1) {
return no_split();
}
@@ -628,6 +621,13 @@ bool
ColumnValueRange<primitive_type>::convert_to_avg_range_value(
return no_split();
}
+ // Add null key if contain null, must do after no_split check
+ if (contain_null()) {
+ begin_scan_keys.emplace_back();
+ begin_scan_keys.back().add_null();
+ end_scan_keys.emplace_back();
+ end_scan_keys.back().add_null();
+ }
while (true) {
begin_scan_keys.emplace_back();
begin_scan_keys.back().add_value(
diff --git a/be/src/vec/exec/scan/new_olap_scan_node.cpp
b/be/src/vec/exec/scan/new_olap_scan_node.cpp
index 076b9f89ea..950926eb8b 100644
--- a/be/src/vec/exec/scan/new_olap_scan_node.cpp
+++ b/be/src/vec/exec/scan/new_olap_scan_node.cpp
@@ -394,7 +394,7 @@ Status
NewOlapScanNode::_init_scanners(std::list<VScanner*>* scanners) {
NewOlapScanner* scanner = new NewOlapScanner(
_state, this, _limit_per_scanner,
_olap_scan_node.is_preaggregation,
- _need_agg_finalize, *scan_range, _scanner_profile.get());
+ _need_agg_finalize, _scanner_profile.get());
// add scanner to pool before doing prepare.
// so that scanner can be automatically deconstructed if prepare
failed.
_scanner_pool.add(scanner);
diff --git a/be/src/vec/exec/scan/new_olap_scanner.cpp
b/be/src/vec/exec/scan/new_olap_scanner.cpp
index 08da003a5b..a1af97a062 100644
--- a/be/src/vec/exec/scan/new_olap_scanner.cpp
+++ b/be/src/vec/exec/scan/new_olap_scanner.cpp
@@ -24,8 +24,7 @@
namespace doris::vectorized {
NewOlapScanner::NewOlapScanner(RuntimeState* state, NewOlapScanNode* parent,
int64_t limit,
- bool aggregation, bool need_agg_finalize,
- const TPaloScanRange& scan_range,
RuntimeProfile* profile)
+ bool aggregation, bool need_agg_finalize,
RuntimeProfile* profile)
: VScanner(state, static_cast<VScanNode*>(parent), limit, profile),
_aggregation(aggregation),
_need_agg_finalize(need_agg_finalize),
diff --git a/be/src/vec/exec/scan/new_olap_scanner.h
b/be/src/vec/exec/scan/new_olap_scanner.h
index 04d805ee38..d015d92bc4 100644
--- a/be/src/vec/exec/scan/new_olap_scanner.h
+++ b/be/src/vec/exec/scan/new_olap_scanner.h
@@ -35,8 +35,7 @@ struct FilterPredicates;
class NewOlapScanner : public VScanner {
public:
NewOlapScanner(RuntimeState* state, NewOlapScanNode* parent, int64_t
limit, bool aggregation,
- bool need_agg_finalize, const TPaloScanRange& scan_range,
- RuntimeProfile* profile);
+ bool need_agg_finalize, RuntimeProfile* profile);
Status open(RuntimeState* state) override;
---------------------------------------------------------------------
To unsubscribe, e-mail: [email protected]
For additional commands, e-mail: [email protected]