Fix some prepared statement bug

This commit is contained in:
obdev
2023-06-28 09:53:42 +00:00
committed by ob-robot
parent a466529923
commit 66be07d08d
2 changed files with 5 additions and 1 deletions

View File

@ -851,7 +851,9 @@ void ObReferenceObjTable::reset()
} }
return ret; return ret;
}; };
if (OB_FAIL(ref_obj_version_table_.foreach_refactored(free_func))) { if (!ref_obj_version_table_.created()) {
// do nothing
} else if (OB_FAIL(ref_obj_version_table_.foreach_refactored(free_func))) {
OB_LOG(WARN, "traversal ref obj version map failed", K(ret)); OB_LOG(WARN, "traversal ref obj version map failed", K(ret));
} }
inited_ = false; inited_ = false;

View File

@ -1027,6 +1027,8 @@ int ObSql::do_real_prepare(const ObString &sql,
LOG_WARN("generate stmt failed", K(ret)); LOG_WARN("generate stmt failed", K(ret));
} else if (!is_from_pl } else if (!is_from_pl
&& !is_inner_sql && !is_inner_sql
&& !(ObStmt::is_dml_write_stmt(stmt_type) && // returning into from oci not supported
static_cast<ObDelUpdStmt*>(basic_stmt)->get_returning_into_exprs().count() > 0)
&& enable_udr && enable_udr
&& OB_FAIL(ObUDRUtils::match_udr_item(sql, session, allocator, item_guard))) { && OB_FAIL(ObUDRUtils::match_udr_item(sql, session, allocator, item_guard))) {
if (!ObSQLUtils::check_need_disconnect_parser_err(ret)) { if (!ObSQLUtils::check_need_disconnect_parser_err(ret)) {