[BUGFIX]fix lob not strict default val
This commit is contained in:
parent
e2586353e4
commit
6f294fda6b
16
deps/oblib/src/common/object/ob_object.h
vendored
16
deps/oblib/src/common/object/ob_object.h
vendored
@ -961,7 +961,7 @@ public:
|
||||
{
|
||||
validate_has_lob_header(has_lob_header_);
|
||||
return has_lob_header_ && OB_NOT_NULL(ptr_) &&
|
||||
!is_lob_disk_locator() &&
|
||||
!is_lob_disk_locator() && size_ >= MEM_LOB_COMMON_HEADER_LEN &&
|
||||
(reinterpret_cast<ObMemLobCommon *>(ptr_))->is_read_only();
|
||||
}
|
||||
|
||||
@ -973,7 +973,7 @@ public:
|
||||
} else if (OB_NOT_NULL(ptr_)) {
|
||||
if (is_lob_disk_locator()) {
|
||||
bret = (reinterpret_cast<ObLobCommon *>(ptr_))->in_row_;
|
||||
} else {
|
||||
} else if (size_ >= MEM_LOB_COMMON_HEADER_LEN) {
|
||||
bret = (reinterpret_cast<ObMemLobCommon *>(ptr_))->has_inrow_data();
|
||||
}
|
||||
}
|
||||
@ -984,7 +984,7 @@ public:
|
||||
{
|
||||
validate_has_lob_header(has_lob_header_);
|
||||
return has_lob_header_ && OB_NOT_NULL(ptr_) &&
|
||||
!is_lob_disk_locator() &&
|
||||
!is_lob_disk_locator() && size_ >= MEM_LOB_COMMON_HEADER_LEN &&
|
||||
(reinterpret_cast<ObMemLobCommon *>(ptr_))->is_open();
|
||||
}
|
||||
|
||||
@ -992,7 +992,7 @@ public:
|
||||
{
|
||||
validate_has_lob_header(has_lob_header_);
|
||||
return has_lob_header_ && OB_NOT_NULL(ptr_) &&
|
||||
!is_lob_disk_locator() &&
|
||||
!is_lob_disk_locator() && size_ >= MEM_LOB_COMMON_HEADER_LEN &&
|
||||
(reinterpret_cast<ObMemLobCommon *>(ptr_))->is_simple();
|
||||
}
|
||||
|
||||
@ -1000,7 +1000,7 @@ public:
|
||||
{
|
||||
validate_has_lob_header(has_lob_header_);
|
||||
return has_lob_header_ && OB_NOT_NULL(ptr_) &&
|
||||
!is_lob_disk_locator() &&
|
||||
!is_lob_disk_locator() && size_ >= MEM_LOB_COMMON_HEADER_LEN &&
|
||||
(reinterpret_cast<ObMemLobCommon *>(ptr_))->has_extern();
|
||||
}
|
||||
|
||||
@ -1009,7 +1009,7 @@ public:
|
||||
{
|
||||
validate_has_lob_header(has_lob_header_);
|
||||
return has_lob_header_ && OB_NOT_NULL(ptr_) &&
|
||||
!is_lob_disk_locator() &&
|
||||
!is_lob_disk_locator() && size_ >= MEM_LOB_COMMON_HEADER_LEN &&
|
||||
(reinterpret_cast<ObMemLobCommon *>(ptr_))->is_persist();
|
||||
}
|
||||
|
||||
@ -1018,7 +1018,7 @@ public:
|
||||
validate_has_lob_header(has_lob_header_);
|
||||
return (!has_lob_header_)
|
||||
|| (has_lob_header_ && OB_NOT_NULL(ptr_) &&
|
||||
!is_lob_disk_locator() &&
|
||||
!is_lob_disk_locator() && size_ >= MEM_LOB_COMMON_HEADER_LEN &&
|
||||
(reinterpret_cast<ObMemLobCommon *>(ptr_))->is_temporary_full());
|
||||
}
|
||||
|
||||
@ -1026,7 +1026,7 @@ public:
|
||||
{
|
||||
validate_has_lob_header(has_lob_header_);
|
||||
return has_lob_header_ && OB_NOT_NULL(ptr_) &&
|
||||
!is_lob_disk_locator() &&
|
||||
!is_lob_disk_locator() && size_ >= MEM_LOB_COMMON_HEADER_LEN &&
|
||||
(reinterpret_cast<ObMemLobCommon *>(ptr_))->is_temporary_delta();
|
||||
}
|
||||
|
||||
|
@ -3513,10 +3513,8 @@ int ObLSTabletService::check_old_row_legitimacy(
|
||||
const ObIArray<uint64_t> &column_ids = *run_ctx.column_ids_;
|
||||
if (OB_FAIL(rowkey_helper.convert_datum_rowkey(rowkey.get_rowkey(), datum_rowkey))) {
|
||||
STORAGE_LOG(WARN, "Failed to transfer datum rowkey", K(ret), K(rowkey));
|
||||
} else if (OB_FAIL(old_row_getter.init_dml_access_ctx(run_ctx.store_ctx_, dml_param, true))) {
|
||||
LOG_WARN("init dml access ctx failed", K(ret));
|
||||
} else if (OB_FAIL(old_row_getter.init_dml_access_param(data_table, dml_param, column_ids))) {
|
||||
LOG_WARN("init dml access param failed", K(ret));
|
||||
} else if (OB_FAIL(init_single_row_getter(old_row_getter, run_ctx, column_ids, data_table, true))) {
|
||||
LOG_WARN("failed to init single row getter", K(ret));
|
||||
} else if (OB_FAIL(old_row_getter.open(datum_rowkey, true))) {
|
||||
LOG_WARN("open old row getter failed", K(ret), K(rowkey));
|
||||
} else if (OB_FAIL(old_row_getter.get_next_row(storage_old_row))) {
|
||||
@ -3770,7 +3768,9 @@ int ObLSTabletService::insert_lob_col(
|
||||
// Notice: currently only inrow data
|
||||
ObString raw_data = obj.get_string();
|
||||
ObString data;
|
||||
ObLobLocatorV2 loc(raw_data, obj.has_lob_header());
|
||||
// for not strict sql mode, will insert empty string without lob header
|
||||
bool has_lob_header = obj.has_lob_header() && raw_data.length() > 0;
|
||||
ObLobLocatorV2 loc(raw_data, has_lob_header);
|
||||
if (OB_FAIL(lob_mngr->append(lob_param, loc))) {
|
||||
LOG_WARN("[STORAGE_LOB]lob append failed.", K(ret));
|
||||
} else {
|
||||
|
Loading…
x
Reference in New Issue
Block a user