fix simplify_expr bug
This commit is contained in:
@ -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;
|
||||
}
|
||||
}
|
||||
}
|
||||
|
||||
Reference in New Issue
Block a user