[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

@ -392,7 +392,7 @@ TEST_F(TestCreateExecutor, refresh_exprs_frame)
ObTableCtx fake_ctx(allocator_);
ObExprFrameInfo fake_expr_info(allocator_);
ObTableEntity entity;
ObStaticEngineCG cg(CLUSTER_CURRENT_VERSION);
ObStaticEngineCG cg(GET_MIN_CLUSTER_VERSION());
// prepare data
ObObj obj;
obj.set_int(1234);
@ -464,21 +464,21 @@ TEST_F(TestCreateExecutor, check_column_type)
obj.set_null();
res_flag |= NOT_NULL_FLAG;
column_type.set_result_flag(res_flag);
ASSERT_EQ(OB_BAD_NULL_ERROR, fake_ctx.check_column_type(column_type, obj));
ASSERT_EQ(OB_BAD_NULL_ERROR, fake_ctx.adjust_column_type(column_type, obj));
// check data type mismatch
res_flag = 0;
obj.set_int(1);
column_type.set_result_flag(res_flag);
column_type.set_type(ObVarcharType);
ASSERT_EQ(OB_OBJ_TYPE_ERROR, fake_ctx.check_column_type(column_type, obj));
ASSERT_EQ(OB_OBJ_TYPE_ERROR, fake_ctx.adjust_column_type(column_type, obj));
// check collation
obj.set_binary("ttt");
column_type.set_collation_type(CS_TYPE_UTF8MB4_GENERAL_CI);
ASSERT_EQ(OB_ERR_COLLATION_MISMATCH, fake_ctx.check_column_type(column_type, obj));
ASSERT_EQ(OB_ERR_COLLATION_MISMATCH, fake_ctx.adjust_column_type(column_type, obj));
// collation convert
obj.set_varchar("test");
obj.set_collation_type(CS_TYPE_UTF8MB4_BIN);
ASSERT_EQ(OB_SUCCESS, fake_ctx.check_column_type(column_type, obj));
ASSERT_EQ(OB_SUCCESS, fake_ctx.adjust_column_type(column_type, obj));
ASSERT_EQ(CS_TYPE_UTF8MB4_GENERAL_CI, obj.get_collation_type());
}

View File

@ -76,7 +76,7 @@ TEST(ObTestDatumCmp, defined_nullsafe_func_by_type)
NULL_FIRST,
CS_TYPE_COLLATION_FREE,
SCALE_UNKNOWN_YET,
false)) {
false, false)) {
of_result << "defined\n";
} else {
of_result << "not defined\n";
@ -108,7 +108,8 @@ TEST(ObTestDatumCmp, defined_expr_func_by_type)
SCALE_UNKNOWN_YET,
SCALE_UNKNOWN_YET,
false,
CS_TYPE_COLLATION_FREE)) {
CS_TYPE_COLLATION_FREE,
false)) {
of_result << "defined\n";
} else {
of_result << "not defined\n";

View File

@ -69,7 +69,8 @@ void TestPkeyRangeSliceCalc::SetUp()
ObCmpNullPos::NULL_LAST,
ObCollationType::CS_TYPE_BINARY,
SCALE_UNKNOWN_YET,
false/*is_orace_mode*/);
false/*is_orace_mode*/,
false);
ASSERT_EQ(OB_SUCCESS, sort_cmp_funcs_.push_back(cmp_func));
int_datum_.int_ = &tmp_int_;
fake_calc_part_id_expr_ = reinterpret_cast<ObExpr *>(&tmp_int_);

View File

@ -255,7 +255,8 @@ public:
field_collation.null_pos_,
field_collation.cs_type_,
SCALE_UNKNOWN_YET,
lib::is_oracle_mode());
lib::is_oracle_mode(),
false);
ObHashFunc hash_func;
if (0 == i) {
ObExpr *func_expr = static_cast<ObExpr *> (alloc_.alloc(sizeof(ObExpr)));
@ -353,7 +354,8 @@ public:
field_collation.null_pos_,
field_collation.cs_type_,
SCALE_UNKNOWN_YET,
lib::is_oracle_mode());
lib::is_oracle_mode(),
false);
if (OB_FAIL(spec.sort_cmp_funs_.push_back(cmp_func))) {
LOG_WARN("failed to push back sort function", K(ret));
}

View File

@ -299,7 +299,8 @@ public:
field_collation.null_pos_,
field_collation.cs_type_,
SCALE_UNKNOWN_YET,
lib::is_oracle_mode());
lib::is_oracle_mode(),
false);
ObHashFunc hash_func;
if (0 == i) {
ObExpr *func_expr = static_cast<ObExpr *> (alloc_.alloc(sizeof(ObExpr)));
@ -422,7 +423,8 @@ public:
field_collation.null_pos_,
field_collation.cs_type_,
SCALE_UNKNOWN_YET,
lib::is_oracle_mode());
lib::is_oracle_mode(),
false);
if (OB_FAIL(spec.sort_cmp_funs_.push_back(cmp_func))) {
LOG_WARN("failed to push back sort function", K(ret));
}
@ -533,7 +535,8 @@ public:
field_collation.null_pos_,
field_collation.cs_type_,
SCALE_UNKNOWN_YET,
lib::is_oracle_mode());
lib::is_oracle_mode(),
false);
ObHashFunc hash_func;
if (0 == i) {
ObExpr *func_expr = static_cast<ObExpr *> (alloc_.alloc(sizeof(ObExpr)));
@ -650,7 +653,8 @@ public:
field_collation.null_pos_,
field_collation.cs_type_,
SCALE_UNKNOWN_YET,
lib::is_oracle_mode());
lib::is_oracle_mode(),
false);
if (OB_FAIL(spec.cmp_funcs_.push_back(cmp_func))) {
LOG_WARN("failed to push back sort function", K(ret));
}

View File

@ -266,7 +266,8 @@ public:
field_collation.null_pos_,
field_collation.cs_type_,
SCALE_UNKNOWN_YET,
lib::is_oracle_mode());
lib::is_oracle_mode(),
false);
if (OB_FAIL(spec.sort_cmp_funs_.push_back(cmp_func))) {
LOG_WARN("failed to push back sort function", K(ret));
}
@ -361,7 +362,8 @@ public:
field_collation.null_pos_,
field_collation.cs_type_,
SCALE_UNKNOWN_YET,
lib::is_oracle_mode());
lib::is_oracle_mode(),
false);
if (OB_FAIL(spec.cmp_funcs_.push_back(cmp_func))) {
LOG_WARN("failed to push back sort function", K(ret));
}

View File

@ -135,7 +135,8 @@ int ObMicroBlockRawEncoder::build_block(char *&buf, int64_t &size)
// <5> fill header
if (OB_SUCC(ret)) {
header_->row_count_ = static_cast<int16_t>(datum_rows_.count());
header_->encoding_has_out_row_column_ = has_out_row_column_;
header_->has_string_out_row_ = has_string_out_row_;
header_->all_lob_in_row_ = !has_lob_out_row_;
const int64_t header_size = header_->header_size_;

View File

@ -55,7 +55,7 @@ static void make_seq_id(ObIAllocator* alloc, uint32_t dig_size, char*& seq_buf,
for (int i = 0; i < dig_size; i++) {
digits[i] = random();
(void)store32be(seq_buf + offset, digits[i]);
(void)ObLobSeqId::store32be(seq_buf + offset, digits[i]);
offset += sizeof(uint32_t);
}