[FEAT MERGE] Lob SQL refactoring (Mem-LobLocator, expressions and dbms_lob adaptions)
Co-authored-by: chaser-ch <chaser.ch@antgroup.com>
This commit is contained in:
@ -18,6 +18,7 @@
|
||||
#include "sql/engine/expr/ob_expr_extra_info_factory.h"
|
||||
#include "sql/engine/expr/ob_expr_operator.h"
|
||||
#include "sql/engine/px/ob_px_util.h"
|
||||
#include "sql/engine/expr/ob_expr_lob_utils.h"
|
||||
|
||||
namespace oceanbase
|
||||
{
|
||||
@ -483,6 +484,9 @@ OB_INLINE int ObPreCalcExprFrameInfo::do_normal_eval(ObExecContext &exec_ctx,
|
||||
} else {
|
||||
datum_param.set_datum(*res_datum);
|
||||
datum_param.set_meta(rt_expr->datum_meta_);
|
||||
if (rt_expr->obj_meta_.has_lob_header()) {
|
||||
datum_param.set_result_flag(HAS_LOB_HEADER_FLAG);
|
||||
}
|
||||
if (OB_FAIL(res_datum_params.push_back(datum_param))) {
|
||||
LOG_WARN("failed to push back obj param", K(ret));
|
||||
}
|
||||
@ -650,6 +654,10 @@ int ObTempExpr::row_to_frame(const ObNewRow &row, ObTempExprCtx &temp_expr_ctx)
|
||||
LOG_WARN("obj type miss match", K(ret), K(v), K(idx_col), K(row));
|
||||
} else if (OB_FAIL(expr_datum.from_obj(v, expr.obj_datum_map_))) {
|
||||
LOG_WARN("fail to from obj", K(v), K(idx_col), K(row), K(ret));
|
||||
} else if (is_lob_storage(v.get_type()) &&
|
||||
OB_FAIL(ob_adjust_lob_datum(v, expr.obj_meta_, expr.obj_datum_map_,
|
||||
temp_expr_ctx.exec_ctx_.get_allocator(), expr_datum))) {
|
||||
LOG_WARN("adjust lob datum failed", K(ret), K(v.get_meta()), K(expr.obj_meta_));
|
||||
}
|
||||
}
|
||||
|
||||
|
||||
Reference in New Issue
Block a user