提交 d67fe0af 编写于 作者: O obdev 提交者: wangzelin.wzl

support batch execute when using non array pl var in forall stmt

上级 74cb7c51
......@@ -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;
......
......@@ -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
......@@ -98,11 +98,11 @@ int ObExprToOutfileRow::extend_buffer(ObExprOutFileInfo &out_info,
int64_t old_len = out_info.buf_len_;
int64_t new_len = (old_len == 0) ? OB_MALLOC_MIDDLE_BLOCK_SIZE : old_len * 2;
if (OB_ISNULL(out_info.buf_ = static_cast<char*>(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<char*>(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<char*>(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;
out_info.tmp_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))) {
......
Markdown is supported
0% .
You are about to add 0 people to the discussion. Proceed with caution.
先完成此消息的编辑!
想要评论请 注册