[CP] duplicate updat bug修复

This commit is contained in:
akaError
2024-02-10 08:22:06 +00:00
committed by ob-robot
parent 43c547ebdb
commit e4a0de2d29
10 changed files with 147 additions and 23 deletions

View File

@ -4215,6 +4215,19 @@ int ObRawExprUtils::erase_inner_added_exprs(ObRawExpr *src_expr, ObRawExpr *&out
return ret;
}
int ObRawExprUtils::erase_inner_cast_exprs(ObRawExpr *src_expr, ObRawExpr *&out_expr)
{
int ret = OB_SUCCESS;
CK(OB_NOT_NULL(src_expr));
OX(out_expr = src_expr);
if (OB_SUCC(ret) && src_expr->has_flag(IS_INNER_ADDED_EXPR) &&
T_FUN_SYS_CAST == src_expr->get_expr_type()) {
CK(2 == src_expr->get_param_count());
OZ(erase_inner_added_exprs(src_expr->get_param_expr(0), out_expr));
}
return ret;
}
int ObRawExprUtils::erase_operand_implicit_cast(ObRawExpr *src, ObRawExpr *&out)
{
int ret = OB_SUCCESS;

View File

@ -496,6 +496,7 @@ public:
ObExprResType &utf8_type);
static int erase_inner_added_exprs(ObRawExpr *src_expr, ObRawExpr *&out_expr);
static int erase_inner_cast_exprs(ObRawExpr *src_expr, ObRawExpr *&out_expr);
// erase implicit cast which added for operand casting.
static int erase_operand_implicit_cast(ObRawExpr *src, ObRawExpr *&out);