[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:
obdev
2023-01-28 20:40:15 +08:00
committed by ob-robot
parent 4bb1033505
commit 3d4f554258
350 changed files with 19091 additions and 3918 deletions

View File

@ -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_));
}
}