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

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


The following commit(s) were added to refs/heads/master by this push:
     new 5d66839035 [feature-wip](unique-key-merge-on-write) push down runtime 
filter on unique key with merge on write table (#11695)
5d66839035 is described below

commit 5d6683903519c66d9925c847b28f1aa6b99a5639
Author: Xin Liao <[email protected]>
AuthorDate: Thu Aug 11 22:50:13 2022 +0800

    [feature-wip](unique-key-merge-on-write) push down runtime filter on unique 
key with merge on write table (#11695)
---
 be/src/vec/exec/volap_scan_node.cpp                                | 7 +++++--
 .../src/main/java/org/apache/doris/planner/OlapScanNode.java       | 1 +
 gensrc/thrift/PlanNodes.thrift                                     | 1 +
 3 files changed, 7 insertions(+), 2 deletions(-)

diff --git a/be/src/vec/exec/volap_scan_node.cpp 
b/be/src/vec/exec/volap_scan_node.cpp
index 71f94cb2b5..a443e85029 100644
--- a/be/src/vec/exec/volap_scan_node.cpp
+++ b/be/src/vec/exec/volap_scan_node.cpp
@@ -879,9 +879,12 @@ Status 
VOlapScanNode::change_value_range(ColumnValueRange<PrimitiveType>& temp_r
 }
 
 bool VOlapScanNode::is_key_column(const std::string& key_name) {
-    // all column in dup_keys table olap scan node threat
+    // all column in dup_keys table or unique_keys with merge on write table 
olap scan node threat
     // as key column
-    if (_olap_scan_node.keyType == TKeysType::DUP_KEYS) {
+    if (_olap_scan_node.keyType == TKeysType::DUP_KEYS ||
+        (_olap_scan_node.keyType == TKeysType::UNIQUE_KEYS &&
+         _olap_scan_node.__isset.enable_unique_key_merge_on_write &&
+         _olap_scan_node.enable_unique_key_merge_on_write)) {
         return true;
     }
 
diff --git 
a/fe/fe-core/src/main/java/org/apache/doris/planner/OlapScanNode.java 
b/fe/fe-core/src/main/java/org/apache/doris/planner/OlapScanNode.java
index c46b1615d0..1f41caa8b5 100644
--- a/fe/fe-core/src/main/java/org/apache/doris/planner/OlapScanNode.java
+++ b/fe/fe-core/src/main/java/org/apache/doris/planner/OlapScanNode.java
@@ -888,6 +888,7 @@ public class OlapScanNode extends ScanNode {
         }
         msg.olap_scan_node.setKeyType(olapTable.getKeysType().toThrift());
         msg.olap_scan_node.setTableName(olapTable.getName());
+        
msg.olap_scan_node.setEnableUniqueKeyMergeOnWrite(olapTable.getEnableUniqueKeyMergeOnWrite());
     }
 
     // export some tablets
diff --git a/gensrc/thrift/PlanNodes.thrift b/gensrc/thrift/PlanNodes.thrift
index 6d6e7bc203..bbe1e00c20 100644
--- a/gensrc/thrift/PlanNodes.thrift
+++ b/gensrc/thrift/PlanNodes.thrift
@@ -436,6 +436,7 @@ struct TOlapScanNode {
   // When scan match sort_info, we can push limit into OlapScanNode.
   // It's limit for scanner instead of scanNode so we add a new limit.
   10: optional i64 sort_limit
+  11: optional bool enable_unique_key_merge_on_write
 }
 
 struct TEqJoinCondition {


---------------------------------------------------------------------
To unsubscribe, e-mail: [email protected]
For additional commands, e-mail: [email protected]

Reply via email to