fix simplify_expr bug

This commit is contained in:
akaError
2024-03-21 03:52:03 +00:00
committed by ob-robot
parent 2ec5e64495
commit 116dce6f58

View File

@ -2408,21 +2408,27 @@ int ObTransformSimplifyExpr::canonicalize_conditions(ObDMLStmt *stmt, bool &tran
//simplify semi info
OPT_TRACE("canonicalize semi_info condition start:");
for (int64_t i = 0; OB_SUCC(ret) && i < stmt->get_semi_infos().count(); ++i) {
bool is_happended = false;
if (OB_ISNULL(stmt->get_semi_infos().at(i))) {
ret = OB_ERR_UNEXPECTED;
LOG_WARN("unexpect null semi info", K(stmt->get_semi_infos().at(i)), K(ret));
} else if (OB_FAIL(do_canonicalize(stmt, stmt->get_semi_infos().at(i)->semi_conditions_, canonicalize_semi_info))) {
} else if (OB_FAIL(do_canonicalize(stmt, stmt->get_semi_infos().at(i)->semi_conditions_, is_happended))) {
LOG_WARN("canonicalize_semi_info failed", K(ret));
} else {
canonicalize_semi_info |= is_happended;
}
}
OPT_TRACE("canonicalize join condition start:");
//simplify join condition expr
for (int64_t i = 0; OB_SUCC(ret) && i < stmt->get_joined_tables().count(); i++) {
bool is_happended = false;
if (OB_ISNULL(stmt->get_joined_tables().at(i))) {
ret = OB_ERR_UNEXPECTED;
LOG_WARN("unexpect null joined table item", K(stmt->get_joined_tables().at(i)), K(ret));
} else if (OB_FAIL(recursive_canonicalize_join_conditions(stmt, stmt->get_joined_tables().at(i), canonicalize_join))) {
} else if (OB_FAIL(recursive_canonicalize_join_conditions(stmt, stmt->get_joined_tables().at(i), is_happended))) {
LOG_WARN("canonicalize_join_condition_expr failed", K(ret));
} else {
canonicalize_join |= is_happended;
}
}
}