diff --git a/src/sql/resolver/expr/ob_raw_expr.cpp b/src/sql/resolver/expr/ob_raw_expr.cpp index 9068aab4dd..b0fa9142e5 100644 --- a/src/sql/resolver/expr/ob_raw_expr.cpp +++ b/src/sql/resolver/expr/ob_raw_expr.cpp @@ -398,7 +398,9 @@ int ObRawExpr::deduce_type(const ObSQLSessionInfo *session_info, ObRawExprDeduceType expr_deducer(session_info, solidify_session_vars, local_vars, local_var_id); expr_deducer.set_expr_factory(expr_factory_); if (OB_FAIL(expr_deducer.deduce(*this))) { - if (session_info->is_varparams_sql_prepare()) { + if (session_info->is_varparams_sql_prepare() && + OB_ERR_INVALID_COLUMN_NUM != ret && + OB_ERR_TOO_MANY_VALUES != ret) { ret = OB_SUCCESS; LOG_TRACE("ps prepare phase ignores type deduce error"); } else { diff --git a/src/sql/rewrite/ob_transform_aggr_subquery.cpp b/src/sql/rewrite/ob_transform_aggr_subquery.cpp index 339f93f2db..7fb27a4fce 100644 --- a/src/sql/rewrite/ob_transform_aggr_subquery.cpp +++ b/src/sql/rewrite/ob_transform_aggr_subquery.cpp @@ -1301,8 +1301,8 @@ int ObTransformAggrSubquery::get_trans_param(ObDMLStmt &stmt, } } else if (stmt.is_update_stmt()) { ObUpdateStmt &upd_stmt = static_cast(stmt); - if (OB_FAIL(upd_stmt.get_assign_values(pre_group_by_exprs, true))) { - LOG_WARN("failed to get assign values", K(ret)); + if (OB_FAIL(ObTransformUtils::get_post_join_exprs(&stmt, pre_group_by_exprs, true))) { + LOG_WARN("failed to get post join exprs", K(ret)); } } int64_t pre_count = pre_group_by_exprs.count();