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;