diff --git a/fe/fe-core/src/main/java/org/apache/doris/nereids/stats/StatsCalculator.java b/fe/fe-core/src/main/java/org/apache/doris/nereids/stats/StatsCalculator.java index b088ed0dccfa46..103461b0008316 100644 --- a/fe/fe-core/src/main/java/org/apache/doris/nereids/stats/StatsCalculator.java +++ b/fe/fe-core/src/main/java/org/apache/doris/nereids/stats/StatsCalculator.java @@ -117,6 +117,7 @@ import org.apache.doris.nereids.types.DataType; import org.apache.doris.nereids.types.coercion.CharacterType; import org.apache.doris.qe.ConnectContext; +import org.apache.doris.qe.SessionVariable; import org.apache.doris.statistics.AnalysisManager; import org.apache.doris.statistics.ColumnStatistic; import org.apache.doris.statistics.ColumnStatisticBuilder; @@ -1200,8 +1201,14 @@ public static Optional disableJoinReorderIfStatsInvalid(List disableJoinReorderIfStatsInvalid(List reason = calculator.checkNdvValidation((OlapScan) scan, rowCount); if (reason.isPresent()) { try { - ConnectContext.get().getSessionVariable().disableNereidsJoinReorderOnce(); + ConnectContext.get().getSessionVariable() + .setVarOnce(SessionVariable.DISABLE_JOIN_REORDER, "true"); LOG.info("disable join reorder since col stats invalid: " + reason.get()); } catch (Exception e) { 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 515f90cd81f83d..4d7099983801a4 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 @@ -3079,5 +3079,19 @@ public boolean isEnableCooldownReplicaAffinity() { return enableCooldownReplicaAffinity; } + /** + * + * @return true iff set success + */ + public boolean setVarOnce(String varName, String value) { + try { + setIsSingleSetVar(true); + VariableMgr.setVar(this, new SetVar(varName, new StringLiteral(value))); + return true; + } catch (DdlException e) { + LOG.warn("set onece {} = {} failed", varName, value); + return false; + } + } }