You are viewing a plain text version of this content. The canonical link for it is here.
Posted to commits@doris.apache.org by yi...@apache.org on 2022/06/17 00:41:52 UTC

[incubator-doris] branch master updated: [FOLLOWUP] cherrypick after refactoring scan nodes (#10177)

This is an automated email from the ASF dual-hosted git repository.

yiguolei pushed a commit to branch master
in repository https://gitbox.apache.org/repos/asf/incubator-doris.git


The following commit(s) were added to refs/heads/master by this push:
     new 6f5f447aa3 [FOLLOWUP] cherrypick after refactoring scan nodes (#10177)
6f5f447aa3 is described below

commit 6f5f447aa31a3c7d4a1fd39b43990e856683432b
Author: Gabriel <ga...@gmail.com>
AuthorDate: Fri Jun 17 08:41:47 2022 +0800

    [FOLLOWUP] cherrypick after refactoring scan nodes (#10177)
---
 be/src/vec/exec/volap_scan_node.cpp | 29 ++++++++++++++++++++++++++++-
 1 file changed, 28 insertions(+), 1 deletion(-)

diff --git a/be/src/vec/exec/volap_scan_node.cpp b/be/src/vec/exec/volap_scan_node.cpp
index 3eb42d4e97..d1159ea244 100644
--- a/be/src/vec/exec/volap_scan_node.cpp
+++ b/be/src/vec/exec/volap_scan_node.cpp
@@ -25,6 +25,7 @@
 #include "runtime/large_int_value.h"
 #include "runtime/runtime_filter_mgr.h"
 #include "util/priority_thread_pool.hpp"
+#include "util/to_string.h"
 #include "vec/core/block.h"
 #include "vec/exec/volap_scanner.h"
 #include "vec/exprs/vexpr.h"
@@ -640,6 +641,30 @@ Status VOlapScanNode::normalize_conjuncts() {
     return Status::OK();
 }
 
+static std::string olap_filter_to_string(const doris::TCondition& condition) {
+    auto op_name = condition.condition_op;
+    if (condition.condition_op == "*=") {
+        op_name = "IN";
+    } else if (condition.condition_op == "!*=") {
+        op_name = "NOT IN";
+    }
+    return fmt::format("{{{} {} {}}}", condition.column_name, op_name,
+                       to_string(condition.condition_values));
+}
+
+static std::string olap_filters_to_string(const std::vector<doris::TCondition>& filters) {
+    std::string filters_string;
+    filters_string += "[";
+    for (auto it = filters.cbegin(); it != filters.cend(); it++) {
+        if (it != filters.cbegin()) {
+            filters_string += ",";
+        }
+        filters_string += olap_filter_to_string(*it);
+    }
+    filters_string += "]";
+    return filters_string;
+}
+
 Status VOlapScanNode::build_olap_filters() {
     for (auto& iter : _column_value_ranges) {
         std::vector<TCondition> filters;
@@ -650,6 +675,8 @@ Status VOlapScanNode::build_olap_filters() {
         }
     }
 
+    _runtime_profile->add_info_string("PushdownPredicate", olap_filters_to_string(_olap_filter));
+
     return Status::OK();
 }
 
@@ -931,7 +958,7 @@ void VOlapScanNode::remove_pushed_conjuncts(RuntimeState* state) {
     // filter idle conjunct in vexpr_contexts
     auto checker = [&](int index) { return _pushed_conjuncts_index.count(index); };
     std::string vconjunct_information = _peel_pushed_vconjunct(state, checker);
-    _scanner_profile->add_info_string("VconjunctExprTree", vconjunct_information);
+    _runtime_profile->add_info_string("NonPushdownPredicate", vconjunct_information);
 }
 
 // Construct the ColumnValueRange for one specified column


---------------------------------------------------------------------
To unsubscribe, e-mail: commits-unsubscribe@doris.apache.org
For additional commands, e-mail: commits-help@doris.apache.org