[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:
@ -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());
|
||||
}
|
||||
|
||||
|
||||
@ -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";
|
||||
|
||||
@ -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_);
|
||||
|
||||
@ -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));
|
||||
}
|
||||
|
||||
@ -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));
|
||||
}
|
||||
|
||||
@ -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));
|
||||
}
|
||||
|
||||
@ -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_;
|
||||
|
||||
@ -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);
|
||||
}
|
||||
|
||||
|
||||
Reference in New Issue
Block a user