From 1aa1b2f60749beb5db329d0b2a27156fc46cd9de Mon Sep 17 00:00:00 2001 From: morrySnow <101034200+morrySnow@users.noreply.github.com> Date: Wed, 6 Dec 2023 17:06:11 +0800 Subject: [PATCH] [opt](Nereids) add switch to control whether use pipeline in DML (#28037) to turn on pipeline for DML in Nerieds, please: set enable_nereids_dml_with_pipeline = true; --- .../doris/nereids/processor/pre/TurnOffPipelineForDml.java | 3 +++ .../src/main/java/org/apache/doris/qe/SessionVariable.java | 6 ++++++ 2 files changed, 9 insertions(+) diff --git a/fe/fe-core/src/main/java/org/apache/doris/nereids/processor/pre/TurnOffPipelineForDml.java b/fe/fe-core/src/main/java/org/apache/doris/nereids/processor/pre/TurnOffPipelineForDml.java index 3ab0681fd1..e069c3063a 100644 --- a/fe/fe-core/src/main/java/org/apache/doris/nereids/processor/pre/TurnOffPipelineForDml.java +++ b/fe/fe-core/src/main/java/org/apache/doris/nereids/processor/pre/TurnOffPipelineForDml.java @@ -47,6 +47,9 @@ public class TurnOffPipelineForDml extends PlanPreprocessor { private void turnOffPipeline(StatementContext context) { SessionVariable sessionVariable = context.getConnectContext().getSessionVariable(); + if (sessionVariable.enableNereidsDmlWithPipeline) { + return; + } // set temporary session value, and then revert value in the 'finally block' of StmtExecutor#execute sessionVariable.setIsSingleSetVar(true); try { diff --git a/fe/fe-core/src/main/java/org/apache/doris/qe/SessionVariable.java b/fe/fe-core/src/main/java/org/apache/doris/qe/SessionVariable.java index c39dfd6ee2..e578171d24 100644 --- a/fe/fe-core/src/main/java/org/apache/doris/qe/SessionVariable.java +++ b/fe/fe-core/src/main/java/org/apache/doris/qe/SessionVariable.java @@ -194,6 +194,7 @@ public class SessionVariable implements Serializable, Writable { public static final String MAX_JOIN_NUMBER_OF_REORDER = "max_join_number_of_reorder"; public static final String ENABLE_NEREIDS_DML = "enable_nereids_dml"; + public static final String ENABLE_NEREIDS_DML_WITH_PIPELINE = "enable_nereids_dml_with_pipeline"; public static final String ENABLE_STRICT_CONSISTENCY_DML = "enable_strict_consistency_dml"; public static final String ENABLE_BUSHY_TREE = "enable_bushy_tree"; @@ -753,6 +754,11 @@ public class SessionVariable implements Serializable, Writable { @VariableMgr.VarAttr(name = ENABLE_NEREIDS_DML, needForward = true) public boolean enableNereidsDML = true; + @VariableMgr.VarAttr(name = ENABLE_NEREIDS_DML_WITH_PIPELINE, needForward = true, + varType = VariableAnnotation.EXPERIMENTAL, + description = {"在新优化器中,使用pipeline引擎执行DML", "execute DML with pipeline engine in Nereids"}) + public boolean enableNereidsDmlWithPipeline = false; + @VariableMgr.VarAttr(name = ENABLE_STRICT_CONSISTENCY_DML, needForward = true) public boolean enableStrictConsistencyDml = false;