diff --git a/src/share/schema/ob_schema_mgr_cache.cpp b/src/share/schema/ob_schema_mgr_cache.cpp index 86c3f890d3..432ececa9c 100644 --- a/src/share/schema/ob_schema_mgr_cache.cpp +++ b/src/share/schema/ob_schema_mgr_cache.cpp @@ -372,6 +372,8 @@ static const char* ref_info_type_strs[] = { "DIS_TASK_SPLITER", "DAS_CTX", "SCHEMA_RECORDER", + "SPI_RESULT_SET", + "PL_PREPARE_RESULT", "MOD_MAX", }; diff --git a/src/share/schema/ob_schema_mgr_cache.h b/src/share/schema/ob_schema_mgr_cache.h index 7763bc77c0..bde7669e05 100644 --- a/src/share/schema/ob_schema_mgr_cache.h +++ b/src/share/schema/ob_schema_mgr_cache.h @@ -23,13 +23,13 @@ namespace oceanbase class ObSchemaSlot { public: - ObSchemaSlot(): tenant_id_(OB_INVALID_TENANT_ID), slot_id_(OB_INVALID_INDEX), - schema_version_(OB_INVALID_VERSION), schema_count_(OB_INVALID_COUNT), + ObSchemaSlot(): tenant_id_(OB_INVALID_TENANT_ID), slot_id_(OB_INVALID_INDEX), + schema_version_(OB_INVALID_VERSION), schema_count_(OB_INVALID_COUNT), ref_cnt_(OB_INVALID_COUNT), mod_ref_infos_() {} ~ObSchemaSlot() {} void reset(); - void init(const uint64_t &tenant_id, const int64_t &slot_id, - const int64_t &schema_version, const int64_t &schema_count, + void init(const uint64_t &tenant_id, const int64_t &slot_id, + const int64_t &schema_version, const int64_t &schema_count, const int64_t &ref_cnt, const common::ObString &str); uint64_t get_tenant_id() const { return tenant_id_; } int64_t get_slot_id() const { return slot_id_; } @@ -37,7 +37,7 @@ public: int64_t get_schema_count() const { return schema_count_; } int64_t get_ref_cnt() const { return ref_cnt_;} const common::ObString& get_mod_ref_infos() const { return mod_ref_infos_; } - TO_STRING_KV(K_(tenant_id), K_(slot_id), K_(schema_version), + TO_STRING_KV(K_(tenant_id), K_(slot_id), K_(schema_version), K_(schema_count), K_(ref_cnt), K_(mod_ref_infos)); private: uint64_t tenant_id_; @@ -46,7 +46,7 @@ private: int64_t schema_count_; int64_t ref_cnt_; common::ObString mod_ref_infos_; -}; +}; namespace common { } @@ -89,6 +89,8 @@ struct ObSchemaMgrItem MOD_DIS_TASK_SPLITER = 26, MOD_DAS_CTX = 27, MOD_SCHEMA_RECORDER = 28, + MOD_SPI_RESULT_SET = 29, + MOD_PL_PREPARE_RESULT = 30, MOD_MAX }; ObSchemaMgrItem() @@ -142,7 +144,7 @@ public: const ObSchemaMgr *&schema_mgr, ObSchemaMgrHandle &handle); int get_recycle_schema_version(int64_t &schema_version) const; - int get_slot_info(common::ObIAllocator &allocator, + int get_slot_info(common::ObIAllocator &allocator, common::ObIArray &tenant_slot_infos); int put(ObSchemaMgr *schema_mgr, ObSchemaMgr *&eli_schema_mgr, @@ -157,7 +159,7 @@ private: // need process in wlock int try_update_latest_schema_idx(); int get_ref_info_type_str_(const int64_t &index, const char *&type_str); - int build_ref_mod_infos_(const int64_t *mod_ref, char *&buff, + int build_ref_mod_infos_(const int64_t *mod_ref, char *&buff, const int64_t &buf_len, common::ObString &str); private: DISALLOW_COPY_AND_ASSIGN(ObSchemaMgrCache); diff --git a/src/sql/ob_spi.h b/src/sql/ob_spi.h index 6462586197..b495ae5bd1 100644 --- a/src/sql/ob_spi.h +++ b/src/sql/ob_spi.h @@ -106,7 +106,7 @@ public: allocator_(ObModIds::OB_PL_TEMP), result_set_(NULL), sql_ctx_(), - schema_guard_(), + schema_guard_(share::schema::ObSchemaMgrItem::MOD_SPI_RESULT_SET), orign_nested_count_(-1), cursor_nested_count_(-1), orign_session_value_(NULL), @@ -272,7 +272,7 @@ public: mem_context_(nullptr), mem_context_destroy_guard_(mem_context_), sql_ctx_(), - schema_guard_() {} + schema_guard_(share::schema::ObSchemaMgrItem::MOD_PL_PREPARE_RESULT) {} ~PLPrepareResult() { reset(); } int init(sql::ObSQLSessionInfo &session_info); void reset()