[fix](Nereids) query failed when fold constant on be failed (#25982)

we translate expression to legacy one when do fold constant on BE.
some times, we generate invalid expression that cannot be tranlsated.
So, we should catch translate exception to avoid query failed.
This commit is contained in:
morrySnow
2023-10-27 14:22:08 +08:00
committed by GitHub
parent deb1ad8264
commit e3dbbed47c

View File

@ -134,7 +134,13 @@ public class FoldConstantRuleOnBE extends AbstractExpressionRewriteRule {
}
String id = idGenerator.getNextId().toString();
constMap.put(id, expr);
Expr staleExpr = ExpressionTranslator.translate(expr, null);
Expr staleExpr;
try {
staleExpr = ExpressionTranslator.translate(expr, null);
} catch (Exception e) {
LOG.warn("expression {} translate to legacy expr failed. ", expr, e);
return;
}
tExprMap.put(id, staleExpr.treeToThrift());
} else {
for (int i = 0; i < expr.children().size(); i++) {