From 63e6b43c77e0b04c59086846f4e47c2573bd12b0 Mon Sep 17 00:00:00 2001 From: joseph12138 <17862707376@163.com> Date: Mon, 15 Jul 2024 09:25:07 +0000 Subject: [PATCH] [4.4] add required_size for __all_virtual_ls_info --- .../virtual_table/ob_all_virtual_ls_info.cpp | 4 ++++ .../ob_inner_table_schema.12251_12300.cpp | 19 +++++++++++++++++++ .../ob_inner_table_schema.15401_15450.cpp | 15 +++++++++++++++ .../inner_table/ob_inner_table_schema_def.py | 1 + .../mysql/desc_virtual_table_in_mysql.result | 1 + .../r/mysql/desc_virtual_table_in_sys.result | 1 + 6 files changed, 41 insertions(+) diff --git a/src/observer/virtual_table/ob_all_virtual_ls_info.cpp b/src/observer/virtual_table/ob_all_virtual_ls_info.cpp index e911f7f34..240ac7340 100644 --- a/src/observer/virtual_table/ob_all_virtual_ls_info.cpp +++ b/src/observer/virtual_table/ob_all_virtual_ls_info.cpp @@ -197,6 +197,10 @@ int ObAllVirtualLSInfo::process_curr_tenant(ObNewRow *&row) // tx blocked cur_row_.cells_[i].set_int(ls_info.tx_blocked_); break; + case OB_APP_MIN_COLUMN_ID + 16: + // required_size + cur_row_.cells_[i].set_int(0); + break; default: ret = OB_ERR_UNEXPECTED; SERVER_LOG(WARN, "invalid col_id", K(ret), K(col_id)); diff --git a/src/share/inner_table/ob_inner_table_schema.12251_12300.cpp b/src/share/inner_table/ob_inner_table_schema.12251_12300.cpp index 300b6cd51..bd2646f2b 100644 --- a/src/share/inner_table/ob_inner_table_schema.12251_12300.cpp +++ b/src/share/inner_table/ob_inner_table_schema.12251_12300.cpp @@ -9827,6 +9827,25 @@ int ObInnerTableSchema::all_virtual_ls_info_schema(ObTableSchema &table_schema) false, //is_nullable false); //is_autoincrement } + + if (OB_SUCC(ret)) { + ObObj required_size_default; + required_size_default.set_int(0); + ADD_COLUMN_SCHEMA_T("required_size", //column_name + ++column_id, //column_id + 0, //rowkey_id + 0, //index_id + 0, //part_key_pos + ObIntType, //column_type + CS_TYPE_INVALID, //column_collation_type + sizeof(int64_t), //column_length + -1, //column_precision + -1, //column_scale + false, //is_nullable + false, //is_autoincrement + required_size_default, + required_size_default); //default_value + } if (OB_SUCC(ret)) { table_schema.get_part_option().set_part_num(1); table_schema.set_part_level(PARTITION_LEVEL_ONE); diff --git a/src/share/inner_table/ob_inner_table_schema.15401_15450.cpp b/src/share/inner_table/ob_inner_table_schema.15401_15450.cpp index f69d770f4..c88512559 100644 --- a/src/share/inner_table/ob_inner_table_schema.15401_15450.cpp +++ b/src/share/inner_table/ob_inner_table_schema.15401_15450.cpp @@ -5082,6 +5082,21 @@ int ObInnerTableSchema::all_virtual_ls_info_ora_schema(ObTableSchema &table_sche false, //is_nullable false); //is_autoincrement } + + if (OB_SUCC(ret)) { + ADD_COLUMN_SCHEMA("REQUIRED_SIZE", //column_name + ++column_id, //column_id + 0, //rowkey_id + 0, //index_id + 0, //part_key_pos + ObNumberType, //column_type + CS_TYPE_INVALID, //column_collation_type + 38, //column_length + 38, //column_precision + 0, //column_scale + false, //is_nullable + false); //is_autoincrement + } if (OB_SUCC(ret)) { table_schema.get_part_option().set_part_num(1); table_schema.set_part_level(PARTITION_LEVEL_ONE); diff --git a/src/share/inner_table/ob_inner_table_schema_def.py b/src/share/inner_table/ob_inner_table_schema_def.py index 0f7b665f4..646d7f1b3 100644 --- a/src/share/inner_table/ob_inner_table_schema_def.py +++ b/src/share/inner_table/ob_inner_table_schema_def.py @@ -12341,6 +12341,7 @@ def_table_schema( ('tablet_change_checkpoint_scn', 'uint'), ('transfer_scn', 'uint'), ('tx_blocked', 'int'), + ('required_size', 'int', 'false', 0), ], partition_columns = ['svr_ip', 'svr_port'], vtable_route_policy = 'distributed', diff --git a/tools/deploy/mysql_test/test_suite/inner_table/r/mysql/desc_virtual_table_in_mysql.result b/tools/deploy/mysql_test/test_suite/inner_table/r/mysql/desc_virtual_table_in_mysql.result index 183325c16..75281debc 100644 --- a/tools/deploy/mysql_test/test_suite/inner_table/r/mysql/desc_virtual_table_in_mysql.result +++ b/tools/deploy/mysql_test/test_suite/inner_table/r/mysql/desc_virtual_table_in_mysql.result @@ -2879,6 +2879,7 @@ rebuild_seq bigint(20) NO NULL tablet_change_checkpoint_scn bigint(20) unsigned NO NULL transfer_scn bigint(20) unsigned NO NULL tx_blocked bigint(20) NO NULL +required_size bigint(20) NO 0 select /*+QUERY_TIMEOUT(60000000)*/ IF(count(*) >= 0, 1, 0) from oceanbase.__all_virtual_ls_info; IF(count(*) >= 0, 1, 0) 1 diff --git a/tools/deploy/mysql_test/test_suite/inner_table/r/mysql/desc_virtual_table_in_sys.result b/tools/deploy/mysql_test/test_suite/inner_table/r/mysql/desc_virtual_table_in_sys.result index 6d886208a..7defc9adb 100644 --- a/tools/deploy/mysql_test/test_suite/inner_table/r/mysql/desc_virtual_table_in_sys.result +++ b/tools/deploy/mysql_test/test_suite/inner_table/r/mysql/desc_virtual_table_in_sys.result @@ -6462,6 +6462,7 @@ rebuild_seq bigint(20) NO NULL tablet_change_checkpoint_scn bigint(20) unsigned NO NULL transfer_scn bigint(20) unsigned NO NULL tx_blocked bigint(20) NO NULL +required_size bigint(20) NO 0 select /*+QUERY_TIMEOUT(60000000)*/ IF(count(*) >= 0, 1, 0) from oceanbase.__all_virtual_ls_info; IF(count(*) >= 0, 1, 0) 1