From dcb37f4102cb1ac94cf1e961652591843cb5bf55 Mon Sep 17 00:00:00 2001 From: hanr881 <1741282579@qq.com> Date: Mon, 25 Nov 2024 14:18:32 +0000 Subject: [PATCH] [CP] to issue<2024111500105126281>:fix trigger execute issue --- src/pl/pl_cache/ob_pl_cache.cpp | 8 +++++--- src/pl/pl_cache/ob_pl_cache.h | 13 +++++++++---- 2 files changed, 14 insertions(+), 7 deletions(-) diff --git a/src/pl/pl_cache/ob_pl_cache.cpp b/src/pl/pl_cache/ob_pl_cache.cpp index 4b50685b6..75155b837 100644 --- a/src/pl/pl_cache/ob_pl_cache.cpp +++ b/src/pl/pl_cache/ob_pl_cache.cpp @@ -81,7 +81,7 @@ int PCVPlSchemaObj::deep_copy_column_infos(const ObTableSchema *schema) int64_t real_column_cnt = 0; for (; OB_SUCC(ret) && cs_iter != cs_iter_end; cs_iter++) { const ObColumnSchemaV2 &column_schema = **cs_iter; - if (!(column_schema.is_hidden() || column_schema.is_invisible_column())) { + if (!column_schema.is_hidden()) { real_column_cnt++; } } @@ -97,7 +97,7 @@ int PCVPlSchemaObj::deep_copy_column_infos(const ObTableSchema *schema) cs_iter_end = schema->column_end(); for (; OB_SUCC(ret) && cs_iter != cs_iter_end; cs_iter++) { const ObColumnSchemaV2 &column_schema = **cs_iter; - if (column_schema.is_hidden() || column_schema.is_invisible_column()) { + if (column_schema.is_hidden()) { // do nothing } else { if (nullptr == (obj_buf = inner_alloc_->alloc(sizeof(ObPLTableColumnInfo)))) { @@ -110,6 +110,7 @@ int PCVPlSchemaObj::deep_copy_column_infos(const ObTableSchema *schema) column_info->meta_type_ = column_schema.get_meta_type(); column_info->charset_type_ = column_schema.get_charset_type(); column_info->accuracy_ = column_schema.get_accuracy(); + column_info->is_invisible_col_ = column_schema.is_invisible_column(); OZ (column_info->deep_copy_type_info(column_schema.get_extended_type_info())); if (OB_SUCC(ret)) { @@ -415,13 +416,14 @@ int ObPLObjectValue::obtain_new_column_infos(share::schema::ObSchemaGetterGuard ObTableSchema::const_column_iterator cs_iter_end = table_schema->column_end(); for (; OB_SUCC(ret) && cs_iter != cs_iter_end; cs_iter++) { const ObColumnSchemaV2 &column_schema = **cs_iter; - if (column_schema.is_hidden() || column_schema.is_invisible_column()) { + if (column_schema.is_hidden()) { // do nothing } else { column_info.column_id_ = column_schema.get_column_id(); column_info.meta_type_ = column_schema.get_meta_type(); column_info.charset_type_ = column_schema.get_charset_type(); column_info.accuracy_ = column_schema.get_accuracy(); + column_info.is_invisible_col_ = column_schema.is_invisible_column(); OZ (column_info.type_info_.assign(column_schema.get_extended_type_info())); OX (column_info.column_name_ = column_schema.get_column_name_str()); OZ (column_infos.push_back(column_info)); diff --git a/src/pl/pl_cache/ob_pl_cache.h b/src/pl/pl_cache/ob_pl_cache.h index a04d31510..9218bab4f 100644 --- a/src/pl/pl_cache/ob_pl_cache.h +++ b/src/pl/pl_cache/ob_pl_cache.h @@ -43,6 +43,7 @@ struct ObPLTableColumnInfo common::ObCharsetType charset_type_; common::ObString column_name_; common::ObArray type_info_;//used for enum and set + bool is_invisible_col_; ObPLTableColumnInfo(): inner_alloc_(nullptr), @@ -51,7 +52,8 @@ struct ObPLTableColumnInfo accuracy_(), charset_type_(CHARSET_INVALID), column_name_(), - type_info_() + type_info_(), + is_invisible_col_() {} explicit ObPLTableColumnInfo(ObIAllocator *alloc): @@ -61,7 +63,8 @@ struct ObPLTableColumnInfo accuracy_(), charset_type_(CHARSET_INVALID), column_name_(), - type_info_() + type_info_(), + is_invisible_col_() {} bool operator==(const ObPLTableColumnInfo &other) const @@ -78,7 +81,8 @@ struct ObPLTableColumnInfo meta_type_ == other.meta_type_ && accuracy_ == other.accuracy_ && charset_type_ == other.charset_type_ && - column_name_ == other.column_name_; + column_name_ == other.column_name_ && + is_invisible_col_ == other.is_invisible_col_; } return is_same; } @@ -99,7 +103,8 @@ struct ObPLTableColumnInfo K_(meta_type), K_(accuracy), K_(charset_type), - K_(column_name)); + K_(column_name), + K_(is_invisible_col)); }; //todo:when PCVSchemaObj has been moved to appropriate header file, use PCVSchemaObj to instead of PCVPlSchemaObj