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

morningman 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 477b87c  [feature](vec) Support update stmt in vec query engine (#8296)
477b87c is described below

commit 477b87cb28042cfc8ee725a9694f99165d02426a
Author: HappenLee <happen...@hotmail.com>
AuthorDate: Mon Mar 7 14:03:55 2022 +0800

    [feature](vec) Support update stmt in vec query engine (#8296)
---
 .../src/main/java/org/apache/doris/load/update/UpdatePlanner.java     | 4 ++++
 .../main/java/org/apache/doris/load/update/UpdateStmtExecutor.java    | 2 ++
 fe/fe-core/src/main/java/org/apache/doris/planner/HashJoinNode.java   | 2 +-
 fe/fe-core/src/main/java/org/apache/doris/planner/PlanNode.java       | 2 +-
 fe/fe-core/src/main/java/org/apache/doris/qe/Coordinator.java         | 4 ++++
 5 files changed, 12 insertions(+), 2 deletions(-)

diff --git 
a/fe/fe-core/src/main/java/org/apache/doris/load/update/UpdatePlanner.java 
b/fe/fe-core/src/main/java/org/apache/doris/load/update/UpdatePlanner.java
index aaadd11..a452730 100644
--- a/fe/fe-core/src/main/java/org/apache/doris/load/update/UpdatePlanner.java
+++ b/fe/fe-core/src/main/java/org/apache/doris/load/update/UpdatePlanner.java
@@ -30,6 +30,7 @@ import org.apache.doris.catalog.OlapTable;
 import org.apache.doris.common.AnalysisException;
 import org.apache.doris.common.IdGenerator;
 import org.apache.doris.common.UserException;
+import org.apache.doris.common.util.VectorizedUtil;
 import org.apache.doris.planner.DataPartition;
 import org.apache.doris.planner.OlapScanNode;
 import org.apache.doris.planner.OlapTableSink;
@@ -86,6 +87,9 @@ public class UpdatePlanner extends Planner {
         /* END */
         olapScanNode.init(analyzer);
         olapScanNode.finalize(analyzer);
+        if (VectorizedUtil.isVectorized()) {
+            olapScanNode.convertToVectoriezd();
+        }
         scanNodeList.add(olapScanNode);
         // 2. gen olap table sink
         OlapTableSink olapTableSink = new OlapTableSink(targetTable, 
computeTargetTupleDesc(), null);
diff --git 
a/fe/fe-core/src/main/java/org/apache/doris/load/update/UpdateStmtExecutor.java 
b/fe/fe-core/src/main/java/org/apache/doris/load/update/UpdateStmtExecutor.java
index e1ec792..f6a3d49 100644
--- 
a/fe/fe-core/src/main/java/org/apache/doris/load/update/UpdateStmtExecutor.java
+++ 
b/fe/fe-core/src/main/java/org/apache/doris/load/update/UpdateStmtExecutor.java
@@ -34,6 +34,7 @@ import org.apache.doris.common.QuotaExceedException;
 import org.apache.doris.common.UserException;
 import org.apache.doris.common.util.DebugUtil;
 import org.apache.doris.common.util.TimeUtils;
+import org.apache.doris.common.util.VectorizedUtil;
 import org.apache.doris.metric.MetricRepo;
 import org.apache.doris.qe.Coordinator;
 import org.apache.doris.qe.QeProcessorImpl;
@@ -141,6 +142,7 @@ public class UpdateStmtExecutor {
         coordinator = new Coordinator(Catalog.getCurrentCatalog().getNextId(), 
queryId, analyzer.getDescTbl(),
                 updatePlanner.getFragments(), updatePlanner.getScanNodes(), 
TimeUtils.DEFAULT_TIME_ZONE, false);
         coordinator.setQueryType(TQueryType.LOAD);
+        coordinator.setExecVecEngine(VectorizedUtil.isVectorized());
         QeProcessorImpl.INSTANCE.registerQuery(queryId, coordinator);
         analyzer.getContext().getExecutor().setCoord(coordinator);
 
diff --git 
a/fe/fe-core/src/main/java/org/apache/doris/planner/HashJoinNode.java 
b/fe/fe-core/src/main/java/org/apache/doris/planner/HashJoinNode.java
index 2ee2618..8015fb7 100644
--- a/fe/fe-core/src/main/java/org/apache/doris/planner/HashJoinNode.java
+++ b/fe/fe-core/src/main/java/org/apache/doris/planner/HashJoinNode.java
@@ -669,7 +669,7 @@ public class HashJoinNode extends PlanNode {
     }
 
     @Override
-    void convertToVectoriezd() {
+    public void convertToVectoriezd() {
         if (!otherJoinConjuncts.isEmpty()) {
             votherJoinConjunct = 
convertConjunctsToAndCompoundPredicate(otherJoinConjuncts);
             initCompoundPredicate(votherJoinConjunct);
diff --git a/fe/fe-core/src/main/java/org/apache/doris/planner/PlanNode.java 
b/fe/fe-core/src/main/java/org/apache/doris/planner/PlanNode.java
index a6003f3..e076021 100644
--- a/fe/fe-core/src/main/java/org/apache/doris/planner/PlanNode.java
+++ b/fe/fe-core/src/main/java/org/apache/doris/planner/PlanNode.java
@@ -860,7 +860,7 @@ abstract public class PlanNode extends TreeNode<PlanNode> {
         return sb.toString();
     }
 
-    void convertToVectoriezd() {
+    public void convertToVectoriezd() {
         if (!conjuncts.isEmpty()) {
             vconjunct = convertConjunctsToAndCompoundPredicate(conjuncts);
             initCompoundPredicate(vconjunct);
diff --git a/fe/fe-core/src/main/java/org/apache/doris/qe/Coordinator.java 
b/fe/fe-core/src/main/java/org/apache/doris/qe/Coordinator.java
index 7834565..83f1ad8 100644
--- a/fe/fe-core/src/main/java/org/apache/doris/qe/Coordinator.java
+++ b/fe/fe-core/src/main/java/org/apache/doris/qe/Coordinator.java
@@ -301,6 +301,10 @@ public class Coordinator {
         this.queryOptions.setQueryType(type);
     }
 
+    public void setExecVecEngine(boolean vec) {
+        this.queryOptions.setEnableVectorizedEngine(vec);
+    }
+
     public Status getExecStatus() {
         return queryStatus;
     }

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

Reply via email to