diff --git a/src/share/ob_lob_access_utils.h b/src/share/ob_lob_access_utils.h index f1918b47a5ec6414d22c364f9469a1586d2c0786..a132758ae8e239e9ee672270222452ee358ee1fd 100644 --- a/src/share/ob_lob_access_utils.h +++ b/src/share/ob_lob_access_utils.h @@ -116,7 +116,7 @@ public: bool has_lob_header) : type_(type), cs_type_(cs_type), is_init_(false), is_lob_(false), is_outrow_(false), has_lob_header_(has_lob_header), state_(TEXTSTRING_ITER_INVALID), datum_str_(datum_str), - err_ret_(OB_SUCCESS) + ctx_(nullptr), err_ret_(OB_SUCCESS) { if (is_lob_storage(type)) { validate_has_lob_header(has_lob_header_); @@ -126,7 +126,7 @@ public: ObTextStringIter(const ObObj &obj) : type_(obj.get_type()), cs_type_(obj.get_collation_type()), is_init_(false), is_lob_(false), is_outrow_(false), has_lob_header_(obj.has_lob_header()), state_(TEXTSTRING_ITER_INVALID), - datum_str_(obj.get_string()), err_ret_(OB_SUCCESS) + datum_str_(obj.get_string()), ctx_(nullptr), err_ret_(OB_SUCCESS) { if (is_lob_storage(obj.get_type())) { validate_has_lob_header(has_lob_header_); diff --git a/src/storage/lob/ob_i_lob_adaptor.h b/src/storage/lob/ob_i_lob_adaptor.h index dc21ccbc39dbc1343921ec5b306269d5d260ca01..76e3b75aa1a573abf30fabd05474c7352e7abaab 100644 --- a/src/storage/lob/ob_i_lob_adaptor.h +++ b/src/storage/lob/ob_i_lob_adaptor.h @@ -28,6 +28,9 @@ typedef struct ObLobPieceInfo ObLobPieceInfo; // TODO interface define class ObILobApator { public: + virtual int write_lob_meta(ObLobAccessParam ¶m, ObLobMetaInfo& row_info) = 0; + virtual int update_lob_meta(ObLobAccessParam& param, ObLobMetaInfo& old_row, ObLobMetaInfo& new_row) = 0; + virtual int erase_lob_meta(ObLobAccessParam ¶m, ObLobMetaInfo& row_info) = 0; virtual int scan_lob_meta(const ObLobAccessParam ¶m, ObTableScanParam &scan_param, common::ObNewRowIterator *&meta_iter_) = 0; virtual int get_lob_data(ObLobAccessParam ¶m, uint64_t piece_id, ObLobPieceInfo& info) = 0; virtual int revert_scan_iter(common::ObNewRowIterator *iter) = 0; diff --git a/src/storage/lob/ob_lob_meta.cpp b/src/storage/lob/ob_lob_meta.cpp index 11a30fe74d24388679a0fd89641772a9fc210793..9fe59c8312c2525e7ffba8a3af22b654b831b058 100644 --- a/src/storage/lob/ob_lob_meta.cpp +++ b/src/storage/lob/ob_lob_meta.cpp @@ -673,7 +673,7 @@ int ObLobMetaWriteIter::close() int ObLobMetaManager::write(ObLobAccessParam& param, ObLobMetaInfo& in_row) { int ret = OB_SUCCESS; - if (OB_FAIL(persistent_lob_adapter_.write_lob_meta_tablet(param, in_row))) { + if (OB_FAIL(persistent_lob_adapter_.write_lob_meta(param, in_row))) { LOG_WARN("write lob meta failed.", K(ret), K(param)); } return ret; @@ -721,7 +721,7 @@ int ObLobMetaManager::scan(ObLobAccessParam& param, ObLobMetaScanIter &iter) int ObLobMetaManager::erase(ObLobAccessParam& param, ObLobMetaInfo& in_row) { int ret = OB_SUCCESS; - if (OB_FAIL(persistent_lob_adapter_.erase_lob_meta_tablet(param, in_row))) { + if (OB_FAIL(persistent_lob_adapter_.erase_lob_meta(param, in_row))) { LOG_WARN("erase lob meta failed.", K(ret), K(param)); } return ret; @@ -731,7 +731,7 @@ int ObLobMetaManager::erase(ObLobAccessParam& param, ObLobMetaInfo& in_row) int ObLobMetaManager::update(ObLobAccessParam& param, ObLobMetaInfo& old_row, ObLobMetaInfo& new_row) { int ret = OB_SUCCESS; - if (OB_FAIL(persistent_lob_adapter_.update_lob_meta_tablet(param, old_row, new_row))) { + if (OB_FAIL(persistent_lob_adapter_.update_lob_meta(param, old_row, new_row))) { LOG_WARN("update lob meta failed."); } return ret; diff --git a/src/storage/lob/ob_lob_persistent_adaptor.cpp b/src/storage/lob/ob_lob_persistent_adaptor.cpp index a2661c222461e0153b5559493b2640f9fcd4b4a9..f6957712519e409b816ab710f31ee56cfdde6d85 100644 --- a/src/storage/lob/ob_lob_persistent_adaptor.cpp +++ b/src/storage/lob/ob_lob_persistent_adaptor.cpp @@ -362,7 +362,7 @@ int ObPersistentLobApator::build_lob_meta_table_dml( return ret; } -int ObPersistentLobApator::erase_lob_meta_tablet(ObLobAccessParam ¶m, ObLobMetaInfo& in_row) +int ObPersistentLobApator::erase_lob_meta(ObLobAccessParam ¶m, ObLobMetaInfo& in_row) { int ret = OB_SUCCESS; @@ -477,7 +477,7 @@ int ObPersistentLobApator::erase_lob_piece_tablet(ObLobAccessParam& param, ObLob return ret; } -int ObPersistentLobApator::write_lob_meta_tablet(ObLobAccessParam& param, ObLobMetaInfo& in_row) +int ObPersistentLobApator::write_lob_meta(ObLobAccessParam& param, ObLobMetaInfo& in_row) { int ret = OB_SUCCESS; @@ -528,7 +528,7 @@ int ObPersistentLobApator::write_lob_meta_tablet(ObLobAccessParam& param, ObLobM return ret; } -int ObPersistentLobApator::update_lob_meta_tablet(ObLobAccessParam& param, ObLobMetaInfo& old_row, ObLobMetaInfo& new_row) +int ObPersistentLobApator::update_lob_meta(ObLobAccessParam& param, ObLobMetaInfo& old_row, ObLobMetaInfo& new_row) { int ret = OB_SUCCESS; diff --git a/src/storage/lob/ob_lob_persistent_adaptor.h b/src/storage/lob/ob_lob_persistent_adaptor.h index fd47b92f24009b209e2b79fb716ef50b83abf18c..af06b2d94493ac4bf9097ed83fce5c499d205ff1 100644 --- a/src/storage/lob/ob_lob_persistent_adaptor.h +++ b/src/storage/lob/ob_lob_persistent_adaptor.h @@ -56,17 +56,17 @@ public: virtual int revert_scan_iter(common::ObNewRowIterator *iter) override; virtual int fetch_lob_id(const ObLobAccessParam& param, uint64_t &lob_id) override; // write meta tablet - int write_lob_meta_tablet(ObLobAccessParam ¶m, ObLobMetaInfo& row_info); + virtual int write_lob_meta(ObLobAccessParam ¶m, ObLobMetaInfo& row_info) override; // write piece tablet int write_lob_piece_tablet(ObLobAccessParam& param, ObLobPieceInfo& in_row); // erase meta tablet item - int erase_lob_meta_tablet(ObLobAccessParam ¶m, ObLobMetaInfo& row_info); + virtual int erase_lob_meta(ObLobAccessParam ¶m, ObLobMetaInfo& row_info) override; // erase piece tablet item int erase_lob_piece_tablet(ObLobAccessParam& param, ObLobPieceInfo& in_row); // update piece tabliet item int update_lob_piece_tablet(ObLobAccessParam& param, ObLobPieceInfo& in_row); // update lob meta tablet item - int update_lob_meta_tablet(ObLobAccessParam& param, ObLobMetaInfo& old_row, ObLobMetaInfo& new_row); + virtual int update_lob_meta(ObLobAccessParam& param, ObLobMetaInfo& old_row, ObLobMetaInfo& new_row) override; private: // get schema from schema service int get_lob_tablet_schema(