From 114b6b885c497383e5e3749ff7ba53d8f965ef94 Mon Sep 17 00:00:00 2001 From: starocean999 <12095047@qq.com> Date: Mon, 22 Apr 2024 21:47:18 +0800 Subject: [PATCH 1/2] [fix](nereids)prevent null pointer access if translate expression fails --- .../nereids/rules/expression/rules/FoldConstantRuleOnBE.java | 4 ++++ 1 file changed, 4 insertions(+) diff --git a/fe/fe-core/src/main/java/org/apache/doris/nereids/rules/expression/rules/FoldConstantRuleOnBE.java b/fe/fe-core/src/main/java/org/apache/doris/nereids/rules/expression/rules/FoldConstantRuleOnBE.java index 3c2f0d546dd04a..8ca459a1b65a20 100644 --- a/fe/fe-core/src/main/java/org/apache/doris/nereids/rules/expression/rules/FoldConstantRuleOnBE.java +++ b/fe/fe-core/src/main/java/org/apache/doris/nereids/rules/expression/rules/FoldConstantRuleOnBE.java @@ -215,6 +215,10 @@ private static void collectConst(Expression expr, Map constM LOG.warn("expression {} translate to legacy expr failed. ", expr, e); return; } + if (staleExpr == null) { + // just return, it's a fail-safe + return; + } tExprMap.put(id, staleExpr.treeToThrift()); } else { for (int i = 0; i < expr.children().size(); i++) { From f9b79bfcac76403817838e3d95445d0017f83b59 Mon Sep 17 00:00:00 2001 From: starocean999 <12095047@qq.com> Date: Wed, 24 Apr 2024 11:06:35 +0800 Subject: [PATCH 2/2] add log warn --- .../nereids/rules/expression/rules/FoldConstantRuleOnBE.java | 1 + 1 file changed, 1 insertion(+) diff --git a/fe/fe-core/src/main/java/org/apache/doris/nereids/rules/expression/rules/FoldConstantRuleOnBE.java b/fe/fe-core/src/main/java/org/apache/doris/nereids/rules/expression/rules/FoldConstantRuleOnBE.java index 8ca459a1b65a20..e0e19bd19e2b06 100644 --- a/fe/fe-core/src/main/java/org/apache/doris/nereids/rules/expression/rules/FoldConstantRuleOnBE.java +++ b/fe/fe-core/src/main/java/org/apache/doris/nereids/rules/expression/rules/FoldConstantRuleOnBE.java @@ -217,6 +217,7 @@ private static void collectConst(Expression expr, Map constM } if (staleExpr == null) { // just return, it's a fail-safe + LOG.warn("expression {} translate to legacy expr failed. ", expr); return; } tExprMap.put(id, staleExpr.treeToThrift());