diff --git a/deps/oblib/src/common/object/ob_object.h b/deps/oblib/src/common/object/ob_object.h index 752715c06..0980043e1 100644 --- a/deps/oblib/src/common/object/ob_object.h +++ b/deps/oblib/src/common/object/ob_object.h @@ -650,8 +650,8 @@ struct ObMemLobCommon static const uint32_t MAGIC_CODE2 = 0x7F7FABCD; // LOB magic for debug ObMemLobCommon(ObMemLobType type, bool is_simple) : - lob_common_(), type_(type), read_only_(0), has_inrow_data_(1), is_open_(0), - is_simple_(is_simple), has_extern_(0), reserved_(0), version_(MEM_LOB_LOCATOR_VERSION) + lob_common_(), version_(MEM_LOB_LOCATOR_VERSION), type_(type), read_only_(0), + has_inrow_data_(1), is_open_(0), is_simple_(is_simple), has_extern_(0), reserved_(0) { lob_common_.is_mem_loc_ = 1; } OB_INLINE void set_extern(bool has_extern) { has_extern_ = has_extern ? 1 : 0; }; @@ -690,6 +690,7 @@ struct ObMemLobCommon ObLobCommon lob_common_; // version, type, flags total 4 bytes, correspoinding to the old locator version + uint32_t version_ : 8; uint32_t type_ : 4; // ObMemLobType (Persistent/TmpFull/TmpDelta) // flags, 20 bits @@ -703,7 +704,6 @@ struct ObMemLobCommon uint32_t has_extern_ : 1; // Indicate whether the lob locator has extern segment uint32_t reserved_ : 15; - uint32_t version_ : 8; char data_[0]; }; diff --git a/src/share/ob_virtual_table_iterator.cpp b/src/share/ob_virtual_table_iterator.cpp index 0e9be36ae..963348489 100644 --- a/src/share/ob_virtual_table_iterator.cpp +++ b/src/share/ob_virtual_table_iterator.cpp @@ -415,7 +415,7 @@ int ObVirtualTableIterator::get_next_row(ObNewRow *&row) && is_lob_storage(col_schema->get_data_type()) && !cur_row->cells_[i].has_lob_header()) { // cannot be json type; ObObj &obj_convert = cur_row->cells_[i]; - if (OB_FAIL(ObTextStringResult::ob_convert_obj_temporay_lob(obj_convert, *allocator_))) { + if (OB_FAIL(ObTextStringResult::ob_convert_obj_temporay_lob(obj_convert, row_calc_buf_))) { LOG_WARN("fail to add lob header", KR(ret), "object", cur_row->cells_[i]); } }