diff --git a/src/pl/ob_pl_resolver.cpp b/src/pl/ob_pl_resolver.cpp
index 2acf194332..5a3487ae6c 100644
--- a/src/pl/ob_pl_resolver.cpp
+++ b/src/pl/ob_pl_resolver.cpp
@@ -13339,7 +13339,9 @@ ObPLMockSelfArg::~ObPLMockSelfArg()
int ret = OB_SUCCESS;
if (mocked_) {
if (mark_only_) {
- expr_params_.at(0)->clear_flag(IS_UDT_UDF_SELF_PARAM);
+ if (OB_FAIL(expr_params_.at(0)->clear_flag(IS_UDT_UDF_SELF_PARAM))) {
+ LOG_WARN("failed to clear flag", K(ret));
+ }
} else {
std::rotate(expr_params_.begin(), expr_params_.begin() + 1, expr_params_.end());
if (!expr_params_.at(expr_params_.count() - 1)->has_flag(IS_UDT_UDF_SELF_PARAM)) {
@@ -13479,12 +13481,16 @@ int ObPLResolver::check_routine_callable(const ObPLBlockNS &ns,
if (expr_params.count() > 0
&& expr_params.at(0)->get_result_type().get_udt_id()
== access_idxs.at(access_idxs.count() - 1).var_index_) {
- expr_params.at(0)->clear_flag(IS_UDT_UDF_SELF_PARAM);
+ if (OB_FAIL(expr_params.at(0)->clear_flag(IS_UDT_UDF_SELF_PARAM))) {
+ LOG_WARN("failed to clear flag", K(ret));
+ }
} else if (expr_params.count() > 0
&& expr_params.at(0)->get_result_type().is_xml_sql_type()
&& (T_OBJ_XML == access_idxs.at(access_idxs.count() - 1).var_index_)) {
// select 'head' || xmlparse(document '123').getclobval() into a from dual;
- expr_params.at(0)->clear_flag(IS_UDT_UDF_SELF_PARAM);
+ if (OB_FAIL(expr_params.at(0)->clear_flag(IS_UDT_UDF_SELF_PARAM))) {
+ LOG_WARN("failed to clear flag", K(ret));
+ }
} /*else if (expr_params.count() > 0
&& expr_params.at(0)->get_expr_type() == T_QUESTIONMARK) {
// do nothing ...
diff --git a/src/sql/code_generator/ob_expr_generator_impl.cpp b/src/sql/code_generator/ob_expr_generator_impl.cpp
index 002cc63f2a..9b38166e61 100644
--- a/src/sql/code_generator/ob_expr_generator_impl.cpp
+++ b/src/sql/code_generator/ob_expr_generator_impl.cpp
@@ -1851,8 +1851,8 @@ int ObExprGeneratorImpl::visit(ObAggFunRawExpr &expr)
} // end for
FOREACH(e, columnlized_exprs) {
- if ((*e)->has_flag(IS_COLUMNLIZED)) {
- (*e)->clear_flag(IS_COLUMNLIZED);
+ if (OB_FAIL((*e)->clear_flag(IS_COLUMNLIZED))) {
+ LOG_WARN("failed to clear flag", K(ret));
}
}
}
@@ -2107,9 +2107,10 @@ int ObExprGeneratorImpl::generate_expr_operator(ObRawExpr &raw_expr,
fetcher.op_ = NULL;
ObItemType type = raw_expr.get_expr_type();
if (IS_EXPR_OP(type) && !IS_AGGR_FUN(type)) {
- raw_expr.clear_flag(IS_COLUMNLIZED);
- // no expr operator for set expr
- if (!(type > T_OP_SET && type <= T_OP_EXCEPT)) {
+ if (OB_FAIL(raw_expr.clear_flag(IS_COLUMNLIZED))) {
+ LOG_WARN("failed to clear flag", K(ret));
+ } else if (!(type > T_OP_SET && type <= T_OP_EXCEPT)) {
+ // no expr operator for set expr
OZ(raw_expr.do_visit(*this));
}
}
diff --git a/src/sql/code_generator/ob_static_engine_cg.cpp b/src/sql/code_generator/ob_static_engine_cg.cpp
index a1066abe7f..6c617a4ee9 100644
--- a/src/sql/code_generator/ob_static_engine_cg.cpp
+++ b/src/sql/code_generator/ob_static_engine_cg.cpp
@@ -479,8 +479,8 @@ int ObStaticEngineCG::clear_all_exprs_specific_flag(
if (OB_ISNULL(exprs.at(i))) {
ret = OB_ERR_UNEXPECTED;
LOG_WARN("expr is null", K(ret), K(i), K(exprs));
- } else {
- exprs.at(i)->clear_flag(flag);
+ } else if (OB_FAIL(exprs.at(i)->clear_flag(flag))) {
+ LOG_WARN("failed to clear flag", K(ret));
}
}
diff --git a/src/sql/resolver/dml/ob_dml_resolver.cpp b/src/sql/resolver/dml/ob_dml_resolver.cpp
index 27f0501bd3..56cde8055e 100755
--- a/src/sql/resolver/dml/ob_dml_resolver.cpp
+++ b/src/sql/resolver/dml/ob_dml_resolver.cpp
@@ -12395,7 +12395,9 @@ int ObDMLResolver::convert_udf_to_agg_expr(ObRawExpr *&expr,
}
}
- ctx.parents_expr_info_.del_member(IS_AGG);
+ if (OB_SUCC(ret) && OB_FAIL(ctx.parents_expr_info_.del_member(IS_AGG))) {
+ LOG_WARN("failed to del member", K(ret));
+ }
}
return ret;
}
diff --git a/src/sql/resolver/expr/ob_raw_expr.cpp b/src/sql/resolver/expr/ob_raw_expr.cpp
index 827c63d973..b6f2c2b96e 100644
--- a/src/sql/resolver/expr/ob_raw_expr.cpp
+++ b/src/sql/resolver/expr/ob_raw_expr.cpp
@@ -431,11 +431,11 @@ int ObRawExpr::pull_relation_id()
int ObRawExpr::add_child_flags(const ObExprInfo &flags)
{
int ret = OB_SUCCESS;
- ObExprInfo tmp = flags;
- if (INHERIT_MASK_BEGIN < tmp.bit_count()) {
- int64_t mask_end = INHERIT_MASK_END < tmp.bit_count() ?
- static_cast(INHERIT_MASK_END) : tmp.bit_count() - 1;
- if (tmp.do_mask(INHERIT_MASK_BEGIN, mask_end)) {
+ if (INHERIT_MASK_BEGIN < flags.bit_count()) {
+ ObExprInfo tmp(flags);
+ int64_t mask_end = INHERIT_MASK_END < flags.bit_count() ?
+ static_cast(INHERIT_MASK_END) : flags.bit_count() - 1;
+ if (OB_FAIL(tmp.do_mask(INHERIT_MASK_BEGIN, mask_end))) {
LOG_WARN("failed to do mask", K(ret));
} else if (OB_FAIL(info_.add_members(tmp))) {
LOG_WARN("failed to add expr info", K(ret));
diff --git a/src/sql/resolver/expr/ob_raw_expr_info_extractor.cpp b/src/sql/resolver/expr/ob_raw_expr_info_extractor.cpp
index 6ff94d4400..da6baf799a 100644
--- a/src/sql/resolver/expr/ob_raw_expr_info_extractor.cpp
+++ b/src/sql/resolver/expr/ob_raw_expr_info_extractor.cpp
@@ -576,19 +576,19 @@ int ObRawExprInfoExtractor::visit(ObSysFunRawExpr &expr)
|| T_FUN_SYS_XML_ELEMENT == expr.get_expr_type()
|| T_FUN_SYS_XMLPARSE == expr.get_expr_type()
|| IS_LABEL_SE_POLICY_FUNC(expr.get_expr_type()))
- && expr.has_flag(IS_CONST_EXPR)) {
- expr.clear_flag(IS_CONST_EXPR);
+ && OB_FAIL(expr.clear_flag(IS_CONST_EXPR))) {
+ LOG_WARN("failed to clear flag", K(ret));
}
if (OB_SUCC(ret) && T_FUN_SYS_JSON_VALUE == expr.get_expr_type()) {
if (expr.get_param_count() >= 12) {
ObRawExpr * sub_expr = expr.get_param_expr(7);
- if (OB_NOT_NULL(sub_expr)) {
- sub_expr->clear_flag(IS_CONST_EXPR);
- }
- sub_expr = expr.get_param_expr(4);
- if (OB_NOT_NULL(sub_expr)) {
- sub_expr->clear_flag(IS_CONST_EXPR);
+ if (OB_NOT_NULL(sub_expr)
+ && OB_FAIL(sub_expr->clear_flag(IS_CONST_EXPR))) {
+ LOG_WARN("failed to clear flag", K(ret));
+ } else if (OB_NOT_NULL(sub_expr = expr.get_param_expr(4))
+ && OB_FAIL(sub_expr->clear_flag(IS_CONST_EXPR))) {
+ LOG_WARN("failed to clear flag", K(ret));
}
}
}
diff --git a/src/sql/resolver/expr/ob_raw_expr_resolver_impl.cpp b/src/sql/resolver/expr/ob_raw_expr_resolver_impl.cpp
index edc7ed8c71..ab0be2a1df 100644
--- a/src/sql/resolver/expr/ob_raw_expr_resolver_impl.cpp
+++ b/src/sql/resolver/expr/ob_raw_expr_resolver_impl.cpp
@@ -2137,9 +2137,10 @@ int ObRawExprResolverImpl::resolve_func_node_of_obj_access_idents(const ParseNod
std::pair param(index_expr, 0);
if (OB_FAIL(access_ident.params_.push_back(param))) {
LOG_WARN("push back error", K(ret));
+ } else if (OB_FAIL(ctx_.parents_expr_info_.del_member(IS_PL_ACCESS_IDX))) {
+ LOG_WARN("failed to del member", K(ret));
}
}
- ctx_.parents_expr_info_.del_member(IS_PL_ACCESS_IDX);
for (int64_t i = start_child; i < ctx_.columns_->count(); ++i) {
ctx_.columns_->at(i).is_access_root_ = false;
}
@@ -5933,7 +5934,7 @@ int ObRawExprResolverImpl::process_is_json_node(const ParseNode *node, ObRawExpr
OZ(SMART_CALL(recursive_resolve(node->children_[i], para_expr)));
CK(OB_NOT_NULL(para_expr));
if (OB_SUCC(ret)) {
- para_expr->clear_flag(IS_CONST_EXPR);
+ OZ(para_expr->clear_flag(IS_CONST_EXPR));
OZ(func_expr->add_param_expr(para_expr));
}
} //end for
diff --git a/src/sql/rewrite/ob_transform_pre_process.cpp b/src/sql/rewrite/ob_transform_pre_process.cpp
index 6f68319d56..cb85e82cb6 100644
--- a/src/sql/rewrite/ob_transform_pre_process.cpp
+++ b/src/sql/rewrite/ob_transform_pre_process.cpp
@@ -9847,8 +9847,8 @@ int ObTransformPreProcess::check_is_correlated_cte(ObSelectStmt *stmt, ObIArray<
if (OB_ISNULL(exec_param)) {
ret = OB_ERR_UNEXPECTED;
LOG_WARN("exec param is null", K(ret));
- } else {
- exec_param->clear_flag(BE_USED);
+ } else if (OB_FAIL(exec_param->clear_flag(BE_USED))) {
+ LOG_WARN("failed to clear flag", K(ret));
}
}
}
diff --git a/src/sql/rewrite/ob_transform_simplify_expr.cpp b/src/sql/rewrite/ob_transform_simplify_expr.cpp
index 8104bfc72c..fcabd4a809 100644
--- a/src/sql/rewrite/ob_transform_simplify_expr.cpp
+++ b/src/sql/rewrite/ob_transform_simplify_expr.cpp
@@ -774,14 +774,13 @@ int ObTransformSimplifyExpr::do_check_like_condition(ObRawExpr *&expr,
}
if (OB_SUCC(ret)) {
if (text_expr->get_expr_type() == T_FUN_SYS_CAST &&
- text_expr->has_flag(IS_INNER_ADDED_EXPR)) {//avoid reconstuct sql is wrong.
- text_expr->clear_flag(IS_INNER_ADDED_EXPR);
- }
- if (OB_FAIL(ObRawExprUtils::create_equal_expr(*ctx_->expr_factory_,
- ctx_->session_info_,
- pattern_expr,
- text_expr,
- eq_expr))) {
+ OB_FAIL(text_expr->clear_flag(IS_INNER_ADDED_EXPR))) { //avoid reconstuct sql is wrong.
+ LOG_WARN("failed to clear flag", K(ret));
+ } else if (OB_FAIL(ObRawExprUtils::create_equal_expr(*ctx_->expr_factory_,
+ ctx_->session_info_,
+ pattern_expr,
+ text_expr,
+ eq_expr))) {
LOG_WARN("create equal expr failed", K(ret), K(pattern_expr));
} else if (OB_ISNULL(eq_expr)) {
ret = OB_ERR_UNEXPECTED;