cherry-pick omitted fixs to open-source branch

This commit is contained in:
obdev 2021-07-19 23:12:15 +08:00 committed by wangzelin.wzl
parent c949c5e01f
commit ae0ace666f
51 changed files with 141004 additions and 141679 deletions

View File

@ -404,9 +404,12 @@ void ObExtStoreRange::set_range_array_idx(const int64_t range_array_idx)
}
// for multi version get, the rowkey would be converted into a range (with trans version),
// e.g. rowkey1 -> [(rowkey1, -read_snapshot), (rowkey1, MIN_VERSION))
int ObVersionStoreRangeConversionHelper::store_rowkey_to_multi_version_range(const ObExtStoreRowkey& src_rowkey,
const ObVersionRange& version_range, ObIAllocator& allocator, ObExtStoreRange& multi_version_range)
// e.g. rowkey1 -> [(rowkey1, -read_snapshot), (rowkey1, MAX_VERSION)]
int ObVersionStoreRangeConversionHelper::store_rowkey_to_multi_version_range(
const ObExtStoreRowkey &src_rowkey,
const ObVersionRange &version_range,
ObIAllocator &allocator,
ObExtStoreRange &multi_version_range)
{
int ret = OB_SUCCESS;
// FIXME: hard coding
@ -420,24 +423,28 @@ int ObVersionStoreRangeConversionHelper::store_rowkey_to_multi_version_range(con
multi_version_range.get_range().get_start_key()))) {
COMMON_LOG(WARN, "build multi version store rowkey failed", K(ret), K(src_rowkey), K(version_range));
} else if (OB_FAIL(build_multi_version_store_rowkey(src_rowkey.get_store_rowkey(),
ObVersionRange::MIN_VERSION,
allocator,
multi_version_range.get_range().get_end_key()))) {
COMMON_LOG(WARN, "build multi version store rowkey failed", K(ret), K(src_rowkey), K(version_range));
ObVersionRange::MAX_VERSION,
allocator,
multi_version_range.get_range().get_end_key()))) {
COMMON_LOG(WARN, "build multi version store rowkey failed",
K(ret), K(src_rowkey), K(version_range));
} else if (OB_FAIL(multi_version_range.to_collation_free_range_on_demand_and_cutoff_range(allocator))) {
COMMON_LOG(WARN, "fail to get colllation free rowkey and range cutoff", K(ret));
} else {
multi_version_range.get_range().set_left_closed();
multi_version_range.get_range().set_right_open();
multi_version_range.get_range().set_right_closed();
}
return ret;
}
// for multi version scan, the range would be converted into a range (with trans version),
// e.g. case 1 : (rowkey1, rowkey2) -> ((rowkey1, MIN_VERSION), (rowkey2, -MAX_VERSION))
// case 2 : [rowkey1, rowkey2] -> [(rowkey1, -read_snapshot), (rowkey2, MIN_VERSION))
int ObVersionStoreRangeConversionHelper::range_to_multi_version_range(const ObExtStoreRange& src_range,
const ObVersionRange& version_range, ObIAllocator& allocator, ObExtStoreRange& multi_version_range)
// e.g. case 1 : (rowkey1, rowkey2) -> ((rowkey1, MAX_VERSION), (rowkey2, -MAX_VERSION))
// case 2 : [rowkey1, rowkey2] -> [(rowkey1, -MAX_VERSION), (rowkey2, MAX_VERSION)]
int ObVersionStoreRangeConversionHelper::range_to_multi_version_range(
const ObExtStoreRange &src_range,
const ObVersionRange &version_range,
ObIAllocator &allocator,
ObExtStoreRange &multi_version_range)
{
int ret = OB_SUCCESS;
const bool include_start = src_range.get_range().get_border_flag().inclusive_start();
@ -448,15 +455,15 @@ int ObVersionStoreRangeConversionHelper::range_to_multi_version_range(const ObEx
ret = OB_INVALID_ARGUMENT;
COMMON_LOG(WARN, "version_range is not valid", K(ret), K(version_range));
} else if (OB_FAIL(build_multi_version_store_rowkey(src_range.get_range().get_start_key(),
include_start ? -INT64_MAX : ObVersionRange::MIN_VERSION,
allocator,
multi_version_range.get_range().get_start_key()))) {
COMMON_LOG(WARN, "build multi version store rowkey failed", K(ret), K(src_range), K(version_range));
include_start ? -INT64_MAX : ObVersionRange::MAX_VERSION,
allocator, multi_version_range.get_range().get_start_key()))) {
COMMON_LOG(WARN, "build multi version store rowkey failed",
K(ret), K(src_range), K(version_range));
} else if (OB_FAIL(build_multi_version_store_rowkey(src_range.get_range().get_end_key(),
include_end ? ObVersionRange::MIN_VERSION : -ObVersionRange::MAX_VERSION,
allocator,
multi_version_range.get_range().get_end_key()))) {
COMMON_LOG(WARN, "build multi version store rowkey failed", K(ret), K(src_range), K(version_range));
include_end ? ObVersionRange::MAX_VERSION : - ObVersionRange::MAX_VERSION,
allocator, multi_version_range.get_range().get_end_key()))) {
COMMON_LOG(WARN, "build multi version store rowkey failed",
K(ret), K(src_range), K(version_range));
} else if (OB_FAIL(multi_version_range.to_collation_free_range_on_demand_and_cutoff_range(allocator))) {
COMMON_LOG(WARN, "fail to get collation free rowkey", K(ret));
} else {
@ -466,7 +473,11 @@ int ObVersionStoreRangeConversionHelper::range_to_multi_version_range(const ObEx
} else {
multi_version_range.get_range().set_left_open();
}
multi_version_range.get_range().set_right_open();
if (include_end) {
multi_version_range.get_range().set_right_closed();
} else {
multi_version_range.get_range().set_right_open();
}
}
return ret;
}

View File

@ -298,6 +298,10 @@ int ObGVPartitionInfo::inner_get_next_row(ObNewRow*& row)
// schema_version
cur_row_.cells_[i].set_int(info.get_data_info().get_schema_version());
break;
case OB_APP_MIN_COLUMN_ID + 33:
// last_replay_log_ts
cur_row_.cells_[i].set_int(info.get_data_info().get_last_replay_log_ts());
break;
default:
ret = OB_ERR_UNEXPECTED;
SERVER_LOG(WARN, "invalid column id", K(ret), K(col_id));

File diff suppressed because it is too large Load Diff

File diff suppressed because it is too large Load Diff

File diff suppressed because it is too large Load Diff

File diff suppressed because it is too large Load Diff

File diff suppressed because it is too large Load Diff

File diff suppressed because it is too large Load Diff

File diff suppressed because it is too large Load Diff

File diff suppressed because it is too large Load Diff

File diff suppressed because it is too large Load Diff

File diff suppressed because it is too large Load Diff

File diff suppressed because it is too large Load Diff

File diff suppressed because it is too large Load Diff

File diff suppressed because it is too large Load Diff

File diff suppressed because it is too large Load Diff

File diff suppressed because it is too large Load Diff

View File

@ -17,17 +17,19 @@
#include "share/schema/ob_schema_service_sql_impl.h"
#include "share/schema/ob_table_schema.h"
namespace oceanbase {
namespace oceanbase
{
using namespace share::schema;
using namespace common;
namespace share {
namespace share
{
int ObInnerTableSchema::gv_plan_cache_stat_schema(ObTableSchema& table_schema)
int ObInnerTableSchema::gv_plan_cache_stat_schema(ObTableSchema &table_schema)
{
int ret = OB_SUCCESS;
uint64_t column_id = OB_APP_MIN_COLUMN_ID - 1;
// generated fields:
//generated fields:
table_schema.set_tenant_id(OB_SYS_TENANT_ID);
table_schema.set_tablegroup_id(combine_id(OB_SYS_TENANT_ID, OB_SYS_TABLEGROUP_ID));
table_schema.set_database_id(combine_id(OB_SYS_TENANT_ID, OB_SYS_DATABASE_ID));
@ -58,8 +60,7 @@ int ObInnerTableSchema::gv_plan_cache_stat_schema(ObTableSchema& table_schema)
table_schema.set_create_mem_version(1);
if (OB_SUCC(ret)) {
if (OB_FAIL(table_schema.set_view_definition(
R"__( SELECT tenant_id,svr_ip,svr_port,sql_num,mem_used,mem_hold,access_count, hit_count,hit_rate,plan_num,mem_limit,hash_bucket,stmtkey_num FROM oceanbase.__all_virtual_plan_cache_stat WHERE is_serving_tenant(svr_ip, svr_port, effective_tenant_id()) and (tenant_id = effective_tenant_id() or effective_tenant_id() = 1) )__"))) {
if (OB_FAIL(table_schema.set_view_definition(R"__( SELECT tenant_id,svr_ip,svr_port,sql_num,mem_used,mem_hold,access_count, hit_count,hit_rate,plan_num,mem_limit,hash_bucket,stmtkey_num FROM oceanbase.__all_virtual_plan_cache_stat WHERE is_serving_tenant(svr_ip, svr_port, effective_tenant_id()) and (tenant_id = effective_tenant_id() or effective_tenant_id() = 1) )__"))) {
LOG_ERROR("fail to set view_definition", K(ret));
}
}
@ -71,17 +72,16 @@ int ObInnerTableSchema::gv_plan_cache_stat_schema(ObTableSchema& table_schema)
table_schema.set_max_used_column_id(column_id);
table_schema.get_part_option().set_max_used_part_id(table_schema.get_part_option().get_part_num() - 1);
table_schema.get_part_option().set_partition_cnt_within_partition_table(
OB_ALL_CORE_TABLE_TID == common::extract_pure_id(table_schema.get_table_id()) ? 1 : 0);
table_schema.get_part_option().set_partition_cnt_within_partition_table(OB_ALL_CORE_TABLE_TID == common::extract_pure_id(table_schema.get_table_id()) ? 1 : 0);
return ret;
}
int ObInnerTableSchema::gv_plan_cache_plan_stat_schema(ObTableSchema& table_schema)
int ObInnerTableSchema::gv_plan_cache_plan_stat_schema(ObTableSchema &table_schema)
{
int ret = OB_SUCCESS;
uint64_t column_id = OB_APP_MIN_COLUMN_ID - 1;
// generated fields:
//generated fields:
table_schema.set_tenant_id(OB_SYS_TENANT_ID);
table_schema.set_tablegroup_id(combine_id(OB_SYS_TENANT_ID, OB_SYS_TABLEGROUP_ID));
table_schema.set_database_id(combine_id(OB_SYS_TENANT_ID, OB_SYS_DATABASE_ID));
@ -112,8 +112,7 @@ int ObInnerTableSchema::gv_plan_cache_plan_stat_schema(ObTableSchema& table_sche
table_schema.set_create_mem_version(1);
if (OB_SUCC(ret)) {
if (OB_FAIL(table_schema.set_view_definition(
R"__( SELECT tenant_id,svr_ip,svr_port,plan_id,sql_id,type,is_bind_sensitive,is_bind_aware,db_id,statement,query_sql,special_params,param_infos, sys_vars,plan_hash,first_load_time,schema_version,merged_version,last_active_time,avg_exe_usec,slowest_exe_time,slowest_exe_usec,slow_count,hit_count,plan_size,executions,disk_reads,direct_writes,buffer_gets,application_wait_time,concurrency_wait_time,user_io_wait_time,rows_processed,elapsed_time,cpu_time,large_querys,delayed_large_querys,delayed_px_querys,outline_version,outline_id,outline_data,acs_sel_info,table_scan,evolution, evo_executions, evo_cpu_time, timeout_count, ps_stmt_id, sessid, temp_tables, is_use_jit,object_type,hints_info,hints_all_worked, pl_schema_id, is_batched_multi_stmt FROM oceanbase.__all_virtual_plan_stat WHERE is_serving_tenant(svr_ip, svr_port, effective_tenant_id()) and (tenant_id = effective_tenant_id() or effective_tenant_id() = 1) )__"))) {
if (OB_FAIL(table_schema.set_view_definition(R"__( SELECT tenant_id,svr_ip,svr_port,plan_id,sql_id,type,is_bind_sensitive,is_bind_aware,db_id,statement,query_sql,special_params,param_infos, sys_vars,plan_hash,first_load_time,schema_version,merged_version,last_active_time,avg_exe_usec,slowest_exe_time,slowest_exe_usec,slow_count,hit_count,plan_size,executions,disk_reads,direct_writes,buffer_gets,application_wait_time,concurrency_wait_time,user_io_wait_time,rows_processed,elapsed_time,cpu_time,large_querys,delayed_large_querys,delayed_px_querys,outline_version,outline_id,outline_data,acs_sel_info,table_scan,evolution, evo_executions, evo_cpu_time, timeout_count, ps_stmt_id, sessid, temp_tables, is_use_jit,object_type,hints_info,hints_all_worked, pl_schema_id, is_batched_multi_stmt FROM oceanbase.__all_virtual_plan_stat WHERE is_serving_tenant(svr_ip, svr_port, effective_tenant_id()) and (tenant_id = effective_tenant_id() or effective_tenant_id() = 1) )__"))) {
LOG_ERROR("fail to set view_definition", K(ret));
}
}
@ -125,17 +124,16 @@ int ObInnerTableSchema::gv_plan_cache_plan_stat_schema(ObTableSchema& table_sche
table_schema.set_max_used_column_id(column_id);
table_schema.get_part_option().set_max_used_part_id(table_schema.get_part_option().get_part_num() - 1);
table_schema.get_part_option().set_partition_cnt_within_partition_table(
OB_ALL_CORE_TABLE_TID == common::extract_pure_id(table_schema.get_table_id()) ? 1 : 0);
table_schema.get_part_option().set_partition_cnt_within_partition_table(OB_ALL_CORE_TABLE_TID == common::extract_pure_id(table_schema.get_table_id()) ? 1 : 0);
return ret;
}
int ObInnerTableSchema::schemata_schema(ObTableSchema& table_schema)
int ObInnerTableSchema::schemata_schema(ObTableSchema &table_schema)
{
int ret = OB_SUCCESS;
uint64_t column_id = OB_APP_MIN_COLUMN_ID - 1;
// generated fields:
//generated fields:
table_schema.set_tenant_id(OB_SYS_TENANT_ID);
table_schema.set_tablegroup_id(OB_INVALID_ID);
table_schema.set_database_id(combine_id(OB_SYS_TENANT_ID, OB_INFORMATION_SCHEMA_ID));
@ -166,8 +164,7 @@ int ObInnerTableSchema::schemata_schema(ObTableSchema& table_schema)
table_schema.set_create_mem_version(1);
if (OB_SUCC(ret)) {
if (OB_FAIL(table_schema.set_view_definition(
R"__( SELECT 'def' AS CATALOG_NAME, DATABASE_NAME AS SCHEMA_NAME, 'utf8mb4' AS DEFAULT_CHARACTER_SET_NAME, 'utf8mb4_general_ci' AS DEFAULT_COLLATION_NAME, NULL AS SQL_PATH FROM oceanbase.__all_virtual_database a WHERE a.tenant_id = effective_tenant_id() and in_recyclebin = 0 and database_name != '__recyclebin' )__"))) {
if (OB_FAIL(table_schema.set_view_definition(R"__( SELECT 'def' AS CATALOG_NAME, DATABASE_NAME AS SCHEMA_NAME, 'utf8mb4' AS DEFAULT_CHARACTER_SET_NAME, 'utf8mb4_general_ci' AS DEFAULT_COLLATION_NAME, NULL AS SQL_PATH FROM oceanbase.__all_virtual_database a WHERE a.tenant_id = effective_tenant_id() and in_recyclebin = 0 and database_name != '__recyclebin' )__"))) {
LOG_ERROR("fail to set view_definition", K(ret));
}
}
@ -179,17 +176,16 @@ int ObInnerTableSchema::schemata_schema(ObTableSchema& table_schema)
table_schema.set_max_used_column_id(column_id);
table_schema.get_part_option().set_max_used_part_id(table_schema.get_part_option().get_part_num() - 1);
table_schema.get_part_option().set_partition_cnt_within_partition_table(
OB_ALL_CORE_TABLE_TID == common::extract_pure_id(table_schema.get_table_id()) ? 1 : 0);
table_schema.get_part_option().set_partition_cnt_within_partition_table(OB_ALL_CORE_TABLE_TID == common::extract_pure_id(table_schema.get_table_id()) ? 1 : 0);
return ret;
}
int ObInnerTableSchema::character_sets_schema(ObTableSchema& table_schema)
int ObInnerTableSchema::character_sets_schema(ObTableSchema &table_schema)
{
int ret = OB_SUCCESS;
uint64_t column_id = OB_APP_MIN_COLUMN_ID - 1;
// generated fields:
//generated fields:
table_schema.set_tenant_id(OB_SYS_TENANT_ID);
table_schema.set_tablegroup_id(OB_INVALID_ID);
table_schema.set_database_id(combine_id(OB_SYS_TENANT_ID, OB_INFORMATION_SCHEMA_ID));
@ -220,8 +216,7 @@ int ObInnerTableSchema::character_sets_schema(ObTableSchema& table_schema)
table_schema.set_create_mem_version(1);
if (OB_SUCC(ret)) {
if (OB_FAIL(table_schema.set_view_definition(
R"__( SELECT CHARSET AS CHARACTER_SET_NAME, DEFAULT_COLLATION AS DEFAULT_COLLATE_NAME, DESCRIPTION, max_length AS MAXLEN FROM oceanbase.__tenant_virtual_charset )__"))) {
if (OB_FAIL(table_schema.set_view_definition(R"__( SELECT CHARSET AS CHARACTER_SET_NAME, DEFAULT_COLLATION AS DEFAULT_COLLATE_NAME, DESCRIPTION, max_length AS MAXLEN FROM oceanbase.__tenant_virtual_charset )__"))) {
LOG_ERROR("fail to set view_definition", K(ret));
}
}
@ -233,17 +228,16 @@ int ObInnerTableSchema::character_sets_schema(ObTableSchema& table_schema)
table_schema.set_max_used_column_id(column_id);
table_schema.get_part_option().set_max_used_part_id(table_schema.get_part_option().get_part_num() - 1);
table_schema.get_part_option().set_partition_cnt_within_partition_table(
OB_ALL_CORE_TABLE_TID == common::extract_pure_id(table_schema.get_table_id()) ? 1 : 0);
table_schema.get_part_option().set_partition_cnt_within_partition_table(OB_ALL_CORE_TABLE_TID == common::extract_pure_id(table_schema.get_table_id()) ? 1 : 0);
return ret;
}
int ObInnerTableSchema::global_variables_schema(ObTableSchema& table_schema)
int ObInnerTableSchema::global_variables_schema(ObTableSchema &table_schema)
{
int ret = OB_SUCCESS;
uint64_t column_id = OB_APP_MIN_COLUMN_ID - 1;
// generated fields:
//generated fields:
table_schema.set_tenant_id(OB_SYS_TENANT_ID);
table_schema.set_tablegroup_id(OB_INVALID_ID);
table_schema.set_database_id(combine_id(OB_SYS_TENANT_ID, OB_INFORMATION_SCHEMA_ID));
@ -274,8 +268,7 @@ int ObInnerTableSchema::global_variables_schema(ObTableSchema& table_schema)
table_schema.set_create_mem_version(1);
if (OB_SUCC(ret)) {
if (OB_FAIL(table_schema.set_view_definition(
R"__( SELECT `variable_name` as VARIABLE_NAME, `value` as VARIABLE_VALUE FROM oceanbase.__tenant_virtual_global_variable )__"))) {
if (OB_FAIL(table_schema.set_view_definition(R"__( SELECT `variable_name` as VARIABLE_NAME, `value` as VARIABLE_VALUE FROM oceanbase.__tenant_virtual_global_variable )__"))) {
LOG_ERROR("fail to set view_definition", K(ret));
}
}
@ -287,17 +280,16 @@ int ObInnerTableSchema::global_variables_schema(ObTableSchema& table_schema)
table_schema.set_max_used_column_id(column_id);
table_schema.get_part_option().set_max_used_part_id(table_schema.get_part_option().get_part_num() - 1);
table_schema.get_part_option().set_partition_cnt_within_partition_table(
OB_ALL_CORE_TABLE_TID == common::extract_pure_id(table_schema.get_table_id()) ? 1 : 0);
table_schema.get_part_option().set_partition_cnt_within_partition_table(OB_ALL_CORE_TABLE_TID == common::extract_pure_id(table_schema.get_table_id()) ? 1 : 0);
return ret;
}
int ObInnerTableSchema::statistics_schema(ObTableSchema& table_schema)
int ObInnerTableSchema::statistics_schema(ObTableSchema &table_schema)
{
int ret = OB_SUCCESS;
uint64_t column_id = OB_APP_MIN_COLUMN_ID - 1;
// generated fields:
//generated fields:
table_schema.set_tenant_id(OB_SYS_TENANT_ID);
table_schema.set_tablegroup_id(OB_INVALID_ID);
table_schema.set_database_id(combine_id(OB_SYS_TENANT_ID, OB_INFORMATION_SCHEMA_ID));
@ -328,8 +320,7 @@ int ObInnerTableSchema::statistics_schema(ObTableSchema& table_schema)
table_schema.set_create_mem_version(1);
if (OB_SUCC(ret)) {
if (OB_FAIL(table_schema.set_view_definition(
R"__( SELECT 'def' as TABLE_CATALOG, table_schema AS TABLE_SCHEMA, `table` as TABLE_NAME, non_unique AS NON_UNIQUE, index_schema as INDEX_SCHEMA, key_name as INDEX_NAME, seq_in_index as SEQ_IN_INDEX, column_name as COLUMN_NAME, collation as COLLATION, cardinality as CARDINALITY, sub_part as SUB_PART, packed as PACKED, `null` as NULLABLE, index_type as INDEX_TYPE, COMMENT, index_comment as INDEX_COMMENT, is_visible as IS_VISIBLE FROM oceanbase.__tenant_virtual_table_index )__"))) {
if (OB_FAIL(table_schema.set_view_definition(R"__( SELECT 'def' as TABLE_CATALOG, table_schema AS TABLE_SCHEMA, `table` as TABLE_NAME, non_unique AS NON_UNIQUE, index_schema as INDEX_SCHEMA, key_name as INDEX_NAME, seq_in_index as SEQ_IN_INDEX, column_name as COLUMN_NAME, collation as COLLATION, cardinality as CARDINALITY, sub_part as SUB_PART, packed as PACKED, `null` as NULLABLE, index_type as INDEX_TYPE, COMMENT, index_comment as INDEX_COMMENT, is_visible as IS_VISIBLE FROM oceanbase.__tenant_virtual_table_index )__"))) {
LOG_ERROR("fail to set view_definition", K(ret));
}
}
@ -341,17 +332,16 @@ int ObInnerTableSchema::statistics_schema(ObTableSchema& table_schema)
table_schema.set_max_used_column_id(column_id);
table_schema.get_part_option().set_max_used_part_id(table_schema.get_part_option().get_part_num() - 1);
table_schema.get_part_option().set_partition_cnt_within_partition_table(
OB_ALL_CORE_TABLE_TID == common::extract_pure_id(table_schema.get_table_id()) ? 1 : 0);
table_schema.get_part_option().set_partition_cnt_within_partition_table(OB_ALL_CORE_TABLE_TID == common::extract_pure_id(table_schema.get_table_id()) ? 1 : 0);
return ret;
}
int ObInnerTableSchema::views_schema(ObTableSchema& table_schema)
int ObInnerTableSchema::views_schema(ObTableSchema &table_schema)
{
int ret = OB_SUCCESS;
uint64_t column_id = OB_APP_MIN_COLUMN_ID - 1;
// generated fields:
//generated fields:
table_schema.set_tenant_id(OB_SYS_TENANT_ID);
table_schema.set_tablegroup_id(OB_INVALID_ID);
table_schema.set_database_id(combine_id(OB_SYS_TENANT_ID, OB_INFORMATION_SCHEMA_ID));
@ -382,8 +372,7 @@ int ObInnerTableSchema::views_schema(ObTableSchema& table_schema)
table_schema.set_create_mem_version(1);
if (OB_SUCC(ret)) {
if (OB_FAIL(table_schema.set_view_definition(
R"__(select /*+ READ_CONSISTENCY(WEAK) */ 'def' AS TABLE_CATALOG, d.database_name as TABLE_SCHEMA, t.table_name as TABLE_NAME, t.view_definition as VIEW_DEFINITION, 'NONE' as CHECK_OPTION, case t.view_is_updatable when 1 then 'YES' else 'NO' end as IS_UPDATABLE, 'NONE' as DEFINER, 'NONE' AS SECURITY_TYPE, case t.collation_type when 45 then 'utf8mb4' else 'NONE' end AS CHARACTER_SET_CLIENT, case t.collation_type when 45 then 'utf8mb4_general_ci' else 'NONE' end AS COLLATION_CONNECTION from oceanbase.__all_virtual_table as t join oceanbase.__all_virtual_database as d on t.tenant_id = effective_tenant_id() and d.tenant_id = effective_tenant_id() and t.database_id = d.database_id where (t.table_type = 1 or t.table_type = 4) and d.in_recyclebin = 0 and d.database_name != '__recyclebin' and d.database_name != 'information_schema' and d.database_name != 'oceanbase' )__"))) {
if (OB_FAIL(table_schema.set_view_definition(R"__(select /*+ READ_CONSISTENCY(WEAK) */ 'def' AS TABLE_CATALOG, d.database_name as TABLE_SCHEMA, t.table_name as TABLE_NAME, t.view_definition as VIEW_DEFINITION, 'NONE' as CHECK_OPTION, case t.view_is_updatable when 1 then 'YES' else 'NO' end as IS_UPDATABLE, 'NONE' as DEFINER, 'NONE' AS SECURITY_TYPE, case t.collation_type when 45 then 'utf8mb4' else 'NONE' end AS CHARACTER_SET_CLIENT, case t.collation_type when 45 then 'utf8mb4_general_ci' else 'NONE' end AS COLLATION_CONNECTION from oceanbase.__all_virtual_table as t join oceanbase.__all_virtual_database as d on t.tenant_id = effective_tenant_id() and d.tenant_id = effective_tenant_id() and t.database_id = d.database_id where (t.table_type = 1 or t.table_type = 4) and d.in_recyclebin = 0 and d.database_name != '__recyclebin' and d.database_name != 'information_schema' and d.database_name != 'oceanbase' )__"))) {
LOG_ERROR("fail to set view_definition", K(ret));
}
}
@ -395,17 +384,16 @@ int ObInnerTableSchema::views_schema(ObTableSchema& table_schema)
table_schema.set_max_used_column_id(column_id);
table_schema.get_part_option().set_max_used_part_id(table_schema.get_part_option().get_part_num() - 1);
table_schema.get_part_option().set_partition_cnt_within_partition_table(
OB_ALL_CORE_TABLE_TID == common::extract_pure_id(table_schema.get_table_id()) ? 1 : 0);
table_schema.get_part_option().set_partition_cnt_within_partition_table(OB_ALL_CORE_TABLE_TID == common::extract_pure_id(table_schema.get_table_id()) ? 1 : 0);
return ret;
}
int ObInnerTableSchema::tables_schema(ObTableSchema& table_schema)
int ObInnerTableSchema::tables_schema(ObTableSchema &table_schema)
{
int ret = OB_SUCCESS;
uint64_t column_id = OB_APP_MIN_COLUMN_ID - 1;
// generated fields:
//generated fields:
table_schema.set_tenant_id(OB_SYS_TENANT_ID);
table_schema.set_tablegroup_id(OB_INVALID_ID);
table_schema.set_database_id(combine_id(OB_SYS_TENANT_ID, OB_INFORMATION_SCHEMA_ID));
@ -436,8 +424,7 @@ int ObInnerTableSchema::tables_schema(ObTableSchema& table_schema)
table_schema.set_create_mem_version(1);
if (OB_SUCC(ret)) {
if (OB_FAIL(table_schema.set_view_definition(
R"__(select /*+ READ_CONSISTENCY(WEAK), use_merge(b, c, d, e)*/ 'def' as TABLE_CATALOG, b.database_name as TABLE_SCHEMA, a.table_name as TABLE_NAME, case when a.database_id & 0xFFFFFFFFFF = 2 then 'SYSTEM VIEW' when (a.table_type = 1 or a.table_type = 4) then 'VIEW' when a.table_type = 2 then 'SYSTEM TABLE' when a.table_type = 1 then 'INDEX' else 'BASE TABLE' end as TABLE_TYPE, NULL as ENGINE, NULL as VERSION, NULL as ROW_FORMAT, sum(c.row_count) as TABLE_ROWS, case when sum(c.row_count) = 0 then 0 else sum(c.data_size)/sum(c.row_count) end as AVG_ROW_LENGTH, sum(c.data_size) as DATA_LENGTH, NULL as MAX_DATA_LENGTH, NULL as INDEX_LENGTH, NULL as DATA_FREE, NULL as AUTO_INCREMENT, a.gmt_create as CREATE_TIME, a.gmt_modified as UPDATE_TIME, NULL as CHECK_TIME, d.collation as TABLE_COLLATION, cast(NULL as unsigned) as CHECKSUM, NULL as CREATE_OPTIONS, a.comment as TABLE_COMMENT from oceanbase.__all_virtual_table a inner join oceanbase.__all_virtual_database b on a.database_id = b.database_id left join oceanbase.__all_virtual_tenant_partition_meta_table c on a.table_id = c.table_id and c.tenant_id = effective_tenant_id() and a.tenant_id = c.tenant_id and c.role = 1 inner join oceanbase.__all_collation d on a.collation_type = d.id where a.tenant_id = effective_tenant_id() and b.tenant_id = effective_tenant_id() and a.table_type != 5 and b.database_name != '__recyclebin' and b.in_recyclebin = 0 group by a.table_id, b.database_name, a.table_name, a.table_type, a.gmt_create, a.gmt_modified, d.collation, a.comment )__"))) {
if (OB_FAIL(table_schema.set_view_definition(R"__(select /*+ READ_CONSISTENCY(WEAK), use_merge(b, c, d, e)*/ 'def' as TABLE_CATALOG, b.database_name as TABLE_SCHEMA, a.table_name as TABLE_NAME, case when a.database_id & 0xFFFFFFFFFF = 2 then 'SYSTEM VIEW' when (a.table_type = 1 or a.table_type = 4) then 'VIEW' when a.table_type = 2 then 'SYSTEM TABLE' when a.table_type = 1 then 'INDEX' else 'BASE TABLE' end as TABLE_TYPE, NULL as ENGINE, NULL as VERSION, NULL as ROW_FORMAT, sum(c.row_count) as TABLE_ROWS, case when sum(c.row_count) = 0 then 0 else sum(c.data_size)/sum(c.row_count) end as AVG_ROW_LENGTH, sum(c.data_size) as DATA_LENGTH, NULL as MAX_DATA_LENGTH, NULL as INDEX_LENGTH, NULL as DATA_FREE, NULL as AUTO_INCREMENT, a.gmt_create as CREATE_TIME, a.gmt_modified as UPDATE_TIME, NULL as CHECK_TIME, d.collation as TABLE_COLLATION, cast(NULL as unsigned) as CHECKSUM, NULL as CREATE_OPTIONS, a.comment as TABLE_COMMENT from oceanbase.__all_virtual_table a inner join oceanbase.__all_virtual_database b on a.database_id = b.database_id left join oceanbase.__all_virtual_tenant_partition_meta_table c on a.table_id = c.table_id and c.tenant_id = effective_tenant_id() and a.tenant_id = c.tenant_id and c.role = 1 inner join oceanbase.__all_collation d on a.collation_type = d.id where a.tenant_id = effective_tenant_id() and b.tenant_id = effective_tenant_id() and a.table_type != 5 and b.database_name != '__recyclebin' and b.in_recyclebin = 0 group by a.table_id, b.database_name, a.table_name, a.table_type, a.gmt_create, a.gmt_modified, d.collation, a.comment )__"))) {
LOG_ERROR("fail to set view_definition", K(ret));
}
}
@ -449,17 +436,16 @@ int ObInnerTableSchema::tables_schema(ObTableSchema& table_schema)
table_schema.set_max_used_column_id(column_id);
table_schema.get_part_option().set_max_used_part_id(table_schema.get_part_option().get_part_num() - 1);
table_schema.get_part_option().set_partition_cnt_within_partition_table(
OB_ALL_CORE_TABLE_TID == common::extract_pure_id(table_schema.get_table_id()) ? 1 : 0);
table_schema.get_part_option().set_partition_cnt_within_partition_table(OB_ALL_CORE_TABLE_TID == common::extract_pure_id(table_schema.get_table_id()) ? 1 : 0);
return ret;
}
int ObInnerTableSchema::collations_schema(ObTableSchema& table_schema)
int ObInnerTableSchema::collations_schema(ObTableSchema &table_schema)
{
int ret = OB_SUCCESS;
uint64_t column_id = OB_APP_MIN_COLUMN_ID - 1;
// generated fields:
//generated fields:
table_schema.set_tenant_id(OB_SYS_TENANT_ID);
table_schema.set_tablegroup_id(OB_INVALID_ID);
table_schema.set_database_id(combine_id(OB_SYS_TENANT_ID, OB_INFORMATION_SCHEMA_ID));
@ -490,8 +476,7 @@ int ObInnerTableSchema::collations_schema(ObTableSchema& table_schema)
table_schema.set_create_mem_version(1);
if (OB_SUCC(ret)) {
if (OB_FAIL(table_schema.set_view_definition(
R"__(select collation as COLLATION_NAME, charset as CHARACTER_SET_NAME, id as ID, `is_default` as IS_DEFAULT, is_compiled as IS_COMPILED, sortlen as SORTLEN from oceanbase.__tenant_virtual_collation )__"))) {
if (OB_FAIL(table_schema.set_view_definition(R"__(select collation as COLLATION_NAME, charset as CHARACTER_SET_NAME, id as ID, `is_default` as IS_DEFAULT, is_compiled as IS_COMPILED, sortlen as SORTLEN from oceanbase.__tenant_virtual_collation )__"))) {
LOG_ERROR("fail to set view_definition", K(ret));
}
}
@ -503,17 +488,16 @@ int ObInnerTableSchema::collations_schema(ObTableSchema& table_schema)
table_schema.set_max_used_column_id(column_id);
table_schema.get_part_option().set_max_used_part_id(table_schema.get_part_option().get_part_num() - 1);
table_schema.get_part_option().set_partition_cnt_within_partition_table(
OB_ALL_CORE_TABLE_TID == common::extract_pure_id(table_schema.get_table_id()) ? 1 : 0);
table_schema.get_part_option().set_partition_cnt_within_partition_table(OB_ALL_CORE_TABLE_TID == common::extract_pure_id(table_schema.get_table_id()) ? 1 : 0);
return ret;
}
int ObInnerTableSchema::collation_character_set_applicability_schema(ObTableSchema& table_schema)
int ObInnerTableSchema::collation_character_set_applicability_schema(ObTableSchema &table_schema)
{
int ret = OB_SUCCESS;
uint64_t column_id = OB_APP_MIN_COLUMN_ID - 1;
// generated fields:
//generated fields:
table_schema.set_tenant_id(OB_SYS_TENANT_ID);
table_schema.set_tablegroup_id(OB_INVALID_ID);
table_schema.set_database_id(combine_id(OB_SYS_TENANT_ID, OB_INFORMATION_SCHEMA_ID));
@ -544,8 +528,7 @@ int ObInnerTableSchema::collation_character_set_applicability_schema(ObTableSche
table_schema.set_create_mem_version(1);
if (OB_SUCC(ret)) {
if (OB_FAIL(table_schema.set_view_definition(
R"__(select collation as COLLATION_NAME, charset as CHARACTER_SET_NAME from oceanbase.__tenant_virtual_collation )__"))) {
if (OB_FAIL(table_schema.set_view_definition(R"__(select collation as COLLATION_NAME, charset as CHARACTER_SET_NAME from oceanbase.__tenant_virtual_collation )__"))) {
LOG_ERROR("fail to set view_definition", K(ret));
}
}
@ -557,17 +540,16 @@ int ObInnerTableSchema::collation_character_set_applicability_schema(ObTableSche
table_schema.set_max_used_column_id(column_id);
table_schema.get_part_option().set_max_used_part_id(table_schema.get_part_option().get_part_num() - 1);
table_schema.get_part_option().set_partition_cnt_within_partition_table(
OB_ALL_CORE_TABLE_TID == common::extract_pure_id(table_schema.get_table_id()) ? 1 : 0);
table_schema.get_part_option().set_partition_cnt_within_partition_table(OB_ALL_CORE_TABLE_TID == common::extract_pure_id(table_schema.get_table_id()) ? 1 : 0);
return ret;
}
int ObInnerTableSchema::processlist_schema(ObTableSchema& table_schema)
int ObInnerTableSchema::processlist_schema(ObTableSchema &table_schema)
{
int ret = OB_SUCCESS;
uint64_t column_id = OB_APP_MIN_COLUMN_ID - 1;
// generated fields:
//generated fields:
table_schema.set_tenant_id(OB_SYS_TENANT_ID);
table_schema.set_tablegroup_id(OB_INVALID_ID);
table_schema.set_database_id(combine_id(OB_SYS_TENANT_ID, OB_INFORMATION_SCHEMA_ID));
@ -598,8 +580,7 @@ int ObInnerTableSchema::processlist_schema(ObTableSchema& table_schema)
table_schema.set_create_mem_version(1);
if (OB_SUCC(ret)) {
if (OB_FAIL(table_schema.set_view_definition(
R"__(SELECT id AS ID, user AS USER, host AS HOST, db AS DB, command AS COMMAND, time AS TIME, state AS STATE, info AS INFO FROM oceanbase.__all_virtual_processlist WHERE is_serving_tenant(svr_ip, svr_port, effective_tenant_id()) )__"))) {
if (OB_FAIL(table_schema.set_view_definition(R"__(SELECT id AS ID, user AS USER, host AS HOST, db AS DB, command AS COMMAND, time AS TIME, state AS STATE, info AS INFO FROM oceanbase.__all_virtual_processlist WHERE is_serving_tenant(svr_ip, svr_port, effective_tenant_id()) )__"))) {
LOG_ERROR("fail to set view_definition", K(ret));
}
}
@ -611,17 +592,16 @@ int ObInnerTableSchema::processlist_schema(ObTableSchema& table_schema)
table_schema.set_max_used_column_id(column_id);
table_schema.get_part_option().set_max_used_part_id(table_schema.get_part_option().get_part_num() - 1);
table_schema.get_part_option().set_partition_cnt_within_partition_table(
OB_ALL_CORE_TABLE_TID == common::extract_pure_id(table_schema.get_table_id()) ? 1 : 0);
table_schema.get_part_option().set_partition_cnt_within_partition_table(OB_ALL_CORE_TABLE_TID == common::extract_pure_id(table_schema.get_table_id()) ? 1 : 0);
return ret;
}
int ObInnerTableSchema::key_column_usage_schema(ObTableSchema& table_schema)
int ObInnerTableSchema::key_column_usage_schema(ObTableSchema &table_schema)
{
int ret = OB_SUCCESS;
uint64_t column_id = OB_APP_MIN_COLUMN_ID - 1;
// generated fields:
//generated fields:
table_schema.set_tenant_id(OB_SYS_TENANT_ID);
table_schema.set_tablegroup_id(OB_INVALID_ID);
table_schema.set_database_id(combine_id(OB_SYS_TENANT_ID, OB_INFORMATION_SCHEMA_ID));
@ -652,8 +632,7 @@ int ObInnerTableSchema::key_column_usage_schema(ObTableSchema& table_schema)
table_schema.set_create_mem_version(1);
if (OB_SUCC(ret)) {
if (OB_FAIL(table_schema.set_view_definition(
R"__((select /*+ READ_CONSISTENCY(WEAK) */ 'def' as CONSTRAINT_CATALOG, c.database_name as CONSTRAINT_SCHEMA, 'PRIMARY' as CONSTRAINT_NAME, 'def' as TABLE_CATALOG, c.database_name as TABLE_SCHEMA, a.table_name as TABLE_NAME, b.column_name as COLUMN_NAME, b.rowkey_position as ORDINAL_POSITION, NULL as POSITION_IN_UNIQUE_CONSTRAINT, NULL as REFERENCED_TABLE_SCHEMA, NULL as REFERENCED_TABLE_NAME, NULL as REFERENCED_COLUMN_NAME from oceanbase.__all_virtual_table a inner join oceanbase.__all_virtual_column b on a.table_id = b.table_id inner join oceanbase.__all_virtual_database c on a.database_id = c.database_id where a.tenant_id = effective_tenant_id() and b.tenant_id = effective_tenant_id() and c.tenant_id = effective_tenant_id() and c.in_recyclebin = 0 and c.database_name != '__recyclebin' and b.rowkey_position > 0 and b.column_id >= 16 and a.table_type != 5 and b.column_flags & (0x1 << 8) = 0) union (select /*+ READ_CONSISTENCY(WEAK) */ 'def' as CONSTRAINT_CATALOG, d.database_name as CONSTRAINT_SCHEMA, substr(a.table_name, 2 + length(substring_index(a.table_name,'_',4))) as CONSTRAINT_NAME, 'def' as TABLE_CATALOG, d.database_name as TABLE_SCHEMA, c.table_name as TABLE_NAME, b.column_name as COLUMN_NAME, b.index_position as ORDINAL_POSITION, NULL as POSITION_IN_UNIQUE_CONSTRAINT, NULL as REFERENCED_TABLE_SCHEMA, NULL as REFERENCED_TABLE_NAME, NULL as REFERENCED_COLUMN_NAME from oceanbase.__all_virtual_table a inner join oceanbase.__all_virtual_column b on a.table_id = b.table_id inner join oceanbase.__all_virtual_table c on a.data_table_id = c.table_id inner join oceanbase.__all_virtual_database d on c.database_id = d.database_id where a.tenant_id = effective_tenant_id() and b.tenant_id = effective_tenant_id() and c.tenant_id = effective_tenant_id() and d.in_recyclebin = 0 and d.tenant_id = effective_tenant_id() and d.database_name != '__recyclebin' and a.table_type = 5 and a.index_type in (2, 4, 8) and b.index_position > 0) )__"))) {
if (OB_FAIL(table_schema.set_view_definition(R"__((select /*+ READ_CONSISTENCY(WEAK) */ 'def' as CONSTRAINT_CATALOG, c.database_name as CONSTRAINT_SCHEMA, 'PRIMARY' as CONSTRAINT_NAME, 'def' as TABLE_CATALOG, c.database_name as TABLE_SCHEMA, a.table_name as TABLE_NAME, b.column_name as COLUMN_NAME, b.rowkey_position as ORDINAL_POSITION, NULL as POSITION_IN_UNIQUE_CONSTRAINT, NULL as REFERENCED_TABLE_SCHEMA, NULL as REFERENCED_TABLE_NAME, NULL as REFERENCED_COLUMN_NAME from oceanbase.__all_virtual_table a inner join oceanbase.__all_virtual_column b on a.table_id = b.table_id inner join oceanbase.__all_virtual_database c on a.database_id = c.database_id where a.tenant_id = effective_tenant_id() and b.tenant_id = effective_tenant_id() and c.tenant_id = effective_tenant_id() and c.in_recyclebin = 0 and c.database_name != '__recyclebin' and b.rowkey_position > 0 and b.column_id >= 16 and a.table_type != 5 and b.column_flags & (0x1 << 8) = 0) union (select /*+ READ_CONSISTENCY(WEAK) */ 'def' as CONSTRAINT_CATALOG, d.database_name as CONSTRAINT_SCHEMA, substr(a.table_name, 2 + length(substring_index(a.table_name,'_',4))) as CONSTRAINT_NAME, 'def' as TABLE_CATALOG, d.database_name as TABLE_SCHEMA, c.table_name as TABLE_NAME, b.column_name as COLUMN_NAME, b.index_position as ORDINAL_POSITION, NULL as POSITION_IN_UNIQUE_CONSTRAINT, NULL as REFERENCED_TABLE_SCHEMA, NULL as REFERENCED_TABLE_NAME, NULL as REFERENCED_COLUMN_NAME from oceanbase.__all_virtual_table a inner join oceanbase.__all_virtual_column b on a.table_id = b.table_id inner join oceanbase.__all_virtual_table c on a.data_table_id = c.table_id inner join oceanbase.__all_virtual_database d on c.database_id = d.database_id where a.tenant_id = effective_tenant_id() and b.tenant_id = effective_tenant_id() and c.tenant_id = effective_tenant_id() and d.in_recyclebin = 0 and d.tenant_id = effective_tenant_id() and d.database_name != '__recyclebin' and a.table_type = 5 and a.index_type in (2, 4, 8) and b.index_position > 0) )__"))) {
LOG_ERROR("fail to set view_definition", K(ret));
}
}
@ -665,17 +644,16 @@ int ObInnerTableSchema::key_column_usage_schema(ObTableSchema& table_schema)
table_schema.set_max_used_column_id(column_id);
table_schema.get_part_option().set_max_used_part_id(table_schema.get_part_option().get_part_num() - 1);
table_schema.get_part_option().set_partition_cnt_within_partition_table(
OB_ALL_CORE_TABLE_TID == common::extract_pure_id(table_schema.get_table_id()) ? 1 : 0);
table_schema.get_part_option().set_partition_cnt_within_partition_table(OB_ALL_CORE_TABLE_TID == common::extract_pure_id(table_schema.get_table_id()) ? 1 : 0);
return ret;
}
int ObInnerTableSchema::dba_outlines_schema(ObTableSchema& table_schema)
int ObInnerTableSchema::dba_outlines_schema(ObTableSchema &table_schema)
{
int ret = OB_SUCCESS;
uint64_t column_id = OB_APP_MIN_COLUMN_ID - 1;
// generated fields:
//generated fields:
table_schema.set_tenant_id(OB_SYS_TENANT_ID);
table_schema.set_tablegroup_id(OB_INVALID_ID);
table_schema.set_database_id(combine_id(OB_SYS_TENANT_ID, OB_INFORMATION_SCHEMA_ID));
@ -706,8 +684,7 @@ int ObInnerTableSchema::dba_outlines_schema(ObTableSchema& table_schema)
table_schema.set_create_mem_version(1);
if (OB_SUCC(ret)) {
if (OB_FAIL(table_schema.set_view_definition(
R"__(select /*+ READ_CONSISTENCY(WEAK)*/ a.name as NAME, a.owner as OWNER, b.database_name as DB_NAME, NULL as CATEGORY, a.used as USED, a.gmt_create as TIMESTAMP, a.version as VERSION, a.sql_text as SQL_TEXT, a.signature as SIGNATURE, a.compatible as COMPATIBLE, a.enabled as ENABLED, a.format as FORMAT, a.outline_content as OUTLINE_CONTENT, a.outline_target as OUTLINE_TARGET, a.owner_id as OWNER_ID from oceanbase.__all_virtual_outline a inner join oceanbase.__all_virtual_database b on a.database_id = b.database_id where a.tenant_id = effective_tenant_id() and b.tenant_id = effective_tenant_id() and b.in_recyclebin = 0 )__"))) {
if (OB_FAIL(table_schema.set_view_definition(R"__(select /*+ READ_CONSISTENCY(WEAK)*/ a.name as NAME, a.owner as OWNER, b.database_name as DB_NAME, NULL as CATEGORY, a.used as USED, a.gmt_create as TIMESTAMP, a.version as VERSION, a.sql_text as SQL_TEXT, a.signature as SIGNATURE, a.compatible as COMPATIBLE, a.enabled as ENABLED, a.format as FORMAT, a.outline_content as OUTLINE_CONTENT, a.outline_target as OUTLINE_TARGET, a.owner_id as OWNER_ID from oceanbase.__all_virtual_outline a inner join oceanbase.__all_virtual_database b on a.database_id = b.database_id where a.tenant_id = effective_tenant_id() and b.tenant_id = effective_tenant_id() and b.in_recyclebin = 0 )__"))) {
LOG_ERROR("fail to set view_definition", K(ret));
}
}
@ -719,17 +696,16 @@ int ObInnerTableSchema::dba_outlines_schema(ObTableSchema& table_schema)
table_schema.set_max_used_column_id(column_id);
table_schema.get_part_option().set_max_used_part_id(table_schema.get_part_option().get_part_num() - 1);
table_schema.get_part_option().set_partition_cnt_within_partition_table(
OB_ALL_CORE_TABLE_TID == common::extract_pure_id(table_schema.get_table_id()) ? 1 : 0);
table_schema.get_part_option().set_partition_cnt_within_partition_table(OB_ALL_CORE_TABLE_TID == common::extract_pure_id(table_schema.get_table_id()) ? 1 : 0);
return ret;
}
int ObInnerTableSchema::engines_schema(ObTableSchema& table_schema)
int ObInnerTableSchema::engines_schema(ObTableSchema &table_schema)
{
int ret = OB_SUCCESS;
uint64_t column_id = OB_APP_MIN_COLUMN_ID - 1;
// generated fields:
//generated fields:
table_schema.set_tenant_id(OB_SYS_TENANT_ID);
table_schema.set_tablegroup_id(OB_INVALID_ID);
table_schema.set_database_id(combine_id(OB_SYS_TENANT_ID, OB_INFORMATION_SCHEMA_ID));
@ -772,17 +748,16 @@ int ObInnerTableSchema::engines_schema(ObTableSchema& table_schema)
table_schema.set_max_used_column_id(column_id);
table_schema.get_part_option().set_max_used_part_id(table_schema.get_part_option().get_part_num() - 1);
table_schema.get_part_option().set_partition_cnt_within_partition_table(
OB_ALL_CORE_TABLE_TID == common::extract_pure_id(table_schema.get_table_id()) ? 1 : 0);
table_schema.get_part_option().set_partition_cnt_within_partition_table(OB_ALL_CORE_TABLE_TID == common::extract_pure_id(table_schema.get_table_id()) ? 1 : 0);
return ret;
}
int ObInnerTableSchema::routines_schema(ObTableSchema& table_schema)
int ObInnerTableSchema::routines_schema(ObTableSchema &table_schema)
{
int ret = OB_SUCCESS;
uint64_t column_id = OB_APP_MIN_COLUMN_ID - 1;
// generated fields:
//generated fields:
table_schema.set_tenant_id(OB_SYS_TENANT_ID);
table_schema.set_tablegroup_id(OB_INVALID_ID);
table_schema.set_database_id(combine_id(OB_SYS_TENANT_ID, OB_INFORMATION_SCHEMA_ID));
@ -813,8 +788,7 @@ int ObInnerTableSchema::routines_schema(ObTableSchema& table_schema)
table_schema.set_create_mem_version(1);
if (OB_SUCC(ret)) {
if (OB_FAIL(table_schema.set_view_definition(
R"__( select SPECIFIC_NAME, 'def' as ROUTINE_CATALOG, db as ROUTINE_SCHEMA, name as ROUTINE_NAME, type as ROUTINE_TYPE, '' as DATA_TYPE, NULL as CHARACTER_MAXIMUM_LENGTH, NULL as CHARACTER_OCTET_LENGTH, NULL as NUMERIC_PRECISION, NULL as NUMERIC_SCALE, NULL as DATETIME_PRECISION, NULL as CHARACTER_SET_NAME, NULL as COLLATION_NAME, NULL as DTD_IDENTIFIER, 'SQL' as ROUTINE_BODY, body as ROUTINE_DEFINITION, NULL as EXTERNAL_NAME, NULL as EXTERNAL_LANGUAGE, 'SQL' as PARAMETER_STYLE, IS_DETERMINISTIC, SQL_DATA_ACCESS, NULL as SQL_PATH, SECURITY_TYPE, CREATED, modified as LAST_ALTERED, SQL_MODE, comment as ROUTINE_COMMENT, DEFINER, CHARACTER_SET_CLIENT, COLLATION_CONNECTION, collation_database as DATABASE_COLLATION from mysql.proc; )__"))) {
if (OB_FAIL(table_schema.set_view_definition(R"__( select SPECIFIC_NAME, 'def' as ROUTINE_CATALOG, db as ROUTINE_SCHEMA, name as ROUTINE_NAME, type as ROUTINE_TYPE, '' as DATA_TYPE, NULL as CHARACTER_MAXIMUM_LENGTH, NULL as CHARACTER_OCTET_LENGTH, NULL as NUMERIC_PRECISION, NULL as NUMERIC_SCALE, NULL as DATETIME_PRECISION, NULL as CHARACTER_SET_NAME, NULL as COLLATION_NAME, NULL as DTD_IDENTIFIER, 'SQL' as ROUTINE_BODY, body as ROUTINE_DEFINITION, NULL as EXTERNAL_NAME, NULL as EXTERNAL_LANGUAGE, 'SQL' as PARAMETER_STYLE, IS_DETERMINISTIC, SQL_DATA_ACCESS, NULL as SQL_PATH, SECURITY_TYPE, CREATED, modified as LAST_ALTERED, SQL_MODE, comment as ROUTINE_COMMENT, DEFINER, CHARACTER_SET_CLIENT, COLLATION_CONNECTION, collation_database as DATABASE_COLLATION from mysql.proc; )__"))) {
LOG_ERROR("fail to set view_definition", K(ret));
}
}
@ -826,10 +800,10 @@ int ObInnerTableSchema::routines_schema(ObTableSchema& table_schema)
table_schema.set_max_used_column_id(column_id);
table_schema.get_part_option().set_max_used_part_id(table_schema.get_part_option().get_part_num() - 1);
table_schema.get_part_option().set_partition_cnt_within_partition_table(
OB_ALL_CORE_TABLE_TID == common::extract_pure_id(table_schema.get_table_id()) ? 1 : 0);
table_schema.get_part_option().set_partition_cnt_within_partition_table(OB_ALL_CORE_TABLE_TID == common::extract_pure_id(table_schema.get_table_id()) ? 1 : 0);
return ret;
}
} // end namespace share
} // end namespace oceanbase
} // end namespace share
} // end namespace oceanbase

File diff suppressed because it is too large Load Diff

File diff suppressed because it is too large Load Diff

File diff suppressed because it is too large Load Diff

View File

@ -17,17 +17,19 @@
#include "share/schema/ob_schema_service_sql_impl.h"
#include "share/schema/ob_table_schema.h"
namespace oceanbase {
namespace oceanbase
{
using namespace share::schema;
using namespace common;
namespace share {
namespace share
{
int ObInnerTableSchema::gv_sstable_schema(ObTableSchema& table_schema)
int ObInnerTableSchema::gv_sstable_schema(ObTableSchema &table_schema)
{
int ret = OB_SUCCESS;
uint64_t column_id = OB_APP_MIN_COLUMN_ID - 1;
// generated fields:
//generated fields:
table_schema.set_tenant_id(OB_SYS_TENANT_ID);
table_schema.set_tablegroup_id(combine_id(OB_SYS_TENANT_ID, OB_SYS_TABLEGROUP_ID));
table_schema.set_database_id(combine_id(OB_SYS_TENANT_ID, OB_SYS_DATABASE_ID));
@ -58,8 +60,7 @@ int ObInnerTableSchema::gv_sstable_schema(ObTableSchema& table_schema)
table_schema.set_create_mem_version(1);
if (OB_SUCC(ret)) {
if (OB_FAIL(table_schema.set_view_definition(
R"__( SELECT M.SVR_IP, M.SVR_PORT, M.TABLE_TYPE, M.TABLE_ID, T.TABLE_NAME, T.TENANT_ID, M.PARTITION_ID, M.INDEX_ID, M.BASE_VERSION, M.MULTI_VERSION_START, M.SNAPSHOT_VERSION, M.START_LOG_TS, M.END_LOG_TS, M.MAX_LOG_TS, M.VERSION, M.LOGICAL_DATA_VERSION, M.SIZE, M.IS_ACTIVE, M.REF, M.WRITE_REF, M.TRX_COUNT, M.PENDING_LOG_PERSISTING_ROW_CNT, M.UPPER_TRANS_VERSION, M.CONTAIN_UNCOMMITTED_ROW FROM oceanbase.__all_virtual_table_mgr M JOIN oceanbase.__all_virtual_table T ON M.TABLE_ID = T.TABLE_ID WHERE effective_tenant_id() = 1 OR T.tenant_id = effective_tenant_id() )__"))) {
if (OB_FAIL(table_schema.set_view_definition(R"__( SELECT M.SVR_IP, M.SVR_PORT, M.TABLE_TYPE, M.TABLE_ID, T.TABLE_NAME, T.TENANT_ID, M.PARTITION_ID, M.INDEX_ID, M.BASE_VERSION, M.MULTI_VERSION_START, M.SNAPSHOT_VERSION, M.START_LOG_TS, M.END_LOG_TS, M.MAX_LOG_TS, M.VERSION, M.LOGICAL_DATA_VERSION, M.SIZE, M.IS_ACTIVE, M.REF, M.WRITE_REF, M.TRX_COUNT, M.PENDING_LOG_PERSISTING_ROW_CNT, M.UPPER_TRANS_VERSION, M.CONTAIN_UNCOMMITTED_ROW FROM oceanbase.__all_virtual_table_mgr M JOIN oceanbase.__all_virtual_table T ON M.TABLE_ID = T.TABLE_ID WHERE effective_tenant_id() = 1 OR T.tenant_id = effective_tenant_id() )__"))) {
LOG_ERROR("fail to set view_definition", K(ret));
}
}
@ -71,17 +72,16 @@ int ObInnerTableSchema::gv_sstable_schema(ObTableSchema& table_schema)
table_schema.set_max_used_column_id(column_id);
table_schema.get_part_option().set_max_used_part_id(table_schema.get_part_option().get_part_num() - 1);
table_schema.get_part_option().set_partition_cnt_within_partition_table(
OB_ALL_CORE_TABLE_TID == common::extract_pure_id(table_schema.get_table_id()) ? 1 : 0);
table_schema.get_part_option().set_partition_cnt_within_partition_table(OB_ALL_CORE_TABLE_TID == common::extract_pure_id(table_schema.get_table_id()) ? 1 : 0);
return ret;
}
int ObInnerTableSchema::v_sstable_schema(ObTableSchema& table_schema)
int ObInnerTableSchema::v_sstable_schema(ObTableSchema &table_schema)
{
int ret = OB_SUCCESS;
uint64_t column_id = OB_APP_MIN_COLUMN_ID - 1;
// generated fields:
//generated fields:
table_schema.set_tenant_id(OB_SYS_TENANT_ID);
table_schema.set_tablegroup_id(combine_id(OB_SYS_TENANT_ID, OB_SYS_TABLEGROUP_ID));
table_schema.set_database_id(combine_id(OB_SYS_TENANT_ID, OB_SYS_DATABASE_ID));
@ -112,8 +112,7 @@ int ObInnerTableSchema::v_sstable_schema(ObTableSchema& table_schema)
table_schema.set_create_mem_version(1);
if (OB_SUCC(ret)) {
if (OB_FAIL(table_schema.set_view_definition(
R"__( SELECT M.TABLE_TYPE, M.TABLE_ID, T.TABLE_NAME, T.TENANT_ID, M.PARTITION_ID, M.INDEX_ID, M.BASE_VERSION, M.MULTI_VERSION_START, M.SNAPSHOT_VERSION, M.START_LOG_TS, M.END_LOG_TS, M.MAX_LOG_TS, M.VERSION, M.LOGICAL_DATA_VERSION, M.SIZE, M.IS_ACTIVE, M.REF, M.WRITE_REF, M.TRX_COUNT, M.PENDING_LOG_PERSISTING_ROW_CNT, M.UPPER_TRANS_VERSION, M.CONTAIN_UNCOMMITTED_ROW FROM oceanbase.__all_virtual_table_mgr M JOIN oceanbase.__all_virtual_table T ON M.TABLE_ID = T.TABLE_ID WHERE M.SVR_IP=HOST_IP() AND M.SVR_PORT=RPC_PORT() AND effective_tenant_id() = 1 OR T.tenant_id = effective_tenant_id() )__"))) {
if (OB_FAIL(table_schema.set_view_definition(R"__( SELECT M.TABLE_TYPE, M.TABLE_ID, T.TABLE_NAME, T.TENANT_ID, M.PARTITION_ID, M.INDEX_ID, M.BASE_VERSION, M.MULTI_VERSION_START, M.SNAPSHOT_VERSION, M.START_LOG_TS, M.END_LOG_TS, M.MAX_LOG_TS, M.VERSION, M.LOGICAL_DATA_VERSION, M.SIZE, M.IS_ACTIVE, M.REF, M.WRITE_REF, M.TRX_COUNT, M.PENDING_LOG_PERSISTING_ROW_CNT, M.UPPER_TRANS_VERSION, M.CONTAIN_UNCOMMITTED_ROW FROM oceanbase.__all_virtual_table_mgr M JOIN oceanbase.__all_virtual_table T ON M.TABLE_ID = T.TABLE_ID WHERE M.SVR_IP=HOST_IP() AND M.SVR_PORT=RPC_PORT() AND effective_tenant_id() = 1 OR T.tenant_id = effective_tenant_id() )__"))) {
LOG_ERROR("fail to set view_definition", K(ret));
}
}
@ -125,17 +124,16 @@ int ObInnerTableSchema::v_sstable_schema(ObTableSchema& table_schema)
table_schema.set_max_used_column_id(column_id);
table_schema.get_part_option().set_max_used_part_id(table_schema.get_part_option().get_part_num() - 1);
table_schema.get_part_option().set_partition_cnt_within_partition_table(
OB_ALL_CORE_TABLE_TID == common::extract_pure_id(table_schema.get_table_id()) ? 1 : 0);
table_schema.get_part_option().set_partition_cnt_within_partition_table(OB_ALL_CORE_TABLE_TID == common::extract_pure_id(table_schema.get_table_id()) ? 1 : 0);
return ret;
}
int ObInnerTableSchema::cdb_ob_backup_archivelog_summary_schema(ObTableSchema& table_schema)
int ObInnerTableSchema::cdb_ob_backup_archivelog_summary_schema(ObTableSchema &table_schema)
{
int ret = OB_SUCCESS;
uint64_t column_id = OB_APP_MIN_COLUMN_ID - 1;
// generated fields:
//generated fields:
table_schema.set_tenant_id(OB_SYS_TENANT_ID);
table_schema.set_tablegroup_id(combine_id(OB_SYS_TENANT_ID, OB_SYS_TABLEGROUP_ID));
table_schema.set_database_id(combine_id(OB_SYS_TENANT_ID, OB_SYS_DATABASE_ID));
@ -166,8 +164,7 @@ int ObInnerTableSchema::cdb_ob_backup_archivelog_summary_schema(ObTableSchema& t
table_schema.set_create_mem_version(1);
if (OB_SUCC(ret)) {
if (OB_FAIL(table_schema.set_view_definition(
R"__( SELECT INCARNATION, LOG_ARCHIVE_ROUND, TENANT_ID, STATUS, MIN_FIRST_TIME, MAX_NEXT_TIME, INPUT_BYTES, OUTPUT_BYTES, ROUND(OUTPUT_BYTES / INPUT_BYTES, 2) AS COMPRESSION_RATIO, CASE WHEN INPUT_BYTES >= 1024*1024*1024*1024*1024 THEN CONCAT(ROUND(INPUT_BYTES/1024/1024/1024/1024/1024,2), 'PB') WHEN INPUT_BYTES >= 1024*1024*1024*1024 THEN CONCAT(ROUND(INPUT_BYTES/1024/1024/1024/1024,2), 'TB') WHEN INPUT_BYTES >= 1024*1024*1024 THEN CONCAT(ROUND(INPUT_BYTES/1024/1024/1024,2), 'GB') ELSE CONCAT(ROUND(INPUT_BYTES/1024/1024,2), 'MB') END AS INPUT_BYTES_DISPLAY, CASE WHEN OUTPUT_BYTES >= 1024*1024*1024*1024*1024 THEN CONCAT(ROUND(OUTPUT_BYTES/1024/1024/1024/1024/1024,2), 'PB') WHEN OUTPUT_BYTES >= 1024*1024*1024*1024 THEN CONCAT(ROUND(OUTPUT_BYTES/1024/1024/1024/1024,2), 'TB') WHEN OUTPUT_BYTES >= 1024*1024*1024 THEN CONCAT(ROUND(OUTPUT_BYTES/1024/1024/1024,2), 'GB') ELSE CONCAT(ROUND(OUTPUT_BYTES/1024/1024,2), 'MB') END AS OUTPUT_BYTES_DISPLAY FROM ( select tenant_id, incarnation, log_archive_round, min_first_time, max_next_time, input_bytes, output_bytes, deleted_input_bytes, deleted_output_bytes, pg_count, 'STOP' as status from __all_backup_log_archive_status_history where effective_tenant_id() = 1 OR tenant_id = effective_tenant_id() union select tenant_id, incarnation, log_archive_round, min_first_time, max_next_time, input_bytes, output_bytes, deleted_input_bytes, deleted_output_bytes, pg_count , status from __all_virtual_backup_log_archive_status where (effective_tenant_id() = 1 OR tenant_id = effective_tenant_id()) and status != 'STOP'); )__"))) {
if (OB_FAIL(table_schema.set_view_definition(R"__( SELECT INCARNATION, LOG_ARCHIVE_ROUND, TENANT_ID, STATUS, MIN_FIRST_TIME, MAX_NEXT_TIME, INPUT_BYTES, OUTPUT_BYTES, ROUND(OUTPUT_BYTES / INPUT_BYTES, 2) AS COMPRESSION_RATIO, CASE WHEN INPUT_BYTES >= 1024*1024*1024*1024*1024 THEN CONCAT(ROUND(INPUT_BYTES/1024/1024/1024/1024/1024,2), 'PB') WHEN INPUT_BYTES >= 1024*1024*1024*1024 THEN CONCAT(ROUND(INPUT_BYTES/1024/1024/1024/1024,2), 'TB') WHEN INPUT_BYTES >= 1024*1024*1024 THEN CONCAT(ROUND(INPUT_BYTES/1024/1024/1024,2), 'GB') ELSE CONCAT(ROUND(INPUT_BYTES/1024/1024,2), 'MB') END AS INPUT_BYTES_DISPLAY, CASE WHEN OUTPUT_BYTES >= 1024*1024*1024*1024*1024 THEN CONCAT(ROUND(OUTPUT_BYTES/1024/1024/1024/1024/1024,2), 'PB') WHEN OUTPUT_BYTES >= 1024*1024*1024*1024 THEN CONCAT(ROUND(OUTPUT_BYTES/1024/1024/1024/1024,2), 'TB') WHEN OUTPUT_BYTES >= 1024*1024*1024 THEN CONCAT(ROUND(OUTPUT_BYTES/1024/1024/1024,2), 'GB') ELSE CONCAT(ROUND(OUTPUT_BYTES/1024/1024,2), 'MB') END AS OUTPUT_BYTES_DISPLAY FROM ( select tenant_id, incarnation, log_archive_round, min_first_time, max_next_time, input_bytes, output_bytes, deleted_input_bytes, deleted_output_bytes, pg_count, 'STOP' as status from __all_backup_log_archive_status_history where effective_tenant_id() = 1 OR tenant_id = effective_tenant_id() union select tenant_id, incarnation, log_archive_round, min_first_time, max_next_time, input_bytes, output_bytes, deleted_input_bytes, deleted_output_bytes, pg_count , status from __all_virtual_backup_log_archive_status where (effective_tenant_id() = 1 OR tenant_id = effective_tenant_id()) and status != 'STOP'); )__"))) {
LOG_ERROR("fail to set view_definition", K(ret));
}
}
@ -179,17 +176,16 @@ int ObInnerTableSchema::cdb_ob_backup_archivelog_summary_schema(ObTableSchema& t
table_schema.set_max_used_column_id(column_id);
table_schema.get_part_option().set_max_used_part_id(table_schema.get_part_option().get_part_num() - 1);
table_schema.get_part_option().set_partition_cnt_within_partition_table(
OB_ALL_CORE_TABLE_TID == common::extract_pure_id(table_schema.get_table_id()) ? 1 : 0);
table_schema.get_part_option().set_partition_cnt_within_partition_table(OB_ALL_CORE_TABLE_TID == common::extract_pure_id(table_schema.get_table_id()) ? 1 : 0);
return ret;
}
int ObInnerTableSchema::cdb_ob_backup_job_details_schema(ObTableSchema& table_schema)
int ObInnerTableSchema::cdb_ob_backup_job_details_schema(ObTableSchema &table_schema)
{
int ret = OB_SUCCESS;
uint64_t column_id = OB_APP_MIN_COLUMN_ID - 1;
// generated fields:
//generated fields:
table_schema.set_tenant_id(OB_SYS_TENANT_ID);
table_schema.set_tablegroup_id(combine_id(OB_SYS_TENANT_ID, OB_SYS_TABLEGROUP_ID));
table_schema.set_database_id(combine_id(OB_SYS_TENANT_ID, OB_SYS_DATABASE_ID));
@ -220,8 +216,7 @@ int ObInnerTableSchema::cdb_ob_backup_job_details_schema(ObTableSchema& table_sc
table_schema.set_create_mem_version(1);
if (OB_SUCC(ret)) {
if (OB_FAIL(table_schema.set_view_definition(
R"__( SELECT INCARNATION, TENANT_ID, BACKUP_SET_ID AS BS_KEY, BACKUP_TYPE, ENCRYPTION_MODE, START_TIME, END_TIME, INPUT_BYTES, OUTPUT_BYTES, DEVICE_TYPE AS OUTPUT_DEVICE_TYPE, ROUND((TIME_TO_USEC(END_TIME) - TIME_TO_USEC(START_TIME))/1000/1000,0) AS ELAPSED_SECONDES, ROUND(OUTPUT_BYTES / INPUT_BYTES, 2) AS COMPRESSION_RATIO, INPUT_BYTES / ((TIME_TO_USEC(END_TIME) - TIME_TO_USEC(START_TIME))/1000/1000) AS INPUT_BYTES_PER_SEC, OUTPUT_BYTES / ((TIME_TO_USEC(END_TIME) - TIME_TO_USEC(START_TIME))/1000/1000) AS OUTPUT_BYTES_PER_SEC, CASE WHEN STATUS = 'FINISH' AND RESULT != 0 THEN 'FAILED' WHEN STATUS = 'FINISH' AND RESULT = 0 THEN 'COMPLETED' ELSE 'RUNNING' END AS STATUS, CASE WHEN INPUT_BYTES >= 1024*1024*1024*1024*1024 THEN CONCAT(ROUND(INPUT_BYTES/1024/1024/1024/1024/1024,2), 'PB') WHEN INPUT_BYTES >= 1024*1024*1024*1024 THEN CONCAT(ROUND(INPUT_BYTES/1024/1024/1024/1024,2), 'TB') WHEN INPUT_BYTES >= 1024*1024*1024 THEN CONCAT(ROUND(INPUT_BYTES/1024/1024/1024,2), 'GB') ELSE CONCAT(ROUND(INPUT_BYTES/1024/1024,2), 'MB') END AS INPUT_BYTES_DISPLAY, CASE WHEN OUTPUT_BYTES >= 1024*1024*1024*1024*1024 THEN CONCAT(ROUND(OUTPUT_BYTES/1024/1024/1024/1024/1024,2), 'PB') WHEN OUTPUT_BYTES >= 1024*1024*1024*1024 THEN CONCAT(ROUND(OUTPUT_BYTES/1024/1024/1024/1024,2), 'TB') WHEN OUTPUT_BYTES >= 1024*1024*1024 THEN CONCAT(ROUND(OUTPUT_BYTES/1024/1024/1024,2), 'GB') ELSE CONCAT(ROUND(OUTPUT_BYTES/1024/1024,2), 'MB') END AS OUTPUT_BYTES_DISPLAY, CASE WHEN INPUT_BYTES / ((TIME_TO_USEC(END_TIME) - TIME_TO_USEC(START_TIME))/1000/1000) >= 1024*1024*1024 THEN CONCAT(ROUND(INPUT_BYTES / ((END_TIME - START_TIME)/1000/1000) /1024/1024/1024,2), 'GB/S') ELSE CONCAT(ROUND(INPUT_BYTES / ((TIME_TO_USEC(END_TIME) - TIME_TO_USEC(START_TIME))/1000/1000) /1024/1024,2), 'MB/S') END AS INPUT_BYTES_PER_SEC_DISPLAY, CASE WHEN OUTPUT_BYTES / ((TIME_TO_USEC(END_TIME) - TIME_TO_USEC(START_TIME))/1000/1000) >= 1024*1024*1024 THEN CONCAT(ROUND(OUTPUT_BYTES / ((END_TIME - START_TIME)/1000/1000)/1024/1024/1024,2), 'GB/S') ELSE CONCAT(ROUND(OUTPUT_BYTES / ((TIME_TO_USEC(END_TIME) - TIME_TO_USEC(START_TIME))/1000/1000)/1024/1024,2), 'MB/S') END AS OUTPUT_BYTES_PER_SEC_DISPLAY, TIMEDIFF(END_TIME, START_TIME) AS TIME_TAKEN_DISPLAY FROM __all_virtual_backup_task WHERE effective_tenant_id() = 1 OR tenant_id = effective_tenant_id() )__"))) {
if (OB_FAIL(table_schema.set_view_definition(R"__( SELECT INCARNATION, TENANT_ID, BACKUP_SET_ID AS BS_KEY, BACKUP_TYPE, ENCRYPTION_MODE, START_TIME, END_TIME, INPUT_BYTES, OUTPUT_BYTES, DEVICE_TYPE AS OUTPUT_DEVICE_TYPE, ROUND((TIME_TO_USEC(END_TIME) - TIME_TO_USEC(START_TIME))/1000/1000,0) AS ELAPSED_SECONDES, ROUND(OUTPUT_BYTES / INPUT_BYTES, 2) AS COMPRESSION_RATIO, INPUT_BYTES / ((TIME_TO_USEC(END_TIME) - TIME_TO_USEC(START_TIME))/1000/1000) AS INPUT_BYTES_PER_SEC, OUTPUT_BYTES / ((TIME_TO_USEC(END_TIME) - TIME_TO_USEC(START_TIME))/1000/1000) AS OUTPUT_BYTES_PER_SEC, CASE WHEN STATUS = 'FINISH' AND RESULT != 0 THEN 'FAILED' WHEN STATUS = 'FINISH' AND RESULT = 0 THEN 'COMPLETED' ELSE 'RUNNING' END AS STATUS, CASE WHEN INPUT_BYTES >= 1024*1024*1024*1024*1024 THEN CONCAT(ROUND(INPUT_BYTES/1024/1024/1024/1024/1024,2), 'PB') WHEN INPUT_BYTES >= 1024*1024*1024*1024 THEN CONCAT(ROUND(INPUT_BYTES/1024/1024/1024/1024,2), 'TB') WHEN INPUT_BYTES >= 1024*1024*1024 THEN CONCAT(ROUND(INPUT_BYTES/1024/1024/1024,2), 'GB') ELSE CONCAT(ROUND(INPUT_BYTES/1024/1024,2), 'MB') END AS INPUT_BYTES_DISPLAY, CASE WHEN OUTPUT_BYTES >= 1024*1024*1024*1024*1024 THEN CONCAT(ROUND(OUTPUT_BYTES/1024/1024/1024/1024/1024,2), 'PB') WHEN OUTPUT_BYTES >= 1024*1024*1024*1024 THEN CONCAT(ROUND(OUTPUT_BYTES/1024/1024/1024/1024,2), 'TB') WHEN OUTPUT_BYTES >= 1024*1024*1024 THEN CONCAT(ROUND(OUTPUT_BYTES/1024/1024/1024,2), 'GB') ELSE CONCAT(ROUND(OUTPUT_BYTES/1024/1024,2), 'MB') END AS OUTPUT_BYTES_DISPLAY, CASE WHEN INPUT_BYTES / ((TIME_TO_USEC(END_TIME) - TIME_TO_USEC(START_TIME))/1000/1000) >= 1024*1024*1024 THEN CONCAT(ROUND(INPUT_BYTES / ((END_TIME - START_TIME)/1000/1000) /1024/1024/1024,2), 'GB/S') ELSE CONCAT(ROUND(INPUT_BYTES / ((TIME_TO_USEC(END_TIME) - TIME_TO_USEC(START_TIME))/1000/1000) /1024/1024,2), 'MB/S') END AS INPUT_BYTES_PER_SEC_DISPLAY, CASE WHEN OUTPUT_BYTES / ((TIME_TO_USEC(END_TIME) - TIME_TO_USEC(START_TIME))/1000/1000) >= 1024*1024*1024 THEN CONCAT(ROUND(OUTPUT_BYTES / ((END_TIME - START_TIME)/1000/1000)/1024/1024/1024,2), 'GB/S') ELSE CONCAT(ROUND(OUTPUT_BYTES / ((TIME_TO_USEC(END_TIME) - TIME_TO_USEC(START_TIME))/1000/1000)/1024/1024,2), 'MB/S') END AS OUTPUT_BYTES_PER_SEC_DISPLAY, TIMEDIFF(END_TIME, START_TIME) AS TIME_TAKEN_DISPLAY FROM __all_virtual_backup_task WHERE effective_tenant_id() = 1 OR tenant_id = effective_tenant_id() )__"))) {
LOG_ERROR("fail to set view_definition", K(ret));
}
}
@ -233,17 +228,16 @@ int ObInnerTableSchema::cdb_ob_backup_job_details_schema(ObTableSchema& table_sc
table_schema.set_max_used_column_id(column_id);
table_schema.get_part_option().set_max_used_part_id(table_schema.get_part_option().get_part_num() - 1);
table_schema.get_part_option().set_partition_cnt_within_partition_table(
OB_ALL_CORE_TABLE_TID == common::extract_pure_id(table_schema.get_table_id()) ? 1 : 0);
table_schema.get_part_option().set_partition_cnt_within_partition_table(OB_ALL_CORE_TABLE_TID == common::extract_pure_id(table_schema.get_table_id()) ? 1 : 0);
return ret;
}
int ObInnerTableSchema::cdb_ob_backup_set_details_schema(ObTableSchema& table_schema)
int ObInnerTableSchema::cdb_ob_backup_set_details_schema(ObTableSchema &table_schema)
{
int ret = OB_SUCCESS;
uint64_t column_id = OB_APP_MIN_COLUMN_ID - 1;
// generated fields:
//generated fields:
table_schema.set_tenant_id(OB_SYS_TENANT_ID);
table_schema.set_tablegroup_id(combine_id(OB_SYS_TENANT_ID, OB_SYS_TABLEGROUP_ID));
table_schema.set_database_id(combine_id(OB_SYS_TENANT_ID, OB_SYS_DATABASE_ID));
@ -274,8 +268,7 @@ int ObInnerTableSchema::cdb_ob_backup_set_details_schema(ObTableSchema& table_sc
table_schema.set_create_mem_version(1);
if (OB_SUCC(ret)) {
if (OB_FAIL(table_schema.set_view_definition(
R"__( SELECT INCARNATION, TENANT_ID, BACKUP_SET_ID AS BS_KEY, BACKUP_TYPE, ENCRYPTION_MODE, START_TIME, END_TIME AS COMPLETION_TIME, ROUND((TIME_TO_USEC(END_TIME) - TIME_TO_USEC(START_TIME))/1000/1000,0) AS ELAPSED_SECONDES, 'NO' AS KEEP, '' AS KEEP_UNTIL, DEVICE_TYPE, 'NO' AS COMPRESSED, OUTPUT_BYTES, OUTPUT_BYTES / ((TIME_TO_USEC(END_TIME) - TIME_TO_USEC(START_TIME))/1000/1000) AS OUTPUT_RATE_BYTES, ROUND(OUTPUT_BYTES / INPUT_BYTES, 2) AS COMPRESSION_RATIO, CASE WHEN OUTPUT_BYTES >= 1024*1024*1024*1024*1024 THEN CONCAT(ROUND(OUTPUT_BYTES/1024/1024/1024/1024/1024,2), 'PB') WHEN OUTPUT_BYTES >= 1024*1024*1024*1024 THEN CONCAT(ROUND(OUTPUT_BYTES/1024/1024/1024/1024,2), 'TB') WHEN OUTPUT_BYTES >= 1024*1024*1024 THEN CONCAT(ROUND(OUTPUT_BYTES/1024/1024/1024,2), 'GB') ELSE CONCAT(ROUND(OUTPUT_BYTES/1024/1024,2), 'MB') END AS OUTPUT_BYTES_DISPLAY, CASE WHEN OUTPUT_BYTES / ((TIME_TO_USEC(END_TIME) - TIME_TO_USEC(START_TIME))/1000/1000) >= 1024*1024*1024 THEN CONCAT(ROUND(OUTPUT_BYTES / ((TIME_TO_USEC(END_TIME) - TIME_TO_USEC(START_TIME))/1000/1000)/1024/1024/1024,2), 'GB/S') ELSE CONCAT(ROUND(OUTPUT_BYTES / ((TIME_TO_USEC(END_TIME) - TIME_TO_USEC(START_TIME))/1000/1000)/1024/1024,2), 'MB/S') END AS OUTPUT_RATE_BYTES_DISPLAY, TIMEDIFF(END_TIME, START_TIME) AS TIME_TAKEN_DISPLAY, CASE WHEN IS_MARK_DELETED = 1 THEN 'DELETING' WHEN RESULT != 0 THEN 'FAILED' ELSE 'COMPLETED' END AS STATUS FROM __all_backup_task_history WHERE status = 'FINISH' and (effective_tenant_id() = 1 OR tenant_id = effective_tenant_id()) )__"))) {
if (OB_FAIL(table_schema.set_view_definition(R"__( SELECT INCARNATION, TENANT_ID, BACKUP_SET_ID AS BS_KEY, BACKUP_TYPE, ENCRYPTION_MODE, START_TIME, END_TIME AS COMPLETION_TIME, ROUND((TIME_TO_USEC(END_TIME) - TIME_TO_USEC(START_TIME))/1000/1000,0) AS ELAPSED_SECONDES, 'NO' AS KEEP, '' AS KEEP_UNTIL, DEVICE_TYPE, 'NO' AS COMPRESSED, OUTPUT_BYTES, OUTPUT_BYTES / ((TIME_TO_USEC(END_TIME) - TIME_TO_USEC(START_TIME))/1000/1000) AS OUTPUT_RATE_BYTES, ROUND(OUTPUT_BYTES / INPUT_BYTES, 2) AS COMPRESSION_RATIO, CASE WHEN OUTPUT_BYTES >= 1024*1024*1024*1024*1024 THEN CONCAT(ROUND(OUTPUT_BYTES/1024/1024/1024/1024/1024,2), 'PB') WHEN OUTPUT_BYTES >= 1024*1024*1024*1024 THEN CONCAT(ROUND(OUTPUT_BYTES/1024/1024/1024/1024,2), 'TB') WHEN OUTPUT_BYTES >= 1024*1024*1024 THEN CONCAT(ROUND(OUTPUT_BYTES/1024/1024/1024,2), 'GB') ELSE CONCAT(ROUND(OUTPUT_BYTES/1024/1024,2), 'MB') END AS OUTPUT_BYTES_DISPLAY, CASE WHEN OUTPUT_BYTES / ((TIME_TO_USEC(END_TIME) - TIME_TO_USEC(START_TIME))/1000/1000) >= 1024*1024*1024 THEN CONCAT(ROUND(OUTPUT_BYTES / ((TIME_TO_USEC(END_TIME) - TIME_TO_USEC(START_TIME))/1000/1000)/1024/1024/1024,2), 'GB/S') ELSE CONCAT(ROUND(OUTPUT_BYTES / ((TIME_TO_USEC(END_TIME) - TIME_TO_USEC(START_TIME))/1000/1000)/1024/1024,2), 'MB/S') END AS OUTPUT_RATE_BYTES_DISPLAY, TIMEDIFF(END_TIME, START_TIME) AS TIME_TAKEN_DISPLAY, CASE WHEN IS_MARK_DELETED = 1 THEN 'DELETING' WHEN RESULT != 0 THEN 'FAILED' ELSE 'COMPLETED' END AS STATUS FROM __all_backup_task_history WHERE status = 'FINISH' and (effective_tenant_id() = 1 OR tenant_id = effective_tenant_id()) )__"))) {
LOG_ERROR("fail to set view_definition", K(ret));
}
}
@ -287,17 +280,16 @@ int ObInnerTableSchema::cdb_ob_backup_set_details_schema(ObTableSchema& table_sc
table_schema.set_max_used_column_id(column_id);
table_schema.get_part_option().set_max_used_part_id(table_schema.get_part_option().get_part_num() - 1);
table_schema.get_part_option().set_partition_cnt_within_partition_table(
OB_ALL_CORE_TABLE_TID == common::extract_pure_id(table_schema.get_table_id()) ? 1 : 0);
table_schema.get_part_option().set_partition_cnt_within_partition_table(OB_ALL_CORE_TABLE_TID == common::extract_pure_id(table_schema.get_table_id()) ? 1 : 0);
return ret;
}
int ObInnerTableSchema::cdb_ob_backup_set_expired_schema(ObTableSchema& table_schema)
int ObInnerTableSchema::cdb_ob_backup_set_expired_schema(ObTableSchema &table_schema)
{
int ret = OB_SUCCESS;
uint64_t column_id = OB_APP_MIN_COLUMN_ID - 1;
// generated fields:
//generated fields:
table_schema.set_tenant_id(OB_SYS_TENANT_ID);
table_schema.set_tablegroup_id(combine_id(OB_SYS_TENANT_ID, OB_SYS_TABLEGROUP_ID));
table_schema.set_database_id(combine_id(OB_SYS_TENANT_ID, OB_SYS_DATABASE_ID));
@ -328,8 +320,7 @@ int ObInnerTableSchema::cdb_ob_backup_set_expired_schema(ObTableSchema& table_sc
table_schema.set_create_mem_version(1);
if (OB_SUCC(ret)) {
if (OB_FAIL(table_schema.set_view_definition(
R"__( SELECT INCARNATION, TENANT_ID, BACKUP_SET_ID AS BS_KEY, BACKUP_TYPE, ENCRYPTION_MODE, START_TIME, END_TIME AS COMPLETION_TIME, ROUND((END_TIME - START_TIME)/1000/1000,0) AS ELAPSED_SECONDES, 'NO' AS KEEP, '' AS KEEP_UNTIL, DEVICE_TYPE, 'NO' AS COMPRESSED, OUTPUT_BYTES, OUTPUT_BYTES / ((TIME_TO_USEC(END_TIME) - TIME_TO_USEC(START_TIME))/1000/1000) AS OUTPUT_RATE_BYTES, ROUND(OUTPUT_BYTES / INPUT_BYTES, 2) AS COMPRESSION_RATIO, CASE WHEN OUTPUT_BYTES >= 1024*1024*1024*1024*1024 THEN CONCAT(ROUND(OUTPUT_BYTES/1024/1024/1024/1024/1024,2), 'PB') WHEN OUTPUT_BYTES >= 1024*1024*1024*1024 THEN CONCAT(ROUND(OUTPUT_BYTES/1024/1024/1024/1024,2), 'TB') WHEN OUTPUT_BYTES >= 1024*1024*1024 THEN CONCAT(ROUND(OUTPUT_BYTES/1024/1024/1024,2), 'GB') ELSE CONCAT(ROUND(OUTPUT_BYTES/1024/1024,2), 'MB') END AS OUTPUT_BYTES_DISPLAY, CASE WHEN OUTPUT_BYTES / ((TIME_TO_USEC(END_TIME) - TIME_TO_USEC(START_TIME))/1000/1000) >= 1024*1024*1024 THEN CONCAT(ROUND(OUTPUT_BYTES / ((TIME_TO_USEC(END_TIME) - TIME_TO_USEC(START_TIME))/1000/1000)/1024/1024/1024,2), 'GB/S') ELSE CONCAT(ROUND(OUTPUT_BYTES / ((TIME_TO_USEC(END_TIME) - TIME_TO_USEC(START_TIME))/1000/1000)/1024/1024,2), 'MB/S') END AS OUTPUT_RATE_BYTES_DISPLAY, TIMEDIFF(END_TIME, START_TIME) AS TIME_TAKEN_DISPLAY FROM __all_backup_task_history, (select CONVERT(value, SIGNED INTEGER) as days from __all_virtual_sys_parameter_stat where name = 'backup_recovery_window' and SVR_IP=host_ip() and SVR_PORT=rpc_port() limit 1) WHERE status = 'COMPLETED' and (days = 0 or TIMESTAMPDIFF(DAY, END_TIME, now()) > days) and (effective_tenant_id() = 1 OR tenant_id = effective_tenant_id()) )__"))) {
if (OB_FAIL(table_schema.set_view_definition(R"__( SELECT INCARNATION, TENANT_ID, BACKUP_SET_ID AS BS_KEY, BACKUP_TYPE, ENCRYPTION_MODE, START_TIME, END_TIME AS COMPLETION_TIME, ROUND((END_TIME - START_TIME)/1000/1000,0) AS ELAPSED_SECONDES, 'NO' AS KEEP, '' AS KEEP_UNTIL, DEVICE_TYPE, 'NO' AS COMPRESSED, OUTPUT_BYTES, OUTPUT_BYTES / ((TIME_TO_USEC(END_TIME) - TIME_TO_USEC(START_TIME))/1000/1000) AS OUTPUT_RATE_BYTES, ROUND(OUTPUT_BYTES / INPUT_BYTES, 2) AS COMPRESSION_RATIO, CASE WHEN OUTPUT_BYTES >= 1024*1024*1024*1024*1024 THEN CONCAT(ROUND(OUTPUT_BYTES/1024/1024/1024/1024/1024,2), 'PB') WHEN OUTPUT_BYTES >= 1024*1024*1024*1024 THEN CONCAT(ROUND(OUTPUT_BYTES/1024/1024/1024/1024,2), 'TB') WHEN OUTPUT_BYTES >= 1024*1024*1024 THEN CONCAT(ROUND(OUTPUT_BYTES/1024/1024/1024,2), 'GB') ELSE CONCAT(ROUND(OUTPUT_BYTES/1024/1024,2), 'MB') END AS OUTPUT_BYTES_DISPLAY, CASE WHEN OUTPUT_BYTES / ((TIME_TO_USEC(END_TIME) - TIME_TO_USEC(START_TIME))/1000/1000) >= 1024*1024*1024 THEN CONCAT(ROUND(OUTPUT_BYTES / ((TIME_TO_USEC(END_TIME) - TIME_TO_USEC(START_TIME))/1000/1000)/1024/1024/1024,2), 'GB/S') ELSE CONCAT(ROUND(OUTPUT_BYTES / ((TIME_TO_USEC(END_TIME) - TIME_TO_USEC(START_TIME))/1000/1000)/1024/1024,2), 'MB/S') END AS OUTPUT_RATE_BYTES_DISPLAY, TIMEDIFF(END_TIME, START_TIME) AS TIME_TAKEN_DISPLAY FROM __all_backup_task_history, (select CONVERT(value, SIGNED INTEGER) as days from __all_virtual_sys_parameter_stat where name = 'backup_recovery_window' and SVR_IP=host_ip() and SVR_PORT=rpc_port() limit 1) WHERE status = 'COMPLETED' and (days = 0 or TIMESTAMPDIFF(DAY, END_TIME, now()) > days) and (effective_tenant_id() = 1 OR tenant_id = effective_tenant_id()) )__"))) {
LOG_ERROR("fail to set view_definition", K(ret));
}
}
@ -341,17 +332,16 @@ int ObInnerTableSchema::cdb_ob_backup_set_expired_schema(ObTableSchema& table_sc
table_schema.set_max_used_column_id(column_id);
table_schema.get_part_option().set_max_used_part_id(table_schema.get_part_option().get_part_num() - 1);
table_schema.get_part_option().set_partition_cnt_within_partition_table(
OB_ALL_CORE_TABLE_TID == common::extract_pure_id(table_schema.get_table_id()) ? 1 : 0);
table_schema.get_part_option().set_partition_cnt_within_partition_table(OB_ALL_CORE_TABLE_TID == common::extract_pure_id(table_schema.get_table_id()) ? 1 : 0);
return ret;
}
int ObInnerTableSchema::cdb_ob_backup_progress_schema(ObTableSchema& table_schema)
int ObInnerTableSchema::cdb_ob_backup_progress_schema(ObTableSchema &table_schema)
{
int ret = OB_SUCCESS;
uint64_t column_id = OB_APP_MIN_COLUMN_ID - 1;
// generated fields:
//generated fields:
table_schema.set_tenant_id(OB_SYS_TENANT_ID);
table_schema.set_tablegroup_id(combine_id(OB_SYS_TENANT_ID, OB_SYS_TABLEGROUP_ID));
table_schema.set_database_id(combine_id(OB_SYS_TENANT_ID, OB_SYS_DATABASE_ID));
@ -382,8 +372,7 @@ int ObInnerTableSchema::cdb_ob_backup_progress_schema(ObTableSchema& table_schem
table_schema.set_create_mem_version(1);
if (OB_SUCC(ret)) {
if (OB_FAIL(table_schema.set_view_definition(
R"__( SELECT INCARNATION, BACKUP_SET_ID AS BS_KEY, BACKUP_TYPE, TENANT_ID, PARTITION_COUNT, MACRO_BLOCK_COUNT, FINISH_PARTITION_COUNT, FINISH_MACRO_BLOCK_COUNT, INPUT_BYTES, OUTPUT_BYTES, START_TIME, END_TIME AS COMPLETION_TIME, CASE WHEN STATUS = 'FINISH' AND RESULT != 0 THEN 'FAILED' WHEN STATUS = 'FINISH' AND RESULT = 0 THEN 'COMPLETED' ELSE 'RUNNING' END AS STATUS FROM __all_virtual_backup_task WHERE effective_tenant_id() = 1 OR tenant_id = effective_tenant_id() )__"))) {
if (OB_FAIL(table_schema.set_view_definition(R"__( SELECT INCARNATION, BACKUP_SET_ID AS BS_KEY, BACKUP_TYPE, TENANT_ID, PARTITION_COUNT, MACRO_BLOCK_COUNT, FINISH_PARTITION_COUNT, FINISH_MACRO_BLOCK_COUNT, INPUT_BYTES, OUTPUT_BYTES, START_TIME, END_TIME AS COMPLETION_TIME, CASE WHEN STATUS = 'FINISH' AND RESULT != 0 THEN 'FAILED' WHEN STATUS = 'FINISH' AND RESULT = 0 THEN 'COMPLETED' ELSE 'RUNNING' END AS STATUS FROM __all_virtual_backup_task WHERE effective_tenant_id() = 1 OR tenant_id = effective_tenant_id() )__"))) {
LOG_ERROR("fail to set view_definition", K(ret));
}
}
@ -395,17 +384,16 @@ int ObInnerTableSchema::cdb_ob_backup_progress_schema(ObTableSchema& table_schem
table_schema.set_max_used_column_id(column_id);
table_schema.get_part_option().set_max_used_part_id(table_schema.get_part_option().get_part_num() - 1);
table_schema.get_part_option().set_partition_cnt_within_partition_table(
OB_ALL_CORE_TABLE_TID == common::extract_pure_id(table_schema.get_table_id()) ? 1 : 0);
table_schema.get_part_option().set_partition_cnt_within_partition_table(OB_ALL_CORE_TABLE_TID == common::extract_pure_id(table_schema.get_table_id()) ? 1 : 0);
return ret;
}
int ObInnerTableSchema::cdb_ob_backup_archivelog_progress_schema(ObTableSchema& table_schema)
int ObInnerTableSchema::cdb_ob_backup_archivelog_progress_schema(ObTableSchema &table_schema)
{
int ret = OB_SUCCESS;
uint64_t column_id = OB_APP_MIN_COLUMN_ID - 1;
// generated fields:
//generated fields:
table_schema.set_tenant_id(OB_SYS_TENANT_ID);
table_schema.set_tablegroup_id(combine_id(OB_SYS_TENANT_ID, OB_SYS_TABLEGROUP_ID));
table_schema.set_database_id(combine_id(OB_SYS_TENANT_ID, OB_SYS_DATABASE_ID));
@ -436,8 +424,7 @@ int ObInnerTableSchema::cdb_ob_backup_archivelog_progress_schema(ObTableSchema&
table_schema.set_create_mem_version(1);
if (OB_SUCC(ret)) {
if (OB_FAIL(table_schema.set_view_definition(
R"__( SELECT INCARNATION, TENANT_ID, LOG_ARCHIVE_ROUND, SVR_IP, SVR_PORT, TABLE_ID, PARTITION_ID, usec_to_time(log_archive_start_ts) as MIN_FIRST_TIME, usec_to_time(log_archive_cur_ts) as MAX_NEXT_TIME, CASE WHEN log_archive_status = 1 THEN 'STOP' WHEN log_archive_status = 2 THEN 'BEGINNING' WHEN log_archive_status = 3 THEN 'DOING' WHEN log_archive_status = 4 THEN 'STOPPING' WHEN log_archive_status = 5 THEN 'INTERRUPTED' WHEN log_archive_status = 6 THEN 'MIXED' ELSE 'INVALID' END as STATUS FROM __all_virtual_pg_backup_log_archive_status WHERE effective_tenant_id() = 1 OR tenant_id = effective_tenant_id() )__"))) {
if (OB_FAIL(table_schema.set_view_definition(R"__( SELECT INCARNATION, TENANT_ID, LOG_ARCHIVE_ROUND, SVR_IP, SVR_PORT, TABLE_ID, PARTITION_ID, usec_to_time(log_archive_start_ts) as MIN_FIRST_TIME, usec_to_time(log_archive_cur_ts) as MAX_NEXT_TIME, CASE WHEN log_archive_status = 1 THEN 'STOP' WHEN log_archive_status = 2 THEN 'BEGINNING' WHEN log_archive_status = 3 THEN 'DOING' WHEN log_archive_status = 4 THEN 'STOPPING' WHEN log_archive_status = 5 THEN 'INTERRUPTED' WHEN log_archive_status = 6 THEN 'MIXED' ELSE 'INVALID' END as STATUS FROM __all_virtual_pg_backup_log_archive_status WHERE effective_tenant_id() = 1 OR tenant_id = effective_tenant_id() )__"))) {
LOG_ERROR("fail to set view_definition", K(ret));
}
}
@ -449,17 +436,16 @@ int ObInnerTableSchema::cdb_ob_backup_archivelog_progress_schema(ObTableSchema&
table_schema.set_max_used_column_id(column_id);
table_schema.get_part_option().set_max_used_part_id(table_schema.get_part_option().get_part_num() - 1);
table_schema.get_part_option().set_partition_cnt_within_partition_table(
OB_ALL_CORE_TABLE_TID == common::extract_pure_id(table_schema.get_table_id()) ? 1 : 0);
table_schema.get_part_option().set_partition_cnt_within_partition_table(OB_ALL_CORE_TABLE_TID == common::extract_pure_id(table_schema.get_table_id()) ? 1 : 0);
return ret;
}
int ObInnerTableSchema::cdb_ob_backup_clean_history_schema(ObTableSchema& table_schema)
int ObInnerTableSchema::cdb_ob_backup_clean_history_schema(ObTableSchema &table_schema)
{
int ret = OB_SUCCESS;
uint64_t column_id = OB_APP_MIN_COLUMN_ID - 1;
// generated fields:
//generated fields:
table_schema.set_tenant_id(OB_SYS_TENANT_ID);
table_schema.set_tablegroup_id(combine_id(OB_SYS_TENANT_ID, OB_SYS_TABLEGROUP_ID));
table_schema.set_database_id(combine_id(OB_SYS_TENANT_ID, OB_SYS_DATABASE_ID));
@ -490,8 +476,7 @@ int ObInnerTableSchema::cdb_ob_backup_clean_history_schema(ObTableSchema& table_
table_schema.set_create_mem_version(1);
if (OB_SUCC(ret)) {
if (OB_FAIL(table_schema.set_view_definition(
R"__( SELECT TENANT_ID, JOB_ID AS BS_KEY, START_TIME, END_TIME, INCARNATION, TYPE, STATUS, PARAMETER, ERROR_MSG, COMMENT FROM __all_backup_clean_info_history WHERE effective_tenant_id() = 1 OR tenant_id = effective_tenant_id() )__"))) {
if (OB_FAIL(table_schema.set_view_definition(R"__( SELECT TENANT_ID, JOB_ID AS BS_KEY, START_TIME, END_TIME, INCARNATION, TYPE, STATUS, PARAMETER, ERROR_MSG, COMMENT FROM __all_backup_clean_info_history WHERE effective_tenant_id() = 1 OR tenant_id = effective_tenant_id() )__"))) {
LOG_ERROR("fail to set view_definition", K(ret));
}
}
@ -503,17 +488,16 @@ int ObInnerTableSchema::cdb_ob_backup_clean_history_schema(ObTableSchema& table_
table_schema.set_max_used_column_id(column_id);
table_schema.get_part_option().set_max_used_part_id(table_schema.get_part_option().get_part_num() - 1);
table_schema.get_part_option().set_partition_cnt_within_partition_table(
OB_ALL_CORE_TABLE_TID == common::extract_pure_id(table_schema.get_table_id()) ? 1 : 0);
table_schema.get_part_option().set_partition_cnt_within_partition_table(OB_ALL_CORE_TABLE_TID == common::extract_pure_id(table_schema.get_table_id()) ? 1 : 0);
return ret;
}
int ObInnerTableSchema::cdb_ob_backup_task_clean_history_schema(ObTableSchema& table_schema)
int ObInnerTableSchema::cdb_ob_backup_task_clean_history_schema(ObTableSchema &table_schema)
{
int ret = OB_SUCCESS;
uint64_t column_id = OB_APP_MIN_COLUMN_ID - 1;
// generated fields:
//generated fields:
table_schema.set_tenant_id(OB_SYS_TENANT_ID);
table_schema.set_tablegroup_id(combine_id(OB_SYS_TENANT_ID, OB_SYS_TABLEGROUP_ID));
table_schema.set_database_id(combine_id(OB_SYS_TENANT_ID, OB_SYS_DATABASE_ID));
@ -544,8 +528,7 @@ int ObInnerTableSchema::cdb_ob_backup_task_clean_history_schema(ObTableSchema& t
table_schema.set_create_mem_version(1);
if (OB_SUCC(ret)) {
if (OB_FAIL(table_schema.set_view_definition(
R"__( SELECT TENANT_ID, INCARNATION, BACKUP_SET_ID AS BS_KEY, BACKUP_TYPE, PARTITION_COUNT, MACRO_BLOCK_COUNT, FINISH_PARTITION_COUNT, FINISH_MACRO_BLOCK_COUNT, INPUT_BYTES, OUTPUT_BYTES, START_TIME, END_TIME AS COMPLETION_TIME, STATUS FROM __all_backup_task_clean_history WHERE effective_tenant_id() = 1 OR tenant_id = effective_tenant_id() )__"))) {
if (OB_FAIL(table_schema.set_view_definition(R"__( SELECT TENANT_ID, INCARNATION, BACKUP_SET_ID AS BS_KEY, BACKUP_TYPE, PARTITION_COUNT, MACRO_BLOCK_COUNT, FINISH_PARTITION_COUNT, FINISH_MACRO_BLOCK_COUNT, INPUT_BYTES, OUTPUT_BYTES, START_TIME, END_TIME AS COMPLETION_TIME, STATUS FROM __all_backup_task_clean_history WHERE effective_tenant_id() = 1 OR tenant_id = effective_tenant_id() )__"))) {
LOG_ERROR("fail to set view_definition", K(ret));
}
}
@ -557,17 +540,16 @@ int ObInnerTableSchema::cdb_ob_backup_task_clean_history_schema(ObTableSchema& t
table_schema.set_max_used_column_id(column_id);
table_schema.get_part_option().set_max_used_part_id(table_schema.get_part_option().get_part_num() - 1);
table_schema.get_part_option().set_partition_cnt_within_partition_table(
OB_ALL_CORE_TABLE_TID == common::extract_pure_id(table_schema.get_table_id()) ? 1 : 0);
table_schema.get_part_option().set_partition_cnt_within_partition_table(OB_ALL_CORE_TABLE_TID == common::extract_pure_id(table_schema.get_table_id()) ? 1 : 0);
return ret;
}
int ObInnerTableSchema::cdb_ob_restore_progress_schema(ObTableSchema& table_schema)
int ObInnerTableSchema::cdb_ob_restore_progress_schema(ObTableSchema &table_schema)
{
int ret = OB_SUCCESS;
uint64_t column_id = OB_APP_MIN_COLUMN_ID - 1;
// generated fields:
//generated fields:
table_schema.set_tenant_id(OB_SYS_TENANT_ID);
table_schema.set_tablegroup_id(combine_id(OB_SYS_TENANT_ID, OB_SYS_TABLEGROUP_ID));
table_schema.set_database_id(combine_id(OB_SYS_TENANT_ID, OB_SYS_DATABASE_ID));
@ -598,8 +580,7 @@ int ObInnerTableSchema::cdb_ob_restore_progress_schema(ObTableSchema& table_sche
table_schema.set_create_mem_version(1);
if (OB_SUCC(ret)) {
if (OB_FAIL(table_schema.set_view_definition(
R"__( SELECT JOB_ID, EXTERNAL_JOB_ID, TENANT_ID, TENANT_NAME, BACKUP_TENANT_ID, BACKUP_TENANT_NAME, BACKUP_CLUSTER_ID, BACKUP_CLUSTER_NAME, STATUS, START_TIME, COMPLETION_TIME, PARTITION_COUNT, MACRO_BLOCK_COUNT, FINISH_PARTITION_COUNT, FINISH_MACRO_BLOCK_COUNT, RESTORE_START_TIMESTAMP, RESTORE_FINISH_TIMESTAMP, RESTORE_CURRENT_TIMESTAMP, INFO FROM __all_restore_progress )__"))) {
if (OB_FAIL(table_schema.set_view_definition(R"__( SELECT JOB_ID, EXTERNAL_JOB_ID, TENANT_ID, TENANT_NAME, BACKUP_TENANT_ID, BACKUP_TENANT_NAME, BACKUP_CLUSTER_ID, BACKUP_CLUSTER_NAME, STATUS, START_TIME, COMPLETION_TIME, PARTITION_COUNT, MACRO_BLOCK_COUNT, FINISH_PARTITION_COUNT, FINISH_MACRO_BLOCK_COUNT, RESTORE_START_TIMESTAMP, RESTORE_FINISH_TIMESTAMP, RESTORE_CURRENT_TIMESTAMP, INFO FROM __all_restore_progress )__"))) {
LOG_ERROR("fail to set view_definition", K(ret));
}
}
@ -611,17 +592,16 @@ int ObInnerTableSchema::cdb_ob_restore_progress_schema(ObTableSchema& table_sche
table_schema.set_max_used_column_id(column_id);
table_schema.get_part_option().set_max_used_part_id(table_schema.get_part_option().get_part_num() - 1);
table_schema.get_part_option().set_partition_cnt_within_partition_table(
OB_ALL_CORE_TABLE_TID == common::extract_pure_id(table_schema.get_table_id()) ? 1 : 0);
table_schema.get_part_option().set_partition_cnt_within_partition_table(OB_ALL_CORE_TABLE_TID == common::extract_pure_id(table_schema.get_table_id()) ? 1 : 0);
return ret;
}
int ObInnerTableSchema::cdb_ob_restore_history_schema(ObTableSchema& table_schema)
int ObInnerTableSchema::cdb_ob_restore_history_schema(ObTableSchema &table_schema)
{
int ret = OB_SUCCESS;
uint64_t column_id = OB_APP_MIN_COLUMN_ID - 1;
// generated fields:
//generated fields:
table_schema.set_tenant_id(OB_SYS_TENANT_ID);
table_schema.set_tablegroup_id(combine_id(OB_SYS_TENANT_ID, OB_SYS_TABLEGROUP_ID));
table_schema.set_database_id(combine_id(OB_SYS_TENANT_ID, OB_SYS_DATABASE_ID));
@ -652,8 +632,7 @@ int ObInnerTableSchema::cdb_ob_restore_history_schema(ObTableSchema& table_schem
table_schema.set_create_mem_version(1);
if (OB_SUCC(ret)) {
if (OB_FAIL(table_schema.set_view_definition(
R"__( SELECT JOB_ID, EXTERNAL_JOB_ID, TENANT_ID, TENANT_NAME, BACKUP_TENANT_ID, BACKUP_TENANT_NAME, BACKUP_CLUSTER_ID, BACKUP_CLUSTER_NAME, STATUS, START_TIME, COMPLETION_TIME, PARTITION_COUNT, MACRO_BLOCK_COUNT, FINISH_PARTITION_COUNT, FINISH_MACRO_BLOCK_COUNT, RESTORE_START_TIMESTAMP, RESTORE_FINISH_TIMESTAMP, RESTORE_CURRENT_TIMESTAMP, INFO FROM __all_restore_history )__"))) {
if (OB_FAIL(table_schema.set_view_definition(R"__( SELECT JOB_ID, EXTERNAL_JOB_ID, TENANT_ID, TENANT_NAME, BACKUP_TENANT_ID, BACKUP_TENANT_NAME, BACKUP_CLUSTER_ID, BACKUP_CLUSTER_NAME, STATUS, START_TIME, COMPLETION_TIME, PARTITION_COUNT, MACRO_BLOCK_COUNT, FINISH_PARTITION_COUNT, FINISH_MACRO_BLOCK_COUNT, RESTORE_START_TIMESTAMP, RESTORE_FINISH_TIMESTAMP, RESTORE_CURRENT_TIMESTAMP, INFO FROM __all_restore_history )__"))) {
LOG_ERROR("fail to set view_definition", K(ret));
}
}
@ -665,17 +644,16 @@ int ObInnerTableSchema::cdb_ob_restore_history_schema(ObTableSchema& table_schem
table_schema.set_max_used_column_id(column_id);
table_schema.get_part_option().set_max_used_part_id(table_schema.get_part_option().get_part_num() - 1);
table_schema.get_part_option().set_partition_cnt_within_partition_table(
OB_ALL_CORE_TABLE_TID == common::extract_pure_id(table_schema.get_table_id()) ? 1 : 0);
table_schema.get_part_option().set_partition_cnt_within_partition_table(OB_ALL_CORE_TABLE_TID == common::extract_pure_id(table_schema.get_table_id()) ? 1 : 0);
return ret;
}
int ObInnerTableSchema::gv_server_schema_info_schema(ObTableSchema& table_schema)
int ObInnerTableSchema::gv_server_schema_info_schema(ObTableSchema &table_schema)
{
int ret = OB_SUCCESS;
uint64_t column_id = OB_APP_MIN_COLUMN_ID - 1;
// generated fields:
//generated fields:
table_schema.set_tenant_id(OB_SYS_TENANT_ID);
table_schema.set_tablegroup_id(combine_id(OB_SYS_TENANT_ID, OB_SYS_TABLEGROUP_ID));
table_schema.set_database_id(combine_id(OB_SYS_TENANT_ID, OB_SYS_DATABASE_ID));
@ -706,8 +684,7 @@ int ObInnerTableSchema::gv_server_schema_info_schema(ObTableSchema& table_schema
table_schema.set_create_mem_version(1);
if (OB_SUCC(ret)) {
if (OB_FAIL(table_schema.set_view_definition(
R"__( SELECT SVR_IP, SVR_PORT, TENANT_ID, REFRESHED_SCHEMA_VERSION, RECEIVED_SCHEMA_VERSION, SCHEMA_COUNT, SCHEMA_SIZE, MIN_SSTABLE_SCHEMA_VERSION FROM oceanbase.__all_virtual_server_schema_info WHERE effective_tenant_id() = 1 OR tenant_id = effective_tenant_id() )__"))) {
if (OB_FAIL(table_schema.set_view_definition(R"__( SELECT SVR_IP, SVR_PORT, TENANT_ID, REFRESHED_SCHEMA_VERSION, RECEIVED_SCHEMA_VERSION, SCHEMA_COUNT, SCHEMA_SIZE, MIN_SSTABLE_SCHEMA_VERSION FROM oceanbase.__all_virtual_server_schema_info WHERE effective_tenant_id() = 1 OR tenant_id = effective_tenant_id() )__"))) {
LOG_ERROR("fail to set view_definition", K(ret));
}
}
@ -719,17 +696,16 @@ int ObInnerTableSchema::gv_server_schema_info_schema(ObTableSchema& table_schema
table_schema.set_max_used_column_id(column_id);
table_schema.get_part_option().set_max_used_part_id(table_schema.get_part_option().get_part_num() - 1);
table_schema.get_part_option().set_partition_cnt_within_partition_table(
OB_ALL_CORE_TABLE_TID == common::extract_pure_id(table_schema.get_table_id()) ? 1 : 0);
table_schema.get_part_option().set_partition_cnt_within_partition_table(OB_ALL_CORE_TABLE_TID == common::extract_pure_id(table_schema.get_table_id()) ? 1 : 0);
return ret;
}
int ObInnerTableSchema::v_server_schema_info_schema(ObTableSchema& table_schema)
int ObInnerTableSchema::v_server_schema_info_schema(ObTableSchema &table_schema)
{
int ret = OB_SUCCESS;
uint64_t column_id = OB_APP_MIN_COLUMN_ID - 1;
// generated fields:
//generated fields:
table_schema.set_tenant_id(OB_SYS_TENANT_ID);
table_schema.set_tablegroup_id(combine_id(OB_SYS_TENANT_ID, OB_SYS_TABLEGROUP_ID));
table_schema.set_database_id(combine_id(OB_SYS_TENANT_ID, OB_SYS_DATABASE_ID));
@ -760,8 +736,7 @@ int ObInnerTableSchema::v_server_schema_info_schema(ObTableSchema& table_schema)
table_schema.set_create_mem_version(1);
if (OB_SUCC(ret)) {
if (OB_FAIL(table_schema.set_view_definition(
R"__( SELECT TENANT_ID, REFRESHED_SCHEMA_VERSION, RECEIVED_SCHEMA_VERSION, SCHEMA_COUNT, SCHEMA_SIZE, MIN_SSTABLE_SCHEMA_VERSION FROM oceanbase.__all_virtual_server_schema_info WHERE SVR_IP=HOST_IP() AND SVR_PORT=RPC_PORT() AND effective_tenant_id() = 1 OR tenant_id = effective_tenant_id() )__"))) {
if (OB_FAIL(table_schema.set_view_definition(R"__( SELECT TENANT_ID, REFRESHED_SCHEMA_VERSION, RECEIVED_SCHEMA_VERSION, SCHEMA_COUNT, SCHEMA_SIZE, MIN_SSTABLE_SCHEMA_VERSION FROM oceanbase.__all_virtual_server_schema_info WHERE SVR_IP=HOST_IP() AND SVR_PORT=RPC_PORT() AND effective_tenant_id() = 1 OR tenant_id = effective_tenant_id() )__"))) {
LOG_ERROR("fail to set view_definition", K(ret));
}
}
@ -773,17 +748,16 @@ int ObInnerTableSchema::v_server_schema_info_schema(ObTableSchema& table_schema)
table_schema.set_max_used_column_id(column_id);
table_schema.get_part_option().set_max_used_part_id(table_schema.get_part_option().get_part_num() - 1);
table_schema.get_part_option().set_partition_cnt_within_partition_table(
OB_ALL_CORE_TABLE_TID == common::extract_pure_id(table_schema.get_table_id()) ? 1 : 0);
table_schema.get_part_option().set_partition_cnt_within_partition_table(OB_ALL_CORE_TABLE_TID == common::extract_pure_id(table_schema.get_table_id()) ? 1 : 0);
return ret;
}
int ObInnerTableSchema::cdb_ckpt_history_schema(ObTableSchema& table_schema)
int ObInnerTableSchema::cdb_ckpt_history_schema(ObTableSchema &table_schema)
{
int ret = OB_SUCCESS;
uint64_t column_id = OB_APP_MIN_COLUMN_ID - 1;
// generated fields:
//generated fields:
table_schema.set_tenant_id(OB_SYS_TENANT_ID);
table_schema.set_tablegroup_id(combine_id(OB_SYS_TENANT_ID, OB_SYS_TABLEGROUP_ID));
table_schema.set_database_id(combine_id(OB_SYS_TENANT_ID, OB_SYS_DATABASE_ID));
@ -814,8 +788,7 @@ int ObInnerTableSchema::cdb_ckpt_history_schema(ObTableSchema& table_schema)
table_schema.set_create_mem_version(1);
if (OB_SUCC(ret)) {
if (OB_FAIL(table_schema.set_view_definition(
R"__( SELECT A.SVR_IP AS SVR_IP, A.SVR_PORT AS SVR_PORT, A.VALUE1 AS TENANT_ID, A.VALUE2 AS CHECKPOINT_SNAPSHOT, A.VALUE3 AS CHECKPOINT_TYPE, A.VALUE4 AS CHECKPOINT_CLUSTER_VERSION, A.GMT_CREATE AS START_TIME, B.GMT_CREATE AS FINISH_TIME FROM (SELECT SVR_IP, SVR_PORT, EVENT, VALUE1, VALUE2, VALUE3, VALUE4, GMT_CREATE FROM OCEANBASE.__ALL_SERVER_EVENT_HISTORY WHERE (EVENT = 'minor merge start' OR EVENT = 'write checkpoint start') AND (EFFECTIVE_TENANT_ID() = 1 OR VALUE1 = EFFECTIVE_TENANT_ID())) A LEFT JOIN (SELECT SVR_IP, SVR_PORT, EVENT, VALUE1, VALUE2, GMT_CREATE FROM OCEANBASE.__ALL_SERVER_EVENT_HISTORY WHERE (EVENT = 'minor merge finish' OR EVENT = 'write checkpoint finish') AND (EFFECTIVE_TENANT_ID() = 1 OR VALUE1 = EFFECTIVE_TENANT_ID())) B ON A.SVR_IP = B.SVR_IP AND A.SVR_PORT = B.SVR_PORT AND A.VALUE1 = B.VALUE1 AND A.VALUE2 = B.VALUE2 AND ((A.EVENT = 'minor merge start' AND B.EVENT = 'minor merge finish') OR (A.EVENT = 'write checkpoint start' AND B.EVENT = 'write checkpoint finish')) ORDER BY SVR_IP, SVR_PORT, TENANT_ID, CHECKPOINT_SNAPSHOT )__"))) {
if (OB_FAIL(table_schema.set_view_definition(R"__( SELECT A.SVR_IP AS SVR_IP, A.SVR_PORT AS SVR_PORT, A.VALUE1 AS TENANT_ID, A.VALUE2 AS CHECKPOINT_SNAPSHOT, A.VALUE3 AS CHECKPOINT_TYPE, A.VALUE4 AS CHECKPOINT_CLUSTER_VERSION, A.GMT_CREATE AS START_TIME, B.GMT_CREATE AS FINISH_TIME FROM (SELECT SVR_IP, SVR_PORT, EVENT, VALUE1, VALUE2, VALUE3, VALUE4, GMT_CREATE FROM OCEANBASE.__ALL_SERVER_EVENT_HISTORY WHERE (EVENT = 'minor merge start' OR EVENT = 'write checkpoint start') AND (EFFECTIVE_TENANT_ID() = 1 OR VALUE1 = EFFECTIVE_TENANT_ID())) A LEFT JOIN (SELECT SVR_IP, SVR_PORT, EVENT, VALUE1, VALUE2, GMT_CREATE FROM OCEANBASE.__ALL_SERVER_EVENT_HISTORY WHERE (EVENT = 'minor merge finish' OR EVENT = 'write checkpoint finish') AND (EFFECTIVE_TENANT_ID() = 1 OR VALUE1 = EFFECTIVE_TENANT_ID())) B ON A.SVR_IP = B.SVR_IP AND A.SVR_PORT = B.SVR_PORT AND A.VALUE1 = B.VALUE1 AND A.VALUE2 = B.VALUE2 AND ((A.EVENT = 'minor merge start' AND B.EVENT = 'minor merge finish') OR (A.EVENT = 'write checkpoint start' AND B.EVENT = 'write checkpoint finish')) ORDER BY SVR_IP, SVR_PORT, TENANT_ID, CHECKPOINT_SNAPSHOT )__"))) {
LOG_ERROR("fail to set view_definition", K(ret));
}
}
@ -827,17 +800,16 @@ int ObInnerTableSchema::cdb_ckpt_history_schema(ObTableSchema& table_schema)
table_schema.set_max_used_column_id(column_id);
table_schema.get_part_option().set_max_used_part_id(table_schema.get_part_option().get_part_num() - 1);
table_schema.get_part_option().set_partition_cnt_within_partition_table(
OB_ALL_CORE_TABLE_TID == common::extract_pure_id(table_schema.get_table_id()) ? 1 : 0);
table_schema.get_part_option().set_partition_cnt_within_partition_table(OB_ALL_CORE_TABLE_TID == common::extract_pure_id(table_schema.get_table_id()) ? 1 : 0);
return ret;
}
int ObInnerTableSchema::gv_ob_trans_table_status_schema(ObTableSchema& table_schema)
int ObInnerTableSchema::gv_ob_trans_table_status_schema(ObTableSchema &table_schema)
{
int ret = OB_SUCCESS;
uint64_t column_id = OB_APP_MIN_COLUMN_ID - 1;
// generated fields:
//generated fields:
table_schema.set_tenant_id(OB_SYS_TENANT_ID);
table_schema.set_tablegroup_id(combine_id(OB_SYS_TENANT_ID, OB_SYS_TABLEGROUP_ID));
table_schema.set_database_id(combine_id(OB_SYS_TENANT_ID, OB_SYS_DATABASE_ID));
@ -868,8 +840,7 @@ int ObInnerTableSchema::gv_ob_trans_table_status_schema(ObTableSchema& table_sch
table_schema.set_create_mem_version(1);
if (OB_SUCC(ret)) {
if (OB_FAIL(table_schema.set_view_definition(
R"__( SELECT SVR_IP, SVR_PORT, TENANT_ID, TABLE_ID, PARTITION_ID, END_LOG_ID, TRANS_CNT FROM oceanbase.__all_virtual_trans_table_status WHERE effective_tenant_id() = 1 OR tenant_id = effective_tenant_id() )__"))) {
if (OB_FAIL(table_schema.set_view_definition(R"__( SELECT SVR_IP, SVR_PORT, TENANT_ID, TABLE_ID, PARTITION_ID, END_LOG_ID, TRANS_CNT FROM oceanbase.__all_virtual_trans_table_status WHERE effective_tenant_id() = 1 OR tenant_id = effective_tenant_id() )__"))) {
LOG_ERROR("fail to set view_definition", K(ret));
}
}
@ -881,17 +852,16 @@ int ObInnerTableSchema::gv_ob_trans_table_status_schema(ObTableSchema& table_sch
table_schema.set_max_used_column_id(column_id);
table_schema.get_part_option().set_max_used_part_id(table_schema.get_part_option().get_part_num() - 1);
table_schema.get_part_option().set_partition_cnt_within_partition_table(
OB_ALL_CORE_TABLE_TID == common::extract_pure_id(table_schema.get_table_id()) ? 1 : 0);
table_schema.get_part_option().set_partition_cnt_within_partition_table(OB_ALL_CORE_TABLE_TID == common::extract_pure_id(table_schema.get_table_id()) ? 1 : 0);
return ret;
}
int ObInnerTableSchema::v_ob_trans_table_status_schema(ObTableSchema& table_schema)
int ObInnerTableSchema::v_ob_trans_table_status_schema(ObTableSchema &table_schema)
{
int ret = OB_SUCCESS;
uint64_t column_id = OB_APP_MIN_COLUMN_ID - 1;
// generated fields:
//generated fields:
table_schema.set_tenant_id(OB_SYS_TENANT_ID);
table_schema.set_tablegroup_id(combine_id(OB_SYS_TENANT_ID, OB_SYS_TABLEGROUP_ID));
table_schema.set_database_id(combine_id(OB_SYS_TENANT_ID, OB_SYS_DATABASE_ID));
@ -922,8 +892,7 @@ int ObInnerTableSchema::v_ob_trans_table_status_schema(ObTableSchema& table_sche
table_schema.set_create_mem_version(1);
if (OB_SUCC(ret)) {
if (OB_FAIL(table_schema.set_view_definition(
R"__( SELECT TABLE_ID, PARTITION_ID, END_LOG_ID, TRANS_CNT FROM oceanbase.__all_virtual_trans_table_status WHERE SVR_IP=HOST_IP() AND SVR_PORT=RPC_PORT() AND effective_tenant_id() = 1 OR tenant_id = effective_tenant_id() )__"))) {
if (OB_FAIL(table_schema.set_view_definition(R"__( SELECT TABLE_ID, PARTITION_ID, END_LOG_ID, TRANS_CNT FROM oceanbase.__all_virtual_trans_table_status WHERE SVR_IP=HOST_IP() AND SVR_PORT=RPC_PORT() AND effective_tenant_id() = 1 OR tenant_id = effective_tenant_id() )__"))) {
LOG_ERROR("fail to set view_definition", K(ret));
}
}
@ -935,17 +904,16 @@ int ObInnerTableSchema::v_ob_trans_table_status_schema(ObTableSchema& table_sche
table_schema.set_max_used_column_id(column_id);
table_schema.get_part_option().set_max_used_part_id(table_schema.get_part_option().get_part_num() - 1);
table_schema.get_part_option().set_partition_cnt_within_partition_table(
OB_ALL_CORE_TABLE_TID == common::extract_pure_id(table_schema.get_table_id()) ? 1 : 0);
table_schema.get_part_option().set_partition_cnt_within_partition_table(OB_ALL_CORE_TABLE_TID == common::extract_pure_id(table_schema.get_table_id()) ? 1 : 0);
return ret;
}
int ObInnerTableSchema::v_sql_monitor_statname_schema(ObTableSchema& table_schema)
int ObInnerTableSchema::v_sql_monitor_statname_schema(ObTableSchema &table_schema)
{
int ret = OB_SUCCESS;
uint64_t column_id = OB_APP_MIN_COLUMN_ID - 1;
// generated fields:
//generated fields:
table_schema.set_tenant_id(OB_SYS_TENANT_ID);
table_schema.set_tablegroup_id(combine_id(OB_SYS_TENANT_ID, OB_SYS_TABLEGROUP_ID));
table_schema.set_database_id(combine_id(OB_SYS_TENANT_ID, OB_SYS_DATABASE_ID));
@ -976,8 +944,7 @@ int ObInnerTableSchema::v_sql_monitor_statname_schema(ObTableSchema& table_schem
table_schema.set_create_mem_version(1);
if (OB_SUCC(ret)) {
if (OB_FAIL(table_schema.set_view_definition(
R"__( SELECT NULL CON_ID, ID, GROUP_ID, NAME, DESCRIPTION, 0 TYPE, 0 FLAGS FROM oceanbase.__all_virtual_sql_monitor_statname )__"))) {
if (OB_FAIL(table_schema.set_view_definition(R"__( SELECT NULL CON_ID, ID, GROUP_ID, NAME, DESCRIPTION, 0 TYPE, 0 FLAGS FROM oceanbase.__all_virtual_sql_monitor_statname )__"))) {
LOG_ERROR("fail to set view_definition", K(ret));
}
}
@ -989,17 +956,16 @@ int ObInnerTableSchema::v_sql_monitor_statname_schema(ObTableSchema& table_schem
table_schema.set_max_used_column_id(column_id);
table_schema.get_part_option().set_max_used_part_id(table_schema.get_part_option().get_part_num() - 1);
table_schema.get_part_option().set_partition_cnt_within_partition_table(
OB_ALL_CORE_TABLE_TID == common::extract_pure_id(table_schema.get_table_id()) ? 1 : 0);
table_schema.get_part_option().set_partition_cnt_within_partition_table(OB_ALL_CORE_TABLE_TID == common::extract_pure_id(table_schema.get_table_id()) ? 1 : 0);
return ret;
}
int ObInnerTableSchema::gv_merge_info_schema(ObTableSchema& table_schema)
int ObInnerTableSchema::gv_merge_info_schema(ObTableSchema &table_schema)
{
int ret = OB_SUCCESS;
uint64_t column_id = OB_APP_MIN_COLUMN_ID - 1;
// generated fields:
//generated fields:
table_schema.set_tenant_id(OB_SYS_TENANT_ID);
table_schema.set_tablegroup_id(combine_id(OB_SYS_TENANT_ID, OB_SYS_TABLEGROUP_ID));
table_schema.set_database_id(combine_id(OB_SYS_TENANT_ID, OB_SYS_DATABASE_ID));
@ -1030,8 +996,7 @@ int ObInnerTableSchema::gv_merge_info_schema(ObTableSchema& table_schema)
table_schema.set_create_mem_version(1);
if (OB_SUCC(ret)) {
if (OB_FAIL(table_schema.set_view_definition(
R"__( SELECT SVR_IP, SVR_PORT, TENANT_ID, TABLE_ID, PARTITION_ID, CASE MERGE_TYPE WHEN 'MAJOR MERGE' THEN 'major' ELSE 'minor' END AS TYPE, MERGE_TYPE AS ACTION, CASE MERGE_TYPE WHEN 'MAJOR MERGE' THEN VERSION ELSE SNAPSHOT_VERSION END AS VERSION, USEC_TO_TIME(MERGE_START_TIME) AS START_TIME, USEC_TO_TIME(MERGE_FINISH_TIME) AS END_TIME, MACRO_BLOCK_COUNT, CASE MACRO_BLOCK_COUNT WHEN 0 THEN 0.00 ELSE ROUND(USE_OLD_MACRO_BLOCK_COUNT/MACRO_BLOCK_COUNT*100, 2) END AS REUSE_PCT, TOTAL_CHILD_TASK AS PARALLEL_DEGREE FROM __ALL_VIRTUAL_PARTITION_SSTABLE_MERGE_INFO WHERE EFFECTIVE_TENANT_ID() = 1 OR tenant_id = EFFECTIVE_TENANT_ID() )__"))) {
if (OB_FAIL(table_schema.set_view_definition(R"__( SELECT SVR_IP, SVR_PORT, TENANT_ID, TABLE_ID, PARTITION_ID, CASE MERGE_TYPE WHEN 'MAJOR MERGE' THEN 'major' ELSE 'minor' END AS TYPE, MERGE_TYPE AS ACTION, CASE MERGE_TYPE WHEN 'MAJOR MERGE' THEN VERSION ELSE SNAPSHOT_VERSION END AS VERSION, USEC_TO_TIME(MERGE_START_TIME) AS START_TIME, USEC_TO_TIME(MERGE_FINISH_TIME) AS END_TIME, MACRO_BLOCK_COUNT, CASE MACRO_BLOCK_COUNT WHEN 0 THEN 0.00 ELSE ROUND(USE_OLD_MACRO_BLOCK_COUNT/MACRO_BLOCK_COUNT*100, 2) END AS REUSE_PCT, TOTAL_CHILD_TASK AS PARALLEL_DEGREE FROM __ALL_VIRTUAL_PARTITION_SSTABLE_MERGE_INFO WHERE EFFECTIVE_TENANT_ID() = 1 OR tenant_id = EFFECTIVE_TENANT_ID() )__"))) {
LOG_ERROR("fail to set view_definition", K(ret));
}
}
@ -1043,17 +1008,16 @@ int ObInnerTableSchema::gv_merge_info_schema(ObTableSchema& table_schema)
table_schema.set_max_used_column_id(column_id);
table_schema.get_part_option().set_max_used_part_id(table_schema.get_part_option().get_part_num() - 1);
table_schema.get_part_option().set_partition_cnt_within_partition_table(
OB_ALL_CORE_TABLE_TID == common::extract_pure_id(table_schema.get_table_id()) ? 1 : 0);
table_schema.get_part_option().set_partition_cnt_within_partition_table(OB_ALL_CORE_TABLE_TID == common::extract_pure_id(table_schema.get_table_id()) ? 1 : 0);
return ret;
}
int ObInnerTableSchema::v_merge_info_schema(ObTableSchema& table_schema)
int ObInnerTableSchema::v_merge_info_schema(ObTableSchema &table_schema)
{
int ret = OB_SUCCESS;
uint64_t column_id = OB_APP_MIN_COLUMN_ID - 1;
// generated fields:
//generated fields:
table_schema.set_tenant_id(OB_SYS_TENANT_ID);
table_schema.set_tablegroup_id(combine_id(OB_SYS_TENANT_ID, OB_SYS_TABLEGROUP_ID));
table_schema.set_database_id(combine_id(OB_SYS_TENANT_ID, OB_SYS_DATABASE_ID));
@ -1084,8 +1048,7 @@ int ObInnerTableSchema::v_merge_info_schema(ObTableSchema& table_schema)
table_schema.set_create_mem_version(1);
if (OB_SUCC(ret)) {
if (OB_FAIL(table_schema.set_view_definition(
R"__( SELECT * FROM OCEANBASE.gv$merge_info WHERE SVR_IP = HOST_IP() AND SVR_PORT = RPC_PORT() )__"))) {
if (OB_FAIL(table_schema.set_view_definition(R"__( SELECT * FROM OCEANBASE.gv$merge_info WHERE SVR_IP = HOST_IP() AND SVR_PORT = RPC_PORT() )__"))) {
LOG_ERROR("fail to set view_definition", K(ret));
}
}
@ -1097,17 +1060,16 @@ int ObInnerTableSchema::v_merge_info_schema(ObTableSchema& table_schema)
table_schema.set_max_used_column_id(column_id);
table_schema.get_part_option().set_max_used_part_id(table_schema.get_part_option().get_part_num() - 1);
table_schema.get_part_option().set_partition_cnt_within_partition_table(
OB_ALL_CORE_TABLE_TID == common::extract_pure_id(table_schema.get_table_id()) ? 1 : 0);
table_schema.get_part_option().set_partition_cnt_within_partition_table(OB_ALL_CORE_TABLE_TID == common::extract_pure_id(table_schema.get_table_id()) ? 1 : 0);
return ret;
}
int ObInnerTableSchema::gv_lock_schema(ObTableSchema& table_schema)
int ObInnerTableSchema::gv_lock_schema(ObTableSchema &table_schema)
{
int ret = OB_SUCCESS;
uint64_t column_id = OB_APP_MIN_COLUMN_ID - 1;
// generated fields:
//generated fields:
table_schema.set_tenant_id(OB_SYS_TENANT_ID);
table_schema.set_tablegroup_id(combine_id(OB_SYS_TENANT_ID, OB_SYS_TABLEGROUP_ID));
table_schema.set_database_id(combine_id(OB_SYS_TENANT_ID, OB_SYS_DATABASE_ID));
@ -1138,8 +1100,7 @@ int ObInnerTableSchema::gv_lock_schema(ObTableSchema& table_schema)
table_schema.set_create_mem_version(1);
if (OB_SUCC(ret)) {
if (OB_FAIL(table_schema.set_view_definition(
R"__( SELECT distinct a.svr_ip AS SVR_IP, a.svr_port AS SVR_PORT, a.table_id AS TABLE_ID, a.rowkey AS ADDR, b.row_lock_addr AS KADDR, b.session_id AS SID, a.type AS TYPE, a.lock_mode AS LMODE, CAST(NULL AS SIGNED) AS REQUEST, a.time_after_recv AS CTIME, a.block_session_id AS BLOCK, (a.table_id >> 40) AS CON_ID FROM __all_virtual_lock_wait_stat a JOIN __all_virtual_trans_lock_stat b ON a.svr_ip = b.svr_ip and a.svr_port = b.svr_port and a.table_id = b.table_id and substr(a.rowkey, 1, 512) = substr(b.rowkey, 1, 512) where ((a.table_id >> 40) = effective_tenant_id() or effective_tenant_id() = 1) and a.session_id = a.block_session_id )__"))) {
if (OB_FAIL(table_schema.set_view_definition(R"__( SELECT distinct a.svr_ip AS SVR_IP, a.svr_port AS SVR_PORT, a.table_id AS TABLE_ID, a.rowkey AS ADDR, b.row_lock_addr AS KADDR, b.session_id AS SID, a.type AS TYPE, a.lock_mode AS LMODE, CAST(NULL AS SIGNED) AS REQUEST, a.time_after_recv AS CTIME, a.block_session_id AS BLOCK, (a.table_id >> 40) AS CON_ID FROM __all_virtual_lock_wait_stat a JOIN __all_virtual_trans_lock_stat b ON a.svr_ip = b.svr_ip and a.svr_port = b.svr_port and a.table_id = b.table_id and substr(a.rowkey, 1, 512) = substr(b.rowkey, 1, 512) where ((a.table_id >> 40) = effective_tenant_id() or effective_tenant_id() = 1) and a.session_id = a.block_session_id )__"))) {
LOG_ERROR("fail to set view_definition", K(ret));
}
}
@ -1151,17 +1112,16 @@ int ObInnerTableSchema::gv_lock_schema(ObTableSchema& table_schema)
table_schema.set_max_used_column_id(column_id);
table_schema.get_part_option().set_max_used_part_id(table_schema.get_part_option().get_part_num() - 1);
table_schema.get_part_option().set_partition_cnt_within_partition_table(
OB_ALL_CORE_TABLE_TID == common::extract_pure_id(table_schema.get_table_id()) ? 1 : 0);
table_schema.get_part_option().set_partition_cnt_within_partition_table(OB_ALL_CORE_TABLE_TID == common::extract_pure_id(table_schema.get_table_id()) ? 1 : 0);
return ret;
}
int ObInnerTableSchema::v_lock_schema(ObTableSchema& table_schema)
int ObInnerTableSchema::v_lock_schema(ObTableSchema &table_schema)
{
int ret = OB_SUCCESS;
uint64_t column_id = OB_APP_MIN_COLUMN_ID - 1;
// generated fields:
//generated fields:
table_schema.set_tenant_id(OB_SYS_TENANT_ID);
table_schema.set_tablegroup_id(combine_id(OB_SYS_TENANT_ID, OB_SYS_TABLEGROUP_ID));
table_schema.set_database_id(combine_id(OB_SYS_TENANT_ID, OB_SYS_DATABASE_ID));
@ -1192,8 +1152,7 @@ int ObInnerTableSchema::v_lock_schema(ObTableSchema& table_schema)
table_schema.set_create_mem_version(1);
if (OB_SUCC(ret)) {
if (OB_FAIL(table_schema.set_view_definition(
R"__( SELECT TABLE_ID, ADDR, KADDR, SID, TYPE, LMODE, REQUEST, CTIME, BLOCK, CON_ID FROM gv$lock WHERE svr_ip = host_ip() AND svr_port = rpc_port() )__"))) {
if (OB_FAIL(table_schema.set_view_definition(R"__( SELECT TABLE_ID, ADDR, KADDR, SID, TYPE, LMODE, REQUEST, CTIME, BLOCK, CON_ID FROM gv$lock WHERE svr_ip = host_ip() AND svr_port = rpc_port() )__"))) {
LOG_ERROR("fail to set view_definition", K(ret));
}
}
@ -1205,17 +1164,16 @@ int ObInnerTableSchema::v_lock_schema(ObTableSchema& table_schema)
table_schema.set_max_used_column_id(column_id);
table_schema.get_part_option().set_max_used_part_id(table_schema.get_part_option().get_part_num() - 1);
table_schema.get_part_option().set_partition_cnt_within_partition_table(
OB_ALL_CORE_TABLE_TID == common::extract_pure_id(table_schema.get_table_id()) ? 1 : 0);
table_schema.get_part_option().set_partition_cnt_within_partition_table(OB_ALL_CORE_TABLE_TID == common::extract_pure_id(table_schema.get_table_id()) ? 1 : 0);
return ret;
}
int ObInnerTableSchema::cdb_ob_backup_validation_job_schema(ObTableSchema& table_schema)
int ObInnerTableSchema::cdb_ob_backup_validation_job_schema(ObTableSchema &table_schema)
{
int ret = OB_SUCCESS;
uint64_t column_id = OB_APP_MIN_COLUMN_ID - 1;
// generated fields:
//generated fields:
table_schema.set_tenant_id(OB_SYS_TENANT_ID);
table_schema.set_tablegroup_id(combine_id(OB_SYS_TENANT_ID, OB_SYS_TABLEGROUP_ID));
table_schema.set_database_id(combine_id(OB_SYS_TENANT_ID, OB_SYS_DATABASE_ID));
@ -1246,8 +1204,7 @@ int ObInnerTableSchema::cdb_ob_backup_validation_job_schema(ObTableSchema& table
table_schema.set_create_mem_version(1);
if (OB_SUCC(ret)) {
if (OB_FAIL(table_schema.set_view_definition(
R"__( SELECT JOB_ID, TENANT_ID, TENANT_NAME, INCARNATION, BACKUP_SET_ID, PROGRESS_PERCENT, STATUS FROM __all_backup_validation_job )__"))) {
if (OB_FAIL(table_schema.set_view_definition(R"__( SELECT JOB_ID, TENANT_ID, TENANT_NAME, INCARNATION, BACKUP_SET_ID, PROGRESS_PERCENT, STATUS FROM __all_backup_validation_job )__"))) {
LOG_ERROR("fail to set view_definition", K(ret));
}
}
@ -1259,17 +1216,16 @@ int ObInnerTableSchema::cdb_ob_backup_validation_job_schema(ObTableSchema& table
table_schema.set_max_used_column_id(column_id);
table_schema.get_part_option().set_max_used_part_id(table_schema.get_part_option().get_part_num() - 1);
table_schema.get_part_option().set_partition_cnt_within_partition_table(
OB_ALL_CORE_TABLE_TID == common::extract_pure_id(table_schema.get_table_id()) ? 1 : 0);
table_schema.get_part_option().set_partition_cnt_within_partition_table(OB_ALL_CORE_TABLE_TID == common::extract_pure_id(table_schema.get_table_id()) ? 1 : 0);
return ret;
}
int ObInnerTableSchema::cdb_ob_backup_validation_job_history_schema(ObTableSchema& table_schema)
int ObInnerTableSchema::cdb_ob_backup_validation_job_history_schema(ObTableSchema &table_schema)
{
int ret = OB_SUCCESS;
uint64_t column_id = OB_APP_MIN_COLUMN_ID - 1;
// generated fields:
//generated fields:
table_schema.set_tenant_id(OB_SYS_TENANT_ID);
table_schema.set_tablegroup_id(combine_id(OB_SYS_TENANT_ID, OB_SYS_TABLEGROUP_ID));
table_schema.set_database_id(combine_id(OB_SYS_TENANT_ID, OB_SYS_DATABASE_ID));
@ -1300,8 +1256,7 @@ int ObInnerTableSchema::cdb_ob_backup_validation_job_history_schema(ObTableSchem
table_schema.set_create_mem_version(1);
if (OB_SUCC(ret)) {
if (OB_FAIL(table_schema.set_view_definition(
R"__( SELECT JOB_ID, TENANT_ID, TENANT_NAME, INCARNATION, BACKUP_SET_ID, PROGRESS_PERCENT, STATUS FROM __all_backup_validation_job_history )__"))) {
if (OB_FAIL(table_schema.set_view_definition(R"__( SELECT JOB_ID, TENANT_ID, TENANT_NAME, INCARNATION, BACKUP_SET_ID, PROGRESS_PERCENT, STATUS FROM __all_backup_validation_job_history )__"))) {
LOG_ERROR("fail to set view_definition", K(ret));
}
}
@ -1313,17 +1268,16 @@ int ObInnerTableSchema::cdb_ob_backup_validation_job_history_schema(ObTableSchem
table_schema.set_max_used_column_id(column_id);
table_schema.get_part_option().set_max_used_part_id(table_schema.get_part_option().get_part_num() - 1);
table_schema.get_part_option().set_partition_cnt_within_partition_table(
OB_ALL_CORE_TABLE_TID == common::extract_pure_id(table_schema.get_table_id()) ? 1 : 0);
table_schema.get_part_option().set_partition_cnt_within_partition_table(OB_ALL_CORE_TABLE_TID == common::extract_pure_id(table_schema.get_table_id()) ? 1 : 0);
return ret;
}
int ObInnerTableSchema::cdb_ob_tenant_backup_validation_task_schema(ObTableSchema& table_schema)
int ObInnerTableSchema::cdb_ob_tenant_backup_validation_task_schema(ObTableSchema &table_schema)
{
int ret = OB_SUCCESS;
uint64_t column_id = OB_APP_MIN_COLUMN_ID - 1;
// generated fields:
//generated fields:
table_schema.set_tenant_id(OB_SYS_TENANT_ID);
table_schema.set_tablegroup_id(combine_id(OB_SYS_TENANT_ID, OB_SYS_TABLEGROUP_ID));
table_schema.set_database_id(combine_id(OB_SYS_TENANT_ID, OB_SYS_DATABASE_ID));
@ -1354,8 +1308,7 @@ int ObInnerTableSchema::cdb_ob_tenant_backup_validation_task_schema(ObTableSchem
table_schema.set_create_mem_version(1);
if (OB_SUCC(ret)) {
if (OB_FAIL(table_schema.set_view_definition(
R"__( SELECT JOB_ID, TASK_ID, TENANT_ID, INCARNATION, BACKUP_SET_ID, STATUS, BACKUP_DEST, START_TIME, END_TIME, TOTAL_PG_COUNT, FINISH_PG_COUNT, TOTAL_PARTITION_COUNT, FINISH_PARTITION_COUNT, TOTAL_MACRO_BLOCK_COUNT, FINISH_MACRO_BLOCK_COUNT, LOG_SIZE FROM __all_virtual_backup_validation_task WHERE effective_tenant_id() = 1 OR tenant_id = effective_tenant_id() )__"))) {
if (OB_FAIL(table_schema.set_view_definition(R"__( SELECT JOB_ID, TASK_ID, TENANT_ID, INCARNATION, BACKUP_SET_ID, STATUS, BACKUP_DEST, START_TIME, END_TIME, TOTAL_PG_COUNT, FINISH_PG_COUNT, TOTAL_PARTITION_COUNT, FINISH_PARTITION_COUNT, TOTAL_MACRO_BLOCK_COUNT, FINISH_MACRO_BLOCK_COUNT, LOG_SIZE FROM __all_virtual_backup_validation_task WHERE effective_tenant_id() = 1 OR tenant_id = effective_tenant_id() )__"))) {
LOG_ERROR("fail to set view_definition", K(ret));
}
}
@ -1367,17 +1320,16 @@ int ObInnerTableSchema::cdb_ob_tenant_backup_validation_task_schema(ObTableSchem
table_schema.set_max_used_column_id(column_id);
table_schema.get_part_option().set_max_used_part_id(table_schema.get_part_option().get_part_num() - 1);
table_schema.get_part_option().set_partition_cnt_within_partition_table(
OB_ALL_CORE_TABLE_TID == common::extract_pure_id(table_schema.get_table_id()) ? 1 : 0);
table_schema.get_part_option().set_partition_cnt_within_partition_table(OB_ALL_CORE_TABLE_TID == common::extract_pure_id(table_schema.get_table_id()) ? 1 : 0);
return ret;
}
int ObInnerTableSchema::cdb_ob_backup_validation_task_history_schema(ObTableSchema& table_schema)
int ObInnerTableSchema::cdb_ob_backup_validation_task_history_schema(ObTableSchema &table_schema)
{
int ret = OB_SUCCESS;
uint64_t column_id = OB_APP_MIN_COLUMN_ID - 1;
// generated fields:
//generated fields:
table_schema.set_tenant_id(OB_SYS_TENANT_ID);
table_schema.set_tablegroup_id(combine_id(OB_SYS_TENANT_ID, OB_SYS_TABLEGROUP_ID));
table_schema.set_database_id(combine_id(OB_SYS_TENANT_ID, OB_SYS_DATABASE_ID));
@ -1408,8 +1360,7 @@ int ObInnerTableSchema::cdb_ob_backup_validation_task_history_schema(ObTableSche
table_schema.set_create_mem_version(1);
if (OB_SUCC(ret)) {
if (OB_FAIL(table_schema.set_view_definition(
R"__( SELECT JOB_ID, TASK_ID, TENANT_ID, INCARNATION, BACKUP_SET_ID, STATUS, BACKUP_DEST, START_TIME, END_TIME, TOTAL_PG_COUNT, FINISH_PG_COUNT, TOTAL_PARTITION_COUNT, FINISH_PARTITION_COUNT, TOTAL_MACRO_BLOCK_COUNT, FINISH_MACRO_BLOCK_COUNT, LOG_SIZE FROM __all_backup_validation_task_history )__"))) {
if (OB_FAIL(table_schema.set_view_definition(R"__( SELECT JOB_ID, TASK_ID, TENANT_ID, INCARNATION, BACKUP_SET_ID, STATUS, BACKUP_DEST, START_TIME, END_TIME, TOTAL_PG_COUNT, FINISH_PG_COUNT, TOTAL_PARTITION_COUNT, FINISH_PARTITION_COUNT, TOTAL_MACRO_BLOCK_COUNT, FINISH_MACRO_BLOCK_COUNT, LOG_SIZE FROM __all_backup_validation_task_history )__"))) {
LOG_ERROR("fail to set view_definition", K(ret));
}
}
@ -1421,17 +1372,16 @@ int ObInnerTableSchema::cdb_ob_backup_validation_task_history_schema(ObTableSche
table_schema.set_max_used_column_id(column_id);
table_schema.get_part_option().set_max_used_part_id(table_schema.get_part_option().get_part_num() - 1);
table_schema.get_part_option().set_partition_cnt_within_partition_table(
OB_ALL_CORE_TABLE_TID == common::extract_pure_id(table_schema.get_table_id()) ? 1 : 0);
table_schema.get_part_option().set_partition_cnt_within_partition_table(OB_ALL_CORE_TABLE_TID == common::extract_pure_id(table_schema.get_table_id()) ? 1 : 0);
return ret;
}
int ObInnerTableSchema::v_restore_point_schema(ObTableSchema& table_schema)
int ObInnerTableSchema::v_restore_point_schema(ObTableSchema &table_schema)
{
int ret = OB_SUCCESS;
uint64_t column_id = OB_APP_MIN_COLUMN_ID - 1;
// generated fields:
//generated fields:
table_schema.set_tenant_id(OB_SYS_TENANT_ID);
table_schema.set_tablegroup_id(combine_id(OB_SYS_TENANT_ID, OB_SYS_TABLEGROUP_ID));
table_schema.set_database_id(combine_id(OB_SYS_TENANT_ID, OB_SYS_DATABASE_ID));
@ -1462,8 +1412,7 @@ int ObInnerTableSchema::v_restore_point_schema(ObTableSchema& table_schema)
table_schema.set_create_mem_version(1);
if (OB_SUCC(ret)) {
if (OB_FAIL(table_schema.set_view_definition(
R"__( SELECT TENANT_ID, SNAPSHOT_TS as SNAPSHOT, GMT_CREATE as TIME, EXTRA_INFO as NAME FROM oceanbase.__all_acquired_snapshot WHERE snapshot_type = 3 and (effective_tenant_id() = 1 OR tenant_id = effective_tenant_id()) )__"))) {
if (OB_FAIL(table_schema.set_view_definition(R"__( SELECT TENANT_ID, SNAPSHOT_TS as SNAPSHOT, GMT_CREATE as TIME, EXTRA_INFO as NAME FROM oceanbase.__all_acquired_snapshot WHERE snapshot_type = 3 and (effective_tenant_id() = 1 OR tenant_id = effective_tenant_id()) )__"))) {
LOG_ERROR("fail to set view_definition", K(ret));
}
}
@ -1475,17 +1424,16 @@ int ObInnerTableSchema::v_restore_point_schema(ObTableSchema& table_schema)
table_schema.set_max_used_column_id(column_id);
table_schema.get_part_option().set_max_used_part_id(table_schema.get_part_option().get_part_num() - 1);
table_schema.get_part_option().set_partition_cnt_within_partition_table(
OB_ALL_CORE_TABLE_TID == common::extract_pure_id(table_schema.get_table_id()) ? 1 : 0);
table_schema.get_part_option().set_partition_cnt_within_partition_table(OB_ALL_CORE_TABLE_TID == common::extract_pure_id(table_schema.get_table_id()) ? 1 : 0);
return ret;
}
int ObInnerTableSchema::cdb_ob_backup_set_obsolete_schema(ObTableSchema& table_schema)
int ObInnerTableSchema::cdb_ob_backup_set_obsolete_schema(ObTableSchema &table_schema)
{
int ret = OB_SUCCESS;
uint64_t column_id = OB_APP_MIN_COLUMN_ID - 1;
// generated fields:
//generated fields:
table_schema.set_tenant_id(OB_SYS_TENANT_ID);
table_schema.set_tablegroup_id(combine_id(OB_SYS_TENANT_ID, OB_SYS_TABLEGROUP_ID));
table_schema.set_database_id(combine_id(OB_SYS_TENANT_ID, OB_SYS_DATABASE_ID));
@ -1516,8 +1464,7 @@ int ObInnerTableSchema::cdb_ob_backup_set_obsolete_schema(ObTableSchema& table_s
table_schema.set_create_mem_version(1);
if (OB_SUCC(ret)) {
if (OB_FAIL(
table_schema.set_view_definition(R"__( SELECT INCARNATION, TENANT_ID, BACKUP_SET_ID AS BS_KEY, BACKUP_TYPE, ENCRYPTION_MODE, START_TIME, END_TIME AS COMPLETION_TIME, ROUND((END_TIME - START_TIME)/1000/1000,0) AS ELAPSED_SECONDES, 'NO' AS KEEP, '' AS KEEP_UNTIL, DEVICE_TYPE, 'NO' AS COMPRESSED, OUTPUT_BYTES, OUTPUT_BYTES / ((END_TIME - START_TIME)/1000/1000) AS OUTPUT_RATE_BYTES, ROUND(OUTPUT_BYTES / INPUT_BYTES, 2) AS COMPRESSION_RATIO, CASE WHEN OUTPUT_BYTES >= 1024*1024*1024*1024*1024 THEN CONCAT(ROUND(OUTPUT_BYTES/1024/1024/1024/1024/1024,2), 'PB') WHEN OUTPUT_BYTES >= 1024*1024*1024*1024 THEN CONCAT(ROUND(OUTPUT_BYTES/1024/1024/1024/1024,2), 'TB') WHEN OUTPUT_BYTES >= 1024*1024*1024 THEN CONCAT(ROUND(OUTPUT_BYTES/1024/1024/1024,2), 'GB') ELSE CONCAT(ROUND(OUTPUT_BYTES/1024/1024,2), 'MB') END AS OUTPUT_BYTES_DISPLAY, CASE WHEN OUTPUT_BYTES / ((END_TIME - START_TIME)/1000/1000) >= 1024*1024*1024 THEN CONCAT(ROUND(OUTPUT_BYTES / ((END_TIME - START_TIME)/1000/1000)/1024/1024/1024,2), 'GB/S') ELSE CONCAT(ROUND(OUTPUT_BYTES / ((END_TIME - START_TIME)/1000/1000)/1024/1024,2), 'MB/S') END AS OUTPUT_RATE_BYTES_DISPLAY, TIMEDIFF(END_TIME, START_TIME) AS TIME_TAKEN_DISPLAY, CASE WHEN IS_MARK_DELETED = 1 THEN 'DELETING' WHEN RESULT != 0 THEN 'FAILED' ELSE 'COMPLETED' END AS STATUS FROM __all_virtual_backupset_history_mgr WHERE backup_recovery_window > 0 and (backup_recovery_window + snapshot_version <= time_to_usec(now(6))) and (effective_tenant_id() = 1 OR tenant_id = effective_tenant_id()) )__"))) {
if (OB_FAIL(table_schema.set_view_definition(R"__( SELECT INCARNATION, TENANT_ID, BACKUP_SET_ID AS BS_KEY, BACKUP_TYPE, ENCRYPTION_MODE, START_TIME, END_TIME AS COMPLETION_TIME, ROUND((END_TIME - START_TIME)/1000/1000,0) AS ELAPSED_SECONDES, 'NO' AS KEEP, '' AS KEEP_UNTIL, DEVICE_TYPE, 'NO' AS COMPRESSED, OUTPUT_BYTES, OUTPUT_BYTES / ((END_TIME - START_TIME)/1000/1000) AS OUTPUT_RATE_BYTES, ROUND(OUTPUT_BYTES / INPUT_BYTES, 2) AS COMPRESSION_RATIO, CASE WHEN OUTPUT_BYTES >= 1024*1024*1024*1024*1024 THEN CONCAT(ROUND(OUTPUT_BYTES/1024/1024/1024/1024/1024,2), 'PB') WHEN OUTPUT_BYTES >= 1024*1024*1024*1024 THEN CONCAT(ROUND(OUTPUT_BYTES/1024/1024/1024/1024,2), 'TB') WHEN OUTPUT_BYTES >= 1024*1024*1024 THEN CONCAT(ROUND(OUTPUT_BYTES/1024/1024/1024,2), 'GB') ELSE CONCAT(ROUND(OUTPUT_BYTES/1024/1024,2), 'MB') END AS OUTPUT_BYTES_DISPLAY, CASE WHEN OUTPUT_BYTES / ((END_TIME - START_TIME)/1000/1000) >= 1024*1024*1024 THEN CONCAT(ROUND(OUTPUT_BYTES / ((END_TIME - START_TIME)/1000/1000)/1024/1024/1024,2), 'GB/S') ELSE CONCAT(ROUND(OUTPUT_BYTES / ((END_TIME - START_TIME)/1000/1000)/1024/1024,2), 'MB/S') END AS OUTPUT_RATE_BYTES_DISPLAY, TIMEDIFF(END_TIME, START_TIME) AS TIME_TAKEN_DISPLAY, CASE WHEN IS_MARK_DELETED = 1 THEN 'DELETING' WHEN RESULT != 0 THEN 'FAILED' ELSE 'COMPLETED' END AS STATUS FROM __all_virtual_backupset_history_mgr WHERE backup_recovery_window > 0 and (backup_recovery_window + snapshot_version <= time_to_usec(now(6))) and (effective_tenant_id() = 1 OR tenant_id = effective_tenant_id()) )__"))) {
LOG_ERROR("fail to set view_definition", K(ret));
}
}
@ -1529,17 +1476,16 @@ int ObInnerTableSchema::cdb_ob_backup_set_obsolete_schema(ObTableSchema& table_s
table_schema.set_max_used_column_id(column_id);
table_schema.get_part_option().set_max_used_part_id(table_schema.get_part_option().get_part_num() - 1);
table_schema.get_part_option().set_partition_cnt_within_partition_table(
OB_ALL_CORE_TABLE_TID == common::extract_pure_id(table_schema.get_table_id()) ? 1 : 0);
table_schema.get_part_option().set_partition_cnt_within_partition_table(OB_ALL_CORE_TABLE_TID == common::extract_pure_id(table_schema.get_table_id()) ? 1 : 0);
return ret;
}
int ObInnerTableSchema::cdb_ob_backup_backupset_job_schema(ObTableSchema& table_schema)
int ObInnerTableSchema::cdb_ob_backup_backupset_job_schema(ObTableSchema &table_schema)
{
int ret = OB_SUCCESS;
uint64_t column_id = OB_APP_MIN_COLUMN_ID - 1;
// generated fields:
//generated fields:
table_schema.set_tenant_id(OB_SYS_TENANT_ID);
table_schema.set_tablegroup_id(combine_id(OB_SYS_TENANT_ID, OB_SYS_TABLEGROUP_ID));
table_schema.set_database_id(combine_id(OB_SYS_TENANT_ID, OB_SYS_DATABASE_ID));
@ -1570,8 +1516,7 @@ int ObInnerTableSchema::cdb_ob_backup_backupset_job_schema(ObTableSchema& table_
table_schema.set_create_mem_version(1);
if (OB_SUCC(ret)) {
if (OB_FAIL(table_schema.set_view_definition(
R"__( SELECT JOB_ID, TENANT_ID, INCARNATION, BACKUP_SET_ID, CASE WHEN BACKUP_BACKUPSET_TYPE = 'A' THEN 'ALL_BACKUP_SET' WHEN BACKUP_BACKUPSET_TYPE = 'S' THEN 'SINGLE_BACKUP_SET' ELSE 'UNKNOWN' END AS TYPE, TENANT_NAME, STATUS FROM __all_backup_backupset_job )__"))) {
if (OB_FAIL(table_schema.set_view_definition(R"__( SELECT JOB_ID, TENANT_ID, INCARNATION, BACKUP_SET_ID, CASE WHEN BACKUP_BACKUPSET_TYPE = 'A' THEN 'ALL_BACKUP_SET' WHEN BACKUP_BACKUPSET_TYPE = 'S' THEN 'SINGLE_BACKUP_SET' ELSE 'UNKNOWN' END AS TYPE, TENANT_NAME, STATUS FROM __all_backup_backupset_job )__"))) {
LOG_ERROR("fail to set view_definition", K(ret));
}
}
@ -1583,17 +1528,16 @@ int ObInnerTableSchema::cdb_ob_backup_backupset_job_schema(ObTableSchema& table_
table_schema.set_max_used_column_id(column_id);
table_schema.get_part_option().set_max_used_part_id(table_schema.get_part_option().get_part_num() - 1);
table_schema.get_part_option().set_partition_cnt_within_partition_table(
OB_ALL_CORE_TABLE_TID == common::extract_pure_id(table_schema.get_table_id()) ? 1 : 0);
table_schema.get_part_option().set_partition_cnt_within_partition_table(OB_ALL_CORE_TABLE_TID == common::extract_pure_id(table_schema.get_table_id()) ? 1 : 0);
return ret;
}
int ObInnerTableSchema::cdb_ob_backup_backupset_job_history_schema(ObTableSchema& table_schema)
int ObInnerTableSchema::cdb_ob_backup_backupset_job_history_schema(ObTableSchema &table_schema)
{
int ret = OB_SUCCESS;
uint64_t column_id = OB_APP_MIN_COLUMN_ID - 1;
// generated fields:
//generated fields:
table_schema.set_tenant_id(OB_SYS_TENANT_ID);
table_schema.set_tablegroup_id(combine_id(OB_SYS_TENANT_ID, OB_SYS_TABLEGROUP_ID));
table_schema.set_database_id(combine_id(OB_SYS_TENANT_ID, OB_SYS_DATABASE_ID));
@ -1624,8 +1568,7 @@ int ObInnerTableSchema::cdb_ob_backup_backupset_job_history_schema(ObTableSchema
table_schema.set_create_mem_version(1);
if (OB_SUCC(ret)) {
if (OB_FAIL(table_schema.set_view_definition(
R"__( SELECT JOB_ID, TENANT_ID, INCARNATION, BACKUP_SET_ID, CASE WHEN BACKUP_BACKUPSET_TYPE = 'A' THEN 'ALL_BACKUP_SET' WHEN BACKUP_BACKUPSET_TYPE = 'S' THEN 'SINGLE_BACKUP_SET' ELSE 'UNKNOWN' END AS TYPE, TENANT_NAME, STATUS FROM __all_backup_backupset_job_history )__"))) {
if (OB_FAIL(table_schema.set_view_definition(R"__( SELECT JOB_ID, TENANT_ID, INCARNATION, BACKUP_SET_ID, CASE WHEN BACKUP_BACKUPSET_TYPE = 'A' THEN 'ALL_BACKUP_SET' WHEN BACKUP_BACKUPSET_TYPE = 'S' THEN 'SINGLE_BACKUP_SET' ELSE 'UNKNOWN' END AS TYPE, TENANT_NAME, STATUS FROM __all_backup_backupset_job_history )__"))) {
LOG_ERROR("fail to set view_definition", K(ret));
}
}
@ -1637,17 +1580,16 @@ int ObInnerTableSchema::cdb_ob_backup_backupset_job_history_schema(ObTableSchema
table_schema.set_max_used_column_id(column_id);
table_schema.get_part_option().set_max_used_part_id(table_schema.get_part_option().get_part_num() - 1);
table_schema.get_part_option().set_partition_cnt_within_partition_table(
OB_ALL_CORE_TABLE_TID == common::extract_pure_id(table_schema.get_table_id()) ? 1 : 0);
table_schema.get_part_option().set_partition_cnt_within_partition_table(OB_ALL_CORE_TABLE_TID == common::extract_pure_id(table_schema.get_table_id()) ? 1 : 0);
return ret;
}
int ObInnerTableSchema::cdb_ob_backup_backupset_task_schema(ObTableSchema& table_schema)
int ObInnerTableSchema::cdb_ob_backup_backupset_task_schema(ObTableSchema &table_schema)
{
int ret = OB_SUCCESS;
uint64_t column_id = OB_APP_MIN_COLUMN_ID - 1;
// generated fields:
//generated fields:
table_schema.set_tenant_id(OB_SYS_TENANT_ID);
table_schema.set_tablegroup_id(combine_id(OB_SYS_TENANT_ID, OB_SYS_TABLEGROUP_ID));
table_schema.set_database_id(combine_id(OB_SYS_TENANT_ID, OB_SYS_DATABASE_ID));
@ -1678,8 +1620,7 @@ int ObInnerTableSchema::cdb_ob_backup_backupset_task_schema(ObTableSchema& table
table_schema.set_create_mem_version(1);
if (OB_SUCC(ret)) {
if (OB_FAIL(table_schema.set_view_definition(
R"__( SELECT INCARNATION, BACKUP_SET_ID AS BS_KEY, COPY_ID, BACKUP_TYPE, TENANT_ID, TOTAL_PG_COUNT, FINISH_PG_COUNT, TOTAL_PARTITION_COUNT, TOTAL_MACRO_BLOCK_COUNT, FINISH_PARTITION_COUNT, FINISH_MACRO_BLOCK_COUNT, INPUT_BYTES, OUTPUT_BYTES, START_TIME, END_TIME AS COMPLETION_TIME, CASE WHEN STATUS = 'FINISH' AND RESULT != 0 THEN 'FAILED' WHEN STATUS = 'FINISH' AND RESULT = 0 THEN 'COMPLETED' ELSE 'RUNNING' END AS STATUS FROM __all_virtual_backup_backupset_task WHERE effective_tenant_id() = 1 OR tenant_id = effective_tenant_id() )__"))) {
if (OB_FAIL(table_schema.set_view_definition(R"__( SELECT INCARNATION, BACKUP_SET_ID AS BS_KEY, COPY_ID, BACKUP_TYPE, TENANT_ID, TOTAL_PG_COUNT, FINISH_PG_COUNT, TOTAL_PARTITION_COUNT, TOTAL_MACRO_BLOCK_COUNT, FINISH_PARTITION_COUNT, FINISH_MACRO_BLOCK_COUNT, INPUT_BYTES, OUTPUT_BYTES, START_TIME, END_TIME AS COMPLETION_TIME, CASE WHEN STATUS = 'FINISH' AND RESULT != 0 THEN 'FAILED' WHEN STATUS = 'FINISH' AND RESULT = 0 THEN 'COMPLETED' ELSE 'RUNNING' END AS STATUS FROM __all_virtual_backup_backupset_task WHERE effective_tenant_id() = 1 OR tenant_id = effective_tenant_id() )__"))) {
LOG_ERROR("fail to set view_definition", K(ret));
}
}
@ -1691,17 +1632,16 @@ int ObInnerTableSchema::cdb_ob_backup_backupset_task_schema(ObTableSchema& table
table_schema.set_max_used_column_id(column_id);
table_schema.get_part_option().set_max_used_part_id(table_schema.get_part_option().get_part_num() - 1);
table_schema.get_part_option().set_partition_cnt_within_partition_table(
OB_ALL_CORE_TABLE_TID == common::extract_pure_id(table_schema.get_table_id()) ? 1 : 0);
table_schema.get_part_option().set_partition_cnt_within_partition_table(OB_ALL_CORE_TABLE_TID == common::extract_pure_id(table_schema.get_table_id()) ? 1 : 0);
return ret;
}
int ObInnerTableSchema::cdb_ob_backup_backupset_task_history_schema(ObTableSchema& table_schema)
int ObInnerTableSchema::cdb_ob_backup_backupset_task_history_schema(ObTableSchema &table_schema)
{
int ret = OB_SUCCESS;
uint64_t column_id = OB_APP_MIN_COLUMN_ID - 1;
// generated fields:
//generated fields:
table_schema.set_tenant_id(OB_SYS_TENANT_ID);
table_schema.set_tablegroup_id(combine_id(OB_SYS_TENANT_ID, OB_SYS_TABLEGROUP_ID));
table_schema.set_database_id(combine_id(OB_SYS_TENANT_ID, OB_SYS_DATABASE_ID));
@ -1732,8 +1672,7 @@ int ObInnerTableSchema::cdb_ob_backup_backupset_task_history_schema(ObTableSchem
table_schema.set_create_mem_version(1);
if (OB_SUCC(ret)) {
if (OB_FAIL(table_schema.set_view_definition(
R"__( SELECT INCARNATION, TENANT_ID, BACKUP_SET_ID AS BS_KEY, COPY_ID, BACKUP_TYPE, ENCRYPTION_MODE, START_TIME, END_TIME AS COMPLETION_TIME, ROUND((END_TIME - START_TIME)/1000/1000,0) AS ELAPSED_SECONDES, 'NO' AS KEEP, '' AS KEEP_UNTIL, SRC_DEVICE_TYPE, DST_DEVICE_TYPE, 'NO' AS COMPRESSED, OUTPUT_BYTES, OUTPUT_BYTES / ((END_TIME - START_TIME)/1000/1000) AS OUTPUT_RATE_BYTES, ROUND(OUTPUT_BYTES / INPUT_BYTES, 2) AS COMPRESSION_RATIO, CASE WHEN OUTPUT_BYTES >= 1024*1024*1024*1024*1024 THEN CONCAT(ROUND(OUTPUT_BYTES/1024/1024/1024/1024/1024,2), 'PB') WHEN OUTPUT_BYTES >= 1024*1024*1024*1024 THEN CONCAT(ROUND(OUTPUT_BYTES/1024/1024/1024/1024,2), 'TB') WHEN OUTPUT_BYTES >= 1024*1024*1024 THEN CONCAT(ROUND(OUTPUT_BYTES/1024/1024/1024,2), 'GB') ELSE CONCAT(ROUND(OUTPUT_BYTES/1024/1024,2), 'MB') END AS OUTPUT_BYTES_DISPLAY, CASE WHEN OUTPUT_BYTES / ((END_TIME - START_TIME)/1000/1000) >= 1024*1024*1024 THEN CONCAT(ROUND(OUTPUT_BYTES / ((END_TIME - START_TIME)/1000/1000)/1024/1024/1024,2), 'GB/S') ELSE CONCAT(ROUND(OUTPUT_BYTES / ((END_TIME - START_TIME)/1000/1000)/1024/1024,2), 'MB/S') END AS OUTPUT_RATE_BYTES_DISPLAY, TIMEDIFF(END_TIME, START_TIME) AS TIME_TAKEN_DISPLAY, CASE WHEN IS_MARK_DELETED = 1 THEN 'DELETING' WHEN RESULT != 0 THEN 'FAILED' ELSE 'COMPLETED' END AS STATUS FROM __all_backup_backupset_task_history WHERE status = 'FINISH' and (effective_tenant_id() = 1 OR tenant_id = effective_tenant_id()) )__"))) {
if (OB_FAIL(table_schema.set_view_definition(R"__( SELECT INCARNATION, TENANT_ID, BACKUP_SET_ID AS BS_KEY, COPY_ID, BACKUP_TYPE, ENCRYPTION_MODE, START_TIME, END_TIME AS COMPLETION_TIME, ROUND((END_TIME - START_TIME)/1000/1000,0) AS ELAPSED_SECONDES, 'NO' AS KEEP, '' AS KEEP_UNTIL, SRC_DEVICE_TYPE, DST_DEVICE_TYPE, 'NO' AS COMPRESSED, OUTPUT_BYTES, OUTPUT_BYTES / ((END_TIME - START_TIME)/1000/1000) AS OUTPUT_RATE_BYTES, ROUND(OUTPUT_BYTES / INPUT_BYTES, 2) AS COMPRESSION_RATIO, CASE WHEN OUTPUT_BYTES >= 1024*1024*1024*1024*1024 THEN CONCAT(ROUND(OUTPUT_BYTES/1024/1024/1024/1024/1024,2), 'PB') WHEN OUTPUT_BYTES >= 1024*1024*1024*1024 THEN CONCAT(ROUND(OUTPUT_BYTES/1024/1024/1024/1024,2), 'TB') WHEN OUTPUT_BYTES >= 1024*1024*1024 THEN CONCAT(ROUND(OUTPUT_BYTES/1024/1024/1024,2), 'GB') ELSE CONCAT(ROUND(OUTPUT_BYTES/1024/1024,2), 'MB') END AS OUTPUT_BYTES_DISPLAY, CASE WHEN OUTPUT_BYTES / ((END_TIME - START_TIME)/1000/1000) >= 1024*1024*1024 THEN CONCAT(ROUND(OUTPUT_BYTES / ((END_TIME - START_TIME)/1000/1000)/1024/1024/1024,2), 'GB/S') ELSE CONCAT(ROUND(OUTPUT_BYTES / ((END_TIME - START_TIME)/1000/1000)/1024/1024,2), 'MB/S') END AS OUTPUT_RATE_BYTES_DISPLAY, TIMEDIFF(END_TIME, START_TIME) AS TIME_TAKEN_DISPLAY, CASE WHEN IS_MARK_DELETED = 1 THEN 'DELETING' WHEN RESULT != 0 THEN 'FAILED' ELSE 'COMPLETED' END AS STATUS FROM __all_backup_backupset_task_history WHERE status = 'FINISH' and (effective_tenant_id() = 1 OR tenant_id = effective_tenant_id()) )__"))) {
LOG_ERROR("fail to set view_definition", K(ret));
}
}
@ -1745,17 +1684,16 @@ int ObInnerTableSchema::cdb_ob_backup_backupset_task_history_schema(ObTableSchem
table_schema.set_max_used_column_id(column_id);
table_schema.get_part_option().set_max_used_part_id(table_schema.get_part_option().get_part_num() - 1);
table_schema.get_part_option().set_partition_cnt_within_partition_table(
OB_ALL_CORE_TABLE_TID == common::extract_pure_id(table_schema.get_table_id()) ? 1 : 0);
table_schema.get_part_option().set_partition_cnt_within_partition_table(OB_ALL_CORE_TABLE_TID == common::extract_pure_id(table_schema.get_table_id()) ? 1 : 0);
return ret;
}
int ObInnerTableSchema::cdb_ob_backup_backup_archivelog_summary_schema(ObTableSchema& table_schema)
int ObInnerTableSchema::cdb_ob_backup_backup_archivelog_summary_schema(ObTableSchema &table_schema)
{
int ret = OB_SUCCESS;
uint64_t column_id = OB_APP_MIN_COLUMN_ID - 1;
// generated fields:
//generated fields:
table_schema.set_tenant_id(OB_SYS_TENANT_ID);
table_schema.set_tablegroup_id(combine_id(OB_SYS_TENANT_ID, OB_SYS_TABLEGROUP_ID));
table_schema.set_database_id(combine_id(OB_SYS_TENANT_ID, OB_SYS_DATABASE_ID));
@ -1786,8 +1724,7 @@ int ObInnerTableSchema::cdb_ob_backup_backup_archivelog_summary_schema(ObTableSc
table_schema.set_create_mem_version(1);
if (OB_SUCC(ret)) {
if (OB_FAIL(table_schema.set_view_definition(
R"__( SELECT INCARNATION, LOG_ARCHIVE_ROUND, COPY_ID, TENANT_ID, STATUS, MIN_FIRST_TIME, MAX_NEXT_TIME, INPUT_BYTES, OUTPUT_BYTES, ROUND(OUTPUT_BYTES / INPUT_BYTES, 2) AS COMPRESSION_RATIO, CASE WHEN INPUT_BYTES >= 1024*1024*1024*1024*1024 THEN CONCAT(ROUND(INPUT_BYTES/1024/1024/1024/1024/1024,2), 'PB') WHEN INPUT_BYTES >= 1024*1024*1024*1024 THEN CONCAT(ROUND(INPUT_BYTES/1024/1024/1024/1024,2), 'TB') WHEN INPUT_BYTES >= 1024*1024*1024 THEN CONCAT(ROUND(INPUT_BYTES/1024/1024/1024,2), 'GB') ELSE CONCAT(ROUND(INPUT_BYTES/1024/1024,2), 'MB') END AS INPUT_BYTES_DISPLAY, CASE WHEN OUTPUT_BYTES >= 1024*1024*1024*1024*1024 THEN CONCAT(ROUND(OUTPUT_BYTES/1024/1024/1024/1024/1024,2), 'PB') WHEN OUTPUT_BYTES >= 1024*1024*1024*1024 THEN CONCAT(ROUND(OUTPUT_BYTES/1024/1024/1024/1024,2), 'TB') WHEN OUTPUT_BYTES >= 1024*1024*1024 THEN CONCAT(ROUND(OUTPUT_BYTES/1024/1024/1024,2), 'GB') ELSE CONCAT(ROUND(OUTPUT_BYTES/1024/1024,2), 'MB') END AS OUTPUT_BYTES_DISPLAY FROM ( select tenant_id, incarnation, log_archive_round, copy_id, min_first_time, max_next_time, input_bytes, output_bytes, deleted_input_bytes, deleted_output_bytes, pg_count, 'STOP' as status from __all_backup_backup_log_archive_status_history where effective_tenant_id() = 1 OR tenant_id = effective_tenant_id() union select tenant_id, incarnation, log_archive_round, copy_id, min_first_time, max_next_time, input_bytes, output_bytes, deleted_input_bytes, deleted_output_bytes, pg_count, status from __all_virtual_backup_backup_log_archive_status where effective_tenant_id() = 1 OR tenant_id = effective_tenant_id() and status != 'STOP'); )__"))) {
if (OB_FAIL(table_schema.set_view_definition(R"__( SELECT INCARNATION, LOG_ARCHIVE_ROUND, COPY_ID, TENANT_ID, STATUS, MIN_FIRST_TIME, MAX_NEXT_TIME, INPUT_BYTES, OUTPUT_BYTES, ROUND(OUTPUT_BYTES / INPUT_BYTES, 2) AS COMPRESSION_RATIO, CASE WHEN INPUT_BYTES >= 1024*1024*1024*1024*1024 THEN CONCAT(ROUND(INPUT_BYTES/1024/1024/1024/1024/1024,2), 'PB') WHEN INPUT_BYTES >= 1024*1024*1024*1024 THEN CONCAT(ROUND(INPUT_BYTES/1024/1024/1024/1024,2), 'TB') WHEN INPUT_BYTES >= 1024*1024*1024 THEN CONCAT(ROUND(INPUT_BYTES/1024/1024/1024,2), 'GB') ELSE CONCAT(ROUND(INPUT_BYTES/1024/1024,2), 'MB') END AS INPUT_BYTES_DISPLAY, CASE WHEN OUTPUT_BYTES >= 1024*1024*1024*1024*1024 THEN CONCAT(ROUND(OUTPUT_BYTES/1024/1024/1024/1024/1024,2), 'PB') WHEN OUTPUT_BYTES >= 1024*1024*1024*1024 THEN CONCAT(ROUND(OUTPUT_BYTES/1024/1024/1024/1024,2), 'TB') WHEN OUTPUT_BYTES >= 1024*1024*1024 THEN CONCAT(ROUND(OUTPUT_BYTES/1024/1024/1024,2), 'GB') ELSE CONCAT(ROUND(OUTPUT_BYTES/1024/1024,2), 'MB') END AS OUTPUT_BYTES_DISPLAY FROM ( select tenant_id, incarnation, log_archive_round, copy_id, min_first_time, max_next_time, input_bytes, output_bytes, deleted_input_bytes, deleted_output_bytes, pg_count, 'STOP' as status from __all_backup_backup_log_archive_status_history where effective_tenant_id() = 1 OR tenant_id = effective_tenant_id() union select tenant_id, incarnation, log_archive_round, copy_id, min_first_time, max_next_time, input_bytes, output_bytes, deleted_input_bytes, deleted_output_bytes, pg_count, status from __all_virtual_backup_backup_log_archive_status where effective_tenant_id() = 1 OR tenant_id = effective_tenant_id() and status != 'STOP'); )__"))) {
LOG_ERROR("fail to set view_definition", K(ret));
}
}
@ -1799,10 +1736,10 @@ int ObInnerTableSchema::cdb_ob_backup_backup_archivelog_summary_schema(ObTableSc
table_schema.set_max_used_column_id(column_id);
table_schema.get_part_option().set_max_used_part_id(table_schema.get_part_option().get_part_num() - 1);
table_schema.get_part_option().set_partition_cnt_within_partition_table(
OB_ALL_CORE_TABLE_TID == common::extract_pure_id(table_schema.get_table_id()) ? 1 : 0);
table_schema.get_part_option().set_partition_cnt_within_partition_table(OB_ALL_CORE_TABLE_TID == common::extract_pure_id(table_schema.get_table_id()) ? 1 : 0);
return ret;
}
} // end namespace share
} // end namespace oceanbase
} // end namespace share
} // end namespace oceanbase

File diff suppressed because one or more lines are too long

File diff suppressed because one or more lines are too long

File diff suppressed because one or more lines are too long

View File

@ -17,17 +17,19 @@
#include "share/schema/ob_schema_service_sql_impl.h"
#include "share/schema/ob_table_schema.h"
namespace oceanbase {
namespace oceanbase
{
using namespace share::schema;
using namespace common;
namespace share {
namespace share
{
int ObInnerTableSchema::dict_ora_schema(ObTableSchema& table_schema)
int ObInnerTableSchema::dict_ora_schema(ObTableSchema &table_schema)
{
int ret = OB_SUCCESS;
uint64_t column_id = OB_APP_MIN_COLUMN_ID - 1;
// generated fields:
//generated fields:
table_schema.set_tenant_id(OB_SYS_TENANT_ID);
table_schema.set_tablegroup_id(combine_id(OB_SYS_TENANT_ID, OB_SYS_TABLEGROUP_ID));
table_schema.set_database_id(combine_id(OB_SYS_TENANT_ID, OB_ORA_SYS_DATABASE_ID));
@ -70,17 +72,16 @@ int ObInnerTableSchema::dict_ora_schema(ObTableSchema& table_schema)
table_schema.set_max_used_column_id(column_id);
table_schema.get_part_option().set_max_used_part_id(table_schema.get_part_option().get_part_num() - 1);
table_schema.get_part_option().set_partition_cnt_within_partition_table(
OB_ALL_CORE_TABLE_TID == common::extract_pure_id(table_schema.get_table_id()) ? 1 : 0);
table_schema.get_part_option().set_partition_cnt_within_partition_table(OB_ALL_CORE_TABLE_TID == common::extract_pure_id(table_schema.get_table_id()) ? 1 : 0);
return ret;
}
int ObInnerTableSchema::all_triggers_schema(ObTableSchema& table_schema)
int ObInnerTableSchema::all_triggers_schema(ObTableSchema &table_schema)
{
int ret = OB_SUCCESS;
uint64_t column_id = OB_APP_MIN_COLUMN_ID - 1;
// generated fields:
//generated fields:
table_schema.set_tenant_id(OB_SYS_TENANT_ID);
table_schema.set_tablegroup_id(combine_id(OB_SYS_TENANT_ID, OB_SYS_TABLEGROUP_ID));
table_schema.set_database_id(combine_id(OB_SYS_TENANT_ID, OB_ORA_SYS_DATABASE_ID));
@ -111,8 +112,7 @@ int ObInnerTableSchema::all_triggers_schema(ObTableSchema& table_schema)
table_schema.set_create_mem_version(1);
if (OB_SUCC(ret)) {
if (OB_FAIL(table_schema.set_view_definition(
R"__( SELECT DB1.DATABASE_NAME AS OWNER, TRG.TRIGGER_NAME AS TRIGGER_NAME, CAST(DECODE(BITAND(TRG.TIMING_POINTS, 30), 4, 'BEFORE EACH ROW', 8, 'AFTER EACH ROW') AS VARCHAR2(16)) AS TRIGGER_TYPE, CAST(DECODE(TRG.TRIGGER_EVENTS, 2, 'INSERT', 4, 'UPDATE', 8, 'DELETE', 2 + 4, 'INSERT OR UPDATE', 2 + 8, 'INSERT OR DELETE', 4 + 8, 'UPDATE OR DELETE', 2 + 4 + 8, 'INSERT OR UPDATE OR DELETE') AS VARCHAR2(246)) AS TRIGGERING_EVENT, DB2.DATABASE_NAME AS TABLE_OWNER, CAST(DECODE(TRG.BASE_OBJECT_TYPE, 5, 'TABLE') AS VARCHAR2(18)) AS BASE_OBJECT_TYPE, TBL.TABLE_NAME AS TABLE_NAME, CAST(NULL AS VARCHAR2(4000)) AS COLUMN_NAME, CAST(CONCAT('REFERENCING', CONCAT(CONCAT(' NEW AS ', REF_NEW_NAME), CONCAT(' OLD AS ', REF_OLD_NAME))) AS VARCHAR2(422)) AS REFERENCING_NAMES, WHEN_CONDITION AS WHEN_CLAUSE, CAST(decode(BITAND(TRG.trigger_flags, 1), 1, 'ENABLED', 'DISABLED') AS VARCHAR2(8)) AS STATUS, TRIGGER_BODY AS DESCRIPTION, CAST('PL/SQL' AS VARCHAR2(11)) AS ACTION_TYPE, TRIGGER_BODY AS TRIGGER_BODY, CAST('NO' AS VARCHAR2(7)) AS CROSSEDITION, CAST('NO' AS VARCHAR2(3)) AS BEFORE_STATEMENT, CAST('NO' AS VARCHAR2(3)) AS BEFORE_ROW, CAST('NO' AS VARCHAR2(3)) AS AFTER_ROW, CAST('NO' AS VARCHAR2(3)) AS AFTER_STATEMENT, CAST('NO' AS VARCHAR2(3)) AS INSTEAD_OF_ROW, CAST('YES' AS VARCHAR2(3)) AS FIRE_ONCE, CAST('NO' AS VARCHAR2(3)) AS APPLY_SERVER_ONLY FROM SYS.ALL_VIRTUAL_TENANT_TRIGGER_REAL_AGENT TRG INNER JOIN SYS.ALL_VIRTUAL_DATABASE_REAL_AGENT DB1 ON TRG.DATABASE_ID = DB1.DATABASE_ID AND TRG.TENANT_ID = EFFECTIVE_TENANT_ID() AND DB1.TENANT_ID = EFFECTIVE_TENANT_ID() AND (TRG.DATABASE_ID = USERENV('SCHEMAID') OR USER_CAN_ACCESS_OBJ(1, abs(nvl(TRG.BASE_OBJECT_ID,0)), TRG.DATABASE_ID) = 1) LEFT JOIN SYS.ALL_VIRTUAL_TABLE_REAL_AGENT TBL ON TRG.BASE_OBJECT_ID = TBL.TABLE_ID AND TBL.TENANT_ID = EFFECTIVE_TENANT_ID() INNER JOIN SYS.ALL_VIRTUAL_DATABASE_REAL_AGENT DB2 ON TBL.DATABASE_ID = DB2.DATABASE_ID AND DB2.TENANT_ID = EFFECTIVE_TENANT_ID() )__"))) {
if (OB_FAIL(table_schema.set_view_definition(R"__( SELECT DB1.DATABASE_NAME AS OWNER, TRG.TRIGGER_NAME AS TRIGGER_NAME, CAST(DECODE(BITAND(TRG.TIMING_POINTS, 30), 4, 'BEFORE EACH ROW', 8, 'AFTER EACH ROW') AS VARCHAR2(16)) AS TRIGGER_TYPE, CAST(DECODE(TRG.TRIGGER_EVENTS, 2, 'INSERT', 4, 'UPDATE', 8, 'DELETE', 2 + 4, 'INSERT OR UPDATE', 2 + 8, 'INSERT OR DELETE', 4 + 8, 'UPDATE OR DELETE', 2 + 4 + 8, 'INSERT OR UPDATE OR DELETE') AS VARCHAR2(246)) AS TRIGGERING_EVENT, DB2.DATABASE_NAME AS TABLE_OWNER, CAST(DECODE(TRG.BASE_OBJECT_TYPE, 5, 'TABLE') AS VARCHAR2(18)) AS BASE_OBJECT_TYPE, TBL.TABLE_NAME AS TABLE_NAME, CAST(NULL AS VARCHAR2(4000)) AS COLUMN_NAME, CAST(CONCAT('REFERENCING', CONCAT(CONCAT(' NEW AS ', REF_NEW_NAME), CONCAT(' OLD AS ', REF_OLD_NAME))) AS VARCHAR2(422)) AS REFERENCING_NAMES, WHEN_CONDITION AS WHEN_CLAUSE, CAST(decode(BITAND(TRG.trigger_flags, 1), 1, 'ENABLED', 'DISABLED') AS VARCHAR2(8)) AS STATUS, TRIGGER_BODY AS DESCRIPTION, CAST('PL/SQL' AS VARCHAR2(11)) AS ACTION_TYPE, TRIGGER_BODY AS TRIGGER_BODY, CAST('NO' AS VARCHAR2(7)) AS CROSSEDITION, CAST('NO' AS VARCHAR2(3)) AS BEFORE_STATEMENT, CAST('NO' AS VARCHAR2(3)) AS BEFORE_ROW, CAST('NO' AS VARCHAR2(3)) AS AFTER_ROW, CAST('NO' AS VARCHAR2(3)) AS AFTER_STATEMENT, CAST('NO' AS VARCHAR2(3)) AS INSTEAD_OF_ROW, CAST('YES' AS VARCHAR2(3)) AS FIRE_ONCE, CAST('NO' AS VARCHAR2(3)) AS APPLY_SERVER_ONLY FROM SYS.ALL_VIRTUAL_TENANT_TRIGGER_REAL_AGENT TRG INNER JOIN SYS.ALL_VIRTUAL_DATABASE_REAL_AGENT DB1 ON TRG.DATABASE_ID = DB1.DATABASE_ID AND TRG.TENANT_ID = EFFECTIVE_TENANT_ID() AND DB1.TENANT_ID = EFFECTIVE_TENANT_ID() AND (TRG.DATABASE_ID = USERENV('SCHEMAID') OR USER_CAN_ACCESS_OBJ(1, abs(nvl(TRG.BASE_OBJECT_ID,0)), TRG.DATABASE_ID) = 1) LEFT JOIN SYS.ALL_VIRTUAL_TABLE_REAL_AGENT TBL ON TRG.BASE_OBJECT_ID = TBL.TABLE_ID AND TBL.TENANT_ID = EFFECTIVE_TENANT_ID() INNER JOIN SYS.ALL_VIRTUAL_DATABASE_REAL_AGENT DB2 ON TBL.DATABASE_ID = DB2.DATABASE_ID AND DB2.TENANT_ID = EFFECTIVE_TENANT_ID() )__"))) {
LOG_ERROR("fail to set view_definition", K(ret));
}
}
@ -124,17 +124,16 @@ int ObInnerTableSchema::all_triggers_schema(ObTableSchema& table_schema)
table_schema.set_max_used_column_id(column_id);
table_schema.get_part_option().set_max_used_part_id(table_schema.get_part_option().get_part_num() - 1);
table_schema.get_part_option().set_partition_cnt_within_partition_table(
OB_ALL_CORE_TABLE_TID == common::extract_pure_id(table_schema.get_table_id()) ? 1 : 0);
table_schema.get_part_option().set_partition_cnt_within_partition_table(OB_ALL_CORE_TABLE_TID == common::extract_pure_id(table_schema.get_table_id()) ? 1 : 0);
return ret;
}
int ObInnerTableSchema::dba_triggers_schema(ObTableSchema& table_schema)
int ObInnerTableSchema::dba_triggers_schema(ObTableSchema &table_schema)
{
int ret = OB_SUCCESS;
uint64_t column_id = OB_APP_MIN_COLUMN_ID - 1;
// generated fields:
//generated fields:
table_schema.set_tenant_id(OB_SYS_TENANT_ID);
table_schema.set_tablegroup_id(combine_id(OB_SYS_TENANT_ID, OB_SYS_TABLEGROUP_ID));
table_schema.set_database_id(combine_id(OB_SYS_TENANT_ID, OB_ORA_SYS_DATABASE_ID));
@ -177,17 +176,16 @@ int ObInnerTableSchema::dba_triggers_schema(ObTableSchema& table_schema)
table_schema.set_max_used_column_id(column_id);
table_schema.get_part_option().set_max_used_part_id(table_schema.get_part_option().get_part_num() - 1);
table_schema.get_part_option().set_partition_cnt_within_partition_table(
OB_ALL_CORE_TABLE_TID == common::extract_pure_id(table_schema.get_table_id()) ? 1 : 0);
table_schema.get_part_option().set_partition_cnt_within_partition_table(OB_ALL_CORE_TABLE_TID == common::extract_pure_id(table_schema.get_table_id()) ? 1 : 0);
return ret;
}
int ObInnerTableSchema::user_triggers_schema(ObTableSchema& table_schema)
int ObInnerTableSchema::user_triggers_schema(ObTableSchema &table_schema)
{
int ret = OB_SUCCESS;
uint64_t column_id = OB_APP_MIN_COLUMN_ID - 1;
// generated fields:
//generated fields:
table_schema.set_tenant_id(OB_SYS_TENANT_ID);
table_schema.set_tablegroup_id(combine_id(OB_SYS_TENANT_ID, OB_SYS_TABLEGROUP_ID));
table_schema.set_database_id(combine_id(OB_SYS_TENANT_ID, OB_ORA_SYS_DATABASE_ID));
@ -218,8 +216,7 @@ int ObInnerTableSchema::user_triggers_schema(ObTableSchema& table_schema)
table_schema.set_create_mem_version(1);
if (OB_SUCC(ret)) {
if (OB_FAIL(table_schema.set_view_definition(
R"__( SELECT TRG.TRIGGER_NAME AS TRIGGER_NAME, CAST(DECODE(BITAND(TRG.TIMING_POINTS, 30), 4, 'BEFORE EACH ROW', 8, 'AFTER EACH ROW') AS VARCHAR2(16)) AS TRIGGER_TYPE, CAST(DECODE(TRG.TRIGGER_EVENTS, 2, 'INSERT', 4, 'UPDATE', 8, 'DELETE', 2 + 4, 'INSERT OR UPDATE', 2 + 8, 'INSERT OR DELETE', 4 + 8, 'UPDATE OR DELETE', 2 + 4 + 8, 'INSERT OR UPDATE OR DELETE') AS VARCHAR2(246)) AS TRIGGERING_EVENT, DB2.DATABASE_NAME AS TABLE_OWNER, CAST(DECODE(TRG.BASE_OBJECT_TYPE, 5, 'TABLE') AS VARCHAR2(18)) AS BASE_OBJECT_TYPE, TBL.TABLE_NAME AS TABLE_NAME, CAST(NULL AS VARCHAR2(4000)) AS COLUMN_NAME, CAST(CONCAT('REFERENCING', CONCAT(CONCAT(' NEW AS ', REF_NEW_NAME), CONCAT(' OLD AS ', REF_OLD_NAME))) AS VARCHAR2(422)) AS REFERENCING_NAMES, WHEN_CONDITION AS WHEN_CLAUSE, CAST(decode(BITAND(TRG.trigger_flags, 1), 1, 'ENABLED', 'DISABLED') AS VARCHAR2(8)) AS STATUS, TRIGGER_BODY AS DESCRIPTION, CAST('PL/SQL' AS VARCHAR2(11)) AS ACTION_TYPE, TRIGGER_BODY AS TRIGGER_BODY, CAST('NO' AS VARCHAR2(7)) AS CROSSEDITION, CAST('NO' AS VARCHAR2(3)) AS BEFORE_STATEMENT, CAST('NO' AS VARCHAR2(3)) AS BEFORE_ROW, CAST('NO' AS VARCHAR2(3)) AS AFTER_ROW, CAST('NO' AS VARCHAR2(3)) AS AFTER_STATEMENT, CAST('NO' AS VARCHAR2(3)) AS INSTEAD_OF_ROW, CAST('YES' AS VARCHAR2(3)) AS FIRE_ONCE, CAST('NO' AS VARCHAR2(3)) AS APPLY_SERVER_ONLY FROM (SELECT * FROM SYS.ALL_VIRTUAL_TENANT_TRIGGER_REAL_AGENT WHERE TENANT_ID = EFFECTIVE_TENANT_ID())TRG LEFT JOIN SYS.ALL_VIRTUAL_TABLE_REAL_AGENT TBL ON TRG.BASE_OBJECT_ID = TBL.TABLE_ID AND TBL.TENANT_ID = EFFECTIVE_TENANT_ID() INNER JOIN SYS.ALL_VIRTUAL_DATABASE_REAL_AGENT DB2 ON TBL.DATABASE_ID = DB2.DATABASE_ID AND DB2.TENANT_ID = EFFECTIVE_TENANT_ID() WHERE TRG.DATABASE_ID = USERENV('SCHEMAID') )__"))) {
if (OB_FAIL(table_schema.set_view_definition(R"__( SELECT TRG.TRIGGER_NAME AS TRIGGER_NAME, CAST(DECODE(BITAND(TRG.TIMING_POINTS, 30), 4, 'BEFORE EACH ROW', 8, 'AFTER EACH ROW') AS VARCHAR2(16)) AS TRIGGER_TYPE, CAST(DECODE(TRG.TRIGGER_EVENTS, 2, 'INSERT', 4, 'UPDATE', 8, 'DELETE', 2 + 4, 'INSERT OR UPDATE', 2 + 8, 'INSERT OR DELETE', 4 + 8, 'UPDATE OR DELETE', 2 + 4 + 8, 'INSERT OR UPDATE OR DELETE') AS VARCHAR2(246)) AS TRIGGERING_EVENT, DB2.DATABASE_NAME AS TABLE_OWNER, CAST(DECODE(TRG.BASE_OBJECT_TYPE, 5, 'TABLE') AS VARCHAR2(18)) AS BASE_OBJECT_TYPE, TBL.TABLE_NAME AS TABLE_NAME, CAST(NULL AS VARCHAR2(4000)) AS COLUMN_NAME, CAST(CONCAT('REFERENCING', CONCAT(CONCAT(' NEW AS ', REF_NEW_NAME), CONCAT(' OLD AS ', REF_OLD_NAME))) AS VARCHAR2(422)) AS REFERENCING_NAMES, WHEN_CONDITION AS WHEN_CLAUSE, CAST(decode(BITAND(TRG.trigger_flags, 1), 1, 'ENABLED', 'DISABLED') AS VARCHAR2(8)) AS STATUS, TRIGGER_BODY AS DESCRIPTION, CAST('PL/SQL' AS VARCHAR2(11)) AS ACTION_TYPE, TRIGGER_BODY AS TRIGGER_BODY, CAST('NO' AS VARCHAR2(7)) AS CROSSEDITION, CAST('NO' AS VARCHAR2(3)) AS BEFORE_STATEMENT, CAST('NO' AS VARCHAR2(3)) AS BEFORE_ROW, CAST('NO' AS VARCHAR2(3)) AS AFTER_ROW, CAST('NO' AS VARCHAR2(3)) AS AFTER_STATEMENT, CAST('NO' AS VARCHAR2(3)) AS INSTEAD_OF_ROW, CAST('YES' AS VARCHAR2(3)) AS FIRE_ONCE, CAST('NO' AS VARCHAR2(3)) AS APPLY_SERVER_ONLY FROM (SELECT * FROM SYS.ALL_VIRTUAL_TENANT_TRIGGER_REAL_AGENT WHERE TENANT_ID = EFFECTIVE_TENANT_ID())TRG LEFT JOIN SYS.ALL_VIRTUAL_TABLE_REAL_AGENT TBL ON TRG.BASE_OBJECT_ID = TBL.TABLE_ID AND TBL.TENANT_ID = EFFECTIVE_TENANT_ID() INNER JOIN SYS.ALL_VIRTUAL_DATABASE_REAL_AGENT DB2 ON TBL.DATABASE_ID = DB2.DATABASE_ID AND DB2.TENANT_ID = EFFECTIVE_TENANT_ID() WHERE TRG.DATABASE_ID = USERENV('SCHEMAID') )__"))) {
LOG_ERROR("fail to set view_definition", K(ret));
}
}
@ -231,17 +228,16 @@ int ObInnerTableSchema::user_triggers_schema(ObTableSchema& table_schema)
table_schema.set_max_used_column_id(column_id);
table_schema.get_part_option().set_max_used_part_id(table_schema.get_part_option().get_part_num() - 1);
table_schema.get_part_option().set_partition_cnt_within_partition_table(
OB_ALL_CORE_TABLE_TID == common::extract_pure_id(table_schema.get_table_id()) ? 1 : 0);
table_schema.get_part_option().set_partition_cnt_within_partition_table(OB_ALL_CORE_TABLE_TID == common::extract_pure_id(table_schema.get_table_id()) ? 1 : 0);
return ret;
}
int ObInnerTableSchema::all_dependencies_ora_schema(ObTableSchema& table_schema)
int ObInnerTableSchema::all_dependencies_ora_schema(ObTableSchema &table_schema)
{
int ret = OB_SUCCESS;
uint64_t column_id = OB_APP_MIN_COLUMN_ID - 1;
// generated fields:
//generated fields:
table_schema.set_tenant_id(OB_SYS_TENANT_ID);
table_schema.set_tablegroup_id(combine_id(OB_SYS_TENANT_ID, OB_SYS_TABLEGROUP_ID));
table_schema.set_database_id(combine_id(OB_SYS_TENANT_ID, OB_ORA_SYS_DATABASE_ID));
@ -272,8 +268,7 @@ int ObInnerTableSchema::all_dependencies_ora_schema(ObTableSchema& table_schema)
table_schema.set_create_mem_version(1);
if (OB_SUCC(ret)) {
if (OB_FAIL(table_schema.set_view_definition(
R"__( SELECT o.OWNER AS OWNER, o.OBJECT_NAME AS NAME, o.OBJECT_TYPE AS TYPE, ro.REFERENCED_OWNER AS REFERENCED_OWNER, ro.REFERENCED_NAME AS REFERENCED_NAME, DECODE(ro.REFERENCED_TYPE, NULL, ' NON-EXISTENT', ro.REFERENCED_TYPE) AS REFERENCED_TYPE, CAST(NULL AS VARCHAR2(128)) AS REFERENCED_LINK_NAME, CAST(DECODE(BITAND(o.PROPERTY, 3), 2, 'REF', 'HARD') AS VARCHAR2(4)) AS DEPENDENCY_TYPE FROM (select OWNER, OBJECT_NAME, OBJECT_TYPE, REF_OBJ_NAME, ref_obj_type, dep_obj_id, dep_obj_type, dep_order, property from SYS.ALL_OBJECTS o, SYS.ALL_VIRTUAL_DEPENDENCY_AGENT d WHERE CAST(UPPER(decode(d.dep_obj_type, 1, 'TABLE', 2, 'SEQUENCE', 3, 'PACKAGE', 4, 'TYPE', 5, 'PACKAGE BODY', 6, 'TYPE BODY', 7, 'TRIGGER', 8, 'VIEW', 9, 'FUNCTION', 10, 'DIRECTORY', 11, 'INDEX', 12, 'PROCEDURE', 13, 'SYNONYM', 'MAXTYPE')) AS VARCHAR2(23)) = o.OBJECT_TYPE AND d.DEP_OBJ_ID = o.OBJECT_ID) o LEFT OUTER JOIN (SELECT DISTINCT CAST(OWNER AS VARCHAR2(128)) AS REFERENCED_OWNER, CAST(OBJECT_NAME AS VARCHAR2(128)) AS REFERENCED_NAME, CAST(OBJECT_TYPE AS VARCHAR2(18)) AS REFERENCED_TYPE, dep_obj_id, dep_obj_type, dep_order FROM SYS.ALL_OBJECTS o, SYS.ALL_VIRTUAL_DEPENDENCY_AGENT d WHERE CAST(UPPER(decode(d.ref_obj_type, 1, 'TABLE', 2, 'SEQUENCE', 3, 'PACKAGE', 4, 'TYPE', 5, 'PACKAGE BODY', 6, 'TYPE BODY', 7, 'TRIGGER', 8, 'VIEW', 9, 'FUNCTION', 10, 'DIRECTORY', 11, 'INDEX', 12, 'PROCEDURE', 13, 'SYNONYM', 'MAXTYPE')) AS VARCHAR2(23)) = o.OBJECT_TYPE AND d.REF_OBJ_ID = o.OBJECT_ID) ro on ro.dep_obj_id = o.dep_obj_id AND ro.dep_obj_type = o.dep_obj_type AND ro.dep_order = o.dep_order )__"))) {
if (OB_FAIL(table_schema.set_view_definition(R"__( SELECT o.OWNER AS OWNER, o.OBJECT_NAME AS NAME, o.OBJECT_TYPE AS TYPE, ro.REFERENCED_OWNER AS REFERENCED_OWNER, ro.REFERENCED_NAME AS REFERENCED_NAME, DECODE(ro.REFERENCED_TYPE, NULL, ' NON-EXISTENT', ro.REFERENCED_TYPE) AS REFERENCED_TYPE, CAST(NULL AS VARCHAR2(128)) AS REFERENCED_LINK_NAME, CAST(DECODE(BITAND(o.PROPERTY, 3), 2, 'REF', 'HARD') AS VARCHAR2(4)) AS DEPENDENCY_TYPE FROM (select OWNER, OBJECT_NAME, OBJECT_TYPE, REF_OBJ_NAME, ref_obj_type, dep_obj_id, dep_obj_type, dep_order, property from SYS.ALL_OBJECTS o, SYS.ALL_VIRTUAL_DEPENDENCY_AGENT d WHERE CAST(UPPER(decode(d.dep_obj_type, 1, 'TABLE', 2, 'SEQUENCE', 3, 'PACKAGE', 4, 'TYPE', 5, 'PACKAGE BODY', 6, 'TYPE BODY', 7, 'TRIGGER', 8, 'VIEW', 9, 'FUNCTION', 10, 'DIRECTORY', 11, 'INDEX', 12, 'PROCEDURE', 13, 'SYNONYM', 'MAXTYPE')) AS VARCHAR2(23)) = o.OBJECT_TYPE AND d.DEP_OBJ_ID = o.OBJECT_ID) o LEFT OUTER JOIN (SELECT DISTINCT CAST(OWNER AS VARCHAR2(128)) AS REFERENCED_OWNER, CAST(OBJECT_NAME AS VARCHAR2(128)) AS REFERENCED_NAME, CAST(OBJECT_TYPE AS VARCHAR2(18)) AS REFERENCED_TYPE, dep_obj_id, dep_obj_type, dep_order FROM SYS.ALL_OBJECTS o, SYS.ALL_VIRTUAL_DEPENDENCY_AGENT d WHERE CAST(UPPER(decode(d.ref_obj_type, 1, 'TABLE', 2, 'SEQUENCE', 3, 'PACKAGE', 4, 'TYPE', 5, 'PACKAGE BODY', 6, 'TYPE BODY', 7, 'TRIGGER', 8, 'VIEW', 9, 'FUNCTION', 10, 'DIRECTORY', 11, 'INDEX', 12, 'PROCEDURE', 13, 'SYNONYM', 'MAXTYPE')) AS VARCHAR2(23)) = o.OBJECT_TYPE AND d.REF_OBJ_ID = o.OBJECT_ID) ro on ro.dep_obj_id = o.dep_obj_id AND ro.dep_obj_type = o.dep_obj_type AND ro.dep_order = o.dep_order )__"))) {
LOG_ERROR("fail to set view_definition", K(ret));
}
}
@ -285,17 +280,16 @@ int ObInnerTableSchema::all_dependencies_ora_schema(ObTableSchema& table_schema)
table_schema.set_max_used_column_id(column_id);
table_schema.get_part_option().set_max_used_part_id(table_schema.get_part_option().get_part_num() - 1);
table_schema.get_part_option().set_partition_cnt_within_partition_table(
OB_ALL_CORE_TABLE_TID == common::extract_pure_id(table_schema.get_table_id()) ? 1 : 0);
table_schema.get_part_option().set_partition_cnt_within_partition_table(OB_ALL_CORE_TABLE_TID == common::extract_pure_id(table_schema.get_table_id()) ? 1 : 0);
return ret;
}
int ObInnerTableSchema::dba_dependencies_ora_schema(ObTableSchema& table_schema)
int ObInnerTableSchema::dba_dependencies_ora_schema(ObTableSchema &table_schema)
{
int ret = OB_SUCCESS;
uint64_t column_id = OB_APP_MIN_COLUMN_ID - 1;
// generated fields:
//generated fields:
table_schema.set_tenant_id(OB_SYS_TENANT_ID);
table_schema.set_tablegroup_id(combine_id(OB_SYS_TENANT_ID, OB_SYS_TABLEGROUP_ID));
table_schema.set_database_id(combine_id(OB_SYS_TENANT_ID, OB_ORA_SYS_DATABASE_ID));
@ -326,8 +320,7 @@ int ObInnerTableSchema::dba_dependencies_ora_schema(ObTableSchema& table_schema)
table_schema.set_create_mem_version(1);
if (OB_SUCC(ret)) {
if (OB_FAIL(table_schema.set_view_definition(
R"__( SELECT o.OWNER AS OWNER, o.OBJECT_NAME AS NAME, o.OBJECT_TYPE AS TYPE, ro.REFERENCED_OWNER AS REFERENCED_OWNER, ro.REFERENCED_NAME AS REFERENCED_NAME, DECODE(ro.REFERENCED_TYPE, NULL, ' NON-EXISTENT', ro.REFERENCED_TYPE) AS REFERENCED_TYPE, CAST(NULL AS VARCHAR2(128)) AS REFERENCED_LINK_NAME, CAST(DECODE(BITAND(o.PROPERTY, 3), 2, 'REF', 'HARD') AS VARCHAR2(4)) AS DEPENDENCY_TYPE FROM (select OWNER, OBJECT_NAME, OBJECT_TYPE, REF_OBJ_NAME, ref_obj_type, dep_obj_id, dep_obj_type, dep_order, property from SYS.ALL_OBJECTS o, SYS.ALL_VIRTUAL_DEPENDENCY_AGENT d WHERE CAST(UPPER(decode(d.dep_obj_type, 1, 'TABLE', 2, 'SEQUENCE', 3, 'PACKAGE', 4, 'TYPE', 5, 'PACKAGE BODY', 6, 'TYPE BODY', 7, 'TRIGGER', 8, 'VIEW', 9, 'FUNCTION', 10, 'DIRECTORY', 11, 'INDEX', 12, 'PROCEDURE', 13, 'SYNONYM', 'MAXTYPE')) AS VARCHAR2(23)) = o.OBJECT_TYPE AND d.DEP_OBJ_ID = o.OBJECT_ID) o LEFT OUTER JOIN (SELECT DISTINCT CAST(OWNER AS VARCHAR2(128)) AS REFERENCED_OWNER, CAST(OBJECT_NAME AS VARCHAR2(128)) AS REFERENCED_NAME, CAST(OBJECT_TYPE AS VARCHAR2(18)) AS REFERENCED_TYPE, dep_obj_id, dep_obj_type, dep_order FROM SYS.ALL_OBJECTS o, SYS.ALL_VIRTUAL_DEPENDENCY_AGENT d WHERE CAST(UPPER(decode(d.ref_obj_type, 1, 'TABLE', 2, 'SEQUENCE', 3, 'PACKAGE', 4, 'TYPE', 5, 'PACKAGE BODY', 6, 'TYPE BODY', 7, 'TRIGGER', 8, 'VIEW', 9, 'FUNCTION', 10, 'DIRECTORY', 11, 'INDEX', 12, 'PROCEDURE', 13, 'SYNONYM', 'MAXTYPE')) AS VARCHAR2(23)) = o.OBJECT_TYPE AND d.REF_OBJ_ID = o.OBJECT_ID) ro on ro.dep_obj_id = o.dep_obj_id AND ro.dep_obj_type = o.dep_obj_type AND ro.dep_order = o.dep_order )__"))) {
if (OB_FAIL(table_schema.set_view_definition(R"__( SELECT o.OWNER AS OWNER, o.OBJECT_NAME AS NAME, o.OBJECT_TYPE AS TYPE, ro.REFERENCED_OWNER AS REFERENCED_OWNER, ro.REFERENCED_NAME AS REFERENCED_NAME, DECODE(ro.REFERENCED_TYPE, NULL, ' NON-EXISTENT', ro.REFERENCED_TYPE) AS REFERENCED_TYPE, CAST(NULL AS VARCHAR2(128)) AS REFERENCED_LINK_NAME, CAST(DECODE(BITAND(o.PROPERTY, 3), 2, 'REF', 'HARD') AS VARCHAR2(4)) AS DEPENDENCY_TYPE FROM (select OWNER, OBJECT_NAME, OBJECT_TYPE, REF_OBJ_NAME, ref_obj_type, dep_obj_id, dep_obj_type, dep_order, property from SYS.ALL_OBJECTS o, SYS.ALL_VIRTUAL_DEPENDENCY_AGENT d WHERE CAST(UPPER(decode(d.dep_obj_type, 1, 'TABLE', 2, 'SEQUENCE', 3, 'PACKAGE', 4, 'TYPE', 5, 'PACKAGE BODY', 6, 'TYPE BODY', 7, 'TRIGGER', 8, 'VIEW', 9, 'FUNCTION', 10, 'DIRECTORY', 11, 'INDEX', 12, 'PROCEDURE', 13, 'SYNONYM', 'MAXTYPE')) AS VARCHAR2(23)) = o.OBJECT_TYPE AND d.DEP_OBJ_ID = o.OBJECT_ID) o LEFT OUTER JOIN (SELECT DISTINCT CAST(OWNER AS VARCHAR2(128)) AS REFERENCED_OWNER, CAST(OBJECT_NAME AS VARCHAR2(128)) AS REFERENCED_NAME, CAST(OBJECT_TYPE AS VARCHAR2(18)) AS REFERENCED_TYPE, dep_obj_id, dep_obj_type, dep_order FROM SYS.ALL_OBJECTS o, SYS.ALL_VIRTUAL_DEPENDENCY_AGENT d WHERE CAST(UPPER(decode(d.ref_obj_type, 1, 'TABLE', 2, 'SEQUENCE', 3, 'PACKAGE', 4, 'TYPE', 5, 'PACKAGE BODY', 6, 'TYPE BODY', 7, 'TRIGGER', 8, 'VIEW', 9, 'FUNCTION', 10, 'DIRECTORY', 11, 'INDEX', 12, 'PROCEDURE', 13, 'SYNONYM', 'MAXTYPE')) AS VARCHAR2(23)) = o.OBJECT_TYPE AND d.REF_OBJ_ID = o.OBJECT_ID) ro on ro.dep_obj_id = o.dep_obj_id AND ro.dep_obj_type = o.dep_obj_type AND ro.dep_order = o.dep_order )__"))) {
LOG_ERROR("fail to set view_definition", K(ret));
}
}
@ -339,17 +332,16 @@ int ObInnerTableSchema::dba_dependencies_ora_schema(ObTableSchema& table_schema)
table_schema.set_max_used_column_id(column_id);
table_schema.get_part_option().set_max_used_part_id(table_schema.get_part_option().get_part_num() - 1);
table_schema.get_part_option().set_partition_cnt_within_partition_table(
OB_ALL_CORE_TABLE_TID == common::extract_pure_id(table_schema.get_table_id()) ? 1 : 0);
table_schema.get_part_option().set_partition_cnt_within_partition_table(OB_ALL_CORE_TABLE_TID == common::extract_pure_id(table_schema.get_table_id()) ? 1 : 0);
return ret;
}
int ObInnerTableSchema::user_dependencies_ora_schema(ObTableSchema& table_schema)
int ObInnerTableSchema::user_dependencies_ora_schema(ObTableSchema &table_schema)
{
int ret = OB_SUCCESS;
uint64_t column_id = OB_APP_MIN_COLUMN_ID - 1;
// generated fields:
//generated fields:
table_schema.set_tenant_id(OB_SYS_TENANT_ID);
table_schema.set_tablegroup_id(combine_id(OB_SYS_TENANT_ID, OB_SYS_TABLEGROUP_ID));
table_schema.set_database_id(combine_id(OB_SYS_TENANT_ID, OB_ORA_SYS_DATABASE_ID));
@ -380,8 +372,7 @@ int ObInnerTableSchema::user_dependencies_ora_schema(ObTableSchema& table_schema
table_schema.set_create_mem_version(1);
if (OB_SUCC(ret)) {
if (OB_FAIL(table_schema.set_view_definition(
R"__( SELECT o.OBJECT_NAME AS NAME, o.OBJECT_TYPE AS TYPE, ro.REFERENCED_OWNER AS REFERENCED_OWNER, ro.REFERENCED_NAME AS REFERENCED_NAME, DECODE(ro.REFERENCED_TYPE, NULL, ' NON-EXISTENT', ro.REFERENCED_TYPE) AS REFERENCED_TYPE, CAST(NULL AS VARCHAR2(128)) AS REFERENCED_LINK_NAME, CAST(USERENV('SCHEMAID') AS NUMBER) AS SCHEMAID, CAST(DECODE(BITAND(o.PROPERTY, 3), 2, 'REF', 'HARD') AS VARCHAR2(4)) AS DEPENDENCY_TYPE FROM (select OWNER, OBJECT_NAME, OBJECT_TYPE, REF_OBJ_NAME, ref_obj_type, dep_obj_id, dep_obj_type, dep_order, property from SYS.ALL_OBJECTS o, SYS.ALL_VIRTUAL_DEPENDENCY_AGENT d WHERE CAST(UPPER(decode(d.dep_obj_type, 1, 'TABLE', 2, 'SEQUENCE', 3, 'PACKAGE', 4, 'TYPE', 5, 'PACKAGE BODY', 6, 'TYPE BODY', 7, 'TRIGGER', 8, 'VIEW', 9, 'FUNCTION', 10, 'DIRECTORY', 11, 'INDEX', 12, 'PROCEDURE', 13, 'SYNONYM', 'MAXTYPE')) AS VARCHAR2(23)) = o.OBJECT_TYPE AND d.DEP_OBJ_ID = o.OBJECT_ID) o LEFT OUTER JOIN (SELECT DISTINCT CAST(OWNER AS VARCHAR2(128)) AS REFERENCED_OWNER, CAST(OBJECT_NAME AS VARCHAR2(128)) AS REFERENCED_NAME, CAST(OBJECT_TYPE AS VARCHAR2(18)) AS REFERENCED_TYPE, dep_obj_id, dep_obj_type, dep_order FROM SYS.ALL_OBJECTS o, SYS.ALL_VIRTUAL_DEPENDENCY_AGENT d WHERE CAST(UPPER(decode(d.ref_obj_type, 1, 'TABLE', 2, 'SEQUENCE', 3, 'PACKAGE', 4, 'TYPE', 5, 'PACKAGE BODY', 6, 'TYPE BODY', 7, 'TRIGGER', 8, 'VIEW', 9, 'FUNCTION', 10, 'DIRECTORY', 11, 'INDEX', 12, 'PROCEDURE', 13, 'SYNONYM', 'MAXTYPE')) AS VARCHAR2(23)) = o.OBJECT_TYPE AND d.REF_OBJ_ID = o.OBJECT_ID) ro on ro.dep_obj_id = o.dep_obj_id AND ro.dep_obj_type = o.dep_obj_type AND ro.dep_order = o.dep_order )__"))) {
if (OB_FAIL(table_schema.set_view_definition(R"__( SELECT o.OBJECT_NAME AS NAME, o.OBJECT_TYPE AS TYPE, ro.REFERENCED_OWNER AS REFERENCED_OWNER, ro.REFERENCED_NAME AS REFERENCED_NAME, DECODE(ro.REFERENCED_TYPE, NULL, ' NON-EXISTENT', ro.REFERENCED_TYPE) AS REFERENCED_TYPE, CAST(NULL AS VARCHAR2(128)) AS REFERENCED_LINK_NAME, CAST(USERENV('SCHEMAID') AS NUMBER) AS SCHEMAID, CAST(DECODE(BITAND(o.PROPERTY, 3), 2, 'REF', 'HARD') AS VARCHAR2(4)) AS DEPENDENCY_TYPE FROM (select OWNER, OBJECT_NAME, OBJECT_TYPE, REF_OBJ_NAME, ref_obj_type, dep_obj_id, dep_obj_type, dep_order, property from SYS.ALL_OBJECTS o, SYS.ALL_VIRTUAL_DEPENDENCY_AGENT d WHERE CAST(UPPER(decode(d.dep_obj_type, 1, 'TABLE', 2, 'SEQUENCE', 3, 'PACKAGE', 4, 'TYPE', 5, 'PACKAGE BODY', 6, 'TYPE BODY', 7, 'TRIGGER', 8, 'VIEW', 9, 'FUNCTION', 10, 'DIRECTORY', 11, 'INDEX', 12, 'PROCEDURE', 13, 'SYNONYM', 'MAXTYPE')) AS VARCHAR2(23)) = o.OBJECT_TYPE AND d.DEP_OBJ_ID = o.OBJECT_ID) o LEFT OUTER JOIN (SELECT DISTINCT CAST(OWNER AS VARCHAR2(128)) AS REFERENCED_OWNER, CAST(OBJECT_NAME AS VARCHAR2(128)) AS REFERENCED_NAME, CAST(OBJECT_TYPE AS VARCHAR2(18)) AS REFERENCED_TYPE, dep_obj_id, dep_obj_type, dep_order FROM SYS.ALL_OBJECTS o, SYS.ALL_VIRTUAL_DEPENDENCY_AGENT d WHERE CAST(UPPER(decode(d.ref_obj_type, 1, 'TABLE', 2, 'SEQUENCE', 3, 'PACKAGE', 4, 'TYPE', 5, 'PACKAGE BODY', 6, 'TYPE BODY', 7, 'TRIGGER', 8, 'VIEW', 9, 'FUNCTION', 10, 'DIRECTORY', 11, 'INDEX', 12, 'PROCEDURE', 13, 'SYNONYM', 'MAXTYPE')) AS VARCHAR2(23)) = o.OBJECT_TYPE AND d.REF_OBJ_ID = o.OBJECT_ID) ro on ro.dep_obj_id = o.dep_obj_id AND ro.dep_obj_type = o.dep_obj_type AND ro.dep_order = o.dep_order )__"))) {
LOG_ERROR("fail to set view_definition", K(ret));
}
}
@ -393,17 +384,16 @@ int ObInnerTableSchema::user_dependencies_ora_schema(ObTableSchema& table_schema
table_schema.set_max_used_column_id(column_id);
table_schema.get_part_option().set_max_used_part_id(table_schema.get_part_option().get_part_num() - 1);
table_schema.get_part_option().set_partition_cnt_within_partition_table(
OB_ALL_CORE_TABLE_TID == common::extract_pure_id(table_schema.get_table_id()) ? 1 : 0);
table_schema.get_part_option().set_partition_cnt_within_partition_table(OB_ALL_CORE_TABLE_TID == common::extract_pure_id(table_schema.get_table_id()) ? 1 : 0);
return ret;
}
int ObInnerTableSchema::dba_rsrc_plans_schema(ObTableSchema& table_schema)
int ObInnerTableSchema::dba_rsrc_plans_schema(ObTableSchema &table_schema)
{
int ret = OB_SUCCESS;
uint64_t column_id = OB_APP_MIN_COLUMN_ID - 1;
// generated fields:
//generated fields:
table_schema.set_tenant_id(OB_SYS_TENANT_ID);
table_schema.set_tablegroup_id(combine_id(OB_SYS_TENANT_ID, OB_SYS_TABLEGROUP_ID));
table_schema.set_database_id(combine_id(OB_SYS_TENANT_ID, OB_ORA_SYS_DATABASE_ID));
@ -434,8 +424,7 @@ int ObInnerTableSchema::dba_rsrc_plans_schema(ObTableSchema& table_schema)
table_schema.set_create_mem_version(1);
if (OB_SUCC(ret)) {
if (OB_FAIL(table_schema.set_view_definition(
R"__( SELECT /*+ READ_CONSISTENCY(WEAK) */ CAST(NULL AS NUMBER) AS PLAN_ID, PLAN, CAST(NULL AS NUMBER) AS NUM_PLAN_DIRECTIVES, CAST(NULL AS VARCHAR2(128)) AS CPU_METHOD, CAST(NULL AS VARCHAR2(128)) AS MGMT_METHOD, CAST(NULL AS VARCHAR2(128)) AS ACTIVE_SESS_POOL_MTH, CAST(NULL AS VARCHAR2(128)) AS PARALLEL_DEGREE_LIMIT_MTH, CAST(NULL AS VARCHAR2(128)) AS QUEUING_MTH, CAST(NULL AS VARCHAR2(3)) AS SUB_PLAN, COMMENTS, CAST(NULL AS VARCHAR2(128)) AS STATUS, CAST(NULL AS VARCHAR2(3)) AS MANDATORY FROM SYS.ALL_VIRTUAL_RES_MGR_PLAN_REAL_AGENT )__"))) {
if (OB_FAIL(table_schema.set_view_definition(R"__( SELECT /*+ READ_CONSISTENCY(WEAK) */ CAST(NULL AS NUMBER) AS PLAN_ID, PLAN, CAST(NULL AS NUMBER) AS NUM_PLAN_DIRECTIVES, CAST(NULL AS VARCHAR2(128)) AS CPU_METHOD, CAST(NULL AS VARCHAR2(128)) AS MGMT_METHOD, CAST(NULL AS VARCHAR2(128)) AS ACTIVE_SESS_POOL_MTH, CAST(NULL AS VARCHAR2(128)) AS PARALLEL_DEGREE_LIMIT_MTH, CAST(NULL AS VARCHAR2(128)) AS QUEUING_MTH, CAST(NULL AS VARCHAR2(3)) AS SUB_PLAN, COMMENTS, CAST(NULL AS VARCHAR2(128)) AS STATUS, CAST(NULL AS VARCHAR2(3)) AS MANDATORY FROM SYS.ALL_VIRTUAL_RES_MGR_PLAN_REAL_AGENT )__"))) {
LOG_ERROR("fail to set view_definition", K(ret));
}
}
@ -447,17 +436,16 @@ int ObInnerTableSchema::dba_rsrc_plans_schema(ObTableSchema& table_schema)
table_schema.set_max_used_column_id(column_id);
table_schema.get_part_option().set_max_used_part_id(table_schema.get_part_option().get_part_num() - 1);
table_schema.get_part_option().set_partition_cnt_within_partition_table(
OB_ALL_CORE_TABLE_TID == common::extract_pure_id(table_schema.get_table_id()) ? 1 : 0);
table_schema.get_part_option().set_partition_cnt_within_partition_table(OB_ALL_CORE_TABLE_TID == common::extract_pure_id(table_schema.get_table_id()) ? 1 : 0);
return ret;
}
int ObInnerTableSchema::dba_rsrc_plan_directives_schema(ObTableSchema& table_schema)
int ObInnerTableSchema::dba_rsrc_plan_directives_schema(ObTableSchema &table_schema)
{
int ret = OB_SUCCESS;
uint64_t column_id = OB_APP_MIN_COLUMN_ID - 1;
// generated fields:
//generated fields:
table_schema.set_tenant_id(OB_SYS_TENANT_ID);
table_schema.set_tablegroup_id(combine_id(OB_SYS_TENANT_ID, OB_SYS_TABLEGROUP_ID));
table_schema.set_database_id(combine_id(OB_SYS_TENANT_ID, OB_ORA_SYS_DATABASE_ID));
@ -488,8 +476,7 @@ int ObInnerTableSchema::dba_rsrc_plan_directives_schema(ObTableSchema& table_sch
table_schema.set_create_mem_version(1);
if (OB_SUCC(ret)) {
if (OB_FAIL(table_schema.set_view_definition(
R"__( SELECT /*+ READ_CONSISTENCY(WEAK) */ PLAN, GROUP_OR_SUBPLAN, CAST(NULL AS VARCHAR2(14)) AS TYPE, CAST(NULL AS NUMBER) AS CPU_P1, CAST(NULL AS NUMBER) AS CPU_P2, CAST(NULL AS NUMBER) AS CPU_P3, CAST(NULL AS NUMBER) AS CPU_P4, CAST(NULL AS NUMBER) AS CPU_P5, CAST(NULL AS NUMBER) AS CPU_P6, CAST(NULL AS NUMBER) AS CPU_P7, CAST(NULL AS NUMBER) AS CPU_P8, MGMT_P1, CAST(NULL AS NUMBER) AS MGMT_P2, CAST(NULL AS NUMBER) AS MGMT_P3, CAST(NULL AS NUMBER) AS MGMT_P4, CAST(NULL AS NUMBER) AS MGMT_P5, CAST(NULL AS NUMBER) AS MGMT_P6, CAST(NULL AS NUMBER) AS MGMT_P7, CAST(NULL AS NUMBER) AS MGMT_P8, CAST(NULL AS NUMBER) AS ACTIVE_SESS_POOL_P1, CAST(NULL AS NUMBER) AS QUEUEING_P1, CAST(NULL AS NUMBER) AS PARALLEL_TARGET_PERCENTAGE, CAST(NULL AS NUMBER) AS PARALLEL_DEGREE_LIMIT_P1, CAST(NULL AS VARCHAR2(128)) AS SWITCH_GROUP, CAST(NULL AS VARCHAR2(5)) AS SWITCH_FOR_CALL, CAST(NULL AS NUMBER) AS SWITCH_TIME, CAST(NULL AS NUMBER) AS SWITCH_IO_MEGABYTES, CAST(NULL AS NUMBER) AS SWITCH_IO_REQS, CAST(NULL AS VARCHAR2(5)) AS SWITCH_ESTIMATE, CAST(NULL AS NUMBER) AS MAX_EST_EXEC_TIME, CAST(NULL AS NUMBER) AS UNDO_POOL, CAST(NULL AS NUMBER) AS MAX_IDLE_TIME, CAST(NULL AS NUMBER) AS MAX_IDLE_BLOCKER_TIME, CAST(NULL AS NUMBER) AS MAX_UTILIZATION_LIMIT, CAST(NULL AS NUMBER) AS PARALLEL_QUEUE_TIMEOUT, CAST(NULL AS NUMBER) AS SWITCH_TIME_IN_CALL, CAST(NULL AS NUMBER) AS SWITCH_IO_LOGICAL, CAST(NULL AS NUMBER) AS SWITCH_ELAPSED_TIME, CAST(NULL AS NUMBER) AS PARALLEL_SERVER_LIMIT, UTILIZATION_LIMIT, CAST(NULL AS VARCHAR2(12)) AS PARALLEL_STMT_CRITICAL, CAST(NULL AS NUMBER) AS SESSION_PGA_LIMIT, CAST(NULL AS VARCHAR2(6)) AS PQ_TIMEOUT_ACTION, COMMENTS, CAST(NULL AS VARCHAR2(128)) AS STATUS, CAST('YES' AS VARCHAR2(3)) AS MANDATORY FROM SYS.ALL_VIRTUAL_RES_MGR_DIRECTIVE_REAL_AGENT )__"))) {
if (OB_FAIL(table_schema.set_view_definition(R"__( SELECT /*+ READ_CONSISTENCY(WEAK) */ PLAN, GROUP_OR_SUBPLAN, CAST(NULL AS VARCHAR2(14)) AS TYPE, CAST(NULL AS NUMBER) AS CPU_P1, CAST(NULL AS NUMBER) AS CPU_P2, CAST(NULL AS NUMBER) AS CPU_P3, CAST(NULL AS NUMBER) AS CPU_P4, CAST(NULL AS NUMBER) AS CPU_P5, CAST(NULL AS NUMBER) AS CPU_P6, CAST(NULL AS NUMBER) AS CPU_P7, CAST(NULL AS NUMBER) AS CPU_P8, MGMT_P1, CAST(NULL AS NUMBER) AS MGMT_P2, CAST(NULL AS NUMBER) AS MGMT_P3, CAST(NULL AS NUMBER) AS MGMT_P4, CAST(NULL AS NUMBER) AS MGMT_P5, CAST(NULL AS NUMBER) AS MGMT_P6, CAST(NULL AS NUMBER) AS MGMT_P7, CAST(NULL AS NUMBER) AS MGMT_P8, CAST(NULL AS NUMBER) AS ACTIVE_SESS_POOL_P1, CAST(NULL AS NUMBER) AS QUEUEING_P1, CAST(NULL AS NUMBER) AS PARALLEL_TARGET_PERCENTAGE, CAST(NULL AS NUMBER) AS PARALLEL_DEGREE_LIMIT_P1, CAST(NULL AS VARCHAR2(128)) AS SWITCH_GROUP, CAST(NULL AS VARCHAR2(5)) AS SWITCH_FOR_CALL, CAST(NULL AS NUMBER) AS SWITCH_TIME, CAST(NULL AS NUMBER) AS SWITCH_IO_MEGABYTES, CAST(NULL AS NUMBER) AS SWITCH_IO_REQS, CAST(NULL AS VARCHAR2(5)) AS SWITCH_ESTIMATE, CAST(NULL AS NUMBER) AS MAX_EST_EXEC_TIME, CAST(NULL AS NUMBER) AS UNDO_POOL, CAST(NULL AS NUMBER) AS MAX_IDLE_TIME, CAST(NULL AS NUMBER) AS MAX_IDLE_BLOCKER_TIME, CAST(NULL AS NUMBER) AS MAX_UTILIZATION_LIMIT, CAST(NULL AS NUMBER) AS PARALLEL_QUEUE_TIMEOUT, CAST(NULL AS NUMBER) AS SWITCH_TIME_IN_CALL, CAST(NULL AS NUMBER) AS SWITCH_IO_LOGICAL, CAST(NULL AS NUMBER) AS SWITCH_ELAPSED_TIME, CAST(NULL AS NUMBER) AS PARALLEL_SERVER_LIMIT, UTILIZATION_LIMIT, CAST(NULL AS VARCHAR2(12)) AS PARALLEL_STMT_CRITICAL, CAST(NULL AS NUMBER) AS SESSION_PGA_LIMIT, CAST(NULL AS VARCHAR2(6)) AS PQ_TIMEOUT_ACTION, COMMENTS, CAST(NULL AS VARCHAR2(128)) AS STATUS, CAST('YES' AS VARCHAR2(3)) AS MANDATORY FROM SYS.ALL_VIRTUAL_RES_MGR_DIRECTIVE_REAL_AGENT )__"))) {
LOG_ERROR("fail to set view_definition", K(ret));
}
}
@ -501,17 +488,16 @@ int ObInnerTableSchema::dba_rsrc_plan_directives_schema(ObTableSchema& table_sch
table_schema.set_max_used_column_id(column_id);
table_schema.get_part_option().set_max_used_part_id(table_schema.get_part_option().get_part_num() - 1);
table_schema.get_part_option().set_partition_cnt_within_partition_table(
OB_ALL_CORE_TABLE_TID == common::extract_pure_id(table_schema.get_table_id()) ? 1 : 0);
table_schema.get_part_option().set_partition_cnt_within_partition_table(OB_ALL_CORE_TABLE_TID == common::extract_pure_id(table_schema.get_table_id()) ? 1 : 0);
return ret;
}
int ObInnerTableSchema::dba_rsrc_group_mappings_schema(ObTableSchema& table_schema)
int ObInnerTableSchema::dba_rsrc_group_mappings_schema(ObTableSchema &table_schema)
{
int ret = OB_SUCCESS;
uint64_t column_id = OB_APP_MIN_COLUMN_ID - 1;
// generated fields:
//generated fields:
table_schema.set_tenant_id(OB_SYS_TENANT_ID);
table_schema.set_tablegroup_id(combine_id(OB_SYS_TENANT_ID, OB_SYS_TABLEGROUP_ID));
table_schema.set_database_id(combine_id(OB_SYS_TENANT_ID, OB_ORA_SYS_DATABASE_ID));
@ -542,8 +528,7 @@ int ObInnerTableSchema::dba_rsrc_group_mappings_schema(ObTableSchema& table_sche
table_schema.set_create_mem_version(1);
if (OB_SUCC(ret)) {
if (OB_FAIL(table_schema.set_view_definition(
R"__( SELECT /*+ READ_CONSISTENCY(WEAK) */ ATTRIBUTE, VALUE, CONSUMER_GROUP, CAST(NULL AS VARCHAR2(128)) AS STATUS FROM SYS.ALL_VIRTUAL_RES_MGR_MAPPING_RULE_REAL_AGENT )__"))) {
if (OB_FAIL(table_schema.set_view_definition(R"__( SELECT /*+ READ_CONSISTENCY(WEAK) */ ATTRIBUTE, VALUE, CONSUMER_GROUP, CAST(NULL AS VARCHAR2(128)) AS STATUS FROM SYS.ALL_VIRTUAL_RES_MGR_MAPPING_RULE_REAL_AGENT )__"))) {
LOG_ERROR("fail to set view_definition", K(ret));
}
}
@ -555,17 +540,16 @@ int ObInnerTableSchema::dba_rsrc_group_mappings_schema(ObTableSchema& table_sche
table_schema.set_max_used_column_id(column_id);
table_schema.get_part_option().set_max_used_part_id(table_schema.get_part_option().get_part_num() - 1);
table_schema.get_part_option().set_partition_cnt_within_partition_table(
OB_ALL_CORE_TABLE_TID == common::extract_pure_id(table_schema.get_table_id()) ? 1 : 0);
table_schema.get_part_option().set_partition_cnt_within_partition_table(OB_ALL_CORE_TABLE_TID == common::extract_pure_id(table_schema.get_table_id()) ? 1 : 0);
return ret;
}
int ObInnerTableSchema::dba_recyclebin_ora_schema(ObTableSchema& table_schema)
int ObInnerTableSchema::dba_recyclebin_ora_schema(ObTableSchema &table_schema)
{
int ret = OB_SUCCESS;
uint64_t column_id = OB_APP_MIN_COLUMN_ID - 1;
// generated fields:
//generated fields:
table_schema.set_tenant_id(OB_SYS_TENANT_ID);
table_schema.set_tablegroup_id(combine_id(OB_SYS_TENANT_ID, OB_SYS_TABLEGROUP_ID));
table_schema.set_database_id(combine_id(OB_SYS_TENANT_ID, OB_ORA_SYS_DATABASE_ID));
@ -596,8 +580,7 @@ int ObInnerTableSchema::dba_recyclebin_ora_schema(ObTableSchema& table_schema)
table_schema.set_create_mem_version(1);
if (OB_SUCC(ret)) {
if (OB_FAIL(table_schema.set_view_definition(
R"__( SELECT OWNER, OBJECT_NAME, ORIGINAL_NAME, OPERATION, TYPE, CAST(TABLESPACE_NAME AS VARCHAR2(30)) AS TS_NAME, CREATETIME, DROPTIME, DROPSCN, PARTITION_NAME, CAN_UNDROP, CAN_PURGE, RELATED, BASE_OBJECT, PURGE_OBJECT, SPACE FROM (SELECT CAST(B.DATABASE_NAME AS VARCHAR2(128)) AS OWNER, CAST(A.OBJECT_NAME AS VARCHAR2(128)) AS OBJECT_NAME, CAST(A.ORIGINAL_NAME AS VARCHAR2(128)) AS ORIGINAL_NAME, CAST(NULL AS VARCHAR2(9)) AS OPERATION, CAST(CASE A.TYPE WHEN 1 THEN 'TABLE' WHEN 2 THEN 'NORMAL INDEX' WHEN 3 THEN 'VIEW' WHEN 4 THEN 'DATABASE' WHEN 5 THEN 'AUX_VP' WHEN 6 THEN 'TRIGGER' ELSE NULL END AS VARCHAR2(25)) AS TYPE, CAST(NULL AS VARCHAR2(30)) AS TS_NAME, CAST(C.GMT_CREATE AS VARCHAR(30)) AS CREATETIME, CAST(C.GMT_MODIFIED AS VARCHAR(30)) AS DROPTIME, CAST(NULL AS NUMBER) AS DROPSCN, CAST(NULL AS VARCHAR2(128)) AS PARTITION_NAME, CAST('YES' AS VARCHAR2(3)) AS CAN_UNDROP, CAST('YES' AS VARCHAR2(3)) AS CAN_PURGE, CAST(NULL AS NUMBER) AS RELATED, CAST(NULL AS NUMBER) AS BASE_OBJECT, CAST(NULL AS NUMBER) AS PURGE_OBJECT, CAST(NULL AS NUMBER) AS SPACE, C.TABLE_ID AS TABLE_ID, C.TABLESPACE_ID AS TABLESPACE_ID FROM SYS.ALL_VIRTUAL_RECYCLEBIN_REAL_AGENT A, SYS.ALL_VIRTUAL_DATABASE_REAL_AGENT B, SYS.ALL_VIRTUAL_TABLE_REAL_AGENT C WHERE A.DATABASE_ID = B.DATABASE_ID AND A.TABLE_ID = C.TABLE_ID AND A.TENANT_ID = EFFECTIVE_TENANT_ID() AND B.TENANT_ID = EFFECTIVE_TENANT_ID() AND C.TENANT_ID = EFFECTIVE_TENANT_ID()) LEFT_TABLE LEFT JOIN (SELECT TABLESPACE_NAME, TABLESPACE_ID FROM SYS.ALL_VIRTUAL_TENANT_TABLESPACE_REAL_AGENT) RIGHT_TABLE ON LEFT_TABLE.TABLESPACE_ID = RIGHT_TABLE.TABLESPACE_ID )__"))) {
if (OB_FAIL(table_schema.set_view_definition(R"__( SELECT OWNER, OBJECT_NAME, ORIGINAL_NAME, OPERATION, TYPE, CAST(TABLESPACE_NAME AS VARCHAR2(30)) AS TS_NAME, CREATETIME, DROPTIME, DROPSCN, PARTITION_NAME, CAN_UNDROP, CAN_PURGE, RELATED, BASE_OBJECT, PURGE_OBJECT, SPACE FROM (SELECT CAST(B.DATABASE_NAME AS VARCHAR2(128)) AS OWNER, CAST(A.OBJECT_NAME AS VARCHAR2(128)) AS OBJECT_NAME, CAST(A.ORIGINAL_NAME AS VARCHAR2(128)) AS ORIGINAL_NAME, CAST(NULL AS VARCHAR2(9)) AS OPERATION, CAST(CASE A.TYPE WHEN 1 THEN 'TABLE' WHEN 2 THEN 'NORMAL INDEX' WHEN 3 THEN 'VIEW' WHEN 4 THEN 'DATABASE' WHEN 5 THEN 'AUX_VP' WHEN 6 THEN 'TRIGGER' ELSE NULL END AS VARCHAR2(25)) AS TYPE, CAST(NULL AS VARCHAR2(30)) AS TS_NAME, CAST(C.GMT_CREATE AS VARCHAR(30)) AS CREATETIME, CAST(C.GMT_MODIFIED AS VARCHAR(30)) AS DROPTIME, CAST(NULL AS NUMBER) AS DROPSCN, CAST(NULL AS VARCHAR2(128)) AS PARTITION_NAME, CAST('YES' AS VARCHAR2(3)) AS CAN_UNDROP, CAST('YES' AS VARCHAR2(3)) AS CAN_PURGE, CAST(NULL AS NUMBER) AS RELATED, CAST(NULL AS NUMBER) AS BASE_OBJECT, CAST(NULL AS NUMBER) AS PURGE_OBJECT, CAST(NULL AS NUMBER) AS SPACE, C.TABLE_ID AS TABLE_ID, C.TABLESPACE_ID AS TABLESPACE_ID FROM SYS.ALL_VIRTUAL_RECYCLEBIN_REAL_AGENT A, SYS.ALL_VIRTUAL_DATABASE_REAL_AGENT B, SYS.ALL_VIRTUAL_TABLE_REAL_AGENT C WHERE A.DATABASE_ID = B.DATABASE_ID AND A.TABLE_ID = C.TABLE_ID AND A.TENANT_ID = EFFECTIVE_TENANT_ID() AND B.TENANT_ID = EFFECTIVE_TENANT_ID() AND C.TENANT_ID = EFFECTIVE_TENANT_ID()) LEFT_TABLE LEFT JOIN (SELECT TABLESPACE_NAME, TABLESPACE_ID FROM SYS.ALL_VIRTUAL_TENANT_TABLESPACE_REAL_AGENT) RIGHT_TABLE ON LEFT_TABLE.TABLESPACE_ID = RIGHT_TABLE.TABLESPACE_ID )__"))) {
LOG_ERROR("fail to set view_definition", K(ret));
}
}
@ -609,17 +592,16 @@ int ObInnerTableSchema::dba_recyclebin_ora_schema(ObTableSchema& table_schema)
table_schema.set_max_used_column_id(column_id);
table_schema.get_part_option().set_max_used_part_id(table_schema.get_part_option().get_part_num() - 1);
table_schema.get_part_option().set_partition_cnt_within_partition_table(
OB_ALL_CORE_TABLE_TID == common::extract_pure_id(table_schema.get_table_id()) ? 1 : 0);
table_schema.get_part_option().set_partition_cnt_within_partition_table(OB_ALL_CORE_TABLE_TID == common::extract_pure_id(table_schema.get_table_id()) ? 1 : 0);
return ret;
}
int ObInnerTableSchema::user_recyclebin_ora_schema(ObTableSchema& table_schema)
int ObInnerTableSchema::user_recyclebin_ora_schema(ObTableSchema &table_schema)
{
int ret = OB_SUCCESS;
uint64_t column_id = OB_APP_MIN_COLUMN_ID - 1;
// generated fields:
//generated fields:
table_schema.set_tenant_id(OB_SYS_TENANT_ID);
table_schema.set_tablegroup_id(combine_id(OB_SYS_TENANT_ID, OB_SYS_TABLEGROUP_ID));
table_schema.set_database_id(combine_id(OB_SYS_TENANT_ID, OB_ORA_SYS_DATABASE_ID));
@ -650,8 +632,7 @@ int ObInnerTableSchema::user_recyclebin_ora_schema(ObTableSchema& table_schema)
table_schema.set_create_mem_version(1);
if (OB_SUCC(ret)) {
if (OB_FAIL(
table_schema.set_view_definition(R"__( SELECT OBJECT_NAME, ORIGINAL_NAME, OPERATION, TYPE, CAST(TABLESPACE_NAME AS VARCHAR2(30)) AS TS_NAME, CREATETIME, DROPTIME, DROPSCN, PARTITION_NAME, CAN_UNDROP, CAN_PURGE, RELATED, BASE_OBJECT, PURGE_OBJECT, SPACE FROM (SELECT CAST(A.OBJECT_NAME AS VARCHAR2(128)) AS OBJECT_NAME, CAST(A.ORIGINAL_NAME AS VARCHAR2(128)) AS ORIGINAL_NAME, CAST(NULL AS VARCHAR2(9)) AS OPERATION, CAST(CASE A.TYPE WHEN 1 THEN 'TABLE' WHEN 2 THEN 'NORMAL INDEX' WHEN 3 THEN 'VIEW' WHEN 4 THEN 'DATABASE' WHEN 5 THEN 'AUX_VP' WHEN 6 THEN 'TRIGGER' ELSE NULL END AS VARCHAR2(25)) AS TYPE, CAST(NULL AS VARCHAR2(30)) AS TS_NAME, CAST(C.GMT_CREATE AS VARCHAR(30)) AS CREATETIME, CAST(C.GMT_MODIFIED AS VARCHAR(30)) AS DROPTIME, CAST(NULL AS NUMBER) AS DROPSCN, CAST(NULL AS VARCHAR2(128)) AS PARTITION_NAME, CAST('YES' AS VARCHAR2(3)) AS CAN_UNDROP, CAST('YES' AS VARCHAR2(3)) AS CAN_PURGE, CAST(NULL AS NUMBER) AS RELATED, CAST(NULL AS NUMBER) AS BASE_OBJECT, CAST(NULL AS NUMBER) AS PURGE_OBJECT, CAST(NULL AS NUMBER) AS SPACE, C.TABLE_ID AS TABLE_ID, C.TABLESPACE_ID AS TABLESPACE_ID FROM SYS.ALL_VIRTUAL_RECYCLEBIN_REAL_AGENT A, SYS.ALL_VIRTUAL_TABLE_REAL_AGENT C WHERE A.TABLE_ID = C.TABLE_ID AND A.DATABASE_ID = USERENV('SCHEMAID') AND A.TENANT_ID = EFFECTIVE_TENANT_ID() AND C.TENANT_ID = EFFECTIVE_TENANT_ID()) LEFT_TABLE LEFT JOIN (SELECT TABLESPACE_NAME, TABLESPACE_ID FROM SYS.ALL_VIRTUAL_TENANT_TABLESPACE_REAL_AGENT WHERE TENANT_ID = EFFECTIVE_TENANT_ID()) RIGHT_TABLE ON LEFT_TABLE.TABLESPACE_ID = RIGHT_TABLE.TABLESPACE_ID )__"))) {
if (OB_FAIL(table_schema.set_view_definition(R"__( SELECT OBJECT_NAME, ORIGINAL_NAME, OPERATION, TYPE, CAST(TABLESPACE_NAME AS VARCHAR2(30)) AS TS_NAME, CREATETIME, DROPTIME, DROPSCN, PARTITION_NAME, CAN_UNDROP, CAN_PURGE, RELATED, BASE_OBJECT, PURGE_OBJECT, SPACE FROM (SELECT CAST(A.OBJECT_NAME AS VARCHAR2(128)) AS OBJECT_NAME, CAST(A.ORIGINAL_NAME AS VARCHAR2(128)) AS ORIGINAL_NAME, CAST(NULL AS VARCHAR2(9)) AS OPERATION, CAST(CASE A.TYPE WHEN 1 THEN 'TABLE' WHEN 2 THEN 'NORMAL INDEX' WHEN 3 THEN 'VIEW' WHEN 4 THEN 'DATABASE' WHEN 5 THEN 'AUX_VP' WHEN 6 THEN 'TRIGGER' ELSE NULL END AS VARCHAR2(25)) AS TYPE, CAST(NULL AS VARCHAR2(30)) AS TS_NAME, CAST(C.GMT_CREATE AS VARCHAR(30)) AS CREATETIME, CAST(C.GMT_MODIFIED AS VARCHAR(30)) AS DROPTIME, CAST(NULL AS NUMBER) AS DROPSCN, CAST(NULL AS VARCHAR2(128)) AS PARTITION_NAME, CAST('YES' AS VARCHAR2(3)) AS CAN_UNDROP, CAST('YES' AS VARCHAR2(3)) AS CAN_PURGE, CAST(NULL AS NUMBER) AS RELATED, CAST(NULL AS NUMBER) AS BASE_OBJECT, CAST(NULL AS NUMBER) AS PURGE_OBJECT, CAST(NULL AS NUMBER) AS SPACE, C.TABLE_ID AS TABLE_ID, C.TABLESPACE_ID AS TABLESPACE_ID FROM SYS.ALL_VIRTUAL_RECYCLEBIN_REAL_AGENT A, SYS.ALL_VIRTUAL_TABLE_REAL_AGENT C WHERE A.TABLE_ID = C.TABLE_ID AND A.DATABASE_ID = USERENV('SCHEMAID') AND A.TENANT_ID = EFFECTIVE_TENANT_ID() AND C.TENANT_ID = EFFECTIVE_TENANT_ID()) LEFT_TABLE LEFT JOIN (SELECT TABLESPACE_NAME, TABLESPACE_ID FROM SYS.ALL_VIRTUAL_TENANT_TABLESPACE_REAL_AGENT WHERE TENANT_ID = EFFECTIVE_TENANT_ID()) RIGHT_TABLE ON LEFT_TABLE.TABLESPACE_ID = RIGHT_TABLE.TABLESPACE_ID )__"))) {
LOG_ERROR("fail to set view_definition", K(ret));
}
}
@ -663,17 +644,16 @@ int ObInnerTableSchema::user_recyclebin_ora_schema(ObTableSchema& table_schema)
table_schema.set_max_used_column_id(column_id);
table_schema.get_part_option().set_max_used_part_id(table_schema.get_part_option().get_part_num() - 1);
table_schema.get_part_option().set_partition_cnt_within_partition_table(
OB_ALL_CORE_TABLE_TID == common::extract_pure_id(table_schema.get_table_id()) ? 1 : 0);
table_schema.get_part_option().set_partition_cnt_within_partition_table(OB_ALL_CORE_TABLE_TID == common::extract_pure_id(table_schema.get_table_id()) ? 1 : 0);
return ret;
}
int ObInnerTableSchema::dba_rsrc_consumer_groups_schema(ObTableSchema& table_schema)
int ObInnerTableSchema::dba_rsrc_consumer_groups_schema(ObTableSchema &table_schema)
{
int ret = OB_SUCCESS;
uint64_t column_id = OB_APP_MIN_COLUMN_ID - 1;
// generated fields:
//generated fields:
table_schema.set_tenant_id(OB_SYS_TENANT_ID);
table_schema.set_tablegroup_id(combine_id(OB_SYS_TENANT_ID, OB_SYS_TABLEGROUP_ID));
table_schema.set_database_id(combine_id(OB_SYS_TENANT_ID, OB_ORA_SYS_DATABASE_ID));
@ -704,8 +684,7 @@ int ObInnerTableSchema::dba_rsrc_consumer_groups_schema(ObTableSchema& table_sch
table_schema.set_create_mem_version(1);
if (OB_SUCC(ret)) {
if (OB_FAIL(table_schema.set_view_definition(
R"__( SELECT /*+ READ_CONSISTENCY(WEAK) */ CONSUMER_GROUP_ID, CONSUMER_GROUP, CAST(NULL AS VARCHAR2(128)) AS CPU_METHOD, CAST(NULL AS VARCHAR2(128)) AS MGMT_METHOD, CAST(NULL AS VARCHAR2(3)) AS INTERNAL_USE, COMMENTS, CAST(NULL AS VARCHAR2(128)) AS CATEGORY, CAST(NULL AS VARCHAR2(128)) AS STATUS, CAST(NULL AS VARCHAR2(3)) AS MANDATORY FROM SYS.ALL_VIRTUAL_RES_MGR_CONSUMER_GROUP_REAL_AGENT )__"))) {
if (OB_FAIL(table_schema.set_view_definition(R"__( SELECT /*+ READ_CONSISTENCY(WEAK) */ CONSUMER_GROUP_ID, CONSUMER_GROUP, CAST(NULL AS VARCHAR2(128)) AS CPU_METHOD, CAST(NULL AS VARCHAR2(128)) AS MGMT_METHOD, CAST(NULL AS VARCHAR2(3)) AS INTERNAL_USE, COMMENTS, CAST(NULL AS VARCHAR2(128)) AS CATEGORY, CAST(NULL AS VARCHAR2(128)) AS STATUS, CAST(NULL AS VARCHAR2(3)) AS MANDATORY FROM SYS.ALL_VIRTUAL_RES_MGR_CONSUMER_GROUP_REAL_AGENT )__"))) {
LOG_ERROR("fail to set view_definition", K(ret));
}
}
@ -717,10 +696,10 @@ int ObInnerTableSchema::dba_rsrc_consumer_groups_schema(ObTableSchema& table_sch
table_schema.set_max_used_column_id(column_id);
table_schema.get_part_option().set_max_used_part_id(table_schema.get_part_option().get_part_num() - 1);
table_schema.get_part_option().set_partition_cnt_within_partition_table(
OB_ALL_CORE_TABLE_TID == common::extract_pure_id(table_schema.get_table_id()) ? 1 : 0);
table_schema.get_part_option().set_partition_cnt_within_partition_table(OB_ALL_CORE_TABLE_TID == common::extract_pure_id(table_schema.get_table_id()) ? 1 : 0);
return ret;
}
} // end namespace share
} // end namespace oceanbase
} // end namespace share
} // end namespace oceanbase

File diff suppressed because it is too large Load Diff

File diff suppressed because it is too large Load Diff

View File

@ -17,17 +17,19 @@
#include "share/schema/ob_schema_service_sql_impl.h"
#include "share/schema/ob_table_schema.h"
namespace oceanbase {
namespace oceanbase
{
using namespace share::schema;
using namespace common;
namespace share {
namespace share
{
int ObInnerTableSchema::v_ob_sql_workarea_memory_info_ora_schema(ObTableSchema& table_schema)
int ObInnerTableSchema::v_ob_sql_workarea_memory_info_ora_schema(ObTableSchema &table_schema)
{
int ret = OB_SUCCESS;
uint64_t column_id = OB_APP_MIN_COLUMN_ID - 1;
// generated fields:
//generated fields:
table_schema.set_tenant_id(OB_SYS_TENANT_ID);
table_schema.set_tablegroup_id(combine_id(OB_SYS_TENANT_ID, OB_SYS_TABLEGROUP_ID));
table_schema.set_database_id(combine_id(OB_SYS_TENANT_ID, OB_ORA_SYS_DATABASE_ID));
@ -58,8 +60,7 @@ int ObInnerTableSchema::v_ob_sql_workarea_memory_info_ora_schema(ObTableSchema&
table_schema.set_create_mem_version(1);
if (OB_SUCC(ret)) {
if (OB_FAIL(table_schema.set_view_definition(
R"__( SELECT MAX_WORKAREA_SIZE, WORKAREA_HOLD_SIZE, MAX_AUTO_WORKAREA_SIZE, MEM_TARGET, TOTAL_MEM_USED, GLOBAL_MEM_BOUND, DRIFT_SIZE, WORKAREA_COUNT, MANUAL_CALC_COUNT FROM SYS.ALL_VIRTUAL_SQL_WORKAREA_MEMORY_INFO_AGENT WHERE TENANT_ID = SYS_CONTEXT('USERENV', 'CON_ID') AND SVR_IP = HOST_IP() AND SVR_PORT = RPC_PORT() )__"))) {
if (OB_FAIL(table_schema.set_view_definition(R"__( SELECT MAX_WORKAREA_SIZE, WORKAREA_HOLD_SIZE, MAX_AUTO_WORKAREA_SIZE, MEM_TARGET, TOTAL_MEM_USED, GLOBAL_MEM_BOUND, DRIFT_SIZE, WORKAREA_COUNT, MANUAL_CALC_COUNT FROM SYS.ALL_VIRTUAL_SQL_WORKAREA_MEMORY_INFO_AGENT WHERE TENANT_ID = SYS_CONTEXT('USERENV', 'CON_ID') AND SVR_IP = HOST_IP() AND SVR_PORT = RPC_PORT() )__"))) {
LOG_ERROR("fail to set view_definition", K(ret));
}
}
@ -71,17 +72,16 @@ int ObInnerTableSchema::v_ob_sql_workarea_memory_info_ora_schema(ObTableSchema&
table_schema.set_max_used_column_id(column_id);
table_schema.get_part_option().set_max_used_part_id(table_schema.get_part_option().get_part_num() - 1);
table_schema.get_part_option().set_partition_cnt_within_partition_table(
OB_ALL_CORE_TABLE_TID == common::extract_pure_id(table_schema.get_table_id()) ? 1 : 0);
table_schema.get_part_option().set_partition_cnt_within_partition_table(OB_ALL_CORE_TABLE_TID == common::extract_pure_id(table_schema.get_table_id()) ? 1 : 0);
return ret;
}
int ObInnerTableSchema::gv_plan_cache_reference_info_ora_schema(ObTableSchema& table_schema)
int ObInnerTableSchema::gv_plan_cache_reference_info_ora_schema(ObTableSchema &table_schema)
{
int ret = OB_SUCCESS;
uint64_t column_id = OB_APP_MIN_COLUMN_ID - 1;
// generated fields:
//generated fields:
table_schema.set_tenant_id(OB_SYS_TENANT_ID);
table_schema.set_tablegroup_id(combine_id(OB_SYS_TENANT_ID, OB_SYS_TABLEGROUP_ID));
table_schema.set_database_id(combine_id(OB_SYS_TENANT_ID, OB_ORA_SYS_DATABASE_ID));
@ -112,8 +112,7 @@ int ObInnerTableSchema::gv_plan_cache_reference_info_ora_schema(ObTableSchema& t
table_schema.set_create_mem_version(1);
if (OB_SUCC(ret)) {
if (OB_FAIL(table_schema.set_view_definition(
R"__( SELECT SVR_IP, SVR_PORT, TENANT_ID, PC_REF_PLAN_LOCAL, PC_REF_PLAN_REMOTE, PC_REF_PLAN_DIST, PC_REF_PLAN_ARR, PC_REF_PL, PC_REF_PL_STAT, PLAN_GEN, CLI_QUERY, OUTLINE_EXEC, PLAN_EXPLAIN, ASYN_BASELINE, LOAD_BASELINE, PS_EXEC, GV_SQL, PL_ANON, PL_ROUTINE, PACKAGE_VAR, PACKAGE_TYPE, PACKAGE_SPEC, PACKAGE_BODY, PACKAGE_RESV, GET_PKG, INDEX_BUILDER, PCV_SET, PCV_RD, PCV_WR, PCV_GET_PLAN_KEY, PCV_GET_PL_KEY, PCV_EXPIRE_BY_USED, PCV_EXPIRE_BY_MEM FROM SYS.ALL_VIRTUAL_PLAN_CACHE_STAT WHERE TENANT_ID = SYS_CONTEXT('USERENV', 'CON_ID') )__"))) {
if (OB_FAIL(table_schema.set_view_definition(R"__( SELECT SVR_IP, SVR_PORT, TENANT_ID, PC_REF_PLAN_LOCAL, PC_REF_PLAN_REMOTE, PC_REF_PLAN_DIST, PC_REF_PLAN_ARR, PC_REF_PL, PC_REF_PL_STAT, PLAN_GEN, CLI_QUERY, OUTLINE_EXEC, PLAN_EXPLAIN, ASYN_BASELINE, LOAD_BASELINE, PS_EXEC, GV_SQL, PL_ANON, PL_ROUTINE, PACKAGE_VAR, PACKAGE_TYPE, PACKAGE_SPEC, PACKAGE_BODY, PACKAGE_RESV, GET_PKG, INDEX_BUILDER, PCV_SET, PCV_RD, PCV_WR, PCV_GET_PLAN_KEY, PCV_GET_PL_KEY, PCV_EXPIRE_BY_USED, PCV_EXPIRE_BY_MEM FROM SYS.ALL_VIRTUAL_PLAN_CACHE_STAT WHERE TENANT_ID = SYS_CONTEXT('USERENV', 'CON_ID') )__"))) {
LOG_ERROR("fail to set view_definition", K(ret));
}
}
@ -125,17 +124,16 @@ int ObInnerTableSchema::gv_plan_cache_reference_info_ora_schema(ObTableSchema& t
table_schema.set_max_used_column_id(column_id);
table_schema.get_part_option().set_max_used_part_id(table_schema.get_part_option().get_part_num() - 1);
table_schema.get_part_option().set_partition_cnt_within_partition_table(
OB_ALL_CORE_TABLE_TID == common::extract_pure_id(table_schema.get_table_id()) ? 1 : 0);
table_schema.get_part_option().set_partition_cnt_within_partition_table(OB_ALL_CORE_TABLE_TID == common::extract_pure_id(table_schema.get_table_id()) ? 1 : 0);
return ret;
}
int ObInnerTableSchema::v_plan_cache_reference_info_ora_schema(ObTableSchema& table_schema)
int ObInnerTableSchema::v_plan_cache_reference_info_ora_schema(ObTableSchema &table_schema)
{
int ret = OB_SUCCESS;
uint64_t column_id = OB_APP_MIN_COLUMN_ID - 1;
// generated fields:
//generated fields:
table_schema.set_tenant_id(OB_SYS_TENANT_ID);
table_schema.set_tablegroup_id(combine_id(OB_SYS_TENANT_ID, OB_SYS_TABLEGROUP_ID));
table_schema.set_database_id(combine_id(OB_SYS_TENANT_ID, OB_ORA_SYS_DATABASE_ID));
@ -166,8 +164,7 @@ int ObInnerTableSchema::v_plan_cache_reference_info_ora_schema(ObTableSchema& ta
table_schema.set_create_mem_version(1);
if (OB_SUCC(ret)) {
if (OB_FAIL(table_schema.set_view_definition(
R"__( SELECT * FROM GV$PLAN_CACHE_REFERENCE_INFO WHERE SVR_IP = HOST_IP() AND SVR_PORT = RPC_PORT() )__"))) {
if (OB_FAIL(table_schema.set_view_definition(R"__( SELECT * FROM GV$PLAN_CACHE_REFERENCE_INFO WHERE SVR_IP = HOST_IP() AND SVR_PORT = RPC_PORT() )__"))) {
LOG_ERROR("fail to set view_definition", K(ret));
}
}
@ -179,17 +176,16 @@ int ObInnerTableSchema::v_plan_cache_reference_info_ora_schema(ObTableSchema& ta
table_schema.set_max_used_column_id(column_id);
table_schema.get_part_option().set_max_used_part_id(table_schema.get_part_option().get_part_num() - 1);
table_schema.get_part_option().set_partition_cnt_within_partition_table(
OB_ALL_CORE_TABLE_TID == common::extract_pure_id(table_schema.get_table_id()) ? 1 : 0);
table_schema.get_part_option().set_partition_cnt_within_partition_table(OB_ALL_CORE_TABLE_TID == common::extract_pure_id(table_schema.get_table_id()) ? 1 : 0);
return ret;
}
int ObInnerTableSchema::gv_sql_workarea_ora_schema(ObTableSchema& table_schema)
int ObInnerTableSchema::gv_sql_workarea_ora_schema(ObTableSchema &table_schema)
{
int ret = OB_SUCCESS;
uint64_t column_id = OB_APP_MIN_COLUMN_ID - 1;
// generated fields:
//generated fields:
table_schema.set_tenant_id(OB_SYS_TENANT_ID);
table_schema.set_tablegroup_id(combine_id(OB_SYS_TENANT_ID, OB_SYS_TABLEGROUP_ID));
table_schema.set_database_id(combine_id(OB_SYS_TENANT_ID, OB_ORA_SYS_DATABASE_ID));
@ -220,8 +216,7 @@ int ObInnerTableSchema::gv_sql_workarea_ora_schema(ObTableSchema& table_schema)
table_schema.set_create_mem_version(1);
if (OB_SUCC(ret)) {
if (OB_FAIL(table_schema.set_view_definition(
R"__( SELECT CAST(NULL AS RAW(8)) AS ADDRESS, CAST(NULL AS NUMBER) AS HASH_VALUE, SQL_ID, CAST(NULL AS NUMBER) AS CHILD_NUMBER, CAST(NULL AS RAW(8)) AS WORKAREA_ADDRESS, OPERATION_TYPE, OPERATION_ID, POLICY, ESTIMATED_OPTIMAL_SIZE, ESTIMATED_ONEPASS_SIZE, LAST_MEMORY_USED, LAST_EXECUTION, LAST_DEGREE, TOTAL_EXECUTIONS, OPTIMAL_EXECUTIONS, ONEPASS_EXECUTIONS, multipasses_executions, ACTIVE_TIME, MAX_TEMPSEG_SIZE, LAST_TEMPSEG_SIZE, TENANT_ID AS CON_ID FROM SYS.ALL_VIRTUAL_SQL_WORKAREA_HISTORY_STAT_AGENT WHERE TENANT_ID = SYS_CONTEXT('USERENV', 'CON_ID') )__"))) {
if (OB_FAIL(table_schema.set_view_definition(R"__( SELECT CAST(NULL AS RAW(8)) AS ADDRESS, CAST(NULL AS NUMBER) AS HASH_VALUE, SQL_ID, CAST(NULL AS NUMBER) AS CHILD_NUMBER, CAST(NULL AS RAW(8)) AS WORKAREA_ADDRESS, OPERATION_TYPE, OPERATION_ID, POLICY, ESTIMATED_OPTIMAL_SIZE, ESTIMATED_ONEPASS_SIZE, LAST_MEMORY_USED, LAST_EXECUTION, LAST_DEGREE, TOTAL_EXECUTIONS, OPTIMAL_EXECUTIONS, ONEPASS_EXECUTIONS, multipasses_executions, ACTIVE_TIME, MAX_TEMPSEG_SIZE, LAST_TEMPSEG_SIZE, TENANT_ID AS CON_ID FROM SYS.ALL_VIRTUAL_SQL_WORKAREA_HISTORY_STAT_AGENT WHERE TENANT_ID = SYS_CONTEXT('USERENV', 'CON_ID') )__"))) {
LOG_ERROR("fail to set view_definition", K(ret));
}
}
@ -233,17 +228,16 @@ int ObInnerTableSchema::gv_sql_workarea_ora_schema(ObTableSchema& table_schema)
table_schema.set_max_used_column_id(column_id);
table_schema.get_part_option().set_max_used_part_id(table_schema.get_part_option().get_part_num() - 1);
table_schema.get_part_option().set_partition_cnt_within_partition_table(
OB_ALL_CORE_TABLE_TID == common::extract_pure_id(table_schema.get_table_id()) ? 1 : 0);
table_schema.get_part_option().set_partition_cnt_within_partition_table(OB_ALL_CORE_TABLE_TID == common::extract_pure_id(table_schema.get_table_id()) ? 1 : 0);
return ret;
}
int ObInnerTableSchema::v_sql_workarea_ora_schema(ObTableSchema& table_schema)
int ObInnerTableSchema::v_sql_workarea_ora_schema(ObTableSchema &table_schema)
{
int ret = OB_SUCCESS;
uint64_t column_id = OB_APP_MIN_COLUMN_ID - 1;
// generated fields:
//generated fields:
table_schema.set_tenant_id(OB_SYS_TENANT_ID);
table_schema.set_tablegroup_id(combine_id(OB_SYS_TENANT_ID, OB_SYS_TABLEGROUP_ID));
table_schema.set_database_id(combine_id(OB_SYS_TENANT_ID, OB_ORA_SYS_DATABASE_ID));
@ -274,8 +268,7 @@ int ObInnerTableSchema::v_sql_workarea_ora_schema(ObTableSchema& table_schema)
table_schema.set_create_mem_version(1);
if (OB_SUCC(ret)) {
if (OB_FAIL(table_schema.set_view_definition(
R"__( SELECT CAST(NULL AS RAW(8)) AS ADDRESS, CAST(NULL AS NUMBER) AS HASH_VALUE, SQL_ID, CAST(NULL AS NUMBER) AS CHILD_NUMBER, CAST(NULL AS RAW(8)) AS WORKAREA_ADDRESS, OPERATION_TYPE, OPERATION_ID, POLICY, ESTIMATED_OPTIMAL_SIZE, ESTIMATED_ONEPASS_SIZE, LAST_MEMORY_USED, LAST_EXECUTION, LAST_DEGREE, TOTAL_EXECUTIONS, OPTIMAL_EXECUTIONS, ONEPASS_EXECUTIONS, multipasses_executions, ACTIVE_TIME, MAX_TEMPSEG_SIZE, LAST_TEMPSEG_SIZE, TENANT_ID AS CON_ID FROM SYS.ALL_VIRTUAL_SQL_WORKAREA_HISTORY_STAT_AGENT WHERE TENANT_ID = SYS_CONTEXT('USERENV', 'CON_ID') AND SVR_IP = HOST_IP() AND SVR_PORT = RPC_PORT() )__"))) {
if (OB_FAIL(table_schema.set_view_definition(R"__( SELECT CAST(NULL AS RAW(8)) AS ADDRESS, CAST(NULL AS NUMBER) AS HASH_VALUE, SQL_ID, CAST(NULL AS NUMBER) AS CHILD_NUMBER, CAST(NULL AS RAW(8)) AS WORKAREA_ADDRESS, OPERATION_TYPE, OPERATION_ID, POLICY, ESTIMATED_OPTIMAL_SIZE, ESTIMATED_ONEPASS_SIZE, LAST_MEMORY_USED, LAST_EXECUTION, LAST_DEGREE, TOTAL_EXECUTIONS, OPTIMAL_EXECUTIONS, ONEPASS_EXECUTIONS, multipasses_executions, ACTIVE_TIME, MAX_TEMPSEG_SIZE, LAST_TEMPSEG_SIZE, TENANT_ID AS CON_ID FROM SYS.ALL_VIRTUAL_SQL_WORKAREA_HISTORY_STAT_AGENT WHERE TENANT_ID = SYS_CONTEXT('USERENV', 'CON_ID') AND SVR_IP = HOST_IP() AND SVR_PORT = RPC_PORT() )__"))) {
LOG_ERROR("fail to set view_definition", K(ret));
}
}
@ -287,17 +280,16 @@ int ObInnerTableSchema::v_sql_workarea_ora_schema(ObTableSchema& table_schema)
table_schema.set_max_used_column_id(column_id);
table_schema.get_part_option().set_max_used_part_id(table_schema.get_part_option().get_part_num() - 1);
table_schema.get_part_option().set_partition_cnt_within_partition_table(
OB_ALL_CORE_TABLE_TID == common::extract_pure_id(table_schema.get_table_id()) ? 1 : 0);
table_schema.get_part_option().set_partition_cnt_within_partition_table(OB_ALL_CORE_TABLE_TID == common::extract_pure_id(table_schema.get_table_id()) ? 1 : 0);
return ret;
}
int ObInnerTableSchema::gv_sstable_ora_schema(ObTableSchema& table_schema)
int ObInnerTableSchema::gv_sstable_ora_schema(ObTableSchema &table_schema)
{
int ret = OB_SUCCESS;
uint64_t column_id = OB_APP_MIN_COLUMN_ID - 1;
// generated fields:
//generated fields:
table_schema.set_tenant_id(OB_SYS_TENANT_ID);
table_schema.set_tablegroup_id(combine_id(OB_SYS_TENANT_ID, OB_SYS_TABLEGROUP_ID));
table_schema.set_database_id(combine_id(OB_SYS_TENANT_ID, OB_ORA_SYS_DATABASE_ID));
@ -328,8 +320,7 @@ int ObInnerTableSchema::gv_sstable_ora_schema(ObTableSchema& table_schema)
table_schema.set_create_mem_version(1);
if (OB_SUCC(ret)) {
if (OB_FAIL(table_schema.set_view_definition(
R"__( SELECT M.SVR_IP, M.SVR_PORT, M.TABLE_TYPE, M.TABLE_ID, T.TABLE_NAME, T.TENANT_ID, M.PARTITION_ID, M.INDEX_ID, M.BASE_VERSION, M.MULTI_VERSION_START, M.SNAPSHOT_VERSION, M.START_LOG_ID, M.END_LOG_ID, M.MAX_LOG_ID, M.VERSION, M.LOGICAL_DATA_VERSION, M."SIZE", M.IS_ACTIVE, M.REF, M.WRITE_REF, M.TRX_COUNT, M.PENDING_LOG_PERSISTING_ROW_CNT, M.UPPER_TRANS_VERSION, M.CONTAIN_UNCOMMITTED_ROW FROM SYS.ALL_VIRTUAL_TABLE_MGR_AGENT M JOIN SYS.ALL_VIRTUAL_TABLE_REAL_AGENT T ON M.TABLE_ID = T.TABLE_ID AND T.TENANT_ID = EFFECTIVE_TENANT_ID() AND T.TENANT_ID = SYS_CONTEXT('USERENV', 'CON_ID') )__"))) {
if (OB_FAIL(table_schema.set_view_definition(R"__( SELECT M.SVR_IP, M.SVR_PORT, M.TABLE_TYPE, M.TABLE_ID, T.TABLE_NAME, T.TENANT_ID, M.PARTITION_ID, M.INDEX_ID, M.BASE_VERSION, M.MULTI_VERSION_START, M.SNAPSHOT_VERSION, M.START_LOG_ID, M.END_LOG_ID, M.MAX_LOG_ID, M.VERSION, M.LOGICAL_DATA_VERSION, M."SIZE", M.IS_ACTIVE, M.REF, M.WRITE_REF, M.TRX_COUNT, M.PENDING_LOG_PERSISTING_ROW_CNT, M.UPPER_TRANS_VERSION, M.CONTAIN_UNCOMMITTED_ROW FROM SYS.ALL_VIRTUAL_TABLE_MGR_AGENT M JOIN SYS.ALL_VIRTUAL_TABLE_REAL_AGENT T ON M.TABLE_ID = T.TABLE_ID AND T.TENANT_ID = EFFECTIVE_TENANT_ID() AND T.TENANT_ID = SYS_CONTEXT('USERENV', 'CON_ID') )__"))) {
LOG_ERROR("fail to set view_definition", K(ret));
}
}
@ -341,17 +332,16 @@ int ObInnerTableSchema::gv_sstable_ora_schema(ObTableSchema& table_schema)
table_schema.set_max_used_column_id(column_id);
table_schema.get_part_option().set_max_used_part_id(table_schema.get_part_option().get_part_num() - 1);
table_schema.get_part_option().set_partition_cnt_within_partition_table(
OB_ALL_CORE_TABLE_TID == common::extract_pure_id(table_schema.get_table_id()) ? 1 : 0);
table_schema.get_part_option().set_partition_cnt_within_partition_table(OB_ALL_CORE_TABLE_TID == common::extract_pure_id(table_schema.get_table_id()) ? 1 : 0);
return ret;
}
int ObInnerTableSchema::v_sstable_ora_schema(ObTableSchema& table_schema)
int ObInnerTableSchema::v_sstable_ora_schema(ObTableSchema &table_schema)
{
int ret = OB_SUCCESS;
uint64_t column_id = OB_APP_MIN_COLUMN_ID - 1;
// generated fields:
//generated fields:
table_schema.set_tenant_id(OB_SYS_TENANT_ID);
table_schema.set_tablegroup_id(combine_id(OB_SYS_TENANT_ID, OB_SYS_TABLEGROUP_ID));
table_schema.set_database_id(combine_id(OB_SYS_TENANT_ID, OB_ORA_SYS_DATABASE_ID));
@ -382,8 +372,7 @@ int ObInnerTableSchema::v_sstable_ora_schema(ObTableSchema& table_schema)
table_schema.set_create_mem_version(1);
if (OB_SUCC(ret)) {
if (OB_FAIL(table_schema.set_view_definition(
R"__( SELECT M.TABLE_TYPE, M.TABLE_ID, T.TABLE_NAME, T.TENANT_ID, M.PARTITION_ID, M.INDEX_ID, M.BASE_VERSION, M.MULTI_VERSION_START, M.SNAPSHOT_VERSION, M.START_LOG_ID, M.END_LOG_ID, M.MAX_LOG_ID, M.VERSION, M.LOGICAL_DATA_VERSION, M."SIZE", M.IS_ACTIVE, M.REF, M.WRITE_REF, M.TRX_COUNT, M.PENDING_LOG_PERSISTING_ROW_CNT, M.UPPER_TRANS_VERSION, M.CONTAIN_UNCOMMITTED_ROW FROM SYS.ALL_VIRTUAL_TABLE_MGR_AGENT M JOIN SYS.ALL_VIRTUAL_TABLE_REAL_AGENT T ON M.TABLE_ID = T.TABLE_ID AND T.TENANT_ID = EFFECTIVE_TENANT_ID() WHERE M.SVR_IP=HOST_IP() AND M.SVR_PORT=RPC_PORT() AND T.TENANT_ID = SYS_CONTEXT('USERENV', 'CON_ID') )__"))) {
if (OB_FAIL(table_schema.set_view_definition(R"__( SELECT M.TABLE_TYPE, M.TABLE_ID, T.TABLE_NAME, T.TENANT_ID, M.PARTITION_ID, M.INDEX_ID, M.BASE_VERSION, M.MULTI_VERSION_START, M.SNAPSHOT_VERSION, M.START_LOG_ID, M.END_LOG_ID, M.MAX_LOG_ID, M.VERSION, M.LOGICAL_DATA_VERSION, M."SIZE", M.IS_ACTIVE, M.REF, M.WRITE_REF, M.TRX_COUNT, M.PENDING_LOG_PERSISTING_ROW_CNT, M.UPPER_TRANS_VERSION, M.CONTAIN_UNCOMMITTED_ROW FROM SYS.ALL_VIRTUAL_TABLE_MGR_AGENT M JOIN SYS.ALL_VIRTUAL_TABLE_REAL_AGENT T ON M.TABLE_ID = T.TABLE_ID AND T.TENANT_ID = EFFECTIVE_TENANT_ID() WHERE M.SVR_IP=HOST_IP() AND M.SVR_PORT=RPC_PORT() AND T.TENANT_ID = SYS_CONTEXT('USERENV', 'CON_ID') )__"))) {
LOG_ERROR("fail to set view_definition", K(ret));
}
}
@ -395,17 +384,16 @@ int ObInnerTableSchema::v_sstable_ora_schema(ObTableSchema& table_schema)
table_schema.set_max_used_column_id(column_id);
table_schema.get_part_option().set_max_used_part_id(table_schema.get_part_option().get_part_num() - 1);
table_schema.get_part_option().set_partition_cnt_within_partition_table(
OB_ALL_CORE_TABLE_TID == common::extract_pure_id(table_schema.get_table_id()) ? 1 : 0);
table_schema.get_part_option().set_partition_cnt_within_partition_table(OB_ALL_CORE_TABLE_TID == common::extract_pure_id(table_schema.get_table_id()) ? 1 : 0);
return ret;
}
int ObInnerTableSchema::gv_server_schema_info_ora_schema(ObTableSchema& table_schema)
int ObInnerTableSchema::gv_server_schema_info_ora_schema(ObTableSchema &table_schema)
{
int ret = OB_SUCCESS;
uint64_t column_id = OB_APP_MIN_COLUMN_ID - 1;
// generated fields:
//generated fields:
table_schema.set_tenant_id(OB_SYS_TENANT_ID);
table_schema.set_tablegroup_id(combine_id(OB_SYS_TENANT_ID, OB_SYS_TABLEGROUP_ID));
table_schema.set_database_id(combine_id(OB_SYS_TENANT_ID, OB_ORA_SYS_DATABASE_ID));
@ -436,8 +424,7 @@ int ObInnerTableSchema::gv_server_schema_info_ora_schema(ObTableSchema& table_sc
table_schema.set_create_mem_version(1);
if (OB_SUCC(ret)) {
if (OB_FAIL(table_schema.set_view_definition(
R"__( SELECT SVR_IP, SVR_PORT, TENANT_ID, REFRESHED_SCHEMA_VERSION, RECEIVED_SCHEMA_VERSION, SCHEMA_COUNT, SCHEMA_SIZE, MIN_SSTABLE_SCHEMA_VERSION FROM SYS.ALL_VIRTUAL_SERVER_SCHEMA_INFO_AGENT WHERE TENANT_ID = SYS_CONTEXT('USERENV', 'CON_ID') )__"))) {
if (OB_FAIL(table_schema.set_view_definition(R"__( SELECT SVR_IP, SVR_PORT, TENANT_ID, REFRESHED_SCHEMA_VERSION, RECEIVED_SCHEMA_VERSION, SCHEMA_COUNT, SCHEMA_SIZE, MIN_SSTABLE_SCHEMA_VERSION FROM SYS.ALL_VIRTUAL_SERVER_SCHEMA_INFO_AGENT WHERE TENANT_ID = SYS_CONTEXT('USERENV', 'CON_ID') )__"))) {
LOG_ERROR("fail to set view_definition", K(ret));
}
}
@ -449,17 +436,16 @@ int ObInnerTableSchema::gv_server_schema_info_ora_schema(ObTableSchema& table_sc
table_schema.set_max_used_column_id(column_id);
table_schema.get_part_option().set_max_used_part_id(table_schema.get_part_option().get_part_num() - 1);
table_schema.get_part_option().set_partition_cnt_within_partition_table(
OB_ALL_CORE_TABLE_TID == common::extract_pure_id(table_schema.get_table_id()) ? 1 : 0);
table_schema.get_part_option().set_partition_cnt_within_partition_table(OB_ALL_CORE_TABLE_TID == common::extract_pure_id(table_schema.get_table_id()) ? 1 : 0);
return ret;
}
int ObInnerTableSchema::v_server_schema_info_ora_schema(ObTableSchema& table_schema)
int ObInnerTableSchema::v_server_schema_info_ora_schema(ObTableSchema &table_schema)
{
int ret = OB_SUCCESS;
uint64_t column_id = OB_APP_MIN_COLUMN_ID - 1;
// generated fields:
//generated fields:
table_schema.set_tenant_id(OB_SYS_TENANT_ID);
table_schema.set_tablegroup_id(combine_id(OB_SYS_TENANT_ID, OB_SYS_TABLEGROUP_ID));
table_schema.set_database_id(combine_id(OB_SYS_TENANT_ID, OB_ORA_SYS_DATABASE_ID));
@ -490,8 +476,7 @@ int ObInnerTableSchema::v_server_schema_info_ora_schema(ObTableSchema& table_sch
table_schema.set_create_mem_version(1);
if (OB_SUCC(ret)) {
if (OB_FAIL(table_schema.set_view_definition(
R"__( SELECT TENANT_ID, REFRESHED_SCHEMA_VERSION, RECEIVED_SCHEMA_VERSION, SCHEMA_COUNT, SCHEMA_SIZE, MIN_SSTABLE_SCHEMA_VERSION FROM SYS.ALL_VIRTUAL_SERVER_SCHEMA_INFO_AGENT WHERE SVR_IP=HOST_IP() AND SVR_PORT=RPC_PORT() AND TENANT_ID = SYS_CONTEXT('USERENV', 'CON_ID') )__"))) {
if (OB_FAIL(table_schema.set_view_definition(R"__( SELECT TENANT_ID, REFRESHED_SCHEMA_VERSION, RECEIVED_SCHEMA_VERSION, SCHEMA_COUNT, SCHEMA_SIZE, MIN_SSTABLE_SCHEMA_VERSION FROM SYS.ALL_VIRTUAL_SERVER_SCHEMA_INFO_AGENT WHERE SVR_IP=HOST_IP() AND SVR_PORT=RPC_PORT() AND TENANT_ID = SYS_CONTEXT('USERENV', 'CON_ID') )__"))) {
LOG_ERROR("fail to set view_definition", K(ret));
}
}
@ -503,17 +488,16 @@ int ObInnerTableSchema::v_server_schema_info_ora_schema(ObTableSchema& table_sch
table_schema.set_max_used_column_id(column_id);
table_schema.get_part_option().set_max_used_part_id(table_schema.get_part_option().get_part_num() - 1);
table_schema.get_part_option().set_partition_cnt_within_partition_table(
OB_ALL_CORE_TABLE_TID == common::extract_pure_id(table_schema.get_table_id()) ? 1 : 0);
table_schema.get_part_option().set_partition_cnt_within_partition_table(OB_ALL_CORE_TABLE_TID == common::extract_pure_id(table_schema.get_table_id()) ? 1 : 0);
return ret;
}
int ObInnerTableSchema::gv_sql_plan_monitor_ora_schema(ObTableSchema& table_schema)
int ObInnerTableSchema::gv_sql_plan_monitor_ora_schema(ObTableSchema &table_schema)
{
int ret = OB_SUCCESS;
uint64_t column_id = OB_APP_MIN_COLUMN_ID - 1;
// generated fields:
//generated fields:
table_schema.set_tenant_id(OB_SYS_TENANT_ID);
table_schema.set_tablegroup_id(combine_id(OB_SYS_TENANT_ID, OB_SYS_TABLEGROUP_ID));
table_schema.set_database_id(combine_id(OB_SYS_TENANT_ID, OB_ORA_SYS_DATABASE_ID));
@ -544,8 +528,7 @@ int ObInnerTableSchema::gv_sql_plan_monitor_ora_schema(ObTableSchema& table_sche
table_schema.set_create_mem_version(1);
if (OB_SUCC(ret)) {
if (OB_FAIL(table_schema.set_view_definition(
R"__(SELECT TENANT_ID CON_ID, REQUEST_ID, NULL KEY, NULL STATUS, SVR_IP, SVR_PORT, TRACE_ID, FIRST_REFRESH_TIME, LAST_REFRESH_TIME, FIRST_CHANGE_TIME, LAST_CHANGE_TIME, NULL REFRESH_COUNT, NULL SID, THREAD_ID PROCESS_NAME, NULL SQL_ID, NULL SQL_EXEC_START, NULL SQL_EXEC_ID, NULL SQL_PLAN_HASH_VALUE, NULL SQL_CHILD_ADDRESS, NULL PLAN_PARENT_ID, PLAN_LINE_ID, PLAN_OPERATION, NULL PLAN_OPTIONS, NULL PLAN_OBJECT_OWNER, NULL PLAN_OBJECT_NAME, NULL PLAN_OBJECT_TYPE, PLAN_DEPTH, NULL PLAN_POSITION, NULL PLAN_COST, NULL PLAN_CARDINALITY, NULL PLAN_BYTES, NULL PLAN_TIME, NULL PLAN_PARTITION_START, NULL PLAN_PARTITION_STOP, NULL PLAN_CPU_COST, NULL PLAN_IO_COST, NULL PLAN_TEMP_SPACE, STARTS, OUTPUT_ROWS, NULL IO_INTERCONNECT_BYTES, NULL PHYSICAL_READ_REQUESTS, NULL PHYSICAL_READ_BYTES, NULL PHYSICAL_WRITE_REQUESTS, NULL PHYSICAL_WRITE_BYTES, NULL WORKAREA_MEM, NULL WORKAREA_MAX_MEM, NULL WORKAREA_TEMPSEG, NULL WORKAREA_MAX_TEMPSEG, NULL OTHERSTAT_GROUP_ID, OTHERSTAT_1_ID, NULL OTHERSTAT_1_TYPE, OTHERSTAT_1_VALUE, OTHERSTAT_2_ID, NULL OTHERSTAT_2_TYPE, OTHERSTAT_2_VALUE, OTHERSTAT_3_ID, NULL OTHERSTAT_3_TYPE, OTHERSTAT_3_VALUE, OTHERSTAT_4_ID, NULL OTHERSTAT_4_TYPE, OTHERSTAT_4_VALUE, OTHERSTAT_5_ID, NULL OTHERSTAT_5_TYPE, OTHERSTAT_5_VALUE, OTHERSTAT_6_ID, NULL OTHERSTAT_6_TYPE, OTHERSTAT_6_VALUE, OTHERSTAT_7_ID, NULL OTHERSTAT_7_TYPE, OTHERSTAT_7_VALUE, OTHERSTAT_8_ID, NULL OTHERSTAT_8_TYPE, OTHERSTAT_8_VALUE, OTHERSTAT_9_ID, NULL OTHERSTAT_9_TYPE, OTHERSTAT_9_VALUE, OTHERSTAT_10_ID, NULL OTHERSTAT_10_TYPE, OTHERSTAT_10_VALUE, NULL OTHER_XML, NULL PLAN_OPERATION_INACTIVE FROM SYS.ALL_VIRTUAL_SQL_PLAN_MONITOR WHERE (is_serving_tenant(svr_ip, svr_port, effective_tenant_id()) = 1) and (tenant_id = effective_tenant_id() or effective_tenant_id() = 1) )__"))) {
if (OB_FAIL(table_schema.set_view_definition(R"__(SELECT TENANT_ID CON_ID, REQUEST_ID, NULL KEY, NULL STATUS, SVR_IP, SVR_PORT, TRACE_ID, FIRST_REFRESH_TIME, LAST_REFRESH_TIME, FIRST_CHANGE_TIME, LAST_CHANGE_TIME, NULL REFRESH_COUNT, NULL SID, THREAD_ID PROCESS_NAME, NULL SQL_ID, NULL SQL_EXEC_START, NULL SQL_EXEC_ID, NULL SQL_PLAN_HASH_VALUE, NULL SQL_CHILD_ADDRESS, NULL PLAN_PARENT_ID, PLAN_LINE_ID, PLAN_OPERATION, NULL PLAN_OPTIONS, NULL PLAN_OBJECT_OWNER, NULL PLAN_OBJECT_NAME, NULL PLAN_OBJECT_TYPE, PLAN_DEPTH, NULL PLAN_POSITION, NULL PLAN_COST, NULL PLAN_CARDINALITY, NULL PLAN_BYTES, NULL PLAN_TIME, NULL PLAN_PARTITION_START, NULL PLAN_PARTITION_STOP, NULL PLAN_CPU_COST, NULL PLAN_IO_COST, NULL PLAN_TEMP_SPACE, STARTS, OUTPUT_ROWS, NULL IO_INTERCONNECT_BYTES, NULL PHYSICAL_READ_REQUESTS, NULL PHYSICAL_READ_BYTES, NULL PHYSICAL_WRITE_REQUESTS, NULL PHYSICAL_WRITE_BYTES, NULL WORKAREA_MEM, NULL WORKAREA_MAX_MEM, NULL WORKAREA_TEMPSEG, NULL WORKAREA_MAX_TEMPSEG, NULL OTHERSTAT_GROUP_ID, OTHERSTAT_1_ID, NULL OTHERSTAT_1_TYPE, OTHERSTAT_1_VALUE, OTHERSTAT_2_ID, NULL OTHERSTAT_2_TYPE, OTHERSTAT_2_VALUE, OTHERSTAT_3_ID, NULL OTHERSTAT_3_TYPE, OTHERSTAT_3_VALUE, OTHERSTAT_4_ID, NULL OTHERSTAT_4_TYPE, OTHERSTAT_4_VALUE, OTHERSTAT_5_ID, NULL OTHERSTAT_5_TYPE, OTHERSTAT_5_VALUE, OTHERSTAT_6_ID, NULL OTHERSTAT_6_TYPE, OTHERSTAT_6_VALUE, OTHERSTAT_7_ID, NULL OTHERSTAT_7_TYPE, OTHERSTAT_7_VALUE, OTHERSTAT_8_ID, NULL OTHERSTAT_8_TYPE, OTHERSTAT_8_VALUE, OTHERSTAT_9_ID, NULL OTHERSTAT_9_TYPE, OTHERSTAT_9_VALUE, OTHERSTAT_10_ID, NULL OTHERSTAT_10_TYPE, OTHERSTAT_10_VALUE, NULL OTHER_XML, NULL PLAN_OPERATION_INACTIVE FROM SYS.ALL_VIRTUAL_SQL_PLAN_MONITOR WHERE (is_serving_tenant(svr_ip, svr_port, effective_tenant_id()) = 1) and (tenant_id = effective_tenant_id() or effective_tenant_id() = 1) )__"))) {
LOG_ERROR("fail to set view_definition", K(ret));
}
}
@ -557,17 +540,16 @@ int ObInnerTableSchema::gv_sql_plan_monitor_ora_schema(ObTableSchema& table_sche
table_schema.set_max_used_column_id(column_id);
table_schema.get_part_option().set_max_used_part_id(table_schema.get_part_option().get_part_num() - 1);
table_schema.get_part_option().set_partition_cnt_within_partition_table(
OB_ALL_CORE_TABLE_TID == common::extract_pure_id(table_schema.get_table_id()) ? 1 : 0);
table_schema.get_part_option().set_partition_cnt_within_partition_table(OB_ALL_CORE_TABLE_TID == common::extract_pure_id(table_schema.get_table_id()) ? 1 : 0);
return ret;
}
int ObInnerTableSchema::v_sql_plan_monitor_ora_schema(ObTableSchema& table_schema)
int ObInnerTableSchema::v_sql_plan_monitor_ora_schema(ObTableSchema &table_schema)
{
int ret = OB_SUCCESS;
uint64_t column_id = OB_APP_MIN_COLUMN_ID - 1;
// generated fields:
//generated fields:
table_schema.set_tenant_id(OB_SYS_TENANT_ID);
table_schema.set_tablegroup_id(combine_id(OB_SYS_TENANT_ID, OB_SYS_TABLEGROUP_ID));
table_schema.set_database_id(combine_id(OB_SYS_TENANT_ID, OB_ORA_SYS_DATABASE_ID));
@ -598,8 +580,7 @@ int ObInnerTableSchema::v_sql_plan_monitor_ora_schema(ObTableSchema& table_schem
table_schema.set_create_mem_version(1);
if (OB_SUCC(ret)) {
if (OB_FAIL(table_schema.set_view_definition(
R"__( SELECT * from SYS.GV$SQL_PLAN_MONITOR WHERE SVR_IP=HOST_IP() AND SVR_PORT=RPC_Port() )__"))) {
if (OB_FAIL(table_schema.set_view_definition(R"__( SELECT * from SYS.GV$SQL_PLAN_MONITOR WHERE SVR_IP=HOST_IP() AND SVR_PORT=RPC_Port() )__"))) {
LOG_ERROR("fail to set view_definition", K(ret));
}
}
@ -611,17 +592,16 @@ int ObInnerTableSchema::v_sql_plan_monitor_ora_schema(ObTableSchema& table_schem
table_schema.set_max_used_column_id(column_id);
table_schema.get_part_option().set_max_used_part_id(table_schema.get_part_option().get_part_num() - 1);
table_schema.get_part_option().set_partition_cnt_within_partition_table(
OB_ALL_CORE_TABLE_TID == common::extract_pure_id(table_schema.get_table_id()) ? 1 : 0);
table_schema.get_part_option().set_partition_cnt_within_partition_table(OB_ALL_CORE_TABLE_TID == common::extract_pure_id(table_schema.get_table_id()) ? 1 : 0);
return ret;
}
int ObInnerTableSchema::v_sql_monitor_statname_ora_schema(ObTableSchema& table_schema)
int ObInnerTableSchema::v_sql_monitor_statname_ora_schema(ObTableSchema &table_schema)
{
int ret = OB_SUCCESS;
uint64_t column_id = OB_APP_MIN_COLUMN_ID - 1;
// generated fields:
//generated fields:
table_schema.set_tenant_id(OB_SYS_TENANT_ID);
table_schema.set_tablegroup_id(combine_id(OB_SYS_TENANT_ID, OB_SYS_TABLEGROUP_ID));
table_schema.set_database_id(combine_id(OB_SYS_TENANT_ID, OB_ORA_SYS_DATABASE_ID));
@ -652,8 +632,7 @@ int ObInnerTableSchema::v_sql_monitor_statname_ora_schema(ObTableSchema& table_s
table_schema.set_create_mem_version(1);
if (OB_SUCC(ret)) {
if (OB_FAIL(table_schema.set_view_definition(
R"__( SELECT NULL CON_ID, ID, GROUP_ID, NAME, DESCRIPTION, 0 TYPE, 0 FLAGS FROM SYS.ALL_VIRTUAL_SQL_MONITOR_STATNAME )__"))) {
if (OB_FAIL(table_schema.set_view_definition(R"__( SELECT NULL CON_ID, ID, GROUP_ID, NAME, DESCRIPTION, 0 TYPE, 0 FLAGS FROM SYS.ALL_VIRTUAL_SQL_MONITOR_STATNAME )__"))) {
LOG_ERROR("fail to set view_definition", K(ret));
}
}
@ -665,17 +644,16 @@ int ObInnerTableSchema::v_sql_monitor_statname_ora_schema(ObTableSchema& table_s
table_schema.set_max_used_column_id(column_id);
table_schema.get_part_option().set_max_used_part_id(table_schema.get_part_option().get_part_num() - 1);
table_schema.get_part_option().set_partition_cnt_within_partition_table(
OB_ALL_CORE_TABLE_TID == common::extract_pure_id(table_schema.get_table_id()) ? 1 : 0);
table_schema.get_part_option().set_partition_cnt_within_partition_table(OB_ALL_CORE_TABLE_TID == common::extract_pure_id(table_schema.get_table_id()) ? 1 : 0);
return ret;
}
int ObInnerTableSchema::gv_lock_ora_schema(ObTableSchema& table_schema)
int ObInnerTableSchema::gv_lock_ora_schema(ObTableSchema &table_schema)
{
int ret = OB_SUCCESS;
uint64_t column_id = OB_APP_MIN_COLUMN_ID - 1;
// generated fields:
//generated fields:
table_schema.set_tenant_id(OB_SYS_TENANT_ID);
table_schema.set_tablegroup_id(combine_id(OB_SYS_TENANT_ID, OB_SYS_TABLEGROUP_ID));
table_schema.set_database_id(combine_id(OB_SYS_TENANT_ID, OB_ORA_SYS_DATABASE_ID));
@ -706,8 +684,7 @@ int ObInnerTableSchema::gv_lock_ora_schema(ObTableSchema& table_schema)
table_schema.set_create_mem_version(1);
if (OB_SUCC(ret)) {
if (OB_FAIL(table_schema.set_view_definition(
R"__( SELECT DISTINCT A.SVR_IP AS SVR_IP, A.SVR_PORT AS SVR_PORT, A.TABLE_ID AS TABLE_ID, A.ROWKEY AS ADDR, B.ROW_LOCK_ADDR AS KADDR, B.SESSION_ID AS SID, A.TYPE AS TYPE, A.LOCK_MODE AS LMODE, CAST(NULL AS NUMBER) AS REQUEST, A.TIME_AFTER_RECV AS CTIME, A.BLOCK_SESSION_ID AS BLOCK, TRUNC(A.TABLE_ID / POWER(2, 40)) AS CON_ID FROM SYS.ALL_VIRTUAL_LOCK_WAIT_STAT A JOIN SYS.ALL_VIRTUAL_TRANS_LOCK_STAT B ON A.SVR_IP = B.SVR_IP AND A.SVR_PORT = B.SVR_PORT AND A.TABLE_ID = B.TABLE_ID AND SUBSTR(A.ROWKEY, 1, 512) = SUBSTR(B.ROWKEY, 1, 512) WHERE (SYS_CONTEXT('USERENV', 'CON_ID') = 1 OR SYS_CONTEXT('USERENV', 'CON_ID') = TRUNC(A.TABLE_ID / POWER(2, 40))) AND A.SESSION_ID = A.BLOCK_SESSION_ID )__"))) {
if (OB_FAIL(table_schema.set_view_definition(R"__( SELECT DISTINCT A.SVR_IP AS SVR_IP, A.SVR_PORT AS SVR_PORT, A.TABLE_ID AS TABLE_ID, A.ROWKEY AS ADDR, B.ROW_LOCK_ADDR AS KADDR, B.SESSION_ID AS SID, A.TYPE AS TYPE, A.LOCK_MODE AS LMODE, CAST(NULL AS NUMBER) AS REQUEST, A.TIME_AFTER_RECV AS CTIME, A.BLOCK_SESSION_ID AS BLOCK, TRUNC(A.TABLE_ID / POWER(2, 40)) AS CON_ID FROM SYS.ALL_VIRTUAL_LOCK_WAIT_STAT A JOIN SYS.ALL_VIRTUAL_TRANS_LOCK_STAT B ON A.SVR_IP = B.SVR_IP AND A.SVR_PORT = B.SVR_PORT AND A.TABLE_ID = B.TABLE_ID AND SUBSTR(A.ROWKEY, 1, 512) = SUBSTR(B.ROWKEY, 1, 512) WHERE (SYS_CONTEXT('USERENV', 'CON_ID') = 1 OR SYS_CONTEXT('USERENV', 'CON_ID') = TRUNC(A.TABLE_ID / POWER(2, 40))) AND A.SESSION_ID = A.BLOCK_SESSION_ID )__"))) {
LOG_ERROR("fail to set view_definition", K(ret));
}
}
@ -719,17 +696,16 @@ int ObInnerTableSchema::gv_lock_ora_schema(ObTableSchema& table_schema)
table_schema.set_max_used_column_id(column_id);
table_schema.get_part_option().set_max_used_part_id(table_schema.get_part_option().get_part_num() - 1);
table_schema.get_part_option().set_partition_cnt_within_partition_table(
OB_ALL_CORE_TABLE_TID == common::extract_pure_id(table_schema.get_table_id()) ? 1 : 0);
table_schema.get_part_option().set_partition_cnt_within_partition_table(OB_ALL_CORE_TABLE_TID == common::extract_pure_id(table_schema.get_table_id()) ? 1 : 0);
return ret;
}
int ObInnerTableSchema::v_lock_ora_schema(ObTableSchema& table_schema)
int ObInnerTableSchema::v_lock_ora_schema(ObTableSchema &table_schema)
{
int ret = OB_SUCCESS;
uint64_t column_id = OB_APP_MIN_COLUMN_ID - 1;
// generated fields:
//generated fields:
table_schema.set_tenant_id(OB_SYS_TENANT_ID);
table_schema.set_tablegroup_id(combine_id(OB_SYS_TENANT_ID, OB_SYS_TABLEGROUP_ID));
table_schema.set_database_id(combine_id(OB_SYS_TENANT_ID, OB_ORA_SYS_DATABASE_ID));
@ -760,8 +736,7 @@ int ObInnerTableSchema::v_lock_ora_schema(ObTableSchema& table_schema)
table_schema.set_create_mem_version(1);
if (OB_SUCC(ret)) {
if (OB_FAIL(table_schema.set_view_definition(
R"__( SELECT TABLE_ID, ADDR, KADDR, SID, TYPE, LMODE, REQUEST, CTIME, BLOCK, CON_ID FROM GV$LOCK WHERE SVR_IP = HOST_IP() AND SVR_PORT = RPC_PORT() )__"))) {
if (OB_FAIL(table_schema.set_view_definition(R"__( SELECT TABLE_ID, ADDR, KADDR, SID, TYPE, LMODE, REQUEST, CTIME, BLOCK, CON_ID FROM GV$LOCK WHERE SVR_IP = HOST_IP() AND SVR_PORT = RPC_PORT() )__"))) {
LOG_ERROR("fail to set view_definition", K(ret));
}
}
@ -773,17 +748,16 @@ int ObInnerTableSchema::v_lock_ora_schema(ObTableSchema& table_schema)
table_schema.set_max_used_column_id(column_id);
table_schema.get_part_option().set_max_used_part_id(table_schema.get_part_option().get_part_num() - 1);
table_schema.get_part_option().set_partition_cnt_within_partition_table(
OB_ALL_CORE_TABLE_TID == common::extract_pure_id(table_schema.get_table_id()) ? 1 : 0);
table_schema.get_part_option().set_partition_cnt_within_partition_table(OB_ALL_CORE_TABLE_TID == common::extract_pure_id(table_schema.get_table_id()) ? 1 : 0);
return ret;
}
int ObInnerTableSchema::gv_open_cursor_ora_schema(ObTableSchema& table_schema)
int ObInnerTableSchema::gv_open_cursor_ora_schema(ObTableSchema &table_schema)
{
int ret = OB_SUCCESS;
uint64_t column_id = OB_APP_MIN_COLUMN_ID - 1;
// generated fields:
//generated fields:
table_schema.set_tenant_id(OB_SYS_TENANT_ID);
table_schema.set_tablegroup_id(combine_id(OB_SYS_TENANT_ID, OB_SYS_TABLEGROUP_ID));
table_schema.set_database_id(combine_id(OB_SYS_TENANT_ID, OB_ORA_SYS_DATABASE_ID));
@ -814,8 +788,7 @@ int ObInnerTableSchema::gv_open_cursor_ora_schema(ObTableSchema& table_schema)
table_schema.set_create_mem_version(1);
if (OB_SUCC(ret)) {
if (OB_FAIL(table_schema.set_view_definition(
R"__( SELECT SVR_IP, SVR_PORT, SADDR, SID, USER_NAME, ADDRESS, HASH_VALUE, SQL_ID, SQL_TEXT, CAST(LAST_SQL_ACTIVE_TIME as DATE) LAST_SQL_ACTIVE_TIME, SQL_EXEC_ID FROM SYS.ALL_VIRTUAL_OPEN_CURSOR )__"))) {
if (OB_FAIL(table_schema.set_view_definition(R"__( SELECT SVR_IP, SVR_PORT, SADDR, SID, USER_NAME, ADDRESS, HASH_VALUE, SQL_ID, SQL_TEXT, CAST(LAST_SQL_ACTIVE_TIME as DATE) LAST_SQL_ACTIVE_TIME, SQL_EXEC_ID FROM SYS.ALL_VIRTUAL_OPEN_CURSOR )__"))) {
LOG_ERROR("fail to set view_definition", K(ret));
}
}
@ -827,17 +800,16 @@ int ObInnerTableSchema::gv_open_cursor_ora_schema(ObTableSchema& table_schema)
table_schema.set_max_used_column_id(column_id);
table_schema.get_part_option().set_max_used_part_id(table_schema.get_part_option().get_part_num() - 1);
table_schema.get_part_option().set_partition_cnt_within_partition_table(
OB_ALL_CORE_TABLE_TID == common::extract_pure_id(table_schema.get_table_id()) ? 1 : 0);
table_schema.get_part_option().set_partition_cnt_within_partition_table(OB_ALL_CORE_TABLE_TID == common::extract_pure_id(table_schema.get_table_id()) ? 1 : 0);
return ret;
}
int ObInnerTableSchema::v_open_cursor_ora_schema(ObTableSchema& table_schema)
int ObInnerTableSchema::v_open_cursor_ora_schema(ObTableSchema &table_schema)
{
int ret = OB_SUCCESS;
uint64_t column_id = OB_APP_MIN_COLUMN_ID - 1;
// generated fields:
//generated fields:
table_schema.set_tenant_id(OB_SYS_TENANT_ID);
table_schema.set_tablegroup_id(combine_id(OB_SYS_TENANT_ID, OB_SYS_TABLEGROUP_ID));
table_schema.set_database_id(combine_id(OB_SYS_TENANT_ID, OB_ORA_SYS_DATABASE_ID));
@ -868,8 +840,7 @@ int ObInnerTableSchema::v_open_cursor_ora_schema(ObTableSchema& table_schema)
table_schema.set_create_mem_version(1);
if (OB_SUCC(ret)) {
if (OB_FAIL(table_schema.set_view_definition(
R"__( SELECT SADDR, SID, USER_NAME, ADDRESS, HASH_VALUE, SQL_ID, SQL_TEXT, LAST_SQL_ACTIVE_TIME, SQL_EXEC_ID FROM GV$OPEN_CURSOR WHERE svr_ip = host_ip() AND svr_port = rpc_port() )__"))) {
if (OB_FAIL(table_schema.set_view_definition(R"__( SELECT SADDR, SID, USER_NAME, ADDRESS, HASH_VALUE, SQL_ID, SQL_TEXT, LAST_SQL_ACTIVE_TIME, SQL_EXEC_ID FROM GV$OPEN_CURSOR WHERE svr_ip = host_ip() AND svr_port = rpc_port() )__"))) {
LOG_ERROR("fail to set view_definition", K(ret));
}
}
@ -881,17 +852,16 @@ int ObInnerTableSchema::v_open_cursor_ora_schema(ObTableSchema& table_schema)
table_schema.set_max_used_column_id(column_id);
table_schema.get_part_option().set_max_used_part_id(table_schema.get_part_option().get_part_num() - 1);
table_schema.get_part_option().set_partition_cnt_within_partition_table(
OB_ALL_CORE_TABLE_TID == common::extract_pure_id(table_schema.get_table_id()) ? 1 : 0);
table_schema.get_part_option().set_partition_cnt_within_partition_table(OB_ALL_CORE_TABLE_TID == common::extract_pure_id(table_schema.get_table_id()) ? 1 : 0);
return ret;
}
int ObInnerTableSchema::v_timezone_names_ora_schema(ObTableSchema& table_schema)
int ObInnerTableSchema::v_timezone_names_ora_schema(ObTableSchema &table_schema)
{
int ret = OB_SUCCESS;
uint64_t column_id = OB_APP_MIN_COLUMN_ID - 1;
// generated fields:
//generated fields:
table_schema.set_tenant_id(OB_SYS_TENANT_ID);
table_schema.set_tablegroup_id(combine_id(OB_SYS_TENANT_ID, OB_SYS_TABLEGROUP_ID));
table_schema.set_database_id(combine_id(OB_SYS_TENANT_ID, OB_ORA_SYS_DATABASE_ID));
@ -922,8 +892,7 @@ int ObInnerTableSchema::v_timezone_names_ora_schema(ObTableSchema& table_schema)
table_schema.set_create_mem_version(1);
if (OB_SUCC(ret)) {
if (OB_FAIL(table_schema.set_view_definition(
R"__( SELECT NA.NAME AS TZNAME, TR.ABBREVIATION AS TZABBREV, NA.TENANT_ID AS CON_ID FROM SYS.ALL_VIRTUAL_TENANT_TIME_ZONE_NAME_REAL_AGENT NA JOIN SYS.ALL_VIRTUAL_TENANT_TIME_ZONE_TRANSITION_TYPE_REAL_AGENT TR ON NA.TIME_ZONE_ID = TR.TIME_ZONE_ID AND NA.TENANT_ID = EFFECTIVE_TENANT_ID() AND TR.TENANT_ID = EFFECTIVE_TENANT_ID() )__"))) {
if (OB_FAIL(table_schema.set_view_definition(R"__( SELECT NA.NAME AS TZNAME, TR.ABBREVIATION AS TZABBREV, NA.TENANT_ID AS CON_ID FROM SYS.ALL_VIRTUAL_TENANT_TIME_ZONE_NAME_REAL_AGENT NA JOIN SYS.ALL_VIRTUAL_TENANT_TIME_ZONE_TRANSITION_TYPE_REAL_AGENT TR ON NA.TIME_ZONE_ID = TR.TIME_ZONE_ID AND NA.TENANT_ID = EFFECTIVE_TENANT_ID() AND TR.TENANT_ID = EFFECTIVE_TENANT_ID() )__"))) {
LOG_ERROR("fail to set view_definition", K(ret));
}
}
@ -935,17 +904,16 @@ int ObInnerTableSchema::v_timezone_names_ora_schema(ObTableSchema& table_schema)
table_schema.set_max_used_column_id(column_id);
table_schema.get_part_option().set_max_used_part_id(table_schema.get_part_option().get_part_num() - 1);
table_schema.get_part_option().set_partition_cnt_within_partition_table(
OB_ALL_CORE_TABLE_TID == common::extract_pure_id(table_schema.get_table_id()) ? 1 : 0);
table_schema.get_part_option().set_partition_cnt_within_partition_table(OB_ALL_CORE_TABLE_TID == common::extract_pure_id(table_schema.get_table_id()) ? 1 : 0);
return ret;
}
int ObInnerTableSchema::gv_global_transaction_ora_schema(ObTableSchema& table_schema)
int ObInnerTableSchema::gv_global_transaction_ora_schema(ObTableSchema &table_schema)
{
int ret = OB_SUCCESS;
uint64_t column_id = OB_APP_MIN_COLUMN_ID - 1;
// generated fields:
//generated fields:
table_schema.set_tenant_id(OB_SYS_TENANT_ID);
table_schema.set_tablegroup_id(combine_id(OB_SYS_TENANT_ID, OB_SYS_TABLEGROUP_ID));
table_schema.set_database_id(combine_id(OB_SYS_TENANT_ID, OB_ORA_SYS_DATABASE_ID));
@ -976,8 +944,7 @@ int ObInnerTableSchema::gv_global_transaction_ora_schema(ObTableSchema& table_sc
table_schema.set_create_mem_version(1);
if (OB_SUCC(ret)) {
if (OB_FAIL(table_schema.set_view_definition(
R"__( SELECT A.FORMAT_ID AS FORMATID, A.SCHEDULER_IP AS SVR_IP, A.SCHEDULER_PORT AS SVR_PORT, RAWTOHEX(A.GTRID) AS GLOBALID, RAWTOHEX(A.BQUAL) AS BRANCHID, B.BRANCHES AS BRANCHES, B.BRANCHES AS REFCOUNT, NVL(C.PREPARECOUNT, 0) AS PREPARECOUNT, 'ACTIVE' AS STATE, 0 AS FLAGS, CASE WHEN bitand(end_flag,65536)=65536 THEN 'LOOSELY COUPLED' ELSE 'TIGHTLY COUPLED' END AS COUPLING, SYS_CONTEXT('USERENV', 'CON_ID') AS CON_ID FROM SYS.ALL_VIRTUAL_TENANT_GLOBAL_TRANSACTION_AGENT A LEFT JOIN (SELECT GTRID, FORMAT_ID, COUNT(BQUAL) AS BRANCHES FROM SYS.ALL_VIRTUAL_TENANT_GLOBAL_TRANSACTION_AGENT GROUP BY GTRID, FORMAT_ID) B ON A.GTRID = B.GTRID AND A.FORMAT_ID = B.FORMAT_ID LEFT JOIN (SELECT GTRID, FORMAT_ID, COUNT(BQUAL) AS PREPARECOUNT FROM SYS.ALL_VIRTUAL_TENANT_GLOBAL_TRANSACTION_AGENT WHERE STATE = 3 GROUP BY GTRID, FORMAT_ID) C ON B.GTRID = C.GTRID AND B.FORMAT_ID = C.FORMAT_ID WHERE A.format_id != -2 )__"))) {
if (OB_FAIL(table_schema.set_view_definition(R"__( SELECT A.FORMAT_ID AS FORMATID, A.SCHEDULER_IP AS SVR_IP, A.SCHEDULER_PORT AS SVR_PORT, RAWTOHEX(A.GTRID) AS GLOBALID, RAWTOHEX(A.BQUAL) AS BRANCHID, B.BRANCHES AS BRANCHES, B.BRANCHES AS REFCOUNT, NVL(C.PREPARECOUNT, 0) AS PREPARECOUNT, 'ACTIVE' AS STATE, 0 AS FLAGS, CASE WHEN bitand(end_flag,65536)=65536 THEN 'LOOSELY COUPLED' ELSE 'TIGHTLY COUPLED' END AS COUPLING, SYS_CONTEXT('USERENV', 'CON_ID') AS CON_ID FROM SYS.ALL_VIRTUAL_TENANT_GLOBAL_TRANSACTION_AGENT A LEFT JOIN (SELECT GTRID, FORMAT_ID, COUNT(BQUAL) AS BRANCHES FROM SYS.ALL_VIRTUAL_TENANT_GLOBAL_TRANSACTION_AGENT GROUP BY GTRID, FORMAT_ID) B ON A.GTRID = B.GTRID AND A.FORMAT_ID = B.FORMAT_ID LEFT JOIN (SELECT GTRID, FORMAT_ID, COUNT(BQUAL) AS PREPARECOUNT FROM SYS.ALL_VIRTUAL_TENANT_GLOBAL_TRANSACTION_AGENT WHERE STATE = 3 GROUP BY GTRID, FORMAT_ID) C ON B.GTRID = C.GTRID AND B.FORMAT_ID = C.FORMAT_ID WHERE A.format_id != -2 )__"))) {
LOG_ERROR("fail to set view_definition", K(ret));
}
}
@ -989,17 +956,16 @@ int ObInnerTableSchema::gv_global_transaction_ora_schema(ObTableSchema& table_sc
table_schema.set_max_used_column_id(column_id);
table_schema.get_part_option().set_max_used_part_id(table_schema.get_part_option().get_part_num() - 1);
table_schema.get_part_option().set_partition_cnt_within_partition_table(
OB_ALL_CORE_TABLE_TID == common::extract_pure_id(table_schema.get_table_id()) ? 1 : 0);
table_schema.get_part_option().set_partition_cnt_within_partition_table(OB_ALL_CORE_TABLE_TID == common::extract_pure_id(table_schema.get_table_id()) ? 1 : 0);
return ret;
}
int ObInnerTableSchema::v_global_transaction_ora_schema(ObTableSchema& table_schema)
int ObInnerTableSchema::v_global_transaction_ora_schema(ObTableSchema &table_schema)
{
int ret = OB_SUCCESS;
uint64_t column_id = OB_APP_MIN_COLUMN_ID - 1;
// generated fields:
//generated fields:
table_schema.set_tenant_id(OB_SYS_TENANT_ID);
table_schema.set_tablegroup_id(combine_id(OB_SYS_TENANT_ID, OB_SYS_TABLEGROUP_ID));
table_schema.set_database_id(combine_id(OB_SYS_TENANT_ID, OB_ORA_SYS_DATABASE_ID));
@ -1030,8 +996,7 @@ int ObInnerTableSchema::v_global_transaction_ora_schema(ObTableSchema& table_sch
table_schema.set_create_mem_version(1);
if (OB_SUCC(ret)) {
if (OB_FAIL(table_schema.set_view_definition(
R"__( SELECT FORMATID, GLOBALID, BRANCHID, BRANCHES, REFCOUNT, PREPARECOUNT, STATE, FLAGS, COUPLING, CON_ID FROM GV$GLOBAL_TRANSACTION WHERE SVR_IP = HOST_IP() AND SVR_PORT = RPC_PORT() )__"))) {
if (OB_FAIL(table_schema.set_view_definition(R"__( SELECT FORMATID, GLOBALID, BRANCHID, BRANCHES, REFCOUNT, PREPARECOUNT, STATE, FLAGS, COUPLING, CON_ID FROM GV$GLOBAL_TRANSACTION WHERE SVR_IP = HOST_IP() AND SVR_PORT = RPC_PORT() )__"))) {
LOG_ERROR("fail to set view_definition", K(ret));
}
}
@ -1043,17 +1008,16 @@ int ObInnerTableSchema::v_global_transaction_ora_schema(ObTableSchema& table_sch
table_schema.set_max_used_column_id(column_id);
table_schema.get_part_option().set_max_used_part_id(table_schema.get_part_option().get_part_num() - 1);
table_schema.get_part_option().set_partition_cnt_within_partition_table(
OB_ALL_CORE_TABLE_TID == common::extract_pure_id(table_schema.get_table_id()) ? 1 : 0);
table_schema.get_part_option().set_partition_cnt_within_partition_table(OB_ALL_CORE_TABLE_TID == common::extract_pure_id(table_schema.get_table_id()) ? 1 : 0);
return ret;
}
int ObInnerTableSchema::v_restore_point_ora_schema(ObTableSchema& table_schema)
int ObInnerTableSchema::v_restore_point_ora_schema(ObTableSchema &table_schema)
{
int ret = OB_SUCCESS;
uint64_t column_id = OB_APP_MIN_COLUMN_ID - 1;
// generated fields:
//generated fields:
table_schema.set_tenant_id(OB_SYS_TENANT_ID);
table_schema.set_tablegroup_id(combine_id(OB_SYS_TENANT_ID, OB_SYS_TABLEGROUP_ID));
table_schema.set_database_id(combine_id(OB_SYS_TENANT_ID, OB_ORA_SYS_DATABASE_ID));
@ -1084,8 +1048,7 @@ int ObInnerTableSchema::v_restore_point_ora_schema(ObTableSchema& table_schema)
table_schema.set_create_mem_version(1);
if (OB_SUCC(ret)) {
if (OB_FAIL(table_schema.set_view_definition(
R"__(SELECT TENANT_ID, SNAPSHOT_TS as SNAPSHOT, GMT_CREATE as TIME, EXTRA_INFO as NAME FROM SYS.ALL_VIRTUAL_ACQUIRED_SNAPSHOT_AGENT WHERE snapshot_type = 3 and (tenant_id = effective_tenant_id() or effective_tenant_id() = 1) )__"))) {
if (OB_FAIL(table_schema.set_view_definition(R"__(SELECT TENANT_ID, SNAPSHOT_TS as SNAPSHOT, GMT_CREATE as TIME, EXTRA_INFO as NAME FROM SYS.ALL_VIRTUAL_ACQUIRED_SNAPSHOT_AGENT WHERE snapshot_type = 3 and (tenant_id = effective_tenant_id() or effective_tenant_id() = 1) )__"))) {
LOG_ERROR("fail to set view_definition", K(ret));
}
}
@ -1097,17 +1060,16 @@ int ObInnerTableSchema::v_restore_point_ora_schema(ObTableSchema& table_schema)
table_schema.set_max_used_column_id(column_id);
table_schema.get_part_option().set_max_used_part_id(table_schema.get_part_option().get_part_num() - 1);
table_schema.get_part_option().set_partition_cnt_within_partition_table(
OB_ALL_CORE_TABLE_TID == common::extract_pure_id(table_schema.get_table_id()) ? 1 : 0);
table_schema.get_part_option().set_partition_cnt_within_partition_table(OB_ALL_CORE_TABLE_TID == common::extract_pure_id(table_schema.get_table_id()) ? 1 : 0);
return ret;
}
int ObInnerTableSchema::v_rsrc_plan_ora_schema(ObTableSchema& table_schema)
int ObInnerTableSchema::v_rsrc_plan_ora_schema(ObTableSchema &table_schema)
{
int ret = OB_SUCCESS;
uint64_t column_id = OB_APP_MIN_COLUMN_ID - 1;
// generated fields:
//generated fields:
table_schema.set_tenant_id(OB_SYS_TENANT_ID);
table_schema.set_tablegroup_id(combine_id(OB_SYS_TENANT_ID, OB_SYS_TABLEGROUP_ID));
table_schema.set_database_id(combine_id(OB_SYS_TENANT_ID, OB_ORA_SYS_DATABASE_ID));
@ -1138,8 +1100,7 @@ int ObInnerTableSchema::v_rsrc_plan_ora_schema(ObTableSchema& table_schema)
table_schema.set_create_mem_version(1);
if (OB_SUCC(ret)) {
if (OB_FAIL(table_schema.set_view_definition(
R"__(SELECT CAST(NULL as NUMBER) AS ID, B.plan NAME, CAST('TRUE' AS VARCHAR2(5)) AS IS_TOP_PLAN, CAST('ON' AS VARCHAR2(3)) AS CPU_MANAGED, CAST(NULL AS VARCHAR2(3)) AS INSTANCE_CAGING, CAST(NULL AS NUMBER) AS PARALLEL_SERVERS_ACTIVE, CAST(NULL AS NUMBER) AS PARALLEL_SERVERS_TOTAL, CAST(NULL AS VARCHAR2(32)) AS PARALLEL_EXECUTION_MANAGED FROM SYS.tenant_virtual_global_variable A, SYS.DBA_RSRC_PLANS B WHERE A.variable_name = 'resource_manager_plan' AND A.value = B.plan )__"))) {
if (OB_FAIL(table_schema.set_view_definition(R"__(SELECT CAST(NULL as NUMBER) AS ID, B.plan NAME, CAST('TRUE' AS VARCHAR2(5)) AS IS_TOP_PLAN, CAST('ON' AS VARCHAR2(3)) AS CPU_MANAGED, CAST(NULL AS VARCHAR2(3)) AS INSTANCE_CAGING, CAST(NULL AS NUMBER) AS PARALLEL_SERVERS_ACTIVE, CAST(NULL AS NUMBER) AS PARALLEL_SERVERS_TOTAL, CAST(NULL AS VARCHAR2(32)) AS PARALLEL_EXECUTION_MANAGED FROM SYS.tenant_virtual_global_variable A, SYS.DBA_RSRC_PLANS B WHERE A.variable_name = 'resource_manager_plan' AND A.value = B.plan )__"))) {
LOG_ERROR("fail to set view_definition", K(ret));
}
}
@ -1151,17 +1112,16 @@ int ObInnerTableSchema::v_rsrc_plan_ora_schema(ObTableSchema& table_schema)
table_schema.set_max_used_column_id(column_id);
table_schema.get_part_option().set_max_used_part_id(table_schema.get_part_option().get_part_num() - 1);
table_schema.get_part_option().set_partition_cnt_within_partition_table(
OB_ALL_CORE_TABLE_TID == common::extract_pure_id(table_schema.get_table_id()) ? 1 : 0);
table_schema.get_part_option().set_partition_cnt_within_partition_table(OB_ALL_CORE_TABLE_TID == common::extract_pure_id(table_schema.get_table_id()) ? 1 : 0);
return ret;
}
int ObInnerTableSchema::triggers_schema(ObTableSchema& table_schema)
int ObInnerTableSchema::triggers_schema(ObTableSchema &table_schema)
{
int ret = OB_SUCCESS;
uint64_t column_id = OB_APP_MIN_COLUMN_ID - 1;
// generated fields:
//generated fields:
table_schema.set_tenant_id(OB_SYS_TENANT_ID);
table_schema.set_tablegroup_id(combine_id(OB_SYS_TENANT_ID, OB_SYS_TABLEGROUP_ID));
table_schema.set_database_id(combine_id(OB_SYS_TENANT_ID, OB_INFORMATION_SCHEMA_ID));
@ -1192,8 +1152,7 @@ int ObInnerTableSchema::triggers_schema(ObTableSchema& table_schema)
table_schema.set_create_mem_version(1);
if (OB_SUCC(ret)) {
if (OB_FAIL(table_schema.set_view_definition(
R"__(SELECT CAST(NULL AS CHARACTER(64)) AS TRIGGER_CATALOG, CAST(NULL AS CHARACTER(64)) AS TRIGGER_SCHEMA, CAST(NULL AS CHARACTER(64)) AS TRIGGER_NAME, NULL AS EVENT_MANIPULATION, CAST(NULL AS CHARACTER(64)) AS EVENT_OBJECT_CATALOG, CAST(NULL AS CHARACTER(64)) AS EVENT_OBJECT_SCHEMA, CAST(NULL AS CHARACTER(64)) AS EVENT_OBJECT_TABLE, CAST(NULL AS UNSIGNED) AS ACTION_ORDER, CAST(NULL AS BINARY(0)) AS ACTION_CONDITION, NULL AS ACTION_STATEMENT, CAST(NULL AS CHARACTER(3)) AS ACTION_ORIENTATION, NULL AS ACTION_TIMING, CAST(NULL AS BINARY(0)) AS ACTION_REFERENCE_OLD_TABLE, CAST(NULL AS BINARY(0)) AS ACTION_REFERENCE_NEW_TABLE, CAST(NULL AS CHARACTER(3)) AS ACTION_REFERENCE_OLD_ROW, CAST(NULL AS CHARACTER(3)) AS ACTION_REFERENCE_NEW_ROW, CAST(NULL AS TIME(2)) AS CREATED, NULL AS SQL_MODE, CAST(NULL AS CHARACTER(288)) AS DEFINER, CAST(NULL AS CHARACTER(64)) AS CHARACTER_SET_CLIENT, CAST(NULL AS CHARACTER(64)) AS COLLATION_CONNECTION, CAST(NULL AS CHARACTER(64)) AS DATABASE_COLLATION FROM DUAL WHERE 1 = 0 )__"))) {
if (OB_FAIL(table_schema.set_view_definition(R"__(SELECT CAST(NULL AS CHARACTER(64)) AS TRIGGER_CATALOG, CAST(NULL AS CHARACTER(64)) AS TRIGGER_SCHEMA, CAST(NULL AS CHARACTER(64)) AS TRIGGER_NAME, NULL AS EVENT_MANIPULATION, CAST(NULL AS CHARACTER(64)) AS EVENT_OBJECT_CATALOG, CAST(NULL AS CHARACTER(64)) AS EVENT_OBJECT_SCHEMA, CAST(NULL AS CHARACTER(64)) AS EVENT_OBJECT_TABLE, CAST(NULL AS UNSIGNED) AS ACTION_ORDER, CAST(NULL AS BINARY(0)) AS ACTION_CONDITION, NULL AS ACTION_STATEMENT, CAST(NULL AS CHARACTER(3)) AS ACTION_ORIENTATION, NULL AS ACTION_TIMING, CAST(NULL AS BINARY(0)) AS ACTION_REFERENCE_OLD_TABLE, CAST(NULL AS BINARY(0)) AS ACTION_REFERENCE_NEW_TABLE, CAST(NULL AS CHARACTER(3)) AS ACTION_REFERENCE_OLD_ROW, CAST(NULL AS CHARACTER(3)) AS ACTION_REFERENCE_NEW_ROW, CAST(NULL AS TIME(2)) AS CREATED, NULL AS SQL_MODE, CAST(NULL AS CHARACTER(288)) AS DEFINER, CAST(NULL AS CHARACTER(64)) AS CHARACTER_SET_CLIENT, CAST(NULL AS CHARACTER(64)) AS COLLATION_CONNECTION, CAST(NULL AS CHARACTER(64)) AS DATABASE_COLLATION FROM DUAL WHERE 1 = 0 )__"))) {
LOG_ERROR("fail to set view_definition", K(ret));
}
}
@ -1205,10 +1164,10 @@ int ObInnerTableSchema::triggers_schema(ObTableSchema& table_schema)
table_schema.set_max_used_column_id(column_id);
table_schema.get_part_option().set_max_used_part_id(table_schema.get_part_option().get_part_num() - 1);
table_schema.get_part_option().set_partition_cnt_within_partition_table(
OB_ALL_CORE_TABLE_TID == common::extract_pure_id(table_schema.get_table_id()) ? 1 : 0);
table_schema.get_part_option().set_partition_cnt_within_partition_table(OB_ALL_CORE_TABLE_TID == common::extract_pure_id(table_schema.get_table_id()) ? 1 : 0);
return ret;
}
} // end namespace share
} // end namespace oceanbase
} // end namespace share
} // end namespace oceanbase

File diff suppressed because it is too large Load Diff

File diff suppressed because it is too large Load Diff

View File

@ -13,492 +13,494 @@
#define USING_LOG_PREFIX SHARE_SCHEMA
#include "ob_inner_table_schema.h"
namespace oceanbase {
namespace share {
namespace oceanbase
{
namespace share
{
VTMapping vt_mappings[5000];
bool vt_mapping_init()
{
int64_t start_idx = common::OB_MIN_VIRTUAL_TABLE_ID;
{
int64_t idx = OB_ALL_VIRTUAL_COLL_TYPE_REAL_AGENT_ORA_TID - start_idx;
VTMapping& tmp_vt_mapping = vt_mappings[idx];
tmp_vt_mapping.mapping_tid_ = OB_ALL_COLL_TYPE_TID;
tmp_vt_mapping.is_real_vt_ = true;
tmp_vt_mapping.start_pos_ = 0;
tmp_vt_mapping.end_pos_ = 3;
}
int64_t start_idx = common::OB_MIN_VIRTUAL_TABLE_ID;
{
int64_t idx = OB_ALL_VIRTUAL_COLL_TYPE_REAL_AGENT_ORA_TID - start_idx;
VTMapping &tmp_vt_mapping = vt_mappings[idx];
tmp_vt_mapping.mapping_tid_ = OB_ALL_COLL_TYPE_TID;
tmp_vt_mapping.is_real_vt_ = true;
tmp_vt_mapping.start_pos_ = 0;
tmp_vt_mapping.end_pos_ = 3;
}
{
int64_t idx = OB_ALL_VIRTUAL_COLUMN_REAL_AGENT_ORA_TID - start_idx;
VTMapping& tmp_vt_mapping = vt_mappings[idx];
tmp_vt_mapping.mapping_tid_ = OB_ALL_COLUMN_TID;
tmp_vt_mapping.is_real_vt_ = true;
tmp_vt_mapping.start_pos_ = 3;
tmp_vt_mapping.end_pos_ = 4;
}
{
int64_t idx = OB_ALL_VIRTUAL_COLUMN_REAL_AGENT_ORA_TID - start_idx;
VTMapping &tmp_vt_mapping = vt_mappings[idx];
tmp_vt_mapping.mapping_tid_ = OB_ALL_COLUMN_TID;
tmp_vt_mapping.is_real_vt_ = true;
tmp_vt_mapping.start_pos_ = 3;
tmp_vt_mapping.end_pos_ = 4;
}
{
int64_t idx = OB_ALL_VIRTUAL_COLUMN_STATISTIC_REAL_AGENT_ORA_TID - start_idx;
VTMapping& tmp_vt_mapping = vt_mappings[idx];
tmp_vt_mapping.mapping_tid_ = OB_ALL_COLUMN_STATISTIC_TID;
tmp_vt_mapping.is_real_vt_ = true;
tmp_vt_mapping.start_pos_ = 4;
tmp_vt_mapping.end_pos_ = 5;
}
{
int64_t idx = OB_ALL_VIRTUAL_COLUMN_STATISTIC_REAL_AGENT_ORA_TID - start_idx;
VTMapping &tmp_vt_mapping = vt_mappings[idx];
tmp_vt_mapping.mapping_tid_ = OB_ALL_COLUMN_STATISTIC_TID;
tmp_vt_mapping.is_real_vt_ = true;
tmp_vt_mapping.start_pos_ = 4;
tmp_vt_mapping.end_pos_ = 5;
}
{
int64_t idx = OB_ALL_VIRTUAL_COLUMN_STAT_REAL_AGENT_ORA_TID - start_idx;
VTMapping& tmp_vt_mapping = vt_mappings[idx];
tmp_vt_mapping.mapping_tid_ = OB_ALL_COLUMN_STAT_TID;
tmp_vt_mapping.is_real_vt_ = true;
tmp_vt_mapping.start_pos_ = 5;
tmp_vt_mapping.end_pos_ = 6;
}
{
int64_t idx = OB_ALL_VIRTUAL_COLUMN_STAT_REAL_AGENT_ORA_TID - start_idx;
VTMapping &tmp_vt_mapping = vt_mappings[idx];
tmp_vt_mapping.mapping_tid_ = OB_ALL_COLUMN_STAT_TID;
tmp_vt_mapping.is_real_vt_ = true;
tmp_vt_mapping.start_pos_ = 5;
tmp_vt_mapping.end_pos_ = 6;
}
{
int64_t idx = OB_ALL_VIRTUAL_CONSTRAINT_REAL_AGENT_ORA_TID - start_idx;
VTMapping& tmp_vt_mapping = vt_mappings[idx];
tmp_vt_mapping.mapping_tid_ = OB_ALL_CONSTRAINT_TID;
tmp_vt_mapping.is_real_vt_ = true;
tmp_vt_mapping.start_pos_ = 6;
tmp_vt_mapping.end_pos_ = 7;
}
{
int64_t idx = OB_ALL_VIRTUAL_CONSTRAINT_REAL_AGENT_ORA_TID - start_idx;
VTMapping &tmp_vt_mapping = vt_mappings[idx];
tmp_vt_mapping.mapping_tid_ = OB_ALL_CONSTRAINT_TID;
tmp_vt_mapping.is_real_vt_ = true;
tmp_vt_mapping.start_pos_ = 6;
tmp_vt_mapping.end_pos_ = 7;
}
{
int64_t idx = OB_ALL_VIRTUAL_DATABASE_REAL_AGENT_ORA_TID - start_idx;
VTMapping& tmp_vt_mapping = vt_mappings[idx];
tmp_vt_mapping.mapping_tid_ = OB_ALL_DATABASE_TID;
tmp_vt_mapping.is_real_vt_ = true;
tmp_vt_mapping.start_pos_ = 7;
tmp_vt_mapping.end_pos_ = 9;
}
{
int64_t idx = OB_ALL_VIRTUAL_DATABASE_REAL_AGENT_ORA_TID - start_idx;
VTMapping &tmp_vt_mapping = vt_mappings[idx];
tmp_vt_mapping.mapping_tid_ = OB_ALL_DATABASE_TID;
tmp_vt_mapping.is_real_vt_ = true;
tmp_vt_mapping.start_pos_ = 7;
tmp_vt_mapping.end_pos_ = 9;
}
{
int64_t idx = OB_ALL_VIRTUAL_DBLINK_HISTORY_REAL_AGENT_ORA_TID - start_idx;
VTMapping& tmp_vt_mapping = vt_mappings[idx];
tmp_vt_mapping.mapping_tid_ = OB_ALL_DBLINK_HISTORY_TID;
tmp_vt_mapping.is_real_vt_ = true;
tmp_vt_mapping.start_pos_ = 9;
tmp_vt_mapping.end_pos_ = 11;
}
{
int64_t idx = OB_ALL_VIRTUAL_DBLINK_HISTORY_REAL_AGENT_ORA_TID - start_idx;
VTMapping &tmp_vt_mapping = vt_mappings[idx];
tmp_vt_mapping.mapping_tid_ = OB_ALL_DBLINK_HISTORY_TID;
tmp_vt_mapping.is_real_vt_ = true;
tmp_vt_mapping.start_pos_ = 9;
tmp_vt_mapping.end_pos_ = 11;
}
{
int64_t idx = OB_ALL_VIRTUAL_DBLINK_REAL_AGENT_ORA_TID - start_idx;
VTMapping& tmp_vt_mapping = vt_mappings[idx];
tmp_vt_mapping.mapping_tid_ = OB_ALL_DBLINK_TID;
tmp_vt_mapping.is_real_vt_ = true;
tmp_vt_mapping.start_pos_ = 11;
tmp_vt_mapping.end_pos_ = 13;
}
{
int64_t idx = OB_ALL_VIRTUAL_DBLINK_REAL_AGENT_ORA_TID - start_idx;
VTMapping &tmp_vt_mapping = vt_mappings[idx];
tmp_vt_mapping.mapping_tid_ = OB_ALL_DBLINK_TID;
tmp_vt_mapping.is_real_vt_ = true;
tmp_vt_mapping.start_pos_ = 11;
tmp_vt_mapping.end_pos_ = 13;
}
{
int64_t idx = OB_ALL_VIRTUAL_DEF_SUB_PART_REAL_AGENT_ORA_TID - start_idx;
VTMapping& tmp_vt_mapping = vt_mappings[idx];
tmp_vt_mapping.mapping_tid_ = OB_ALL_DEF_SUB_PART_TID;
tmp_vt_mapping.is_real_vt_ = true;
tmp_vt_mapping.start_pos_ = 13;
tmp_vt_mapping.end_pos_ = 15;
}
{
int64_t idx = OB_ALL_VIRTUAL_DEF_SUB_PART_REAL_AGENT_ORA_TID - start_idx;
VTMapping &tmp_vt_mapping = vt_mappings[idx];
tmp_vt_mapping.mapping_tid_ = OB_ALL_DEF_SUB_PART_TID;
tmp_vt_mapping.is_real_vt_ = true;
tmp_vt_mapping.start_pos_ = 13;
tmp_vt_mapping.end_pos_ = 15;
}
{
int64_t idx = OB_ALL_VIRTUAL_FOREIGN_KEY_COLUMN_REAL_AGENT_ORA_TID - start_idx;
VTMapping& tmp_vt_mapping = vt_mappings[idx];
tmp_vt_mapping.mapping_tid_ = OB_ALL_FOREIGN_KEY_COLUMN_TID;
tmp_vt_mapping.is_real_vt_ = true;
tmp_vt_mapping.start_pos_ = 15;
tmp_vt_mapping.end_pos_ = 16;
}
{
int64_t idx = OB_ALL_VIRTUAL_FOREIGN_KEY_COLUMN_REAL_AGENT_ORA_TID - start_idx;
VTMapping &tmp_vt_mapping = vt_mappings[idx];
tmp_vt_mapping.mapping_tid_ = OB_ALL_FOREIGN_KEY_COLUMN_TID;
tmp_vt_mapping.is_real_vt_ = true;
tmp_vt_mapping.start_pos_ = 15;
tmp_vt_mapping.end_pos_ = 16;
}
{
int64_t idx = OB_ALL_VIRTUAL_FOREIGN_KEY_REAL_AGENT_ORA_TID - start_idx;
VTMapping& tmp_vt_mapping = vt_mappings[idx];
tmp_vt_mapping.mapping_tid_ = OB_ALL_FOREIGN_KEY_TID;
tmp_vt_mapping.is_real_vt_ = true;
tmp_vt_mapping.start_pos_ = 16;
tmp_vt_mapping.end_pos_ = 19;
}
{
int64_t idx = OB_ALL_VIRTUAL_FOREIGN_KEY_REAL_AGENT_ORA_TID - start_idx;
VTMapping &tmp_vt_mapping = vt_mappings[idx];
tmp_vt_mapping.mapping_tid_ = OB_ALL_FOREIGN_KEY_TID;
tmp_vt_mapping.is_real_vt_ = true;
tmp_vt_mapping.start_pos_ = 16;
tmp_vt_mapping.end_pos_ = 19;
}
{
int64_t idx = OB_ALL_VIRTUAL_PACKAGE_REAL_AGENT_ORA_TID - start_idx;
VTMapping& tmp_vt_mapping = vt_mappings[idx];
tmp_vt_mapping.mapping_tid_ = OB_ALL_PACKAGE_TID;
tmp_vt_mapping.is_real_vt_ = true;
tmp_vt_mapping.start_pos_ = 19;
tmp_vt_mapping.end_pos_ = 22;
}
{
int64_t idx = OB_ALL_VIRTUAL_PACKAGE_REAL_AGENT_ORA_TID - start_idx;
VTMapping &tmp_vt_mapping = vt_mappings[idx];
tmp_vt_mapping.mapping_tid_ = OB_ALL_PACKAGE_TID;
tmp_vt_mapping.is_real_vt_ = true;
tmp_vt_mapping.start_pos_ = 19;
tmp_vt_mapping.end_pos_ = 22;
}
{
int64_t idx = OB_ALL_VIRTUAL_PART_REAL_AGENT_ORA_TID - start_idx;
VTMapping& tmp_vt_mapping = vt_mappings[idx];
tmp_vt_mapping.mapping_tid_ = OB_ALL_PART_TID;
tmp_vt_mapping.is_real_vt_ = true;
tmp_vt_mapping.start_pos_ = 22;
tmp_vt_mapping.end_pos_ = 24;
}
{
int64_t idx = OB_ALL_VIRTUAL_PART_REAL_AGENT_ORA_TID - start_idx;
VTMapping &tmp_vt_mapping = vt_mappings[idx];
tmp_vt_mapping.mapping_tid_ = OB_ALL_PART_TID;
tmp_vt_mapping.is_real_vt_ = true;
tmp_vt_mapping.start_pos_ = 22;
tmp_vt_mapping.end_pos_ = 24;
}
{
int64_t idx = OB_ALL_VIRTUAL_RECYCLEBIN_REAL_AGENT_ORA_TID - start_idx;
VTMapping& tmp_vt_mapping = vt_mappings[idx];
tmp_vt_mapping.mapping_tid_ = OB_ALL_RECYCLEBIN_TID;
tmp_vt_mapping.is_real_vt_ = true;
tmp_vt_mapping.start_pos_ = 24;
tmp_vt_mapping.end_pos_ = 27;
}
{
int64_t idx = OB_ALL_VIRTUAL_RECYCLEBIN_REAL_AGENT_ORA_TID - start_idx;
VTMapping &tmp_vt_mapping = vt_mappings[idx];
tmp_vt_mapping.mapping_tid_ = OB_ALL_RECYCLEBIN_TID;
tmp_vt_mapping.is_real_vt_ = true;
tmp_vt_mapping.start_pos_ = 24;
tmp_vt_mapping.end_pos_ = 27;
}
{
int64_t idx = OB_ALL_VIRTUAL_RES_MGR_CONSUMER_GROUP_REAL_AGENT_ORA_TID - start_idx;
VTMapping& tmp_vt_mapping = vt_mappings[idx];
tmp_vt_mapping.mapping_tid_ = OB_ALL_RES_MGR_CONSUMER_GROUP_TID;
tmp_vt_mapping.is_real_vt_ = true;
tmp_vt_mapping.use_real_tenant_id_ = true;
}
{
int64_t idx = OB_ALL_VIRTUAL_RES_MGR_CONSUMER_GROUP_REAL_AGENT_ORA_TID - start_idx;
VTMapping &tmp_vt_mapping = vt_mappings[idx];
tmp_vt_mapping.mapping_tid_ = OB_ALL_RES_MGR_CONSUMER_GROUP_TID;
tmp_vt_mapping.is_real_vt_ = true;
tmp_vt_mapping.use_real_tenant_id_ = true;
}
{
int64_t idx = OB_ALL_VIRTUAL_RES_MGR_DIRECTIVE_REAL_AGENT_ORA_TID - start_idx;
VTMapping& tmp_vt_mapping = vt_mappings[idx];
tmp_vt_mapping.mapping_tid_ = OB_ALL_RES_MGR_DIRECTIVE_TID;
tmp_vt_mapping.is_real_vt_ = true;
tmp_vt_mapping.use_real_tenant_id_ = true;
}
{
int64_t idx = OB_ALL_VIRTUAL_RES_MGR_DIRECTIVE_REAL_AGENT_ORA_TID - start_idx;
VTMapping &tmp_vt_mapping = vt_mappings[idx];
tmp_vt_mapping.mapping_tid_ = OB_ALL_RES_MGR_DIRECTIVE_TID;
tmp_vt_mapping.is_real_vt_ = true;
tmp_vt_mapping.use_real_tenant_id_ = true;
}
{
int64_t idx = OB_ALL_VIRTUAL_RES_MGR_MAPPING_RULE_REAL_AGENT_ORA_TID - start_idx;
VTMapping& tmp_vt_mapping = vt_mappings[idx];
tmp_vt_mapping.mapping_tid_ = OB_ALL_RES_MGR_MAPPING_RULE_TID;
tmp_vt_mapping.is_real_vt_ = true;
tmp_vt_mapping.use_real_tenant_id_ = true;
}
{
int64_t idx = OB_ALL_VIRTUAL_RES_MGR_MAPPING_RULE_REAL_AGENT_ORA_TID - start_idx;
VTMapping &tmp_vt_mapping = vt_mappings[idx];
tmp_vt_mapping.mapping_tid_ = OB_ALL_RES_MGR_MAPPING_RULE_TID;
tmp_vt_mapping.is_real_vt_ = true;
tmp_vt_mapping.use_real_tenant_id_ = true;
}
{
int64_t idx = OB_ALL_VIRTUAL_RES_MGR_PLAN_REAL_AGENT_ORA_TID - start_idx;
VTMapping& tmp_vt_mapping = vt_mappings[idx];
tmp_vt_mapping.mapping_tid_ = OB_ALL_RES_MGR_PLAN_TID;
tmp_vt_mapping.is_real_vt_ = true;
tmp_vt_mapping.use_real_tenant_id_ = true;
}
{
int64_t idx = OB_ALL_VIRTUAL_RES_MGR_PLAN_REAL_AGENT_ORA_TID - start_idx;
VTMapping &tmp_vt_mapping = vt_mappings[idx];
tmp_vt_mapping.mapping_tid_ = OB_ALL_RES_MGR_PLAN_TID;
tmp_vt_mapping.is_real_vt_ = true;
tmp_vt_mapping.use_real_tenant_id_ = true;
}
{
int64_t idx = OB_ALL_VIRTUAL_ROUTINE_PARAM_REAL_AGENT_ORA_TID - start_idx;
VTMapping& tmp_vt_mapping = vt_mappings[idx];
tmp_vt_mapping.mapping_tid_ = OB_ALL_ROUTINE_PARAM_TID;
tmp_vt_mapping.is_real_vt_ = true;
tmp_vt_mapping.start_pos_ = 27;
tmp_vt_mapping.end_pos_ = 29;
}
{
int64_t idx = OB_ALL_VIRTUAL_ROUTINE_PARAM_REAL_AGENT_ORA_TID - start_idx;
VTMapping &tmp_vt_mapping = vt_mappings[idx];
tmp_vt_mapping.mapping_tid_ = OB_ALL_ROUTINE_PARAM_TID;
tmp_vt_mapping.is_real_vt_ = true;
tmp_vt_mapping.start_pos_ = 27;
tmp_vt_mapping.end_pos_ = 29;
}
{
int64_t idx = OB_ALL_VIRTUAL_ROUTINE_REAL_AGENT_ORA_TID - start_idx;
VTMapping& tmp_vt_mapping = vt_mappings[idx];
tmp_vt_mapping.mapping_tid_ = OB_ALL_ROUTINE_TID;
tmp_vt_mapping.is_real_vt_ = true;
tmp_vt_mapping.start_pos_ = 29;
tmp_vt_mapping.end_pos_ = 33;
}
{
int64_t idx = OB_ALL_VIRTUAL_ROUTINE_REAL_AGENT_ORA_TID - start_idx;
VTMapping &tmp_vt_mapping = vt_mappings[idx];
tmp_vt_mapping.mapping_tid_ = OB_ALL_ROUTINE_TID;
tmp_vt_mapping.is_real_vt_ = true;
tmp_vt_mapping.start_pos_ = 29;
tmp_vt_mapping.end_pos_ = 33;
}
{
int64_t idx = OB_ALL_VIRTUAL_SEQUENCE_OBJECT_REAL_AGENT_ORA_TID - start_idx;
VTMapping& tmp_vt_mapping = vt_mappings[idx];
tmp_vt_mapping.mapping_tid_ = OB_ALL_SEQUENCE_OBJECT_TID;
tmp_vt_mapping.is_real_vt_ = true;
tmp_vt_mapping.start_pos_ = 33;
tmp_vt_mapping.end_pos_ = 35;
}
{
int64_t idx = OB_ALL_VIRTUAL_SEQUENCE_OBJECT_REAL_AGENT_ORA_TID - start_idx;
VTMapping &tmp_vt_mapping = vt_mappings[idx];
tmp_vt_mapping.mapping_tid_ = OB_ALL_SEQUENCE_OBJECT_TID;
tmp_vt_mapping.is_real_vt_ = true;
tmp_vt_mapping.start_pos_ = 33;
tmp_vt_mapping.end_pos_ = 35;
}
{
int64_t idx = OB_ALL_VIRTUAL_SEQUENCE_V2_REAL_AGENT_ORA_TID - start_idx;
VTMapping& tmp_vt_mapping = vt_mappings[idx];
tmp_vt_mapping.mapping_tid_ = OB_ALL_SEQUENCE_V2_TID;
tmp_vt_mapping.is_real_vt_ = true;
tmp_vt_mapping.start_pos_ = 35;
tmp_vt_mapping.end_pos_ = 36;
}
{
int64_t idx = OB_ALL_VIRTUAL_SEQUENCE_V2_REAL_AGENT_ORA_TID - start_idx;
VTMapping &tmp_vt_mapping = vt_mappings[idx];
tmp_vt_mapping.mapping_tid_ = OB_ALL_SEQUENCE_V2_TID;
tmp_vt_mapping.is_real_vt_ = true;
tmp_vt_mapping.start_pos_ = 35;
tmp_vt_mapping.end_pos_ = 36;
}
{
int64_t idx = OB_ALL_VIRTUAL_SEQUENCE_VALUE_REAL_AGENT_ORA_TID - start_idx;
VTMapping& tmp_vt_mapping = vt_mappings[idx];
tmp_vt_mapping.mapping_tid_ = OB_ALL_SEQUENCE_VALUE_TID;
tmp_vt_mapping.is_real_vt_ = true;
tmp_vt_mapping.start_pos_ = 36;
tmp_vt_mapping.end_pos_ = 37;
}
{
int64_t idx = OB_ALL_VIRTUAL_SEQUENCE_VALUE_REAL_AGENT_ORA_TID - start_idx;
VTMapping &tmp_vt_mapping = vt_mappings[idx];
tmp_vt_mapping.mapping_tid_ = OB_ALL_SEQUENCE_VALUE_TID;
tmp_vt_mapping.is_real_vt_ = true;
tmp_vt_mapping.start_pos_ = 36;
tmp_vt_mapping.end_pos_ = 37;
}
{
int64_t idx = OB_ALL_VIRTUAL_SUB_PART_REAL_AGENT_ORA_TID - start_idx;
VTMapping& tmp_vt_mapping = vt_mappings[idx];
tmp_vt_mapping.mapping_tid_ = OB_ALL_SUB_PART_TID;
tmp_vt_mapping.is_real_vt_ = true;
tmp_vt_mapping.start_pos_ = 37;
tmp_vt_mapping.end_pos_ = 39;
}
{
int64_t idx = OB_ALL_VIRTUAL_SUB_PART_REAL_AGENT_ORA_TID - start_idx;
VTMapping &tmp_vt_mapping = vt_mappings[idx];
tmp_vt_mapping.mapping_tid_ = OB_ALL_SUB_PART_TID;
tmp_vt_mapping.is_real_vt_ = true;
tmp_vt_mapping.start_pos_ = 37;
tmp_vt_mapping.end_pos_ = 39;
}
{
int64_t idx = OB_ALL_VIRTUAL_SYNONYM_REAL_AGENT_ORA_TID - start_idx;
VTMapping& tmp_vt_mapping = vt_mappings[idx];
tmp_vt_mapping.mapping_tid_ = OB_ALL_SYNONYM_TID;
tmp_vt_mapping.is_real_vt_ = true;
tmp_vt_mapping.start_pos_ = 39;
tmp_vt_mapping.end_pos_ = 42;
}
{
int64_t idx = OB_ALL_VIRTUAL_SYNONYM_REAL_AGENT_ORA_TID - start_idx;
VTMapping &tmp_vt_mapping = vt_mappings[idx];
tmp_vt_mapping.mapping_tid_ = OB_ALL_SYNONYM_TID;
tmp_vt_mapping.is_real_vt_ = true;
tmp_vt_mapping.start_pos_ = 39;
tmp_vt_mapping.end_pos_ = 42;
}
{
int64_t idx = OB_ALL_VIRTUAL_TABLEGROUP_REAL_AGENT_ORA_TID - start_idx;
VTMapping& tmp_vt_mapping = vt_mappings[idx];
tmp_vt_mapping.mapping_tid_ = OB_ALL_TABLEGROUP_TID;
tmp_vt_mapping.is_real_vt_ = true;
tmp_vt_mapping.start_pos_ = 42;
tmp_vt_mapping.end_pos_ = 43;
}
{
int64_t idx = OB_ALL_VIRTUAL_TABLEGROUP_REAL_AGENT_ORA_TID - start_idx;
VTMapping &tmp_vt_mapping = vt_mappings[idx];
tmp_vt_mapping.mapping_tid_ = OB_ALL_TABLEGROUP_TID;
tmp_vt_mapping.is_real_vt_ = true;
tmp_vt_mapping.start_pos_ = 42;
tmp_vt_mapping.end_pos_ = 43;
}
{
int64_t idx = OB_ALL_VIRTUAL_TABLE_PRIVILEGE_REAL_AGENT_ORA_TID - start_idx;
VTMapping& tmp_vt_mapping = vt_mappings[idx];
tmp_vt_mapping.mapping_tid_ = OB_ALL_TABLE_PRIVILEGE_TID;
tmp_vt_mapping.is_real_vt_ = true;
tmp_vt_mapping.start_pos_ = 43;
tmp_vt_mapping.end_pos_ = 44;
}
{
int64_t idx = OB_ALL_VIRTUAL_TABLE_PRIVILEGE_REAL_AGENT_ORA_TID - start_idx;
VTMapping &tmp_vt_mapping = vt_mappings[idx];
tmp_vt_mapping.mapping_tid_ = OB_ALL_TABLE_PRIVILEGE_TID;
tmp_vt_mapping.is_real_vt_ = true;
tmp_vt_mapping.start_pos_ = 43;
tmp_vt_mapping.end_pos_ = 44;
}
{
int64_t idx = OB_ALL_VIRTUAL_TABLE_REAL_AGENT_ORA_TID - start_idx;
VTMapping& tmp_vt_mapping = vt_mappings[idx];
tmp_vt_mapping.mapping_tid_ = OB_ALL_TABLE_TID;
tmp_vt_mapping.is_real_vt_ = true;
tmp_vt_mapping.start_pos_ = 44;
tmp_vt_mapping.end_pos_ = 49;
}
{
int64_t idx = OB_ALL_VIRTUAL_TABLE_REAL_AGENT_ORA_TID - start_idx;
VTMapping &tmp_vt_mapping = vt_mappings[idx];
tmp_vt_mapping.mapping_tid_ = OB_ALL_TABLE_TID;
tmp_vt_mapping.is_real_vt_ = true;
tmp_vt_mapping.start_pos_ = 44;
tmp_vt_mapping.end_pos_ = 49;
}
{
int64_t idx = OB_ALL_VIRTUAL_TABLE_STAT_REAL_AGENT_ORA_TID - start_idx;
VTMapping& tmp_vt_mapping = vt_mappings[idx];
tmp_vt_mapping.mapping_tid_ = OB_ALL_TABLE_STAT_TID;
tmp_vt_mapping.is_real_vt_ = true;
tmp_vt_mapping.start_pos_ = 49;
tmp_vt_mapping.end_pos_ = 50;
}
{
int64_t idx = OB_ALL_VIRTUAL_TABLE_STAT_REAL_AGENT_ORA_TID - start_idx;
VTMapping &tmp_vt_mapping = vt_mappings[idx];
tmp_vt_mapping.mapping_tid_ = OB_ALL_TABLE_STAT_TID;
tmp_vt_mapping.is_real_vt_ = true;
tmp_vt_mapping.start_pos_ = 49;
tmp_vt_mapping.end_pos_ = 50;
}
{
int64_t idx = OB_ALL_VIRTUAL_TENANT_CONSTRAINT_COLUMN_REAL_AGENT_ORA_TID - start_idx;
VTMapping& tmp_vt_mapping = vt_mappings[idx];
tmp_vt_mapping.mapping_tid_ = OB_ALL_TENANT_CONSTRAINT_COLUMN_TID;
tmp_vt_mapping.is_real_vt_ = true;
tmp_vt_mapping.start_pos_ = 50;
tmp_vt_mapping.end_pos_ = 51;
}
{
int64_t idx = OB_ALL_VIRTUAL_TENANT_CONSTRAINT_COLUMN_REAL_AGENT_ORA_TID - start_idx;
VTMapping &tmp_vt_mapping = vt_mappings[idx];
tmp_vt_mapping.mapping_tid_ = OB_ALL_TENANT_CONSTRAINT_COLUMN_TID;
tmp_vt_mapping.is_real_vt_ = true;
tmp_vt_mapping.start_pos_ = 50;
tmp_vt_mapping.end_pos_ = 51;
}
{
int64_t idx = OB_ALL_VIRTUAL_TENANT_DEPENDENCY_REAL_AGENT_ORA_TID - start_idx;
VTMapping& tmp_vt_mapping = vt_mappings[idx];
tmp_vt_mapping.mapping_tid_ = OB_ALL_TENANT_DEPENDENCY_TID;
tmp_vt_mapping.is_real_vt_ = true;
tmp_vt_mapping.start_pos_ = 51;
tmp_vt_mapping.end_pos_ = 54;
}
{
int64_t idx = OB_ALL_VIRTUAL_TENANT_DEPENDENCY_REAL_AGENT_ORA_TID - start_idx;
VTMapping &tmp_vt_mapping = vt_mappings[idx];
tmp_vt_mapping.mapping_tid_ = OB_ALL_TENANT_DEPENDENCY_TID;
tmp_vt_mapping.is_real_vt_ = true;
tmp_vt_mapping.start_pos_ = 51;
tmp_vt_mapping.end_pos_ = 54;
}
{
int64_t idx = OB_ALL_VIRTUAL_TENANT_ERROR_REAL_AGENT_ORA_TID - start_idx;
VTMapping& tmp_vt_mapping = vt_mappings[idx];
tmp_vt_mapping.mapping_tid_ = OB_ALL_TENANT_ERROR_TID;
tmp_vt_mapping.is_real_vt_ = true;
tmp_vt_mapping.start_pos_ = 54;
tmp_vt_mapping.end_pos_ = 55;
}
{
int64_t idx = OB_ALL_VIRTUAL_TENANT_ERROR_REAL_AGENT_ORA_TID - start_idx;
VTMapping &tmp_vt_mapping = vt_mappings[idx];
tmp_vt_mapping.mapping_tid_ = OB_ALL_TENANT_ERROR_TID;
tmp_vt_mapping.is_real_vt_ = true;
tmp_vt_mapping.start_pos_ = 54;
tmp_vt_mapping.end_pos_ = 55;
}
{
int64_t idx = OB_ALL_VIRTUAL_TENANT_KEYSTORE_REAL_AGENT_ORA_TID - start_idx;
VTMapping& tmp_vt_mapping = vt_mappings[idx];
tmp_vt_mapping.mapping_tid_ = OB_ALL_TENANT_KEYSTORE_TID;
tmp_vt_mapping.is_real_vt_ = true;
tmp_vt_mapping.start_pos_ = 55;
tmp_vt_mapping.end_pos_ = 57;
}
{
int64_t idx = OB_ALL_VIRTUAL_TENANT_KEYSTORE_REAL_AGENT_ORA_TID - start_idx;
VTMapping &tmp_vt_mapping = vt_mappings[idx];
tmp_vt_mapping.mapping_tid_ = OB_ALL_TENANT_KEYSTORE_TID;
tmp_vt_mapping.is_real_vt_ = true;
tmp_vt_mapping.start_pos_ = 55;
tmp_vt_mapping.end_pos_ = 57;
}
{
int64_t idx = OB_ALL_VIRTUAL_TENANT_META_TABLE_REAL_AGENT_ORA_TID - start_idx;
VTMapping& tmp_vt_mapping = vt_mappings[idx];
tmp_vt_mapping.mapping_tid_ = OB_ALL_TENANT_META_TABLE_TID;
tmp_vt_mapping.is_real_vt_ = true;
tmp_vt_mapping.use_real_tenant_id_ = true;
}
{
int64_t idx = OB_ALL_VIRTUAL_TENANT_META_TABLE_REAL_AGENT_ORA_TID - start_idx;
VTMapping &tmp_vt_mapping = vt_mappings[idx];
tmp_vt_mapping.mapping_tid_ = OB_ALL_TENANT_META_TABLE_TID;
tmp_vt_mapping.is_real_vt_ = true;
tmp_vt_mapping.use_real_tenant_id_ = true;
}
{
int64_t idx = OB_ALL_VIRTUAL_TENANT_OBJAUTH_HISTORY_REAL_AGENT_ORA_TID - start_idx;
VTMapping& tmp_vt_mapping = vt_mappings[idx];
tmp_vt_mapping.mapping_tid_ = OB_ALL_TENANT_OBJAUTH_HISTORY_TID;
tmp_vt_mapping.is_real_vt_ = true;
tmp_vt_mapping.start_pos_ = 57;
tmp_vt_mapping.end_pos_ = 60;
}
{
int64_t idx = OB_ALL_VIRTUAL_TENANT_OBJAUTH_HISTORY_REAL_AGENT_ORA_TID - start_idx;
VTMapping &tmp_vt_mapping = vt_mappings[idx];
tmp_vt_mapping.mapping_tid_ = OB_ALL_TENANT_OBJAUTH_HISTORY_TID;
tmp_vt_mapping.is_real_vt_ = true;
tmp_vt_mapping.start_pos_ = 57;
tmp_vt_mapping.end_pos_ = 60;
}
{
int64_t idx = OB_ALL_VIRTUAL_TENANT_OBJAUTH_REAL_AGENT_ORA_TID - start_idx;
VTMapping& tmp_vt_mapping = vt_mappings[idx];
tmp_vt_mapping.mapping_tid_ = OB_ALL_TENANT_OBJAUTH_TID;
tmp_vt_mapping.is_real_vt_ = true;
tmp_vt_mapping.start_pos_ = 60;
tmp_vt_mapping.end_pos_ = 63;
}
{
int64_t idx = OB_ALL_VIRTUAL_TENANT_OBJAUTH_REAL_AGENT_ORA_TID - start_idx;
VTMapping &tmp_vt_mapping = vt_mappings[idx];
tmp_vt_mapping.mapping_tid_ = OB_ALL_TENANT_OBJAUTH_TID;
tmp_vt_mapping.is_real_vt_ = true;
tmp_vt_mapping.start_pos_ = 60;
tmp_vt_mapping.end_pos_ = 63;
}
{
int64_t idx = OB_ALL_VIRTUAL_TENANT_OBJECT_TYPE_REAL_AGENT_ORA_TID - start_idx;
VTMapping& tmp_vt_mapping = vt_mappings[idx];
tmp_vt_mapping.mapping_tid_ = OB_ALL_TENANT_OBJECT_TYPE_TID;
tmp_vt_mapping.is_real_vt_ = true;
tmp_vt_mapping.start_pos_ = 63;
tmp_vt_mapping.end_pos_ = 66;
}
{
int64_t idx = OB_ALL_VIRTUAL_TENANT_OBJECT_TYPE_REAL_AGENT_ORA_TID - start_idx;
VTMapping &tmp_vt_mapping = vt_mappings[idx];
tmp_vt_mapping.mapping_tid_ = OB_ALL_TENANT_OBJECT_TYPE_TID;
tmp_vt_mapping.is_real_vt_ = true;
tmp_vt_mapping.start_pos_ = 63;
tmp_vt_mapping.end_pos_ = 66;
}
{
int64_t idx = OB_ALL_VIRTUAL_TENANT_PARTITION_META_TABLE_REAL_AGENT_ORA_TID - start_idx;
VTMapping& tmp_vt_mapping = vt_mappings[idx];
tmp_vt_mapping.mapping_tid_ = OB_ALL_TENANT_PARTITION_META_TABLE_TID;
tmp_vt_mapping.is_real_vt_ = true;
tmp_vt_mapping.use_real_tenant_id_ = true;
}
{
int64_t idx = OB_ALL_VIRTUAL_TENANT_PARTITION_META_TABLE_REAL_AGENT_ORA_TID - start_idx;
VTMapping &tmp_vt_mapping = vt_mappings[idx];
tmp_vt_mapping.mapping_tid_ = OB_ALL_TENANT_PARTITION_META_TABLE_TID;
tmp_vt_mapping.is_real_vt_ = true;
tmp_vt_mapping.use_real_tenant_id_ = true;
}
{
int64_t idx = OB_ALL_VIRTUAL_TENANT_PROFILE_REAL_AGENT_ORA_TID - start_idx;
VTMapping& tmp_vt_mapping = vt_mappings[idx];
tmp_vt_mapping.mapping_tid_ = OB_ALL_TENANT_PROFILE_TID;
tmp_vt_mapping.is_real_vt_ = true;
tmp_vt_mapping.start_pos_ = 66;
tmp_vt_mapping.end_pos_ = 67;
}
{
int64_t idx = OB_ALL_VIRTUAL_TENANT_PROFILE_REAL_AGENT_ORA_TID - start_idx;
VTMapping &tmp_vt_mapping = vt_mappings[idx];
tmp_vt_mapping.mapping_tid_ = OB_ALL_TENANT_PROFILE_TID;
tmp_vt_mapping.is_real_vt_ = true;
tmp_vt_mapping.start_pos_ = 66;
tmp_vt_mapping.end_pos_ = 67;
}
{
int64_t idx = OB_ALL_VIRTUAL_TENANT_ROLE_GRANTEE_MAP_REAL_AGENT_ORA_TID - start_idx;
VTMapping& tmp_vt_mapping = vt_mappings[idx];
tmp_vt_mapping.mapping_tid_ = OB_ALL_TENANT_ROLE_GRANTEE_MAP_TID;
tmp_vt_mapping.is_real_vt_ = true;
tmp_vt_mapping.start_pos_ = 67;
tmp_vt_mapping.end_pos_ = 69;
}
{
int64_t idx = OB_ALL_VIRTUAL_TENANT_ROLE_GRANTEE_MAP_REAL_AGENT_ORA_TID - start_idx;
VTMapping &tmp_vt_mapping = vt_mappings[idx];
tmp_vt_mapping.mapping_tid_ = OB_ALL_TENANT_ROLE_GRANTEE_MAP_TID;
tmp_vt_mapping.is_real_vt_ = true;
tmp_vt_mapping.start_pos_ = 67;
tmp_vt_mapping.end_pos_ = 69;
}
{
int64_t idx = OB_ALL_VIRTUAL_TENANT_SECURITY_AUDIT_HISTORY_REAL_AGENT_ORA_TID - start_idx;
VTMapping& tmp_vt_mapping = vt_mappings[idx];
tmp_vt_mapping.mapping_tid_ = OB_ALL_TENANT_SECURITY_AUDIT_HISTORY_TID;
tmp_vt_mapping.is_real_vt_ = true;
tmp_vt_mapping.start_pos_ = 69;
tmp_vt_mapping.end_pos_ = 71;
}
{
int64_t idx = OB_ALL_VIRTUAL_TENANT_SECURITY_AUDIT_HISTORY_REAL_AGENT_ORA_TID - start_idx;
VTMapping &tmp_vt_mapping = vt_mappings[idx];
tmp_vt_mapping.mapping_tid_ = OB_ALL_TENANT_SECURITY_AUDIT_HISTORY_TID;
tmp_vt_mapping.is_real_vt_ = true;
tmp_vt_mapping.start_pos_ = 69;
tmp_vt_mapping.end_pos_ = 71;
}
{
int64_t idx = OB_ALL_VIRTUAL_TENANT_SECURITY_AUDIT_REAL_AGENT_ORA_TID - start_idx;
VTMapping& tmp_vt_mapping = vt_mappings[idx];
tmp_vt_mapping.mapping_tid_ = OB_ALL_TENANT_SECURITY_AUDIT_TID;
tmp_vt_mapping.is_real_vt_ = true;
tmp_vt_mapping.start_pos_ = 71;
tmp_vt_mapping.end_pos_ = 73;
}
{
int64_t idx = OB_ALL_VIRTUAL_TENANT_SECURITY_AUDIT_REAL_AGENT_ORA_TID - start_idx;
VTMapping &tmp_vt_mapping = vt_mappings[idx];
tmp_vt_mapping.mapping_tid_ = OB_ALL_TENANT_SECURITY_AUDIT_TID;
tmp_vt_mapping.is_real_vt_ = true;
tmp_vt_mapping.start_pos_ = 71;
tmp_vt_mapping.end_pos_ = 73;
}
{
int64_t idx = OB_ALL_VIRTUAL_TENANT_SECURITY_AUDIT_RECORD_REAL_AGENT_ORA_TID - start_idx;
VTMapping& tmp_vt_mapping = vt_mappings[idx];
tmp_vt_mapping.mapping_tid_ = OB_ALL_TENANT_SECURITY_AUDIT_RECORD_TID;
tmp_vt_mapping.is_real_vt_ = true;
tmp_vt_mapping.start_pos_ = 73;
tmp_vt_mapping.end_pos_ = 78;
}
{
int64_t idx = OB_ALL_VIRTUAL_TENANT_SECURITY_AUDIT_RECORD_REAL_AGENT_ORA_TID - start_idx;
VTMapping &tmp_vt_mapping = vt_mappings[idx];
tmp_vt_mapping.mapping_tid_ = OB_ALL_TENANT_SECURITY_AUDIT_RECORD_TID;
tmp_vt_mapping.is_real_vt_ = true;
tmp_vt_mapping.start_pos_ = 73;
tmp_vt_mapping.end_pos_ = 78;
}
{
int64_t idx = OB_ALL_VIRTUAL_TENANT_SYSAUTH_HISTORY_REAL_AGENT_ORA_TID - start_idx;
VTMapping& tmp_vt_mapping = vt_mappings[idx];
tmp_vt_mapping.mapping_tid_ = OB_ALL_TENANT_SYSAUTH_HISTORY_TID;
tmp_vt_mapping.is_real_vt_ = true;
tmp_vt_mapping.start_pos_ = 78;
tmp_vt_mapping.end_pos_ = 79;
}
{
int64_t idx = OB_ALL_VIRTUAL_TENANT_SYSAUTH_HISTORY_REAL_AGENT_ORA_TID - start_idx;
VTMapping &tmp_vt_mapping = vt_mappings[idx];
tmp_vt_mapping.mapping_tid_ = OB_ALL_TENANT_SYSAUTH_HISTORY_TID;
tmp_vt_mapping.is_real_vt_ = true;
tmp_vt_mapping.start_pos_ = 78;
tmp_vt_mapping.end_pos_ = 79;
}
{
int64_t idx = OB_ALL_VIRTUAL_TENANT_SYSAUTH_REAL_AGENT_ORA_TID - start_idx;
VTMapping& tmp_vt_mapping = vt_mappings[idx];
tmp_vt_mapping.mapping_tid_ = OB_ALL_TENANT_SYSAUTH_TID;
tmp_vt_mapping.is_real_vt_ = true;
tmp_vt_mapping.start_pos_ = 79;
tmp_vt_mapping.end_pos_ = 80;
}
{
int64_t idx = OB_ALL_VIRTUAL_TENANT_SYSAUTH_REAL_AGENT_ORA_TID - start_idx;
VTMapping &tmp_vt_mapping = vt_mappings[idx];
tmp_vt_mapping.mapping_tid_ = OB_ALL_TENANT_SYSAUTH_TID;
tmp_vt_mapping.is_real_vt_ = true;
tmp_vt_mapping.start_pos_ = 79;
tmp_vt_mapping.end_pos_ = 80;
}
{
int64_t idx = OB_ALL_VIRTUAL_TENANT_TABLESPACE_REAL_AGENT_ORA_TID - start_idx;
VTMapping& tmp_vt_mapping = vt_mappings[idx];
tmp_vt_mapping.mapping_tid_ = OB_ALL_TENANT_TABLESPACE_TID;
tmp_vt_mapping.is_real_vt_ = true;
tmp_vt_mapping.start_pos_ = 80;
tmp_vt_mapping.end_pos_ = 82;
}
{
int64_t idx = OB_ALL_VIRTUAL_TENANT_TABLESPACE_REAL_AGENT_ORA_TID - start_idx;
VTMapping &tmp_vt_mapping = vt_mappings[idx];
tmp_vt_mapping.mapping_tid_ = OB_ALL_TENANT_TABLESPACE_TID;
tmp_vt_mapping.is_real_vt_ = true;
tmp_vt_mapping.start_pos_ = 80;
tmp_vt_mapping.end_pos_ = 82;
}
{
int64_t idx = OB_ALL_VIRTUAL_TENANT_TIME_ZONE_NAME_REAL_AGENT_ORA_TID - start_idx;
VTMapping& tmp_vt_mapping = vt_mappings[idx];
tmp_vt_mapping.mapping_tid_ = OB_ALL_TENANT_TIME_ZONE_NAME_TID;
tmp_vt_mapping.is_real_vt_ = true;
tmp_vt_mapping.use_real_tenant_id_ = true;
}
{
int64_t idx = OB_ALL_VIRTUAL_TENANT_TIME_ZONE_NAME_REAL_AGENT_ORA_TID - start_idx;
VTMapping &tmp_vt_mapping = vt_mappings[idx];
tmp_vt_mapping.mapping_tid_ = OB_ALL_TENANT_TIME_ZONE_NAME_TID;
tmp_vt_mapping.is_real_vt_ = true;
tmp_vt_mapping.use_real_tenant_id_ = true;
}
{
int64_t idx = OB_ALL_VIRTUAL_TENANT_TIME_ZONE_REAL_AGENT_ORA_TID - start_idx;
VTMapping& tmp_vt_mapping = vt_mappings[idx];
tmp_vt_mapping.mapping_tid_ = OB_ALL_TENANT_TIME_ZONE_TID;
tmp_vt_mapping.is_real_vt_ = true;
tmp_vt_mapping.use_real_tenant_id_ = true;
}
{
int64_t idx = OB_ALL_VIRTUAL_TENANT_TIME_ZONE_REAL_AGENT_ORA_TID - start_idx;
VTMapping &tmp_vt_mapping = vt_mappings[idx];
tmp_vt_mapping.mapping_tid_ = OB_ALL_TENANT_TIME_ZONE_TID;
tmp_vt_mapping.is_real_vt_ = true;
tmp_vt_mapping.use_real_tenant_id_ = true;
}
{
int64_t idx = OB_ALL_VIRTUAL_TENANT_TIME_ZONE_TRANSITION_REAL_AGENT_ORA_TID - start_idx;
VTMapping& tmp_vt_mapping = vt_mappings[idx];
tmp_vt_mapping.mapping_tid_ = OB_ALL_TENANT_TIME_ZONE_TRANSITION_TID;
tmp_vt_mapping.is_real_vt_ = true;
tmp_vt_mapping.use_real_tenant_id_ = true;
}
{
int64_t idx = OB_ALL_VIRTUAL_TENANT_TIME_ZONE_TRANSITION_REAL_AGENT_ORA_TID - start_idx;
VTMapping &tmp_vt_mapping = vt_mappings[idx];
tmp_vt_mapping.mapping_tid_ = OB_ALL_TENANT_TIME_ZONE_TRANSITION_TID;
tmp_vt_mapping.is_real_vt_ = true;
tmp_vt_mapping.use_real_tenant_id_ = true;
}
{
int64_t idx = OB_ALL_VIRTUAL_TENANT_TIME_ZONE_TRANSITION_TYPE_REAL_AGENT_ORA_TID - start_idx;
VTMapping& tmp_vt_mapping = vt_mappings[idx];
tmp_vt_mapping.mapping_tid_ = OB_ALL_TENANT_TIME_ZONE_TRANSITION_TYPE_TID;
tmp_vt_mapping.is_real_vt_ = true;
tmp_vt_mapping.use_real_tenant_id_ = true;
}
{
int64_t idx = OB_ALL_VIRTUAL_TENANT_TIME_ZONE_TRANSITION_TYPE_REAL_AGENT_ORA_TID - start_idx;
VTMapping &tmp_vt_mapping = vt_mappings[idx];
tmp_vt_mapping.mapping_tid_ = OB_ALL_TENANT_TIME_ZONE_TRANSITION_TYPE_TID;
tmp_vt_mapping.is_real_vt_ = true;
tmp_vt_mapping.use_real_tenant_id_ = true;
}
{
int64_t idx = OB_ALL_VIRTUAL_TENANT_TRIGGER_REAL_AGENT_ORA_TID - start_idx;
VTMapping& tmp_vt_mapping = vt_mappings[idx];
tmp_vt_mapping.mapping_tid_ = OB_ALL_TENANT_TRIGGER_TID;
tmp_vt_mapping.is_real_vt_ = true;
tmp_vt_mapping.start_pos_ = 82;
tmp_vt_mapping.end_pos_ = 86;
}
{
int64_t idx = OB_ALL_VIRTUAL_TENANT_TRIGGER_REAL_AGENT_ORA_TID - start_idx;
VTMapping &tmp_vt_mapping = vt_mappings[idx];
tmp_vt_mapping.mapping_tid_ = OB_ALL_TENANT_TRIGGER_TID;
tmp_vt_mapping.is_real_vt_ = true;
tmp_vt_mapping.start_pos_ = 82;
tmp_vt_mapping.end_pos_ = 86;
}
{
int64_t idx = OB_ALL_VIRTUAL_TYPE_ATTR_REAL_AGENT_ORA_TID - start_idx;
VTMapping& tmp_vt_mapping = vt_mappings[idx];
tmp_vt_mapping.mapping_tid_ = OB_ALL_TYPE_ATTR_TID;
tmp_vt_mapping.is_real_vt_ = true;
tmp_vt_mapping.start_pos_ = 86;
tmp_vt_mapping.end_pos_ = 88;
}
{
int64_t idx = OB_ALL_VIRTUAL_TYPE_ATTR_REAL_AGENT_ORA_TID - start_idx;
VTMapping &tmp_vt_mapping = vt_mappings[idx];
tmp_vt_mapping.mapping_tid_ = OB_ALL_TYPE_ATTR_TID;
tmp_vt_mapping.is_real_vt_ = true;
tmp_vt_mapping.start_pos_ = 86;
tmp_vt_mapping.end_pos_ = 88;
}
{
int64_t idx = OB_ALL_VIRTUAL_TYPE_REAL_AGENT_ORA_TID - start_idx;
VTMapping& tmp_vt_mapping = vt_mappings[idx];
tmp_vt_mapping.mapping_tid_ = OB_ALL_TYPE_TID;
tmp_vt_mapping.is_real_vt_ = true;
tmp_vt_mapping.start_pos_ = 88;
tmp_vt_mapping.end_pos_ = 92;
}
{
int64_t idx = OB_ALL_VIRTUAL_TYPE_REAL_AGENT_ORA_TID - start_idx;
VTMapping &tmp_vt_mapping = vt_mappings[idx];
tmp_vt_mapping.mapping_tid_ = OB_ALL_TYPE_TID;
tmp_vt_mapping.is_real_vt_ = true;
tmp_vt_mapping.start_pos_ = 88;
tmp_vt_mapping.end_pos_ = 92;
}
{
int64_t idx = OB_ALL_VIRTUAL_USER_REAL_AGENT_ORA_TID - start_idx;
VTMapping& tmp_vt_mapping = vt_mappings[idx];
tmp_vt_mapping.mapping_tid_ = OB_ALL_USER_TID;
tmp_vt_mapping.is_real_vt_ = true;
tmp_vt_mapping.start_pos_ = 92;
tmp_vt_mapping.end_pos_ = 94;
}
{
int64_t idx = OB_ALL_VIRTUAL_USER_REAL_AGENT_ORA_TID - start_idx;
VTMapping &tmp_vt_mapping = vt_mappings[idx];
tmp_vt_mapping.mapping_tid_ = OB_ALL_USER_TID;
tmp_vt_mapping.is_real_vt_ = true;
tmp_vt_mapping.start_pos_ = 92;
tmp_vt_mapping.end_pos_ = 94;
}
return true;
} // end define vt_mappings
return true;
} // end define vt_mappings
bool inited_vt = vt_mapping_init();
} // end namespace share
} // end namespace oceanbase
} // end namespace share
} // end namespace oceanbase

File diff suppressed because it is too large Load Diff

View File

@ -5644,6 +5644,7 @@ def_table_schema(
('replica_type', 'int', 'false', '0'),
('last_replay_log_id', 'int', 'false', '0'),
('schema_version', 'int', 'false', '0'),
('last_replay_log_ts', 'int', 'false', '0'),
],
partition_columns = ['svr_ip', 'svr_port'],
)

File diff suppressed because it is too large Load Diff

View File

@ -54,18 +54,17 @@ int ObMicroBlockIndexTransformer::NodeArray::ensure_space(common::ObIAllocator&
}
ObMicroBlockIndexTransformer::ObMicroBlockIndexTransformer()
: block_count_(0),
rowkey_column_count_(0),
data_offset_(0),
node_vector_(),
node_vector_count_(0),
node_array_(),
micro_index_mgr_(NULL),
allocator_(ObModIds::OB_SSTABLE_GET_SCAN)
: block_count_(0),
rowkey_column_count_(0),
data_offset_(0),
allocator_(ObModIds::OB_SSTABLE_GET_SCAN),
vec_allocator_(ObModIds::OB_MICRO_INDEX_TRANSFORMER),
node_vector_(),
node_vector_count_(0),
node_array_(),
vec_inited_(false)
{
for (int64_t i = 0; i < common::OB_MAX_ROWKEY_COLUMN_NUMBER; ++i) {
node_vector_[i].set_label(ObModIds::OB_MICRO_INDEX_TRANSFORMER);
}
MEMSET(node_vector_, 0, OB_MAX_ROWKEY_COLUMN_NUMBER);
}
int ObMicroBlockIndexTransformer::transform(
@ -93,9 +92,11 @@ int ObMicroBlockIndexTransformer::transform(const char* index_buf, const ObFullM
if (OB_UNLIKELY(NULL == index_buf || !full_meta.is_valid())) {
ret = OB_INVALID_ARGUMENT;
STORAGE_LOG(WARN, "Invalid argument, ", K(ret), KP(index_buf), K(full_meta));
} else if (!vec_inited_ && OB_FAIL(init_node_vector())) {
STORAGE_LOG(WARN, "Failed to init node vector", K(ret));
} else {
reset();
const ObMacroBlockMetaV2& meta = *full_meta.meta_;
reuse();
const ObMacroBlockMetaV2 &meta = *full_meta.meta_;
block_count_ = meta.micro_block_count_;
rowkey_column_count_ = meta.rowkey_column_number_;
node_vector_count_ = rowkey_column_count_;
@ -112,20 +113,69 @@ int ObMicroBlockIndexTransformer::transform(const char* index_buf, const ObFullM
return ret;
}
void ObMicroBlockIndexTransformer::reuse()
{
index_reader_.reset();
block_count_ = 0;
rowkey_column_count_ = 0;
data_offset_ = 0;
if (vec_inited_) {
for (int i = 0; i < node_vector_count_; i++) {
if (OB_NOT_NULL(node_vector_[i])) {
node_vector_[i]->reset();
}
}
}
node_vector_count_ = 0;
node_array_.reset();
allocator_.reuse();
}
void ObMicroBlockIndexTransformer::reset()
{
index_reader_.reset();
block_count_ = 0;
rowkey_column_count_ = 0;
data_offset_ = 0;
for (int i = 0; i < node_vector_count_; i++) {
node_vector_[i].reset();
}
node_vector_count_ = 0;
for (int i = 0; i < OB_MAX_ROWKEY_COLUMN_NUMBER; i++) {
if (OB_NOT_NULL(node_vector_[i])) {
node_vector_[i]->~ObVector<MediumNode, ObArenaAllocator>();
node_vector_[i] = nullptr;
}
}
vec_inited_ = false;
node_array_.reset();
allocator_.reset();
// column_map_
// micro_index_mgr_
vec_allocator_.reset();
}
int ObMicroBlockIndexTransformer::init_node_vector()
{
int ret = OB_SUCCESS;
void *buf = nullptr;
if (OB_UNLIKELY(vec_inited_)) {
ret = OB_INIT_TWICE;
STORAGE_LOG(WARN, "ObMicroBlockIndexTransformer init node vector twice", K(ret), K_(vec_inited));
} else {
for (int64_t i = 0; OB_SUCC(ret) && i < OB_MAX_ROWKEY_COLUMN_NUMBER; i++) {
if (OB_NOT_NULL(node_vector_[i])) {
ret = OB_ERR_UNEXPECTED;
STORAGE_LOG(WARN, "Unexpected valid node vector", K(ret), K(i), KPC(node_vector_[i]));
} else if (OB_ISNULL(buf = vec_allocator_.alloc(sizeof(ObVector<MediumNode, ObArenaAllocator>)))) {
ret = OB_ALLOCATE_MEMORY_FAILED;
STORAGE_LOG(WARN, "Failed to alloc memory for node vector", K(ret));
} else {
node_vector_[i] = new (buf) ObVector<MediumNode, ObArenaAllocator> (&vec_allocator_, ObModIds::OB_MICRO_INDEX_TRANSFORMER);
}
}
if (OB_SUCC(ret)) {
vec_inited_ = true;
}
}
return ret;
}
int ObMicroBlockIndexTransformer::block_index_to_node_vector()
@ -206,7 +256,12 @@ int ObMicroBlockIndexTransformer::node_vector_to_node_array()
int32_t node_index = 2;
for (int64_t i = 0; i < rowkey_column_count_; ++i) {
node_num += node_vector_[i].size();
if (OB_ISNULL(node_vector_[i])) {
ret = OB_ERR_UNEXPECTED;
STORAGE_LOG(WARN, "Unexpected null node vector", K(ret), K(i), KP(node_vector_[i]));
} else {
node_num += node_vector_[i]->size();
}
}
if (OB_FAIL(node_array_.ensure_space(allocator_, node_num))) {
STORAGE_LOG(WARN, "node array fail to ensure space.", K(ret), K(node_num));
@ -215,7 +270,7 @@ int ObMicroBlockIndexTransformer::node_vector_to_node_array()
node_array_[0].obj_.reset();
node_array_[0].first_child_index_ = 2;
node_array_[0].first_micro_index_ = 0;
node_array_[0].child_num_ = node_vector_[0].size();
node_array_[0].child_num_ = node_vector_[0]->size();
node_array_.cur_count_++;
node_array_[1].obj_.reset();
node_array_[1].first_child_index_ = 0;
@ -223,12 +278,13 @@ int ObMicroBlockIndexTransformer::node_vector_to_node_array()
node_array_[1].child_num_ = 0;
node_array_.cur_count_++;
for (int32_t i = 0; i < rowkey_column_count_; ++i) {
cur_node_num = node_vector_[i].size();
cur_node_num = node_vector_[i]->size();
for (int32_t j = 0; j < cur_node_num; ++j) {
tmp_node = node_vector_[i].at(j);
tmp_node = node_vector_[i]->at(j);
node_array_[node_index + j].obj_ = tmp_node.obj_;
if (0 != tmp_node.child_num_) {
node_array_[node_index + j].first_child_index_ = node_index + cur_node_num + tmp_node.first_child_index_;
node_array_[node_index + j].first_child_index_
= node_index + cur_node_num + tmp_node.first_child_index_;
} else {
node_array_[node_index + j].first_child_index_ = 0;
}
@ -252,17 +308,27 @@ inline int ObMicroBlockIndexTransformer::add_node_to_vector(MediumNode& cur_node
if (!cur_node.is_valid() || index < 0 || index >= rowkey_column_count_) {
ret = OB_INVALID_ARGUMENT;
STORAGE_LOG(WARN, "invalid argument, ", K(ret), K(cur_node), K(index), K_(rowkey_column_count));
} else if (OB_FAIL(node_vector_[index].push_back(cur_node))) {
STORAGE_LOG(WARN, "node vector fail to push back cur node.", K(ret), K(index), K(cur_node));
} else if (OB_ISNULL(node_vector_[index])) {
ret = OB_ERR_UNEXPECTED;
STORAGE_LOG(WARN, "Unexpected null node vector", K(ret), K(index), KP(node_vector_[index]));
} else if (OB_FAIL(node_vector_[index]->push_back(cur_node))) {
STORAGE_LOG(WARN, "node vector fail to push back cur node.",
K(ret), K(index), K(cur_node));
} else if (OB_FAIL(add_extra_space_size(cur_node.obj_))) {
STORAGE_LOG(WARN, "transformer fail to add extra space size.", K(ret), "obj", cur_node.obj_);
} else if (index > 0) {
parent_index = node_vector_[index - 1].size() - 1;
parent_node = &node_vector_[index - 1].at(parent_index);
if (0 == parent_node->child_num_) {
parent_node->first_child_index_ = node_vector_[index].size() - 1;
if (OB_ISNULL(node_vector_[index - 1])) {
ret = OB_ERR_UNEXPECTED;
STORAGE_LOG(WARN, "Unexpected null node vector", K(ret), K(index-1), KP(node_vector_[index-1]));
} else {
parent_index = node_vector_[index - 1]->size() - 1;
parent_node = &node_vector_[index - 1]->at(parent_index);
if (0 == parent_node->child_num_) {
parent_node->first_child_index_ = node_vector_[index]->size() - 1;
}
parent_node->child_num_ ++;
}
parent_node->child_num_++;
}
return ret;
}
@ -305,32 +371,23 @@ int ObMicroBlockIndexTransformer::create_block_index_mgr(
const ObFullMacroBlockMeta& meta, char* buffer, const int64_t size, const ObMicroBlockIndexMgr*& idx_mgr)
{
int ret = OB_SUCCESS;
ObMicroBlockIndexMgr *index_mgr = nullptr;
idx_mgr = nullptr;
if (OB_ISNULL(micro_index_mgr_ = new (buffer) ObMicroBlockIndexMgr())) {
if (OB_ISNULL(index_mgr = new (buffer) ObMicroBlockIndexMgr())) {
ret = OB_ERR_UNEXPECTED;
STORAGE_LOG(WARN, "transformer fail to new block index mgr, ", K(ret));
} else if (OB_FAIL(
micro_index_mgr_->init(meta, node_array_.get_node_array_size(), node_array_.get_extra_space_size()))) {
STORAGE_LOG(WARN,
"micro index mgr fail to init.",
K(ret),
K(block_count_),
"node_array_size",
node_array_.get_node_array_size(),
"extra_space_size",
node_array_.get_extra_space_size(),
"mark_deletion_flag size",
index_reader_.get_mark_deletion_flags_size(),
"delta size",
index_reader_.get_delta_size(),
K(rowkey_column_count_),
K(data_offset_),
K(meta));
} else if (OB_FAIL(index_mgr->init(
meta, node_array_.get_node_array_size(), node_array_.get_extra_space_size()))) {
STORAGE_LOG(WARN, "micro index mgr fail to init.",
K(ret), K(block_count_), "node_array_size", node_array_.get_node_array_size(),
"extra_space_size", node_array_.get_extra_space_size(),
"mark_deletion_flag size", index_reader_.get_mark_deletion_flags_size(),
"delta size", index_reader_.get_delta_size(),
K(rowkey_column_count_), K(data_offset_), K(meta));
} else if (OB_FAIL(fill_block_index_mgr(buffer, size))) {
STORAGE_LOG(WARN, "transformer fail to fill block index mgr.", K(ret));
} else {
idx_mgr = micro_index_mgr_;
idx_mgr = index_mgr;
}
return ret;
}

View File

@ -66,6 +66,8 @@ private:
private:
void reset();
void reuse();
int init_node_vector();
int block_index_to_node_vector();
int node_vector_to_node_array();
int add_node_to_vector(MediumNode& cur_node, int index);
@ -112,14 +114,13 @@ private:
int64_t block_count_; // count of micro blocks
int64_t rowkey_column_count_;
int64_t data_offset_;
common::ObArenaAllocator allocator_;
common::ObArenaAllocator vec_allocator_;
common::ObVector<MediumNode> node_vector_[common::OB_MAX_ROWKEY_COLUMN_NUMBER];
common::ObVector<MediumNode, common::ObArenaAllocator> *node_vector_[common::OB_MAX_ROWKEY_COLUMN_NUMBER];
int64_t node_vector_count_;
NodeArray node_array_;
ObMicroBlockIndexMgr* micro_index_mgr_;
common::ObArenaAllocator allocator_;
bool vec_inited_;
private:
DISALLOW_COPY_AND_ASSIGN(ObMicroBlockIndexTransformer);
};

View File

@ -1662,15 +1662,16 @@ int ObPartitionMergeUtil::merge_partition(memtable::ObIMemtableCtxFactory* memct
if (0 == minimum_iters.count()) {
ret = OB_ITER_END;
} else if (1 == minimum_iters.count() && NULL == minimum_iters.at(0)->get_curr_row()) {
ObMacroRowIterator* iter = minimum_iters.at(0);
const storage::ObMacroBlockDesc& block_desc = iter->get_curr_macro_block();
if (!iter->macro_block_opened() &&
((rewrite_block_cnt < need_rewrite_block_cnt && ctx.need_rewrite_macro_block(block_desc)) ||
(iter->need_rewrite_current_macro_block()))) {
ObMacroRowIterator *iter = minimum_iters.at(0);
const storage::ObMacroBlockDesc &block_desc = iter->get_curr_macro_block();
if (!iter->macro_block_opened()
&& ((rewrite_block_cnt < need_rewrite_block_cnt
&& ctx.need_rewrite_macro_block(block_desc))
|| (iter->need_rewrite_current_macro_block()))) {
if (!ctx.param_.is_major_merge()) {
ret = OB_ERR_UNEXPECTED;
LOG_ERROR("only major merge can call rewrite_macro_block", K(ret), K(ctx), KPC(iter));
} else if (OB_FAIL(rewrite_macro_block(minimum_iters, ctx.merge_level_, partition_fuser, processor))) {
} else if (OB_FAIL(rewrite_macro_block(minimum_iters, partition_fuser, processor))) {
LOG_WARN("rewrite_macro_block failed", K(ret), K(ctx));
} else {
++rewrite_block_cnt;
@ -2237,8 +2238,10 @@ int ObPartitionMergeUtil::get_macro_block_count_to_rewrite(const storage::ObSSTa
return ret;
}
int ObPartitionMergeUtil::rewrite_macro_block(ObIPartitionMergeFuser::MERGE_ITER_ARRAY& minimum_iters,
const storage::ObMergeLevel& merge_level, ObIPartitionMergeFuser* partition_fuser, ObIStoreRowProcessor& processor)
int ObPartitionMergeUtil::rewrite_macro_block(
ObIPartitionMergeFuser::MERGE_ITER_ARRAY &minimum_iters,
ObIPartitionMergeFuser *partition_fuser,
ObIStoreRowProcessor &processor)
{
int ret = OB_SUCCESS;
ObMacroRowIterator* iter = static_cast<ObMacroRowIterator*>(minimum_iters.at(0));
@ -2253,7 +2256,8 @@ int ObPartitionMergeUtil::rewrite_macro_block(ObIPartitionMergeFuser::MERGE_ITER
} else {
while (OB_SUCC(ret) && iter->macro_block_opened()) {
// open the micro block if needed
if (MICRO_BLOCK_MERGE_LEVEL == merge_level && !iter->micro_block_opened()) {
if (MICRO_BLOCK_MERGE_LEVEL == iter->get_merge_level()
&& !iter->micro_block_opened()) {
if (OB_FAIL(iter->open_curr_micro_block())) {
LOG_WARN("open_curr_micro_block failed", K(ret));
}

View File

@ -504,9 +504,10 @@ private:
static bool need_open_right(int64_t cmp_ret);
static int purge_minimum_iters(common::ObIArray<ObMacroRowIterator*>& minimum_iters, ObMacroRowIterator* base_iter);
static int rewrite_macro_block(ObIPartitionMergeFuser::MERGE_ITER_ARRAY& minimum_iters,
const storage::ObMergeLevel& merge_level, ObIPartitionMergeFuser* partition_fuser,
ObIStoreRowProcessor& processor);
static int rewrite_macro_block(
ObIPartitionMergeFuser::MERGE_ITER_ARRAY &minimum_iters,
ObIPartitionMergeFuser *partition_fuser,
ObIStoreRowProcessor &processor);
static int fuse_row(const storage::ObSSTableMergeCtx& ctx,
const common::ObIArray<ObMacroRowIterator*>& macro_row_iters, ObRowFuseInfo& row_fuse_info,

View File

@ -594,6 +594,7 @@ ObSSTableMergeCtx::ObSSTableMergeCtx()
merge_log_ts_(INT_MAX),
trans_table_end_log_ts_(0),
trans_table_timestamp_(0),
pg_last_replay_log_ts_(0),
read_base_version_(0)
{}
@ -1037,8 +1038,11 @@ int ObSSTableMergePrepareTask::process()
storage = static_cast<ObPartitionStorage*>(ctx->partition_guard_.get_pg_partition()->get_storage()))) {
ret = OB_ERR_UNEXPECTED;
LOG_WARN("The partition storage must not NULL", K(ret), K(ctx));
} else if (ctx->param_.is_multi_version_minor_merge() &&
OB_FAIL(pg->get_pg_storage().get_trans_table_end_log_ts_and_timestamp(
} else if (ctx->param_.is_mini_merge()
&& OB_FAIL(pg->get_pg_storage().get_last_replay_log_ts(ctx->pg_last_replay_log_ts_))) {
LOG_WARN("failed to get pg last replay log ts", K(ret), K(ctx->param_));
} else if (ctx->param_.is_mini_merge()
&& OB_FAIL(pg->get_pg_storage().get_trans_table_end_log_ts_and_timestamp(
ctx->trans_table_end_log_ts_, ctx->trans_table_timestamp_))) {
LOG_WARN("failed to get trans_table end_log_ts and timestamp", K(ret), K(ctx->param_));
} else if (OB_FAIL(storage->build_merge_ctx(*ctx))) {

View File

@ -155,6 +155,7 @@ struct ObSSTableScheduleMergeParam {
};
class ObMergeParameter;
//TODO such a massive context!
struct ObSSTableMergeCtx {
ObSSTableMergeCtx();
virtual ~ObSSTableMergeCtx();
@ -250,18 +251,28 @@ struct ObSSTableMergeCtx {
int64_t merge_log_ts_;
int64_t trans_table_end_log_ts_;
int64_t trans_table_timestamp_;
int64_t read_base_version_; // use for major merge
TO_STRING_KV(K_(param), K_(sstable_version_range), K_(create_snapshot_version), K_(base_schema_version),
K_(schema_version), K_(dump_memtable_timestamp), KP_(table_schema), K_(is_full_merge), K_(stat_sampling_ratio),
K_(merge_level), K_(progressive_merge_num), K_(progressive_merge_start_version), K_(parallel_merge_ctx),
K_(checksum_method), K_(result_code), KP_(data_table_schema), KP_(mv_dep_table_schema), K_(index_stats),
"tables_handle count", tables_handle_.get_count(), K_(index_stats), K_(is_in_progressive_new_checksum),
K_(store_column_checksum_in_micro), K_(progressive_merge_round), K_(progressive_merge_step),
K_(use_new_progressive), K_(tables_handle), K_(base_table_handle), K_(create_sstable_for_large_snapshot),
K_(logical_data_version), K_(log_ts_range), K_(merge_log_ts), K_(trans_table_end_log_ts),
K_(trans_table_timestamp), K_(read_base_version));
// we would push up last_replay_log_ts if the correspoding memtable has been merged,
// but this memtable may not be released due to the warming-up table_store
// if a new index is created, the schedule will also trigger a mini merge for it with the old frozen memtable
// now we get a table store with old end_log_ts within the pg which has a larger last_replay_log_ts
// so we need use last_replay_log_ts to prevent such uselsess mini merge happenning
int64_t pg_last_replay_log_ts_;
int64_t read_base_version_; // use for major merge
TO_STRING_KV(K_(param), K_(sstable_version_range), K_(create_snapshot_version),
K_(base_schema_version), K_(schema_version), K_(dump_memtable_timestamp),
KP_(table_schema), K_(is_full_merge), K_(stat_sampling_ratio), K_(merge_level),
K_(progressive_merge_num), K_(progressive_merge_start_version),
K_(parallel_merge_ctx), K_(checksum_method), K_(result_code),
KP_(data_table_schema), KP_(mv_dep_table_schema),
K_(index_stats),
"tables_handle count", tables_handle_.get_count(), K_(index_stats),
K_(is_in_progressive_new_checksum), K_(store_column_checksum_in_micro),
K_(progressive_merge_round),
K_(progressive_merge_step), K_(use_new_progressive),
K_(tables_handle), K_(base_table_handle), K_(create_sstable_for_large_snapshot),
K_(logical_data_version), K_(log_ts_range), K_(merge_log_ts), K_(trans_table_end_log_ts),
K_(trans_table_timestamp), K_(pg_last_replay_log_ts), K_(read_base_version));
private:
DISALLOW_COPY_AND_ASSIGN(ObSSTableMergeCtx);
};

View File

@ -12503,7 +12503,7 @@ int ObMigrateUtil::wait_trans_table_merge_finish(ObMigrateCtx& ctx)
do {
if (OB_FAIL(ObDagScheduler::get_instance().check_dag_exist(&fake_dag, exist))) {
LOG_WARN("failed to check dag exist", K(ret), K(fake_dag));
} else if (!exist) {
} else if (exist) {
if (ObTimeUtility::current_time() - start_ts > WAIT_TIMEOUT) {
ret = OB_WAIT_TRANS_TABLE_MERGE_TIMEOUT;
LOG_WARN("wait trans table merge finish timeout", K(ret), K(fake_dag));

View File

@ -3967,6 +3967,8 @@ int ObPartitionStorage::build_merge_ctx(storage::ObSSTableMergeCtx& ctx)
if (OB_FAIL(ret)) {
} else if (OB_FAIL(get_schemas_to_merge(ctx))) {
LOG_WARN("Fail to get schemas to merge, ", K(ret), K_(pkey), K(ctx));
} else if (OB_FAIL(check_useless_index_mini_merge(ctx))) {
STORAGE_LOG(WARN, "Failed to check useless index mini merge", K(ret), K_(pkey), K(ctx));
} else {
if (OB_SUCC(ret)) {
if (ctx.param_.is_major_merge()) {
@ -3988,6 +3990,53 @@ int ObPartitionStorage::build_merge_ctx(storage::ObSSTableMergeCtx& ctx)
return ret;
}
int ObPartitionStorage::check_useless_index_mini_merge(const storage::ObSSTableMergeCtx &ctx)
{
int ret = OB_SUCCESS;
if (OB_ISNULL(ctx.table_schema_)) {
ret = OB_ERR_UNEXPECTED;
STORAGE_LOG(WARN, "Unexpected null table schema", K(ret), K(ctx));
} else if (!ctx.param_.is_mini_merge()) {
} else if (ctx.log_ts_range_.end_log_ts_ < ctx.pg_last_replay_log_ts_) {
ObSEArray<uint64_t, 16> active_table_ids;
const uint64_t index_id = ctx.param_.index_id_;
ObMemtable *memtable = nullptr;
ObITable *table = nullptr;
for (int64_t i = 0; OB_SUCC(ret) && i < ctx.tables_handle_.get_count(); i++) {
if (OB_ISNULL(table = ctx.tables_handle_.get_table(i))) {
ret = OB_ERR_SYS;
STORAGE_LOG(ERROR, "Unexpected null table", K(ret), K(i), K(ctx.tables_handle_));
} else if (!table->is_memtable()) {
ret = OB_ERR_UNEXPECTED;
STORAGE_LOG(ERROR, "Unexpected situation, new create table/index should not has sstable",
K(ret), K(ctx));
} else if (FALSE_IT(memtable = reinterpret_cast<ObMemtable *>(table))) {
} else if (OB_FAIL(memtable->get_active_table_ids(active_table_ids))) {
STORAGE_LOG(WARN, "Failed to get active table ids of memtable", K(ret), KPC(memtable));
} else {
for (int64_t j = 0; OB_SUCC(ret) && j < active_table_ids.count(); j++) {
if (index_id == active_table_ids.at(j)) {
ret = OB_ERR_UNEXPECTED;
STORAGE_LOG(ERROR, "new create effective index should not has data within old frozen memtable",
K(ret), K(index_id), K(ctx.tables_handle_), K(ctx.pg_last_replay_log_ts_), K(ctx.log_ts_range_),
K(j), KPC(memtable));
}
}
active_table_ids.reset();
}
}
if (OB_FAIL(ret)) {
} else {
ret = OB_NO_NEED_MERGE;
STORAGE_LOG(WARN, "new create index should not mini for old memtable with lager last replay log ts",
K(ret), K(index_id), K(ctx.tables_handle_), K(ctx.pg_last_replay_log_ts_), K(ctx.log_ts_range_));
}
}
return ret;
}
int ObPartitionStorage::check_need_update_estimator(
const ObTableSchema& table_schema, int64_t data_version, int64_t& stat_sampling_ratio)
{

View File

@ -690,6 +690,7 @@ private:
const common::ObNewRow& row, ObLockFlag lock_flag, RowReshape*& row_reshape);
int lock_rows_(
const ObStoreCtx& ctx, const ObTableScanParam& scan_param, const common::ObNewRow& row, RowReshape*& row_reshape);
int check_useless_index_mini_merge(const storage::ObSSTableMergeCtx &ctx);
int dump_error_info(ObSSTable& main_sstable, ObSSTable& index_sstable);
// disallow copy;
DISALLOW_COPY_AND_ASSIGN(ObPartitionStorage);

View File

@ -2687,7 +2687,7 @@ int ObPartitionStore::write_drop_index_trans(const common::ObPartitionKey& pkey,
ret = OB_PARTITION_IS_REMOVED;
LOG_WARN("partition is removed", K(ret));
} else if (OB_FAIL(SLOGGER.begin(OB_LOG_PARTITION_DROP_INDEX))) {
STORAGE_LOG(WARN, "Fail to begin daily merge log, ", K(ret));
STORAGE_LOG(WARN, "Fail to begin daily merge log", K(ret));
} else {
int64_t subcmd = ObIRedoModule::gen_subcmd(OB_REDO_LOG_PARTITION, REDO_LOG_DROP_INDEX_SSTABLE_OF_STORE);
const ObStorageLogAttribute log_attr(
@ -2696,7 +2696,7 @@ int ObPartitionStore::write_drop_index_trans(const common::ObPartitionKey& pkey,
if (OB_FAIL(SLOGGER.write_log(subcmd, log_attr, log_entry))) {
STORAGE_LOG(WARN, "Failed to write_drop_index_trans", K(ret));
} else if (OB_FAIL(SLOGGER.commit(lsn))) {
STORAGE_LOG(ERROR, "Fail to commit logger, ", K(ret));
STORAGE_LOG(ERROR, "Fail to commit logger", K(ret));
} else {
ObTaskController::get().allow_next_syslog();
LOG_INFO("succeed to wrtite drop index trans log", K(lsn), K(log_entry), K(common::lbt()));
@ -4046,10 +4046,38 @@ int ObPartitionStore::get_physical_flashback_publish_version(const int64_t flash
return ret;
}
void ObPartitionStore::replace_store_map(TableStoreMap& store_map)
int ObPartitionStore::remove_unneed_store_within_trans(const TableStoreMap &new_store_map)
{
bool found = false;
TableStoreMap* cur_store_map = nullptr;
int ret = OB_SUCCESS;
ObMultiVersionTableStore *table_store = nullptr;
TCRLockGuard lock_guard(lock_);
for (TableStoreMap::iterator it = store_map_->begin();
OB_SUCC(ret) && it != store_map_->end();
++it) {
const int64_t index_id = it->second->get_table_id();
if (OB_SUCC(new_store_map.get(index_id, table_store))) {
// exist in new table store map
} else if (OB_HASH_NOT_EXIST != ret) {
LOG_WARN("Failed to get table store", K(ret), K(index_id));
} else {
int64_t subcmd = ObIRedoModule::gen_subcmd(OB_REDO_LOG_PARTITION, REDO_LOG_DROP_INDEX_SSTABLE_OF_STORE);
const ObStorageLogAttribute log_attr(pg_memtable_mgr_->get_pkey().get_tenant_id(),
pg_->get_pg_storage().get_storage_file()->get_file_id());
ObDropIndexSSTableLogEntry log_entry;
log_entry.pkey_ = meta_->pkey_;
log_entry.index_id_ = index_id;
log_entry.pg_key_ = pg_memtable_mgr_->get_pkey();
if (OB_FAIL(SLOGGER.write_log(subcmd, log_attr, log_entry))) {
STORAGE_LOG(WARN, "Failed to write_drop_index_trans", K(ret));
}
}
}
return ret;
}
void ObPartitionStore::replace_store_map(TableStoreMap &store_map)
{
TableStoreMap *cur_store_map = nullptr;
{
TCWLockGuard lock_guard(lock_);
cur_store_map = store_map_;

View File

@ -285,6 +285,7 @@ private:
int inner_physical_flashback(
const bool is_data_table, const int64_t flashback_scn, ObMultiVersionTableStore* multi_table_store);
int remove_unneed_store_within_trans(const TableStoreMap &new_store_map);
void replace_store_map(TableStoreMap& store_map);
int prepare_new_store_map(const ObTablesHandle& sstables, const int64_t max_kept_major_version_number,
const bool need_reuse_local_minor, TableStoreMap*& new_store_map);

View File

@ -2397,6 +2397,22 @@ int ObPGStorage::get_saved_data_info(ObDataStorageInfo& data_info) const
return ret;
}
int ObPGStorage::get_last_replay_log_ts(int64_t &last_replay_log_ts) const
{
int ret = OB_SUCCESS;
if (IS_NOT_INIT) {
ret = OB_NOT_INIT;
LOG_WARN("pg is not inited", K(ret));
} else {
TCRLockGuard lock_guard(lock_);
last_replay_log_ts = meta_->storage_info_.get_data_info().get_last_replay_log_ts();
}
return ret;
}
int ObPGStorage::append_local_sort_data(
const ObPartitionKey& pkey, const share::ObBuildIndexAppendLocalDataParam& param, ObNewRowIterator& iter)
{
@ -7286,9 +7302,10 @@ int ObPGStorage::batch_replace_store_map(const ObIArray<ObPartitionMigrateCtx>&
LOG_WARN("trans table seq has changed", K(ret), K(old_trans_table_seq), K_(trans_table_seq));
} else if (OB_FAIL(SLOGGER.begin(OB_LOG_BATCH_REPLACE_STORE_MAP))) {
LOG_WARN("failed to begin slog trans", K(ret));
} else if (OB_FAIL(create_pg_partition_if_need_(part_ctx_array, schema_version, is_restore))) {
LOG_WARN("failed to create pg partition", K(ret), K(part_ctx_array));
} else {
if (OB_FAIL(create_pg_partition_if_need_(part_ctx_array, schema_version, is_restore))) {
LOG_WARN("failed to create pg partition", K(ret), K(part_ctx_array));
}
for (int i = 0; OB_SUCC(ret) && i < part_ctx_array.count(); ++i) {
const ObPartitionMigrateCtx& part_ctx = part_ctx_array.at(i);
ObPartitionStore::TableStoreMap* store_map = nullptr;
@ -7300,6 +7317,11 @@ int ObPGStorage::batch_replace_store_map(const ObIArray<ObPartitionMigrateCtx>&
}
}
}
if (OB_SUCC(ret)) {
if (OB_FAIL(remove_unneed_table_store_within_trans(part_ctx_array, store_maps))) {
LOG_ERROR("failed to remove unneed table store within slog trans", K(ret));
}
}
if (OB_SUCC(ret)) {
int64_t lsn = 0;
if (OB_FAIL(SLOGGER.commit(lsn))) {
@ -7352,6 +7374,35 @@ int ObPGStorage::prepare_partition_store_map_(
return ret;
}
int ObPGStorage::remove_unneed_table_store_within_trans(
const common::ObIArray<ObPartitionMigrateCtx> &part_ctx_array,
ObPartitionStore::TableStoreMap **store_maps)
{
int ret = OB_SUCCESS;
ObPGPartition *partition = nullptr;
ObPartitionStorage *storage = nullptr;
ObPartitionStore::TableStoreMap *store_map = nullptr;
for (int64_t i = 0; OB_SUCC(ret) && i < part_ctx_array.count(); ++i) {
const ObPartitionMigrateCtx &ctx = part_ctx_array.at(i);
if (OB_NOT_NULL(store_map = store_maps[i])) {
ObPGPartitionGuard part_guard(ctx.copy_info_.meta_.pkey_, *(pg_->get_pg_partition_map()));
if (OB_ISNULL(partition = part_guard.get_pg_partition())) {
ret = OB_ERR_UNEXPECTED;
LOG_WARN("get pg partition failed", K(ret), K(ctx));
} else if (OB_ISNULL(storage = static_cast<ObPartitionStorage *>(partition->get_storage()))) {
ret = OB_ERR_UNEXPECTED;
LOG_WARN("get partition storage failed", K(ret), K(ctx));
} else if (OB_FAIL(storage->get_partition_store().remove_unneed_store_within_trans(*store_map))) {
LOG_WARN("Failed to remove unneed table store within trans", K(ret));
} else {
LOG_INFO("Succ to replace store map", KP(store_map));
}
}
}
return ret;
}
int ObPGStorage::do_replace_store_map_(
const common::ObIArray<ObPartitionMigrateCtx>& part_ctx_array, ObPartitionStore::TableStoreMap** store_maps)
{

View File

@ -199,6 +199,7 @@ public:
int get_all_saved_info(ObSavedStorageInfoV2& info) const;
int get_saved_clog_info(common::ObBaseStorageInfo& clog_info) const;
int get_saved_data_info(ObDataStorageInfo& data_info) const;
int get_last_replay_log_ts(int64_t &last_replay_log_ts) const;
int set_pg_storage_info(const ObSavedStorageInfoV2& info);
int set_pg_clog_info(const ObBaseStorageInfo& clog_info, const bool replica_with_data);
// build index
@ -588,6 +589,9 @@ private:
int create_trans_sstable(
const ObCreatePartitionParam& create_partition_param, const bool in_slog_trans, ObTablesHandle& sstables_handle);
int prepare_partition_store_map_(const ObPartitionMigrateCtx& ctx, ObPartitionStore::TableStoreMap*& new_store_map);
int remove_unneed_table_store_within_trans(
const common::ObIArray<ObPartitionMigrateCtx> &part_ctx_array,
ObPartitionStore::TableStoreMap **store_maps);
int do_replace_store_map_(
const common::ObIArray<ObPartitionMigrateCtx>& part_ctx_array, ObPartitionStore::TableStoreMap** store_maps);
int get_freeze_info_(const common::ObVersion& version, ObFreezeInfoSnapshotMgr::FreezeInfo& freeze_info);

View File

@ -602,6 +602,8 @@ int ObSSTable::close()
STORAGE_LOG(WARN, "fail to build block meta map", K(ret));
} else if (OB_FAIL(build_logic_block_id_map())) {
STORAGE_LOG(WARN, "failed to build block id set", K(ret));
} else if (OB_FAIL(check_collation_free_valid())) {
STORAGE_LOG(WARN, "fail to check collation free valid", K(ret));
} else if (OB_FAIL(check_logical_data_version(macro_meta_array_))) {
STORAGE_LOG(WARN, "fail to check logical data version for sstable for data block", K(ret), K_(meta));
} else if (OB_FAIL(check_logical_data_version(lob_macro_meta_array_))) {
@ -2796,33 +2798,33 @@ int ObSSTable::get_concurrent_cnt(int64_t tablet_size, int64_t& concurrent_cnt)
int ObSSTable::check_collation_free_valid()
{
int ret = OB_SUCCESS;
ObFullMacroBlockMeta full_meta;
const ObMacroBlockMetaV2 *meta = nullptr;
bool is_collation_free_valid = false;
exist_invalid_collation_free_meta_ = false;
for (int64_t i = 0; OB_SUCC(ret) && !exist_invalid_collation_free_meta_ && i < meta_.macro_block_array_.count();
i++) {
if (OB_FAIL(get_meta(meta_.macro_block_array_.at(i), full_meta))) {
STORAGE_LOG(WARN, "fail to get meta", K(ret), K(meta_.macro_block_array_.at(i)));
} else if (!full_meta.is_valid()) {
for (int64_t i = 0; OB_SUCC(ret) && !exist_invalid_collation_free_meta_ && i < macro_meta_array_.count(); i++) {
if (OB_ISNULL(meta = macro_meta_array_.at(i).meta_)) {
ret = OB_ERR_SYS;
STORAGE_LOG(WARN, "error sys, block meta must not be null", K(ret));
} else if (!meta->is_valid()) {
ret = OB_ERR_SYS;
STORAGE_LOG(WARN, "Unexpected null macro meta", K(ret), K(i));
} else if (OB_FAIL(full_meta.meta_->check_collation_free_valid(is_collation_free_valid))) {
STORAGE_LOG(WARN, "fail to check collation free is valid", K(ret), K(full_meta));
} else if (OB_FAIL(meta->check_collation_free_valid(is_collation_free_valid))) {
STORAGE_LOG(WARN, "fail to check collation free is valid", K(ret), K(meta));
} else if (!is_collation_free_valid) {
exist_invalid_collation_free_meta_ = true;
}
}
for (int64_t i = 0; OB_SUCC(ret) && !exist_invalid_collation_free_meta_ && i < meta_.lob_macro_block_array_.count();
i++) {
if (OB_FAIL(get_meta(meta_.lob_macro_block_array_.at(i), full_meta))) {
STORAGE_LOG(WARN, "fail to get meta", K(ret), K(meta_.lob_macro_block_array_.at(i)));
} else if (!full_meta.is_valid()) {
for (int64_t i = 0; OB_SUCC(ret) && !exist_invalid_collation_free_meta_ && i < lob_macro_meta_array_.count(); i++) {
if (OB_ISNULL(meta = lob_macro_meta_array_.at(i).meta_)) {
ret = OB_ERR_SYS;
STORAGE_LOG(WARN, "error sys, block meta must not be null", K(ret));
} else if (!meta->is_valid()) {
ret = OB_ERR_SYS;
STORAGE_LOG(WARN, "Unexpected null macro meta", K(ret), K(i));
} else if (OB_FAIL(full_meta.meta_->check_collation_free_valid(is_collation_free_valid))) {
STORAGE_LOG(WARN, "fail to check collation free is valid", K(ret), K(full_meta));
} else if (OB_FAIL(meta->check_collation_free_valid(is_collation_free_valid))) {
STORAGE_LOG(WARN, "fail to check collation free is valid", K(ret), K(meta));
} else if (!is_collation_free_valid) {
exist_invalid_collation_free_meta_ = true;
}

View File

@ -1224,9 +1224,9 @@ int ObTableStore::refine_mini_minor_merge_result(ObGetMergeTablesResult& result)
K(result),
K(minor_sstable_count));
} else if (1 == mini_tables.count()) {
// only one mini sstable, and 1 L1 sstable at last, no need mini minor merge
LOG_INFO("minor refine, only one mini sstable, no need to do mini minor merge", K(result));
result.handle_.reset();
// only one mini sstable, and 1 L1 sstable at last, we need minor merge
result.suggest_merge_type_ = MINOR_MERGE;
LOG_INFO("minor refine, only one mini sstable, we need do a full minor merge", K(result));
} else if (minor_sstable_count == 0 && mini_sstable_size > min_minor_sstable_row_count) {
result.suggest_merge_type_ = MINOR_MERGE;
LOG_INFO("minor refine, mini minor merge sstable refine to minor merge",
@ -1667,14 +1667,9 @@ int ObTableStore::find_mini_merge_tables(const ObGetMergeTablesParam& param,
K(param),
KPC(memtable));
break;
} else if ((OB_FAIL(is_memtable_need_merge(*memtable, need_merge)))) {
LOG_WARN("Failed to check memtable need merge", K(i), K(need_merge), KPC(memtable));
} else if (!need_merge) {
LOG_DEBUG("memtable wait to release", K(i), K(param), KPC(memtable));
continue;
} else if (result.handle_.get_count() > 0) {
if (result.log_ts_range_.end_log_ts_ < memtable->get_start_log_ts() ||
result.log_ts_range_.max_log_ts_ > memtable->get_end_log_ts()) {
} else if (result.handle_.get_count() > 0 ) {
if (result.log_ts_range_.end_log_ts_ < memtable->get_start_log_ts()
|| result.log_ts_range_.max_log_ts_ > memtable->get_end_log_ts()) {
FLOG_INFO("log id not continues, reset previous minor merge tables",
K(i),
"last_end_log_ts",
@ -1694,6 +1689,11 @@ int ObTableStore::find_mini_merge_tables(const ObGetMergeTablesParam& param,
KPC(memtable));
break;
}
} else if ((OB_FAIL(is_memtable_need_merge(*memtable, need_merge)))) {
LOG_WARN("Failed to check memtable need merge", K(i), K(need_merge), KPC(memtable));
} else if (!need_merge) {
LOG_DEBUG("memtable wait to release", K(i), K(param), KPC(memtable));
continue;
}
if (OB_SUCC(ret)) {
if (OB_FAIL(add_minor_merge_result(memtable, result))) {
@ -1746,8 +1746,8 @@ int ObTableStore::find_mini_minor_merge_tables(const ObGetMergeTablesParam& para
continue;
} else if (table->get_base_version() < min_snapshot_version) {
continue;
} else if (is_multi_version_break(table->get_version_range(), result.version_range_.snapshot_version_) &&
table->get_multi_version_start() >= expect_multi_version) {
} else if (is_multi_version_break(table->get_version_range(), result.version_range_.snapshot_version_)
&& table->get_multi_version_start() > expect_multi_version) {
if (result.handle_.get_count() > 1) {
// do not involve sstable with bigger uncontinue multi version than max_snapshot_version
FLOG_INFO("Multi version start larger than max snapshot, stop find more minor sstables",
@ -1870,7 +1870,7 @@ int ObTableStore::refine_mini_merge_result_in_reboot_phase(ObITable& last_table,
K(last_end_log_ts),
K(PRETTY_TS(*this)));
}
} else if (result.version_range_.snapshot_version_ <= last_snapshot_version) {
} else if (result.version_range_.snapshot_version_ < last_snapshot_version) {
ret = OB_ERR_UNEXPECTED;
LOG_ERROR(
"Unexpected chaos snapshot_version and log_ts", K(ret), K(result), K(last_end_log_ts), K(PRETTY_TS(*this)));

View File

@ -2245,8 +2245,235 @@ TEST_F(TestMicroBlockRowScanner, test_bug)
ASSERT_TRUE(res_iter.equals(scanner_iter, false));
}
} // namespace unittest
} // namespace oceanbase
TEST_F(TestMicroBlockRowScanner, test_bug2)
{
const int64_t rowkey_cnt = 4;
const int64_t micro_cnt = 1;
const char *micro_data[micro_cnt];
micro_data[0] =
"bigint var bigint bigint bigint bigint flag multi_version_row_flag trans_id\n"
"-10 var1 -1 -1 9 NOP EXIST L trans_id_0\n"
"-2 var1 -4 -1 5 NOP EXIST CL trans_id_0\n"
"-1 var1 MAGIC MAGIC NOP NOP EXIST LM trans_id_0\n"
"0 var1 MAGIC MAGIC NOP NOP EXIST LM trans_id_0\n"
"1 var1 MIN -1 9 NOP EXIST U trans_id_1\n"
"1 var1 MAGIC MAGIC NOP NOP EXIST LM trans_id_0\n"
"2 var1 MAGIC MAGIC NOP NOP EXIST LM trans_id_0\n"
"3 var1 MAGIC MAGIC NOP NOP EXIST LM trans_id_0\n"
"4 var1 MIN -9 1 NOP EXIST U trans_id_2\n"
"4 var1 MAGIC MAGIC NOP NOP EXIST LM trans_id_0\n"
"5 var1 MAGIC MAGIC NOP NOP EXIST LM trans_id_0\n"
"6 var1 MAGIC MAGIC NOP NOP EXIST LM trans_id_0\n"
"7 var1 MAGIC MAGIC NOP NOP EXIST LM trans_id_0\n"
"8 var1 MIN -9 3 NOP EXIST U trans_id_2\n"
"8 var1 MAGIC MAGIC NOP NOP EXIST LM trans_id_0\n"
"10 var1 -1 -1 9 NOP EXIST L trans_id_0\n";
prepare_data(micro_data, 1, rowkey_cnt, 9);
ObMultiVersionMicroBlockRowScanner m_scanner;
ObVersionRange trans_version_range;
ObMockIterator micro_iter;
ObMockIterator res_iter;
ObMicroBlockData block_data;
ObMicroBlockData payload_data;
common::ObExtStoreRange range;
common::ObExtStoreRange new_range;
ObMockIterator scanner_iter;
// minor
trans_version_range.base_version_ = 0;
trans_version_range.snapshot_version_ = 100;
trans_version_range.multi_version_start_ = 1;
prepare_query_param(trans_version_range, true, false);
const char var1[] = "var1";
ObObj start_val[2];
ObObj end_val[2];
start_val[0].set_int(1);
start_val[1].set_varchar(var1, 4);
start_val[1].set_collation_type(CS_TYPE_UTF8MB4_GENERAL_CI);
end_val[0].set_int(8);
end_val[1].set_varchar(var1, 4);
end_val[1].set_collation_type(CS_TYPE_UTF8MB4_GENERAL_CI);
ObStoreRowkey start_key(start_val, 2);
ObStoreRowkey end_key(end_val, 2);
range.get_range().table_id_ = combine_id(1, 3001);
range.get_range().start_key_ = start_key;
range.get_range().end_key_ = end_key;
range.get_range().set_right_closed();
range.get_range().set_left_closed();
OK(ObVersionStoreRangeConversionHelper::range_to_multi_version_range(range, trans_version_range, allocator_, new_range));
STORAGE_LOG(INFO, "chaser debug range", K(range), K(new_range));
test_trans_part_ctx_.clear_all();
int ret = OB_SUCCESS;
if (OB_FAIL(test_trans_part_ctx_.add_transaction_status(transaction::ObTransTableStatusType::COMMIT, 10))) {
STORAGE_LOG(ERROR, "add transaction status failed", K(ret));
} else if (OB_FAIL(test_trans_part_ctx_.add_transaction_status(transaction::ObTransTableStatusType::COMMIT, 10))) {
STORAGE_LOG(ERROR, "add transaction status failed", K(ret));
}
OK(m_scanner.init(param_, context_, &sstable_));
OK(m_scanner.set_range(new_range.get_range()));
const char *result1 =
"bigint var bigint bigint flag\n"
//"-2 var1 5 NOP EXIST\n"
"1 var1 9 NOP EXIST\n"
"4 var1 1 NOP EXIST\n"
"8 var1 3 NOP EXIST\n";
const ObStoreRow *row = NULL;
bool is_left_border = true;
bool is_right_border = true;
for (int64_t i = 0; i < micro_cnt; ++i) {
ret = OB_SUCCESS;
micro_iter.reset();
OK(micro_iter.from(micro_data[i]));
build_micro_block_data(micro_iter, block_data, payload_data, end_key);
MacroBlockId macro_id(0, 0, 1, ObStoreFileSystem::RESERVED_MACRO_BLOCK_INDEX);
ObFullMacroBlockMeta full_meta;
OK(sstable_.get_meta(macro_id, full_meta));
const_cast<oceanbase::blocksstable::ObMacroBlockMetaV2 *>(full_meta.meta_)->contain_uncommitted_row_ = true;
OK(m_scanner.open(macro_id, full_meta, payload_data, is_left_border, is_right_border)) << "i: " << i;
while (OB_SUCCESS == ret) {
ret = m_scanner.get_next_row(row);
if (OB_SUCCESS == ret) {
ASSERT_TRUE(NULL != row) << "i: " << i;
OK(scanner_iter.add_row(const_cast<ObStoreRow *>(row)));
STORAGE_LOG(INFO, "test", "this row", to_cstring(*row));
} else if (OB_ITER_END != ret) {
ASSERT_EQ(OB_SUCCESS, ret);
}
}
}
res_iter.reset();
OK(res_iter.from(result1));
ASSERT_TRUE(res_iter.equals(scanner_iter, false));
scanner_iter.reset();
m_scanner.reset();
context_.query_flag_.scan_order_ = common::ObQueryFlag::Reverse;
OK(m_scanner.init(param_, context_, &sstable_));
OK(m_scanner.set_range(new_range.get_range()));
const char *result2 =
"bigint var bigint bigint flag\n"
"8 var1 3 NOP EXIST\n"
"4 var1 1 NOP EXIST\n"
"1 var1 9 NOP EXIST\n";
//"-2 var1 5 NOP EXIST\n";
for (int64_t i = 0; i < micro_cnt; ++i) {
ret = OB_SUCCESS;
micro_iter.reset();
OK(micro_iter.from(micro_data[i]));
build_micro_block_data(micro_iter, block_data, payload_data, end_key);
MacroBlockId macro_id(0, 0, 1, ObStoreFileSystem::RESERVED_MACRO_BLOCK_INDEX);
ObFullMacroBlockMeta full_meta;
OK(sstable_.get_meta(macro_id, full_meta));
const_cast<oceanbase::blocksstable::ObMacroBlockMetaV2 *>(full_meta.meta_)->contain_uncommitted_row_ = true;
OK(m_scanner.open(macro_id, full_meta, payload_data, is_left_border, is_right_border)) << "i: " << i;
while (OB_SUCCESS == ret) {
ret = m_scanner.get_next_row(row);
if (OB_SUCCESS == ret) {
ASSERT_TRUE(NULL != row) << "i: " << i;
OK(scanner_iter.add_row(const_cast<ObStoreRow *>(row)));
STORAGE_LOG(INFO, "test", "this row", to_cstring(*row));
} else if (OB_ITER_END != ret) {
ASSERT_EQ(OB_SUCCESS, ret);
}
}
}
res_iter.reset();
OK(res_iter.from(result2));
ASSERT_TRUE(res_iter.equals(scanner_iter, false));
scanner_iter.reset();
start_val[0].set_int(-2);
end_val[0].set_int(7);
new_range.reset();
context_.query_flag_.scan_order_ = common::ObQueryFlag::Forward;
OK(ObVersionStoreRangeConversionHelper::range_to_multi_version_range(range, trans_version_range, allocator_, new_range));
STORAGE_LOG(INFO, "chaser debug range", K(range), K(new_range));
const char *result3 =
"bigint var bigint bigint flag\n"
"-2 var1 5 NOP EXIST\n"
"1 var1 9 NOP EXIST\n"
"4 var1 1 NOP EXIST\n";
m_scanner.reset();
OK(m_scanner.init(param_, context_, &sstable_));
OK(m_scanner.set_range(new_range.get_range()));
for (int64_t i = 0; i < micro_cnt; ++i) {
ret = OB_SUCCESS;
micro_iter.reset();
OK(micro_iter.from(micro_data[i]));
build_micro_block_data(micro_iter, block_data, payload_data, end_key);
MacroBlockId macro_id(0, 0, 1, ObStoreFileSystem::RESERVED_MACRO_BLOCK_INDEX);
ObFullMacroBlockMeta full_meta;
OK(sstable_.get_meta(macro_id, full_meta));
const_cast<oceanbase::blocksstable::ObMacroBlockMetaV2 *>(full_meta.meta_)->contain_uncommitted_row_ = true;
OK(m_scanner.open(macro_id, full_meta, payload_data, is_left_border, is_right_border)) << "i: " << i;
while (OB_SUCCESS == ret) {
ret = m_scanner.get_next_row(row);
if (OB_SUCCESS == ret) {
ASSERT_TRUE(NULL != row) << "i: " << i;
OK(scanner_iter.add_row(const_cast<ObStoreRow *>(row)));
STORAGE_LOG(INFO, "test", "this row", to_cstring(*row));
} else if (OB_ITER_END != ret) {
ASSERT_EQ(OB_SUCCESS, ret);
}
}
}
res_iter.reset();
OK(res_iter.from(result3));
ASSERT_TRUE(res_iter.equals(scanner_iter, false));
scanner_iter.reset();
start_val[0].set_int(1);
end_val[0].set_int(8);
range.get_range().set_left_open();
range.get_range().set_right_open();
new_range.reset();
context_.query_flag_.scan_order_ = common::ObQueryFlag::Forward;
OK(ObVersionStoreRangeConversionHelper::range_to_multi_version_range(range, trans_version_range, allocator_, new_range));
STORAGE_LOG(INFO, "chaser debug range", K(range), K(new_range));
const char *result4 =
"bigint var bigint bigint flag\n"
"4 var1 1 NOP EXIST\n";
m_scanner.reset();
OK(m_scanner.init(param_, context_, &sstable_));
OK(m_scanner.set_range(new_range.get_range()));
for (int64_t i = 0; i < micro_cnt; ++i) {
ret = OB_SUCCESS;
micro_iter.reset();
OK(micro_iter.from(micro_data[i]));
build_micro_block_data(micro_iter, block_data, payload_data, end_key);
MacroBlockId macro_id(0, 0, 1, ObStoreFileSystem::RESERVED_MACRO_BLOCK_INDEX);
ObFullMacroBlockMeta full_meta;
OK(sstable_.get_meta(macro_id, full_meta));
const_cast<oceanbase::blocksstable::ObMacroBlockMetaV2 *>(full_meta.meta_)->contain_uncommitted_row_ = true;
OK(m_scanner.open(macro_id, full_meta, payload_data, is_left_border, is_right_border)) << "i: " << i;
while (OB_SUCCESS == ret) {
ret = m_scanner.get_next_row(row);
if (OB_SUCCESS == ret) {
ASSERT_TRUE(NULL != row) << "i: " << i;
OK(scanner_iter.add_row(const_cast<ObStoreRow *>(row)));
STORAGE_LOG(INFO, "test", "this row", to_cstring(*row));
} else if (OB_ITER_END != ret) {
ASSERT_EQ(OB_SUCCESS, ret);
}
}
}
res_iter.reset();
OK(res_iter.from(result4));
ASSERT_TRUE(res_iter.equals(scanner_iter, false));
}
}
}
int main(int argc, char** argv)
{