diff --git a/src/pl/ob_pl_resolver.cpp b/src/pl/ob_pl_resolver.cpp index 52771e8b12..89151925f3 100644 --- a/src/pl/ob_pl_resolver.cpp +++ b/src/pl/ob_pl_resolver.cpp @@ -3632,7 +3632,7 @@ int ObPLResolver::check_raw_expr_in_forall(ObRawExpr* expr, int64_t idx, bool &n LOG_WARN("PLS-00430: FORALL iteration variable INDX is not allowed in this context", K(ret)); } //这里控制包含非数组类型变量的forall语句直接以forloop实现, 避免forall先回退, 再forloop执行 - can_array_binding = false; + can_array_binding = true; } else { bool inner_modify = false; bool inner_can_array_binding = true; diff --git a/src/sql/engine/expr/ob_expr_to_outfile_row.cpp b/src/sql/engine/expr/ob_expr_to_outfile_row.cpp index eb6741f055..c78803e4d1 100644 --- a/src/sql/engine/expr/ob_expr_to_outfile_row.cpp +++ b/src/sql/engine/expr/ob_expr_to_outfile_row.cpp @@ -34,9 +34,9 @@ ObExprToOutfileRow::ObExprToOutfileRow(ObIAllocator &alloc) ObExprToOutfileRow::~ObExprToOutfileRow() { -} - -int ObExprToOutfileRow::calc_result_typeN(ObExprResType &type, +} + +int ObExprToOutfileRow::calc_result_typeN(ObExprResType &type, ObExprResType *types, int64_t param_num, ObExprTypeCtx &type_ctx) const @@ -99,9 +99,9 @@ int ObExprToOutfileRow::extend_buffer(ObExprOutFileInfo &out_info, int64_t new_len = (old_len == 0) ? OB_MALLOC_MIDDLE_BLOCK_SIZE : old_len * 2; if (OB_ISNULL(out_info.buf_ = static_cast(allocator.alloc(new_len)))) { ret = OB_ALLOCATE_MEMORY_FAILED; - LOG_WARN("fail to allocate memory", K(ret), K(old_len), K(new_len)); - } else if (OB_ISNULL(out_info.tmp_buf_ = static_cast(allocator.alloc(new_len)))) { - ret = OB_ALLOCATE_MEMORY_FAILED; + LOG_WARN("fail to allocate memory", K(ret), K(old_len), K(new_len)); + } else if (OB_ISNULL(out_info.tmp_buf_ = static_cast(allocator.alloc(new_len)))) { + ret = OB_ALLOCATE_MEMORY_FAILED; LOG_WARN("fail to allocate memory", K(ret), K(old_len), K(new_len)); } else { out_info.buf_len_ = new_len; @@ -151,9 +151,9 @@ int ObExprToOutfileRow::calc_outfile_info(const ObExpr &expr, } int ObExprToOutfileRow::to_outfile_str(const ObExpr &expr, ObEvalCtx &ctx, ObDatum &expr_datum) -{ - int ret = OB_SUCCESS; - if (OB_UNLIKELY(expr.arg_cnt_ <= PARAM_SELECT_ITEM)) { +{ + int ret = OB_SUCCESS; + if (OB_UNLIKELY(expr.arg_cnt_ <= PARAM_SELECT_ITEM)) { ret = OB_INVALID_ARGUMENT; LOG_WARN("Invalid argument", K(ret)); } else if (OB_FAIL(expr.eval_param_value(ctx))) {