3535 lines
103 KiB
C++
3535 lines
103 KiB
C++
/**
|
|
* Copyright (c) 2021 OceanBase
|
|
* OceanBase CE is licensed under Mulan PubL v2.
|
|
* You can use this software according to the terms and conditions of the Mulan PubL v2.
|
|
* You may obtain a copy of Mulan PubL v2 at:
|
|
* http://license.coscl.org.cn/MulanPubL-2.0
|
|
* THIS SOFTWARE IS PROVIDED ON AN "AS IS" BASIS, WITHOUT WARRANTIES OF ANY KIND,
|
|
* EITHER EXPRESS OR IMPLIED, INCLUDING BUT NOT LIMITED TO NON-INFRINGEMENT,
|
|
* MERCHANTABILITY OR FIT FOR A PARTICULAR PURPOSE.
|
|
* See the Mulan PubL v2 for more details.
|
|
*/
|
|
|
|
#define USING_LOG_PREFIX SHARE_SCHEMA
|
|
#include "ob_inner_table_schema.h"
|
|
|
|
#include "share/schema/ob_schema_macro_define.h"
|
|
#include "share/schema/ob_schema_service_sql_impl.h"
|
|
#include "share/schema/ob_table_schema.h"
|
|
#include "share/scn.h"
|
|
|
|
namespace oceanbase
|
|
{
|
|
using namespace share::schema;
|
|
using namespace common;
|
|
namespace share
|
|
{
|
|
|
|
int ObInnerTableSchema::session_variables_schema(ObTableSchema &table_schema)
|
|
{
|
|
int ret = OB_SUCCESS;
|
|
uint64_t column_id = OB_APP_MIN_COLUMN_ID - 1;
|
|
|
|
//generated fields:
|
|
table_schema.set_tenant_id(OB_SYS_TENANT_ID);
|
|
table_schema.set_tablegroup_id(OB_INVALID_ID);
|
|
table_schema.set_database_id(OB_INFORMATION_SCHEMA_ID);
|
|
table_schema.set_table_id(OB_SESSION_VARIABLES_TID);
|
|
table_schema.set_rowkey_split_pos(0);
|
|
table_schema.set_is_use_bloomfilter(false);
|
|
table_schema.set_progressive_merge_num(0);
|
|
table_schema.set_rowkey_column_num(0);
|
|
table_schema.set_load_type(TABLE_LOAD_TYPE_IN_DISK);
|
|
table_schema.set_table_type(VIRTUAL_TABLE);
|
|
table_schema.set_index_type(INDEX_TYPE_IS_NOT);
|
|
table_schema.set_def_type(TABLE_DEF_TYPE_INTERNAL);
|
|
|
|
if (OB_SUCC(ret)) {
|
|
if (OB_FAIL(table_schema.set_table_name(OB_SESSION_VARIABLES_TNAME))) {
|
|
LOG_ERROR("fail to set table_name", K(ret));
|
|
}
|
|
}
|
|
|
|
if (OB_SUCC(ret)) {
|
|
if (OB_FAIL(table_schema.set_compress_func_name(OB_DEFAULT_COMPRESS_FUNC_NAME))) {
|
|
LOG_ERROR("fail to set compress_func_name", K(ret));
|
|
}
|
|
}
|
|
table_schema.set_part_level(PARTITION_LEVEL_ZERO);
|
|
table_schema.set_charset_type(ObCharset::get_default_charset());
|
|
table_schema.set_collation_type(ObCharset::get_default_collation(ObCharset::get_default_charset()));
|
|
|
|
if (OB_SUCC(ret)) {
|
|
ObObj variable_name_default;
|
|
variable_name_default.set_varchar(ObString::make_string(""));
|
|
ADD_COLUMN_SCHEMA_T("VARIABLE_NAME", //column_name
|
|
++column_id, //column_id
|
|
0, //rowkey_id
|
|
0, //index_id
|
|
0, //part_key_pos
|
|
ObVarcharType, //column_type
|
|
CS_TYPE_INVALID, //column_collation_type
|
|
OB_MAX_SYS_PARAM_NAME_LENGTH, //column_length
|
|
-1, //column_precision
|
|
-1, //column_scale
|
|
false, //is_nullable
|
|
false, //is_autoincrement
|
|
variable_name_default,
|
|
variable_name_default); //default_value
|
|
}
|
|
|
|
if (OB_SUCC(ret)) {
|
|
ObObj variable_value_default;
|
|
variable_value_default.set_null();
|
|
ADD_COLUMN_SCHEMA_T("VARIABLE_VALUE", //column_name
|
|
++column_id, //column_id
|
|
0, //rowkey_id
|
|
0, //index_id
|
|
0, //part_key_pos
|
|
ObVarcharType, //column_type
|
|
CS_TYPE_INVALID, //column_collation_type
|
|
OB_MAX_SYS_PARAM_VALUE_LENGTH, //column_length
|
|
-1, //column_precision
|
|
-1, //column_scale
|
|
true, //is_nullable
|
|
false, //is_autoincrement
|
|
variable_value_default,
|
|
variable_value_default); //default_value
|
|
}
|
|
table_schema.set_index_using_type(USING_HASH);
|
|
table_schema.set_row_store_type(ENCODING_ROW_STORE);
|
|
table_schema.set_store_format(OB_STORE_FORMAT_DYNAMIC_MYSQL);
|
|
table_schema.set_progressive_merge_round(1);
|
|
table_schema.set_storage_format_version(3);
|
|
table_schema.set_tablet_id(0);
|
|
|
|
table_schema.set_max_used_column_id(column_id);
|
|
return ret;
|
|
}
|
|
|
|
int ObInnerTableSchema::global_status_schema(ObTableSchema &table_schema)
|
|
{
|
|
int ret = OB_SUCCESS;
|
|
uint64_t column_id = OB_APP_MIN_COLUMN_ID - 1;
|
|
|
|
//generated fields:
|
|
table_schema.set_tenant_id(OB_SYS_TENANT_ID);
|
|
table_schema.set_tablegroup_id(OB_INVALID_ID);
|
|
table_schema.set_database_id(OB_INFORMATION_SCHEMA_ID);
|
|
table_schema.set_table_id(OB_GLOBAL_STATUS_TID);
|
|
table_schema.set_rowkey_split_pos(0);
|
|
table_schema.set_is_use_bloomfilter(false);
|
|
table_schema.set_progressive_merge_num(0);
|
|
table_schema.set_rowkey_column_num(0);
|
|
table_schema.set_load_type(TABLE_LOAD_TYPE_IN_DISK);
|
|
table_schema.set_table_type(VIRTUAL_TABLE);
|
|
table_schema.set_index_type(INDEX_TYPE_IS_NOT);
|
|
table_schema.set_def_type(TABLE_DEF_TYPE_INTERNAL);
|
|
|
|
if (OB_SUCC(ret)) {
|
|
if (OB_FAIL(table_schema.set_table_name(OB_GLOBAL_STATUS_TNAME))) {
|
|
LOG_ERROR("fail to set table_name", K(ret));
|
|
}
|
|
}
|
|
|
|
if (OB_SUCC(ret)) {
|
|
if (OB_FAIL(table_schema.set_compress_func_name(OB_DEFAULT_COMPRESS_FUNC_NAME))) {
|
|
LOG_ERROR("fail to set compress_func_name", K(ret));
|
|
}
|
|
}
|
|
table_schema.set_part_level(PARTITION_LEVEL_ZERO);
|
|
table_schema.set_charset_type(ObCharset::get_default_charset());
|
|
table_schema.set_collation_type(ObCharset::get_default_collation(ObCharset::get_default_charset()));
|
|
|
|
if (OB_SUCC(ret)) {
|
|
ObObj variable_name_default;
|
|
variable_name_default.set_varchar(ObString::make_string(""));
|
|
ADD_COLUMN_SCHEMA_T("VARIABLE_NAME", //column_name
|
|
++column_id, //column_id
|
|
0, //rowkey_id
|
|
0, //index_id
|
|
0, //part_key_pos
|
|
ObVarcharType, //column_type
|
|
CS_TYPE_INVALID, //column_collation_type
|
|
OB_MAX_SYS_PARAM_NAME_LENGTH, //column_length
|
|
-1, //column_precision
|
|
-1, //column_scale
|
|
false, //is_nullable
|
|
false, //is_autoincrement
|
|
variable_name_default,
|
|
variable_name_default); //default_value
|
|
}
|
|
|
|
if (OB_SUCC(ret)) {
|
|
ObObj variable_value_default;
|
|
variable_value_default.set_null();
|
|
ADD_COLUMN_SCHEMA_T("VARIABLE_VALUE", //column_name
|
|
++column_id, //column_id
|
|
0, //rowkey_id
|
|
0, //index_id
|
|
0, //part_key_pos
|
|
ObVarcharType, //column_type
|
|
CS_TYPE_INVALID, //column_collation_type
|
|
OB_MAX_SYS_PARAM_VALUE_LENGTH, //column_length
|
|
-1, //column_precision
|
|
-1, //column_scale
|
|
true, //is_nullable
|
|
false, //is_autoincrement
|
|
variable_value_default,
|
|
variable_value_default); //default_value
|
|
}
|
|
table_schema.set_index_using_type(USING_HASH);
|
|
table_schema.set_row_store_type(ENCODING_ROW_STORE);
|
|
table_schema.set_store_format(OB_STORE_FORMAT_DYNAMIC_MYSQL);
|
|
table_schema.set_progressive_merge_round(1);
|
|
table_schema.set_storage_format_version(3);
|
|
table_schema.set_tablet_id(0);
|
|
|
|
table_schema.set_max_used_column_id(column_id);
|
|
return ret;
|
|
}
|
|
|
|
int ObInnerTableSchema::session_status_schema(ObTableSchema &table_schema)
|
|
{
|
|
int ret = OB_SUCCESS;
|
|
uint64_t column_id = OB_APP_MIN_COLUMN_ID - 1;
|
|
|
|
//generated fields:
|
|
table_schema.set_tenant_id(OB_SYS_TENANT_ID);
|
|
table_schema.set_tablegroup_id(OB_INVALID_ID);
|
|
table_schema.set_database_id(OB_INFORMATION_SCHEMA_ID);
|
|
table_schema.set_table_id(OB_SESSION_STATUS_TID);
|
|
table_schema.set_rowkey_split_pos(0);
|
|
table_schema.set_is_use_bloomfilter(false);
|
|
table_schema.set_progressive_merge_num(0);
|
|
table_schema.set_rowkey_column_num(0);
|
|
table_schema.set_load_type(TABLE_LOAD_TYPE_IN_DISK);
|
|
table_schema.set_table_type(VIRTUAL_TABLE);
|
|
table_schema.set_index_type(INDEX_TYPE_IS_NOT);
|
|
table_schema.set_def_type(TABLE_DEF_TYPE_INTERNAL);
|
|
|
|
if (OB_SUCC(ret)) {
|
|
if (OB_FAIL(table_schema.set_table_name(OB_SESSION_STATUS_TNAME))) {
|
|
LOG_ERROR("fail to set table_name", K(ret));
|
|
}
|
|
}
|
|
|
|
if (OB_SUCC(ret)) {
|
|
if (OB_FAIL(table_schema.set_compress_func_name(OB_DEFAULT_COMPRESS_FUNC_NAME))) {
|
|
LOG_ERROR("fail to set compress_func_name", K(ret));
|
|
}
|
|
}
|
|
table_schema.set_part_level(PARTITION_LEVEL_ZERO);
|
|
table_schema.set_charset_type(ObCharset::get_default_charset());
|
|
table_schema.set_collation_type(ObCharset::get_default_collation(ObCharset::get_default_charset()));
|
|
|
|
if (OB_SUCC(ret)) {
|
|
ObObj variable_name_default;
|
|
variable_name_default.set_varchar(ObString::make_string(""));
|
|
ADD_COLUMN_SCHEMA_T("VARIABLE_NAME", //column_name
|
|
++column_id, //column_id
|
|
0, //rowkey_id
|
|
0, //index_id
|
|
0, //part_key_pos
|
|
ObVarcharType, //column_type
|
|
CS_TYPE_INVALID, //column_collation_type
|
|
OB_MAX_SYS_PARAM_NAME_LENGTH, //column_length
|
|
-1, //column_precision
|
|
-1, //column_scale
|
|
false, //is_nullable
|
|
false, //is_autoincrement
|
|
variable_name_default,
|
|
variable_name_default); //default_value
|
|
}
|
|
|
|
if (OB_SUCC(ret)) {
|
|
ObObj variable_value_default;
|
|
variable_value_default.set_null();
|
|
ADD_COLUMN_SCHEMA_T("VARIABLE_VALUE", //column_name
|
|
++column_id, //column_id
|
|
0, //rowkey_id
|
|
0, //index_id
|
|
0, //part_key_pos
|
|
ObVarcharType, //column_type
|
|
CS_TYPE_INVALID, //column_collation_type
|
|
OB_MAX_SYS_PARAM_VALUE_LENGTH, //column_length
|
|
-1, //column_precision
|
|
-1, //column_scale
|
|
true, //is_nullable
|
|
false, //is_autoincrement
|
|
variable_value_default,
|
|
variable_value_default); //default_value
|
|
}
|
|
table_schema.set_index_using_type(USING_HASH);
|
|
table_schema.set_row_store_type(ENCODING_ROW_STORE);
|
|
table_schema.set_store_format(OB_STORE_FORMAT_DYNAMIC_MYSQL);
|
|
table_schema.set_progressive_merge_round(1);
|
|
table_schema.set_storage_format_version(3);
|
|
table_schema.set_tablet_id(0);
|
|
|
|
table_schema.set_max_used_column_id(column_id);
|
|
return ret;
|
|
}
|
|
|
|
int ObInnerTableSchema::user_schema(ObTableSchema &table_schema)
|
|
{
|
|
int ret = OB_SUCCESS;
|
|
uint64_t column_id = OB_APP_MIN_COLUMN_ID - 1;
|
|
|
|
//generated fields:
|
|
table_schema.set_tenant_id(OB_SYS_TENANT_ID);
|
|
table_schema.set_tablegroup_id(OB_INVALID_ID);
|
|
table_schema.set_database_id(OB_MYSQL_SCHEMA_ID);
|
|
table_schema.set_table_id(OB_USER_TID);
|
|
table_schema.set_rowkey_split_pos(0);
|
|
table_schema.set_is_use_bloomfilter(false);
|
|
table_schema.set_progressive_merge_num(0);
|
|
table_schema.set_rowkey_column_num(0);
|
|
table_schema.set_load_type(TABLE_LOAD_TYPE_IN_DISK);
|
|
table_schema.set_table_type(VIRTUAL_TABLE);
|
|
table_schema.set_index_type(INDEX_TYPE_IS_NOT);
|
|
table_schema.set_def_type(TABLE_DEF_TYPE_INTERNAL);
|
|
|
|
if (OB_SUCC(ret)) {
|
|
if (OB_FAIL(table_schema.set_table_name(OB_USER_TNAME))) {
|
|
LOG_ERROR("fail to set table_name", K(ret));
|
|
}
|
|
}
|
|
|
|
if (OB_SUCC(ret)) {
|
|
if (OB_FAIL(table_schema.set_compress_func_name(OB_DEFAULT_COMPRESS_FUNC_NAME))) {
|
|
LOG_ERROR("fail to set compress_func_name", K(ret));
|
|
}
|
|
}
|
|
table_schema.set_part_level(PARTITION_LEVEL_ZERO);
|
|
table_schema.set_charset_type(ObCharset::get_default_charset());
|
|
table_schema.set_collation_type(ObCharset::get_default_collation(ObCharset::get_default_charset()));
|
|
|
|
if (OB_SUCC(ret)) {
|
|
ADD_COLUMN_SCHEMA("host", //column_name
|
|
++column_id, //column_id
|
|
0, //rowkey_id
|
|
0, //index_id
|
|
0, //part_key_pos
|
|
ObVarcharType, //column_type
|
|
CS_TYPE_INVALID, //column_collation_type
|
|
OB_MAX_HOST_NAME_LENGTH, //column_length
|
|
-1, //column_precision
|
|
-1, //column_scale
|
|
false, //is_nullable
|
|
false); //is_autoincrement
|
|
}
|
|
|
|
if (OB_SUCC(ret)) {
|
|
ADD_COLUMN_SCHEMA("user", //column_name
|
|
++column_id, //column_id
|
|
0, //rowkey_id
|
|
0, //index_id
|
|
0, //part_key_pos
|
|
ObVarcharType, //column_type
|
|
CS_TYPE_INVALID, //column_collation_type
|
|
OB_MAX_USER_NAME_LENGTH_STORE, //column_length
|
|
-1, //column_precision
|
|
-1, //column_scale
|
|
false, //is_nullable
|
|
false); //is_autoincrement
|
|
}
|
|
|
|
if (OB_SUCC(ret)) {
|
|
ADD_COLUMN_SCHEMA("password", //column_name
|
|
++column_id, //column_id
|
|
0, //rowkey_id
|
|
0, //index_id
|
|
0, //part_key_pos
|
|
ObVarcharType, //column_type
|
|
CS_TYPE_INVALID, //column_collation_type
|
|
OB_MAX_PASSWORD_LENGTH, //column_length
|
|
-1, //column_precision
|
|
-1, //column_scale
|
|
false, //is_nullable
|
|
false); //is_autoincrement
|
|
}
|
|
|
|
if (OB_SUCC(ret)) {
|
|
ADD_COLUMN_SCHEMA("select_priv", //column_name
|
|
++column_id, //column_id
|
|
0, //rowkey_id
|
|
0, //index_id
|
|
0, //part_key_pos
|
|
ObVarcharType, //column_type
|
|
CS_TYPE_INVALID, //column_collation_type
|
|
1, //column_length
|
|
-1, //column_precision
|
|
-1, //column_scale
|
|
false, //is_nullable
|
|
false); //is_autoincrement
|
|
}
|
|
|
|
if (OB_SUCC(ret)) {
|
|
ADD_COLUMN_SCHEMA("insert_priv", //column_name
|
|
++column_id, //column_id
|
|
0, //rowkey_id
|
|
0, //index_id
|
|
0, //part_key_pos
|
|
ObVarcharType, //column_type
|
|
CS_TYPE_INVALID, //column_collation_type
|
|
1, //column_length
|
|
-1, //column_precision
|
|
-1, //column_scale
|
|
false, //is_nullable
|
|
false); //is_autoincrement
|
|
}
|
|
|
|
if (OB_SUCC(ret)) {
|
|
ADD_COLUMN_SCHEMA("update_priv", //column_name
|
|
++column_id, //column_id
|
|
0, //rowkey_id
|
|
0, //index_id
|
|
0, //part_key_pos
|
|
ObVarcharType, //column_type
|
|
CS_TYPE_INVALID, //column_collation_type
|
|
1, //column_length
|
|
-1, //column_precision
|
|
-1, //column_scale
|
|
false, //is_nullable
|
|
false); //is_autoincrement
|
|
}
|
|
|
|
if (OB_SUCC(ret)) {
|
|
ADD_COLUMN_SCHEMA("delete_priv", //column_name
|
|
++column_id, //column_id
|
|
0, //rowkey_id
|
|
0, //index_id
|
|
0, //part_key_pos
|
|
ObVarcharType, //column_type
|
|
CS_TYPE_INVALID, //column_collation_type
|
|
1, //column_length
|
|
-1, //column_precision
|
|
-1, //column_scale
|
|
false, //is_nullable
|
|
false); //is_autoincrement
|
|
}
|
|
|
|
if (OB_SUCC(ret)) {
|
|
ADD_COLUMN_SCHEMA("create_priv", //column_name
|
|
++column_id, //column_id
|
|
0, //rowkey_id
|
|
0, //index_id
|
|
0, //part_key_pos
|
|
ObVarcharType, //column_type
|
|
CS_TYPE_INVALID, //column_collation_type
|
|
1, //column_length
|
|
-1, //column_precision
|
|
-1, //column_scale
|
|
false, //is_nullable
|
|
false); //is_autoincrement
|
|
}
|
|
|
|
if (OB_SUCC(ret)) {
|
|
ADD_COLUMN_SCHEMA("drop_priv", //column_name
|
|
++column_id, //column_id
|
|
0, //rowkey_id
|
|
0, //index_id
|
|
0, //part_key_pos
|
|
ObVarcharType, //column_type
|
|
CS_TYPE_INVALID, //column_collation_type
|
|
1, //column_length
|
|
-1, //column_precision
|
|
-1, //column_scale
|
|
false, //is_nullable
|
|
false); //is_autoincrement
|
|
}
|
|
|
|
if (OB_SUCC(ret)) {
|
|
ADD_COLUMN_SCHEMA("reload_priv", //column_name
|
|
++column_id, //column_id
|
|
0, //rowkey_id
|
|
0, //index_id
|
|
0, //part_key_pos
|
|
ObVarcharType, //column_type
|
|
CS_TYPE_INVALID, //column_collation_type
|
|
1, //column_length
|
|
-1, //column_precision
|
|
-1, //column_scale
|
|
false, //is_nullable
|
|
false); //is_autoincrement
|
|
}
|
|
|
|
if (OB_SUCC(ret)) {
|
|
ADD_COLUMN_SCHEMA("shutdown_priv", //column_name
|
|
++column_id, //column_id
|
|
0, //rowkey_id
|
|
0, //index_id
|
|
0, //part_key_pos
|
|
ObVarcharType, //column_type
|
|
CS_TYPE_INVALID, //column_collation_type
|
|
1, //column_length
|
|
-1, //column_precision
|
|
-1, //column_scale
|
|
false, //is_nullable
|
|
false); //is_autoincrement
|
|
}
|
|
|
|
if (OB_SUCC(ret)) {
|
|
ADD_COLUMN_SCHEMA("process_priv", //column_name
|
|
++column_id, //column_id
|
|
0, //rowkey_id
|
|
0, //index_id
|
|
0, //part_key_pos
|
|
ObVarcharType, //column_type
|
|
CS_TYPE_INVALID, //column_collation_type
|
|
1, //column_length
|
|
-1, //column_precision
|
|
-1, //column_scale
|
|
false, //is_nullable
|
|
false); //is_autoincrement
|
|
}
|
|
|
|
if (OB_SUCC(ret)) {
|
|
ADD_COLUMN_SCHEMA("file_priv", //column_name
|
|
++column_id, //column_id
|
|
0, //rowkey_id
|
|
0, //index_id
|
|
0, //part_key_pos
|
|
ObVarcharType, //column_type
|
|
CS_TYPE_INVALID, //column_collation_type
|
|
1, //column_length
|
|
-1, //column_precision
|
|
-1, //column_scale
|
|
false, //is_nullable
|
|
false); //is_autoincrement
|
|
}
|
|
|
|
if (OB_SUCC(ret)) {
|
|
ADD_COLUMN_SCHEMA("grant_priv", //column_name
|
|
++column_id, //column_id
|
|
0, //rowkey_id
|
|
0, //index_id
|
|
0, //part_key_pos
|
|
ObVarcharType, //column_type
|
|
CS_TYPE_INVALID, //column_collation_type
|
|
1, //column_length
|
|
-1, //column_precision
|
|
-1, //column_scale
|
|
false, //is_nullable
|
|
false); //is_autoincrement
|
|
}
|
|
|
|
if (OB_SUCC(ret)) {
|
|
ADD_COLUMN_SCHEMA("references_priv", //column_name
|
|
++column_id, //column_id
|
|
0, //rowkey_id
|
|
0, //index_id
|
|
0, //part_key_pos
|
|
ObVarcharType, //column_type
|
|
CS_TYPE_INVALID, //column_collation_type
|
|
1, //column_length
|
|
-1, //column_precision
|
|
-1, //column_scale
|
|
false, //is_nullable
|
|
false); //is_autoincrement
|
|
}
|
|
|
|
if (OB_SUCC(ret)) {
|
|
ADD_COLUMN_SCHEMA("index_priv", //column_name
|
|
++column_id, //column_id
|
|
0, //rowkey_id
|
|
0, //index_id
|
|
0, //part_key_pos
|
|
ObVarcharType, //column_type
|
|
CS_TYPE_INVALID, //column_collation_type
|
|
1, //column_length
|
|
-1, //column_precision
|
|
-1, //column_scale
|
|
false, //is_nullable
|
|
false); //is_autoincrement
|
|
}
|
|
|
|
if (OB_SUCC(ret)) {
|
|
ADD_COLUMN_SCHEMA("alter_priv", //column_name
|
|
++column_id, //column_id
|
|
0, //rowkey_id
|
|
0, //index_id
|
|
0, //part_key_pos
|
|
ObVarcharType, //column_type
|
|
CS_TYPE_INVALID, //column_collation_type
|
|
1, //column_length
|
|
-1, //column_precision
|
|
-1, //column_scale
|
|
false, //is_nullable
|
|
false); //is_autoincrement
|
|
}
|
|
|
|
if (OB_SUCC(ret)) {
|
|
ADD_COLUMN_SCHEMA("show_db_priv", //column_name
|
|
++column_id, //column_id
|
|
0, //rowkey_id
|
|
0, //index_id
|
|
0, //part_key_pos
|
|
ObVarcharType, //column_type
|
|
CS_TYPE_INVALID, //column_collation_type
|
|
1, //column_length
|
|
-1, //column_precision
|
|
-1, //column_scale
|
|
false, //is_nullable
|
|
false); //is_autoincrement
|
|
}
|
|
|
|
if (OB_SUCC(ret)) {
|
|
ADD_COLUMN_SCHEMA("super_priv", //column_name
|
|
++column_id, //column_id
|
|
0, //rowkey_id
|
|
0, //index_id
|
|
0, //part_key_pos
|
|
ObVarcharType, //column_type
|
|
CS_TYPE_INVALID, //column_collation_type
|
|
1, //column_length
|
|
-1, //column_precision
|
|
-1, //column_scale
|
|
false, //is_nullable
|
|
false); //is_autoincrement
|
|
}
|
|
|
|
if (OB_SUCC(ret)) {
|
|
ADD_COLUMN_SCHEMA("create_tmp_table_priv", //column_name
|
|
++column_id, //column_id
|
|
0, //rowkey_id
|
|
0, //index_id
|
|
0, //part_key_pos
|
|
ObVarcharType, //column_type
|
|
CS_TYPE_INVALID, //column_collation_type
|
|
1, //column_length
|
|
-1, //column_precision
|
|
-1, //column_scale
|
|
false, //is_nullable
|
|
false); //is_autoincrement
|
|
}
|
|
|
|
if (OB_SUCC(ret)) {
|
|
ADD_COLUMN_SCHEMA("lock_tables_priv", //column_name
|
|
++column_id, //column_id
|
|
0, //rowkey_id
|
|
0, //index_id
|
|
0, //part_key_pos
|
|
ObVarcharType, //column_type
|
|
CS_TYPE_INVALID, //column_collation_type
|
|
1, //column_length
|
|
-1, //column_precision
|
|
-1, //column_scale
|
|
false, //is_nullable
|
|
false); //is_autoincrement
|
|
}
|
|
|
|
if (OB_SUCC(ret)) {
|
|
ADD_COLUMN_SCHEMA("execute_priv", //column_name
|
|
++column_id, //column_id
|
|
0, //rowkey_id
|
|
0, //index_id
|
|
0, //part_key_pos
|
|
ObVarcharType, //column_type
|
|
CS_TYPE_INVALID, //column_collation_type
|
|
1, //column_length
|
|
-1, //column_precision
|
|
-1, //column_scale
|
|
false, //is_nullable
|
|
false); //is_autoincrement
|
|
}
|
|
|
|
if (OB_SUCC(ret)) {
|
|
ADD_COLUMN_SCHEMA("repl_slave_priv", //column_name
|
|
++column_id, //column_id
|
|
0, //rowkey_id
|
|
0, //index_id
|
|
0, //part_key_pos
|
|
ObVarcharType, //column_type
|
|
CS_TYPE_INVALID, //column_collation_type
|
|
1, //column_length
|
|
-1, //column_precision
|
|
-1, //column_scale
|
|
false, //is_nullable
|
|
false); //is_autoincrement
|
|
}
|
|
|
|
if (OB_SUCC(ret)) {
|
|
ADD_COLUMN_SCHEMA("repl_client_priv", //column_name
|
|
++column_id, //column_id
|
|
0, //rowkey_id
|
|
0, //index_id
|
|
0, //part_key_pos
|
|
ObVarcharType, //column_type
|
|
CS_TYPE_INVALID, //column_collation_type
|
|
1, //column_length
|
|
-1, //column_precision
|
|
-1, //column_scale
|
|
false, //is_nullable
|
|
false); //is_autoincrement
|
|
}
|
|
|
|
if (OB_SUCC(ret)) {
|
|
ADD_COLUMN_SCHEMA("create_view_priv", //column_name
|
|
++column_id, //column_id
|
|
0, //rowkey_id
|
|
0, //index_id
|
|
0, //part_key_pos
|
|
ObVarcharType, //column_type
|
|
CS_TYPE_INVALID, //column_collation_type
|
|
1, //column_length
|
|
-1, //column_precision
|
|
-1, //column_scale
|
|
false, //is_nullable
|
|
false); //is_autoincrement
|
|
}
|
|
|
|
if (OB_SUCC(ret)) {
|
|
ADD_COLUMN_SCHEMA("show_view_priv", //column_name
|
|
++column_id, //column_id
|
|
0, //rowkey_id
|
|
0, //index_id
|
|
0, //part_key_pos
|
|
ObVarcharType, //column_type
|
|
CS_TYPE_INVALID, //column_collation_type
|
|
1, //column_length
|
|
-1, //column_precision
|
|
-1, //column_scale
|
|
false, //is_nullable
|
|
false); //is_autoincrement
|
|
}
|
|
|
|
if (OB_SUCC(ret)) {
|
|
ADD_COLUMN_SCHEMA("create_routine_priv", //column_name
|
|
++column_id, //column_id
|
|
0, //rowkey_id
|
|
0, //index_id
|
|
0, //part_key_pos
|
|
ObVarcharType, //column_type
|
|
CS_TYPE_INVALID, //column_collation_type
|
|
1, //column_length
|
|
-1, //column_precision
|
|
-1, //column_scale
|
|
false, //is_nullable
|
|
false); //is_autoincrement
|
|
}
|
|
|
|
if (OB_SUCC(ret)) {
|
|
ADD_COLUMN_SCHEMA("alter_routine_priv", //column_name
|
|
++column_id, //column_id
|
|
0, //rowkey_id
|
|
0, //index_id
|
|
0, //part_key_pos
|
|
ObVarcharType, //column_type
|
|
CS_TYPE_INVALID, //column_collation_type
|
|
1, //column_length
|
|
-1, //column_precision
|
|
-1, //column_scale
|
|
false, //is_nullable
|
|
false); //is_autoincrement
|
|
}
|
|
|
|
if (OB_SUCC(ret)) {
|
|
ADD_COLUMN_SCHEMA("create_user_priv", //column_name
|
|
++column_id, //column_id
|
|
0, //rowkey_id
|
|
0, //index_id
|
|
0, //part_key_pos
|
|
ObVarcharType, //column_type
|
|
CS_TYPE_INVALID, //column_collation_type
|
|
1, //column_length
|
|
-1, //column_precision
|
|
-1, //column_scale
|
|
false, //is_nullable
|
|
false); //is_autoincrement
|
|
}
|
|
|
|
if (OB_SUCC(ret)) {
|
|
ADD_COLUMN_SCHEMA("event_priv", //column_name
|
|
++column_id, //column_id
|
|
0, //rowkey_id
|
|
0, //index_id
|
|
0, //part_key_pos
|
|
ObVarcharType, //column_type
|
|
CS_TYPE_INVALID, //column_collation_type
|
|
1, //column_length
|
|
-1, //column_precision
|
|
-1, //column_scale
|
|
false, //is_nullable
|
|
false); //is_autoincrement
|
|
}
|
|
|
|
if (OB_SUCC(ret)) {
|
|
ADD_COLUMN_SCHEMA("trigger_priv", //column_name
|
|
++column_id, //column_id
|
|
0, //rowkey_id
|
|
0, //index_id
|
|
0, //part_key_pos
|
|
ObVarcharType, //column_type
|
|
CS_TYPE_INVALID, //column_collation_type
|
|
1, //column_length
|
|
-1, //column_precision
|
|
-1, //column_scale
|
|
false, //is_nullable
|
|
false); //is_autoincrement
|
|
}
|
|
|
|
if (OB_SUCC(ret)) {
|
|
ADD_COLUMN_SCHEMA("create_tablespace_priv", //column_name
|
|
++column_id, //column_id
|
|
0, //rowkey_id
|
|
0, //index_id
|
|
0, //part_key_pos
|
|
ObVarcharType, //column_type
|
|
CS_TYPE_INVALID, //column_collation_type
|
|
1, //column_length
|
|
-1, //column_precision
|
|
-1, //column_scale
|
|
false, //is_nullable
|
|
false); //is_autoincrement
|
|
}
|
|
|
|
if (OB_SUCC(ret)) {
|
|
ObObj ssl_type_default;
|
|
ssl_type_default.set_varchar(ObString::make_string(""));
|
|
ADD_COLUMN_SCHEMA_T("ssl_type", //column_name
|
|
++column_id, //column_id
|
|
0, //rowkey_id
|
|
0, //index_id
|
|
0, //part_key_pos
|
|
ObVarcharType, //column_type
|
|
CS_TYPE_INVALID, //column_collation_type
|
|
10, //column_length
|
|
-1, //column_precision
|
|
-1, //column_scale
|
|
false, //is_nullable
|
|
false, //is_autoincrement
|
|
ssl_type_default,
|
|
ssl_type_default); //default_value
|
|
}
|
|
|
|
if (OB_SUCC(ret)) {
|
|
ObObj ssl_cipher_default;
|
|
ssl_cipher_default.set_varchar(ObString::make_string(""));
|
|
ADD_COLUMN_SCHEMA_T("ssl_cipher", //column_name
|
|
++column_id, //column_id
|
|
0, //rowkey_id
|
|
0, //index_id
|
|
0, //part_key_pos
|
|
ObVarcharType, //column_type
|
|
CS_TYPE_INVALID, //column_collation_type
|
|
1024, //column_length
|
|
-1, //column_precision
|
|
-1, //column_scale
|
|
false, //is_nullable
|
|
false, //is_autoincrement
|
|
ssl_cipher_default,
|
|
ssl_cipher_default); //default_value
|
|
}
|
|
|
|
if (OB_SUCC(ret)) {
|
|
ObObj x509_issuer_default;
|
|
x509_issuer_default.set_varchar(ObString::make_string(""));
|
|
ADD_COLUMN_SCHEMA_T("x509_issuer", //column_name
|
|
++column_id, //column_id
|
|
0, //rowkey_id
|
|
0, //index_id
|
|
0, //part_key_pos
|
|
ObVarcharType, //column_type
|
|
CS_TYPE_INVALID, //column_collation_type
|
|
1024, //column_length
|
|
-1, //column_precision
|
|
-1, //column_scale
|
|
false, //is_nullable
|
|
false, //is_autoincrement
|
|
x509_issuer_default,
|
|
x509_issuer_default); //default_value
|
|
}
|
|
|
|
if (OB_SUCC(ret)) {
|
|
ObObj x509_subject_default;
|
|
x509_subject_default.set_varchar(ObString::make_string(""));
|
|
ADD_COLUMN_SCHEMA_T("x509_subject", //column_name
|
|
++column_id, //column_id
|
|
0, //rowkey_id
|
|
0, //index_id
|
|
0, //part_key_pos
|
|
ObVarcharType, //column_type
|
|
CS_TYPE_INVALID, //column_collation_type
|
|
1024, //column_length
|
|
-1, //column_precision
|
|
-1, //column_scale
|
|
false, //is_nullable
|
|
false, //is_autoincrement
|
|
x509_subject_default,
|
|
x509_subject_default); //default_value
|
|
}
|
|
|
|
if (OB_SUCC(ret)) {
|
|
ObObj max_questions_default;
|
|
max_questions_default.set_int(0);
|
|
ADD_COLUMN_SCHEMA_T("max_questions", //column_name
|
|
++column_id, //column_id
|
|
0, //rowkey_id
|
|
0, //index_id
|
|
0, //part_key_pos
|
|
ObIntType, //column_type
|
|
CS_TYPE_INVALID, //column_collation_type
|
|
sizeof(int64_t), //column_length
|
|
-1, //column_precision
|
|
-1, //column_scale
|
|
false, //is_nullable
|
|
false, //is_autoincrement
|
|
max_questions_default,
|
|
max_questions_default); //default_value
|
|
}
|
|
|
|
if (OB_SUCC(ret)) {
|
|
ObObj max_updates_default;
|
|
max_updates_default.set_int(0);
|
|
ADD_COLUMN_SCHEMA_T("max_updates", //column_name
|
|
++column_id, //column_id
|
|
0, //rowkey_id
|
|
0, //index_id
|
|
0, //part_key_pos
|
|
ObIntType, //column_type
|
|
CS_TYPE_INVALID, //column_collation_type
|
|
sizeof(int64_t), //column_length
|
|
-1, //column_precision
|
|
-1, //column_scale
|
|
false, //is_nullable
|
|
false, //is_autoincrement
|
|
max_updates_default,
|
|
max_updates_default); //default_value
|
|
}
|
|
|
|
if (OB_SUCC(ret)) {
|
|
ObObj max_connections_default;
|
|
max_connections_default.set_int(0);
|
|
ADD_COLUMN_SCHEMA_T("max_connections", //column_name
|
|
++column_id, //column_id
|
|
0, //rowkey_id
|
|
0, //index_id
|
|
0, //part_key_pos
|
|
ObIntType, //column_type
|
|
CS_TYPE_INVALID, //column_collation_type
|
|
sizeof(int64_t), //column_length
|
|
-1, //column_precision
|
|
-1, //column_scale
|
|
false, //is_nullable
|
|
false, //is_autoincrement
|
|
max_connections_default,
|
|
max_connections_default); //default_value
|
|
}
|
|
|
|
if (OB_SUCC(ret)) {
|
|
ObObj max_user_connections_default;
|
|
max_user_connections_default.set_int(0);
|
|
ADD_COLUMN_SCHEMA_T("max_user_connections", //column_name
|
|
++column_id, //column_id
|
|
0, //rowkey_id
|
|
0, //index_id
|
|
0, //part_key_pos
|
|
ObIntType, //column_type
|
|
CS_TYPE_INVALID, //column_collation_type
|
|
sizeof(int64_t), //column_length
|
|
-1, //column_precision
|
|
-1, //column_scale
|
|
false, //is_nullable
|
|
false, //is_autoincrement
|
|
max_user_connections_default,
|
|
max_user_connections_default); //default_value
|
|
}
|
|
|
|
if (OB_SUCC(ret)) {
|
|
ADD_COLUMN_SCHEMA("plugin", //column_name
|
|
++column_id, //column_id
|
|
0, //rowkey_id
|
|
0, //index_id
|
|
0, //part_key_pos
|
|
ObVarcharType, //column_type
|
|
CS_TYPE_INVALID, //column_collation_type
|
|
1024, //column_length
|
|
-1, //column_precision
|
|
-1, //column_scale
|
|
false, //is_nullable
|
|
false); //is_autoincrement
|
|
}
|
|
|
|
if (OB_SUCC(ret)) {
|
|
ADD_COLUMN_SCHEMA("authentication_string", //column_name
|
|
++column_id, //column_id
|
|
0, //rowkey_id
|
|
0, //index_id
|
|
0, //part_key_pos
|
|
ObVarcharType, //column_type
|
|
CS_TYPE_INVALID, //column_collation_type
|
|
1024, //column_length
|
|
-1, //column_precision
|
|
-1, //column_scale
|
|
false, //is_nullable
|
|
false); //is_autoincrement
|
|
}
|
|
|
|
if (OB_SUCC(ret)) {
|
|
ADD_COLUMN_SCHEMA("password_expired", //column_name
|
|
++column_id, //column_id
|
|
0, //rowkey_id
|
|
0, //index_id
|
|
0, //part_key_pos
|
|
ObVarcharType, //column_type
|
|
CS_TYPE_INVALID, //column_collation_type
|
|
1, //column_length
|
|
-1, //column_precision
|
|
-1, //column_scale
|
|
false, //is_nullable
|
|
false); //is_autoincrement
|
|
}
|
|
|
|
if (OB_SUCC(ret)) {
|
|
ADD_COLUMN_SCHEMA("account_locked", //column_name
|
|
++column_id, //column_id
|
|
0, //rowkey_id
|
|
0, //index_id
|
|
0, //part_key_pos
|
|
ObVarcharType, //column_type
|
|
CS_TYPE_INVALID, //column_collation_type
|
|
1, //column_length
|
|
-1, //column_precision
|
|
-1, //column_scale
|
|
false, //is_nullable
|
|
false); //is_autoincrement
|
|
}
|
|
|
|
if (OB_SUCC(ret)) {
|
|
ADD_COLUMN_SCHEMA("drop_database_link_priv", //column_name
|
|
++column_id, //column_id
|
|
0, //rowkey_id
|
|
0, //index_id
|
|
0, //part_key_pos
|
|
ObVarcharType, //column_type
|
|
CS_TYPE_INVALID, //column_collation_type
|
|
1, //column_length
|
|
-1, //column_precision
|
|
-1, //column_scale
|
|
false, //is_nullable
|
|
false); //is_autoincrement
|
|
}
|
|
|
|
if (OB_SUCC(ret)) {
|
|
ADD_COLUMN_SCHEMA("create_database_link_priv", //column_name
|
|
++column_id, //column_id
|
|
0, //rowkey_id
|
|
0, //index_id
|
|
0, //part_key_pos
|
|
ObVarcharType, //column_type
|
|
CS_TYPE_INVALID, //column_collation_type
|
|
1, //column_length
|
|
-1, //column_precision
|
|
-1, //column_scale
|
|
false, //is_nullable
|
|
false); //is_autoincrement
|
|
}
|
|
table_schema.set_index_using_type(USING_HASH);
|
|
table_schema.set_row_store_type(ENCODING_ROW_STORE);
|
|
table_schema.set_store_format(OB_STORE_FORMAT_DYNAMIC_MYSQL);
|
|
table_schema.set_progressive_merge_round(1);
|
|
table_schema.set_storage_format_version(3);
|
|
table_schema.set_tablet_id(0);
|
|
|
|
table_schema.set_max_used_column_id(column_id);
|
|
return ret;
|
|
}
|
|
|
|
int ObInnerTableSchema::db_schema(ObTableSchema &table_schema)
|
|
{
|
|
int ret = OB_SUCCESS;
|
|
uint64_t column_id = OB_APP_MIN_COLUMN_ID - 1;
|
|
|
|
//generated fields:
|
|
table_schema.set_tenant_id(OB_SYS_TENANT_ID);
|
|
table_schema.set_tablegroup_id(OB_INVALID_ID);
|
|
table_schema.set_database_id(OB_MYSQL_SCHEMA_ID);
|
|
table_schema.set_table_id(OB_DB_TID);
|
|
table_schema.set_rowkey_split_pos(0);
|
|
table_schema.set_is_use_bloomfilter(false);
|
|
table_schema.set_progressive_merge_num(0);
|
|
table_schema.set_rowkey_column_num(0);
|
|
table_schema.set_load_type(TABLE_LOAD_TYPE_IN_DISK);
|
|
table_schema.set_table_type(VIRTUAL_TABLE);
|
|
table_schema.set_index_type(INDEX_TYPE_IS_NOT);
|
|
table_schema.set_def_type(TABLE_DEF_TYPE_INTERNAL);
|
|
|
|
if (OB_SUCC(ret)) {
|
|
if (OB_FAIL(table_schema.set_table_name(OB_DB_TNAME))) {
|
|
LOG_ERROR("fail to set table_name", K(ret));
|
|
}
|
|
}
|
|
|
|
if (OB_SUCC(ret)) {
|
|
if (OB_FAIL(table_schema.set_compress_func_name(OB_DEFAULT_COMPRESS_FUNC_NAME))) {
|
|
LOG_ERROR("fail to set compress_func_name", K(ret));
|
|
}
|
|
}
|
|
table_schema.set_part_level(PARTITION_LEVEL_ZERO);
|
|
table_schema.set_charset_type(ObCharset::get_default_charset());
|
|
table_schema.set_collation_type(ObCharset::get_default_collation(ObCharset::get_default_charset()));
|
|
|
|
if (OB_SUCC(ret)) {
|
|
ADD_COLUMN_SCHEMA("host", //column_name
|
|
++column_id, //column_id
|
|
0, //rowkey_id
|
|
0, //index_id
|
|
0, //part_key_pos
|
|
ObVarcharType, //column_type
|
|
CS_TYPE_INVALID, //column_collation_type
|
|
OB_MAX_HOST_NAME_LENGTH, //column_length
|
|
-1, //column_precision
|
|
-1, //column_scale
|
|
false, //is_nullable
|
|
false); //is_autoincrement
|
|
}
|
|
|
|
if (OB_SUCC(ret)) {
|
|
ADD_COLUMN_SCHEMA("db", //column_name
|
|
++column_id, //column_id
|
|
0, //rowkey_id
|
|
0, //index_id
|
|
0, //part_key_pos
|
|
ObVarcharType, //column_type
|
|
CS_TYPE_INVALID, //column_collation_type
|
|
OB_MAX_DATABASE_NAME_LENGTH, //column_length
|
|
-1, //column_precision
|
|
-1, //column_scale
|
|
false, //is_nullable
|
|
false); //is_autoincrement
|
|
}
|
|
|
|
if (OB_SUCC(ret)) {
|
|
ADD_COLUMN_SCHEMA("user", //column_name
|
|
++column_id, //column_id
|
|
0, //rowkey_id
|
|
0, //index_id
|
|
0, //part_key_pos
|
|
ObVarcharType, //column_type
|
|
CS_TYPE_INVALID, //column_collation_type
|
|
OB_MAX_USER_NAME_LENGTH_STORE, //column_length
|
|
-1, //column_precision
|
|
-1, //column_scale
|
|
false, //is_nullable
|
|
false); //is_autoincrement
|
|
}
|
|
|
|
if (OB_SUCC(ret)) {
|
|
ADD_COLUMN_SCHEMA("select_priv", //column_name
|
|
++column_id, //column_id
|
|
0, //rowkey_id
|
|
0, //index_id
|
|
0, //part_key_pos
|
|
ObVarcharType, //column_type
|
|
CS_TYPE_INVALID, //column_collation_type
|
|
1, //column_length
|
|
-1, //column_precision
|
|
-1, //column_scale
|
|
false, //is_nullable
|
|
false); //is_autoincrement
|
|
}
|
|
|
|
if (OB_SUCC(ret)) {
|
|
ADD_COLUMN_SCHEMA("insert_priv", //column_name
|
|
++column_id, //column_id
|
|
0, //rowkey_id
|
|
0, //index_id
|
|
0, //part_key_pos
|
|
ObVarcharType, //column_type
|
|
CS_TYPE_INVALID, //column_collation_type
|
|
1, //column_length
|
|
-1, //column_precision
|
|
-1, //column_scale
|
|
false, //is_nullable
|
|
false); //is_autoincrement
|
|
}
|
|
|
|
if (OB_SUCC(ret)) {
|
|
ADD_COLUMN_SCHEMA("update_priv", //column_name
|
|
++column_id, //column_id
|
|
0, //rowkey_id
|
|
0, //index_id
|
|
0, //part_key_pos
|
|
ObVarcharType, //column_type
|
|
CS_TYPE_INVALID, //column_collation_type
|
|
1, //column_length
|
|
-1, //column_precision
|
|
-1, //column_scale
|
|
false, //is_nullable
|
|
false); //is_autoincrement
|
|
}
|
|
|
|
if (OB_SUCC(ret)) {
|
|
ADD_COLUMN_SCHEMA("delete_priv", //column_name
|
|
++column_id, //column_id
|
|
0, //rowkey_id
|
|
0, //index_id
|
|
0, //part_key_pos
|
|
ObVarcharType, //column_type
|
|
CS_TYPE_INVALID, //column_collation_type
|
|
1, //column_length
|
|
-1, //column_precision
|
|
-1, //column_scale
|
|
false, //is_nullable
|
|
false); //is_autoincrement
|
|
}
|
|
|
|
if (OB_SUCC(ret)) {
|
|
ADD_COLUMN_SCHEMA("create_priv", //column_name
|
|
++column_id, //column_id
|
|
0, //rowkey_id
|
|
0, //index_id
|
|
0, //part_key_pos
|
|
ObVarcharType, //column_type
|
|
CS_TYPE_INVALID, //column_collation_type
|
|
1, //column_length
|
|
-1, //column_precision
|
|
-1, //column_scale
|
|
false, //is_nullable
|
|
false); //is_autoincrement
|
|
}
|
|
|
|
if (OB_SUCC(ret)) {
|
|
ADD_COLUMN_SCHEMA("drop_priv", //column_name
|
|
++column_id, //column_id
|
|
0, //rowkey_id
|
|
0, //index_id
|
|
0, //part_key_pos
|
|
ObVarcharType, //column_type
|
|
CS_TYPE_INVALID, //column_collation_type
|
|
1, //column_length
|
|
-1, //column_precision
|
|
-1, //column_scale
|
|
false, //is_nullable
|
|
false); //is_autoincrement
|
|
}
|
|
|
|
if (OB_SUCC(ret)) {
|
|
ADD_COLUMN_SCHEMA("grant_priv", //column_name
|
|
++column_id, //column_id
|
|
0, //rowkey_id
|
|
0, //index_id
|
|
0, //part_key_pos
|
|
ObVarcharType, //column_type
|
|
CS_TYPE_INVALID, //column_collation_type
|
|
1, //column_length
|
|
-1, //column_precision
|
|
-1, //column_scale
|
|
false, //is_nullable
|
|
false); //is_autoincrement
|
|
}
|
|
|
|
if (OB_SUCC(ret)) {
|
|
ADD_COLUMN_SCHEMA("references_priv", //column_name
|
|
++column_id, //column_id
|
|
0, //rowkey_id
|
|
0, //index_id
|
|
0, //part_key_pos
|
|
ObVarcharType, //column_type
|
|
CS_TYPE_INVALID, //column_collation_type
|
|
1, //column_length
|
|
-1, //column_precision
|
|
-1, //column_scale
|
|
false, //is_nullable
|
|
false); //is_autoincrement
|
|
}
|
|
|
|
if (OB_SUCC(ret)) {
|
|
ADD_COLUMN_SCHEMA("index_priv", //column_name
|
|
++column_id, //column_id
|
|
0, //rowkey_id
|
|
0, //index_id
|
|
0, //part_key_pos
|
|
ObVarcharType, //column_type
|
|
CS_TYPE_INVALID, //column_collation_type
|
|
1, //column_length
|
|
-1, //column_precision
|
|
-1, //column_scale
|
|
false, //is_nullable
|
|
false); //is_autoincrement
|
|
}
|
|
|
|
if (OB_SUCC(ret)) {
|
|
ADD_COLUMN_SCHEMA("alter_priv", //column_name
|
|
++column_id, //column_id
|
|
0, //rowkey_id
|
|
0, //index_id
|
|
0, //part_key_pos
|
|
ObVarcharType, //column_type
|
|
CS_TYPE_INVALID, //column_collation_type
|
|
1, //column_length
|
|
-1, //column_precision
|
|
-1, //column_scale
|
|
false, //is_nullable
|
|
false); //is_autoincrement
|
|
}
|
|
|
|
if (OB_SUCC(ret)) {
|
|
ADD_COLUMN_SCHEMA("create_tmp_table_priv", //column_name
|
|
++column_id, //column_id
|
|
0, //rowkey_id
|
|
0, //index_id
|
|
0, //part_key_pos
|
|
ObVarcharType, //column_type
|
|
CS_TYPE_INVALID, //column_collation_type
|
|
1, //column_length
|
|
-1, //column_precision
|
|
-1, //column_scale
|
|
false, //is_nullable
|
|
false); //is_autoincrement
|
|
}
|
|
|
|
if (OB_SUCC(ret)) {
|
|
ADD_COLUMN_SCHEMA("lock_tables_priv", //column_name
|
|
++column_id, //column_id
|
|
0, //rowkey_id
|
|
0, //index_id
|
|
0, //part_key_pos
|
|
ObVarcharType, //column_type
|
|
CS_TYPE_INVALID, //column_collation_type
|
|
1, //column_length
|
|
-1, //column_precision
|
|
-1, //column_scale
|
|
false, //is_nullable
|
|
false); //is_autoincrement
|
|
}
|
|
|
|
if (OB_SUCC(ret)) {
|
|
ADD_COLUMN_SCHEMA("create_view_priv", //column_name
|
|
++column_id, //column_id
|
|
0, //rowkey_id
|
|
0, //index_id
|
|
0, //part_key_pos
|
|
ObVarcharType, //column_type
|
|
CS_TYPE_INVALID, //column_collation_type
|
|
1, //column_length
|
|
-1, //column_precision
|
|
-1, //column_scale
|
|
false, //is_nullable
|
|
false); //is_autoincrement
|
|
}
|
|
|
|
if (OB_SUCC(ret)) {
|
|
ADD_COLUMN_SCHEMA("show_view_priv", //column_name
|
|
++column_id, //column_id
|
|
0, //rowkey_id
|
|
0, //index_id
|
|
0, //part_key_pos
|
|
ObVarcharType, //column_type
|
|
CS_TYPE_INVALID, //column_collation_type
|
|
1, //column_length
|
|
-1, //column_precision
|
|
-1, //column_scale
|
|
false, //is_nullable
|
|
false); //is_autoincrement
|
|
}
|
|
|
|
if (OB_SUCC(ret)) {
|
|
ADD_COLUMN_SCHEMA("create_routine_priv", //column_name
|
|
++column_id, //column_id
|
|
0, //rowkey_id
|
|
0, //index_id
|
|
0, //part_key_pos
|
|
ObVarcharType, //column_type
|
|
CS_TYPE_INVALID, //column_collation_type
|
|
1, //column_length
|
|
-1, //column_precision
|
|
-1, //column_scale
|
|
false, //is_nullable
|
|
false); //is_autoincrement
|
|
}
|
|
|
|
if (OB_SUCC(ret)) {
|
|
ADD_COLUMN_SCHEMA("alter_routine_priv", //column_name
|
|
++column_id, //column_id
|
|
0, //rowkey_id
|
|
0, //index_id
|
|
0, //part_key_pos
|
|
ObVarcharType, //column_type
|
|
CS_TYPE_INVALID, //column_collation_type
|
|
1, //column_length
|
|
-1, //column_precision
|
|
-1, //column_scale
|
|
false, //is_nullable
|
|
false); //is_autoincrement
|
|
}
|
|
|
|
if (OB_SUCC(ret)) {
|
|
ADD_COLUMN_SCHEMA("execute_priv", //column_name
|
|
++column_id, //column_id
|
|
0, //rowkey_id
|
|
0, //index_id
|
|
0, //part_key_pos
|
|
ObVarcharType, //column_type
|
|
CS_TYPE_INVALID, //column_collation_type
|
|
1, //column_length
|
|
-1, //column_precision
|
|
-1, //column_scale
|
|
false, //is_nullable
|
|
false); //is_autoincrement
|
|
}
|
|
|
|
if (OB_SUCC(ret)) {
|
|
ADD_COLUMN_SCHEMA("event_priv", //column_name
|
|
++column_id, //column_id
|
|
0, //rowkey_id
|
|
0, //index_id
|
|
0, //part_key_pos
|
|
ObVarcharType, //column_type
|
|
CS_TYPE_INVALID, //column_collation_type
|
|
1, //column_length
|
|
-1, //column_precision
|
|
-1, //column_scale
|
|
false, //is_nullable
|
|
false); //is_autoincrement
|
|
}
|
|
|
|
if (OB_SUCC(ret)) {
|
|
ADD_COLUMN_SCHEMA("trigger_priv", //column_name
|
|
++column_id, //column_id
|
|
0, //rowkey_id
|
|
0, //index_id
|
|
0, //part_key_pos
|
|
ObVarcharType, //column_type
|
|
CS_TYPE_INVALID, //column_collation_type
|
|
1, //column_length
|
|
-1, //column_precision
|
|
-1, //column_scale
|
|
false, //is_nullable
|
|
false); //is_autoincrement
|
|
}
|
|
table_schema.set_index_using_type(USING_HASH);
|
|
table_schema.set_row_store_type(ENCODING_ROW_STORE);
|
|
table_schema.set_store_format(OB_STORE_FORMAT_DYNAMIC_MYSQL);
|
|
table_schema.set_progressive_merge_round(1);
|
|
table_schema.set_storage_format_version(3);
|
|
table_schema.set_tablet_id(0);
|
|
|
|
table_schema.set_max_used_column_id(column_id);
|
|
return ret;
|
|
}
|
|
|
|
int ObInnerTableSchema::all_virtual_lock_wait_stat_schema(ObTableSchema &table_schema)
|
|
{
|
|
int ret = OB_SUCCESS;
|
|
uint64_t column_id = OB_APP_MIN_COLUMN_ID - 1;
|
|
|
|
//generated fields:
|
|
table_schema.set_tenant_id(OB_SYS_TENANT_ID);
|
|
table_schema.set_tablegroup_id(OB_INVALID_ID);
|
|
table_schema.set_database_id(OB_SYS_DATABASE_ID);
|
|
table_schema.set_table_id(OB_ALL_VIRTUAL_LOCK_WAIT_STAT_TID);
|
|
table_schema.set_rowkey_split_pos(0);
|
|
table_schema.set_is_use_bloomfilter(false);
|
|
table_schema.set_progressive_merge_num(0);
|
|
table_schema.set_rowkey_column_num(0);
|
|
table_schema.set_load_type(TABLE_LOAD_TYPE_IN_DISK);
|
|
table_schema.set_table_type(VIRTUAL_TABLE);
|
|
table_schema.set_index_type(INDEX_TYPE_IS_NOT);
|
|
table_schema.set_def_type(TABLE_DEF_TYPE_INTERNAL);
|
|
|
|
if (OB_SUCC(ret)) {
|
|
if (OB_FAIL(table_schema.set_table_name(OB_ALL_VIRTUAL_LOCK_WAIT_STAT_TNAME))) {
|
|
LOG_ERROR("fail to set table_name", K(ret));
|
|
}
|
|
}
|
|
|
|
if (OB_SUCC(ret)) {
|
|
if (OB_FAIL(table_schema.set_compress_func_name(OB_DEFAULT_COMPRESS_FUNC_NAME))) {
|
|
LOG_ERROR("fail to set compress_func_name", K(ret));
|
|
}
|
|
}
|
|
table_schema.set_part_level(PARTITION_LEVEL_ZERO);
|
|
table_schema.set_charset_type(ObCharset::get_default_charset());
|
|
table_schema.set_collation_type(ObCharset::get_default_collation(ObCharset::get_default_charset()));
|
|
|
|
if (OB_SUCC(ret)) {
|
|
ADD_COLUMN_SCHEMA("svr_ip", //column_name
|
|
++column_id, //column_id
|
|
0, //rowkey_id
|
|
0, //index_id
|
|
1, //part_key_pos
|
|
ObVarcharType, //column_type
|
|
CS_TYPE_INVALID, //column_collation_type
|
|
MAX_IP_ADDR_LENGTH, //column_length
|
|
-1, //column_precision
|
|
-1, //column_scale
|
|
false, //is_nullable
|
|
false); //is_autoincrement
|
|
}
|
|
|
|
if (OB_SUCC(ret)) {
|
|
ADD_COLUMN_SCHEMA("svr_port", //column_name
|
|
++column_id, //column_id
|
|
0, //rowkey_id
|
|
0, //index_id
|
|
2, //part_key_pos
|
|
ObIntType, //column_type
|
|
CS_TYPE_INVALID, //column_collation_type
|
|
sizeof(int64_t), //column_length
|
|
-1, //column_precision
|
|
-1, //column_scale
|
|
false, //is_nullable
|
|
false); //is_autoincrement
|
|
}
|
|
|
|
if (OB_SUCC(ret)) {
|
|
ADD_COLUMN_SCHEMA("tenant_id", //column_name
|
|
++column_id, //column_id
|
|
0, //rowkey_id
|
|
0, //index_id
|
|
0, //part_key_pos
|
|
ObIntType, //column_type
|
|
CS_TYPE_INVALID, //column_collation_type
|
|
sizeof(int64_t), //column_length
|
|
-1, //column_precision
|
|
-1, //column_scale
|
|
false, //is_nullable
|
|
false); //is_autoincrement
|
|
}
|
|
|
|
if (OB_SUCC(ret)) {
|
|
ADD_COLUMN_SCHEMA("tablet_id", //column_name
|
|
++column_id, //column_id
|
|
0, //rowkey_id
|
|
0, //index_id
|
|
0, //part_key_pos
|
|
ObIntType, //column_type
|
|
CS_TYPE_INVALID, //column_collation_type
|
|
sizeof(int64_t), //column_length
|
|
-1, //column_precision
|
|
-1, //column_scale
|
|
false, //is_nullable
|
|
false); //is_autoincrement
|
|
}
|
|
|
|
if (OB_SUCC(ret)) {
|
|
ADD_COLUMN_SCHEMA("rowkey", //column_name
|
|
++column_id, //column_id
|
|
0, //rowkey_id
|
|
0, //index_id
|
|
0, //part_key_pos
|
|
ObVarcharType, //column_type
|
|
CS_TYPE_INVALID, //column_collation_type
|
|
MAX_LOCK_ROWKEY_BUF_LENGTH, //column_length
|
|
-1, //column_precision
|
|
-1, //column_scale
|
|
false, //is_nullable
|
|
false); //is_autoincrement
|
|
}
|
|
|
|
if (OB_SUCC(ret)) {
|
|
ADD_COLUMN_SCHEMA("addr", //column_name
|
|
++column_id, //column_id
|
|
0, //rowkey_id
|
|
0, //index_id
|
|
0, //part_key_pos
|
|
ObUInt64Type, //column_type
|
|
CS_TYPE_INVALID, //column_collation_type
|
|
sizeof(uint64_t), //column_length
|
|
-1, //column_precision
|
|
-1, //column_scale
|
|
false, //is_nullable
|
|
false); //is_autoincrement
|
|
}
|
|
|
|
if (OB_SUCC(ret)) {
|
|
ADD_COLUMN_SCHEMA("need_wait", //column_name
|
|
++column_id, //column_id
|
|
0, //rowkey_id
|
|
0, //index_id
|
|
0, //part_key_pos
|
|
ObTinyIntType, //column_type
|
|
CS_TYPE_INVALID, //column_collation_type
|
|
1, //column_length
|
|
-1, //column_precision
|
|
-1, //column_scale
|
|
false, //is_nullable
|
|
false); //is_autoincrement
|
|
}
|
|
|
|
if (OB_SUCC(ret)) {
|
|
ADD_COLUMN_SCHEMA("recv_ts", //column_name
|
|
++column_id, //column_id
|
|
0, //rowkey_id
|
|
0, //index_id
|
|
0, //part_key_pos
|
|
ObIntType, //column_type
|
|
CS_TYPE_INVALID, //column_collation_type
|
|
sizeof(int64_t), //column_length
|
|
-1, //column_precision
|
|
-1, //column_scale
|
|
false, //is_nullable
|
|
false); //is_autoincrement
|
|
}
|
|
|
|
if (OB_SUCC(ret)) {
|
|
ADD_COLUMN_SCHEMA("lock_ts", //column_name
|
|
++column_id, //column_id
|
|
0, //rowkey_id
|
|
0, //index_id
|
|
0, //part_key_pos
|
|
ObIntType, //column_type
|
|
CS_TYPE_INVALID, //column_collation_type
|
|
sizeof(int64_t), //column_length
|
|
-1, //column_precision
|
|
-1, //column_scale
|
|
false, //is_nullable
|
|
false); //is_autoincrement
|
|
}
|
|
|
|
if (OB_SUCC(ret)) {
|
|
ADD_COLUMN_SCHEMA("abs_timeout", //column_name
|
|
++column_id, //column_id
|
|
0, //rowkey_id
|
|
0, //index_id
|
|
0, //part_key_pos
|
|
ObIntType, //column_type
|
|
CS_TYPE_INVALID, //column_collation_type
|
|
sizeof(int64_t), //column_length
|
|
-1, //column_precision
|
|
-1, //column_scale
|
|
false, //is_nullable
|
|
false); //is_autoincrement
|
|
}
|
|
|
|
if (OB_SUCC(ret)) {
|
|
ADD_COLUMN_SCHEMA("try_lock_times", //column_name
|
|
++column_id, //column_id
|
|
0, //rowkey_id
|
|
0, //index_id
|
|
0, //part_key_pos
|
|
ObIntType, //column_type
|
|
CS_TYPE_INVALID, //column_collation_type
|
|
sizeof(int64_t), //column_length
|
|
-1, //column_precision
|
|
-1, //column_scale
|
|
false, //is_nullable
|
|
false); //is_autoincrement
|
|
}
|
|
|
|
if (OB_SUCC(ret)) {
|
|
ADD_COLUMN_SCHEMA("time_after_recv", //column_name
|
|
++column_id, //column_id
|
|
0, //rowkey_id
|
|
0, //index_id
|
|
0, //part_key_pos
|
|
ObIntType, //column_type
|
|
CS_TYPE_INVALID, //column_collation_type
|
|
sizeof(int64_t), //column_length
|
|
-1, //column_precision
|
|
-1, //column_scale
|
|
false, //is_nullable
|
|
false); //is_autoincrement
|
|
}
|
|
|
|
if (OB_SUCC(ret)) {
|
|
ADD_COLUMN_SCHEMA("session_id", //column_name
|
|
++column_id, //column_id
|
|
0, //rowkey_id
|
|
0, //index_id
|
|
0, //part_key_pos
|
|
ObIntType, //column_type
|
|
CS_TYPE_INVALID, //column_collation_type
|
|
sizeof(int64_t), //column_length
|
|
-1, //column_precision
|
|
-1, //column_scale
|
|
false, //is_nullable
|
|
false); //is_autoincrement
|
|
}
|
|
|
|
if (OB_SUCC(ret)) {
|
|
ADD_COLUMN_SCHEMA("block_session_id", //column_name
|
|
++column_id, //column_id
|
|
0, //rowkey_id
|
|
0, //index_id
|
|
0, //part_key_pos
|
|
ObIntType, //column_type
|
|
CS_TYPE_INVALID, //column_collation_type
|
|
sizeof(int64_t), //column_length
|
|
-1, //column_precision
|
|
-1, //column_scale
|
|
false, //is_nullable
|
|
false); //is_autoincrement
|
|
}
|
|
|
|
if (OB_SUCC(ret)) {
|
|
ADD_COLUMN_SCHEMA("type", //column_name
|
|
++column_id, //column_id
|
|
0, //rowkey_id
|
|
0, //index_id
|
|
0, //part_key_pos
|
|
ObIntType, //column_type
|
|
CS_TYPE_INVALID, //column_collation_type
|
|
sizeof(int64_t), //column_length
|
|
-1, //column_precision
|
|
-1, //column_scale
|
|
false, //is_nullable
|
|
false); //is_autoincrement
|
|
}
|
|
|
|
if (OB_SUCC(ret)) {
|
|
ADD_COLUMN_SCHEMA("lock_mode", //column_name
|
|
++column_id, //column_id
|
|
0, //rowkey_id
|
|
0, //index_id
|
|
0, //part_key_pos
|
|
ObVarcharType, //column_type
|
|
CS_TYPE_INVALID, //column_collation_type
|
|
MAX_LOCK_MODE_BUF_LENGTH, //column_length
|
|
-1, //column_precision
|
|
-1, //column_scale
|
|
false, //is_nullable
|
|
false); //is_autoincrement
|
|
}
|
|
|
|
if (OB_SUCC(ret)) {
|
|
ADD_COLUMN_SCHEMA("last_compact_cnt", //column_name
|
|
++column_id, //column_id
|
|
0, //rowkey_id
|
|
0, //index_id
|
|
0, //part_key_pos
|
|
ObIntType, //column_type
|
|
CS_TYPE_INVALID, //column_collation_type
|
|
sizeof(int64_t), //column_length
|
|
-1, //column_precision
|
|
-1, //column_scale
|
|
false, //is_nullable
|
|
false); //is_autoincrement
|
|
}
|
|
|
|
if (OB_SUCC(ret)) {
|
|
ADD_COLUMN_SCHEMA("total_update_cnt", //column_name
|
|
++column_id, //column_id
|
|
0, //rowkey_id
|
|
0, //index_id
|
|
0, //part_key_pos
|
|
ObIntType, //column_type
|
|
CS_TYPE_INVALID, //column_collation_type
|
|
sizeof(int64_t), //column_length
|
|
-1, //column_precision
|
|
-1, //column_scale
|
|
false, //is_nullable
|
|
false); //is_autoincrement
|
|
}
|
|
|
|
if (OB_SUCC(ret)) {
|
|
ADD_COLUMN_SCHEMA("trans_id", //column_name
|
|
++column_id, //column_id
|
|
0, //rowkey_id
|
|
0, //index_id
|
|
0, //part_key_pos
|
|
ObIntType, //column_type
|
|
CS_TYPE_INVALID, //column_collation_type
|
|
sizeof(int64_t), //column_length
|
|
-1, //column_precision
|
|
-1, //column_scale
|
|
false, //is_nullable
|
|
false); //is_autoincrement
|
|
}
|
|
|
|
if (OB_SUCC(ret)) {
|
|
ADD_COLUMN_SCHEMA("holder_trans_id", //column_name
|
|
++column_id, //column_id
|
|
0, //rowkey_id
|
|
0, //index_id
|
|
0, //part_key_pos
|
|
ObIntType, //column_type
|
|
CS_TYPE_INVALID, //column_collation_type
|
|
sizeof(int64_t), //column_length
|
|
-1, //column_precision
|
|
-1, //column_scale
|
|
false, //is_nullable
|
|
false); //is_autoincrement
|
|
}
|
|
if (OB_SUCC(ret)) {
|
|
table_schema.get_part_option().set_part_num(1);
|
|
table_schema.set_part_level(PARTITION_LEVEL_ONE);
|
|
table_schema.get_part_option().set_part_func_type(PARTITION_FUNC_TYPE_LIST_COLUMNS);
|
|
if (OB_FAIL(table_schema.get_part_option().set_part_expr("svr_ip, svr_port"))) {
|
|
LOG_WARN("set_part_expr failed", K(ret));
|
|
} else if (OB_FAIL(table_schema.mock_list_partition_array())) {
|
|
LOG_WARN("mock list partition array failed", K(ret));
|
|
}
|
|
}
|
|
table_schema.set_index_using_type(USING_HASH);
|
|
table_schema.set_row_store_type(ENCODING_ROW_STORE);
|
|
table_schema.set_store_format(OB_STORE_FORMAT_DYNAMIC_MYSQL);
|
|
table_schema.set_progressive_merge_round(1);
|
|
table_schema.set_storage_format_version(3);
|
|
table_schema.set_tablet_id(0);
|
|
|
|
table_schema.set_max_used_column_id(column_id);
|
|
return ret;
|
|
}
|
|
|
|
int ObInnerTableSchema::proc_schema(ObTableSchema &table_schema)
|
|
{
|
|
int ret = OB_SUCCESS;
|
|
uint64_t column_id = OB_APP_MIN_COLUMN_ID - 1;
|
|
|
|
//generated fields:
|
|
table_schema.set_tenant_id(OB_SYS_TENANT_ID);
|
|
table_schema.set_tablegroup_id(OB_INVALID_ID);
|
|
table_schema.set_database_id(OB_MYSQL_SCHEMA_ID);
|
|
table_schema.set_table_id(OB_PROC_TID);
|
|
table_schema.set_rowkey_split_pos(0);
|
|
table_schema.set_is_use_bloomfilter(false);
|
|
table_schema.set_progressive_merge_num(0);
|
|
table_schema.set_rowkey_column_num(0);
|
|
table_schema.set_load_type(TABLE_LOAD_TYPE_IN_DISK);
|
|
table_schema.set_table_type(VIRTUAL_TABLE);
|
|
table_schema.set_index_type(INDEX_TYPE_IS_NOT);
|
|
table_schema.set_def_type(TABLE_DEF_TYPE_INTERNAL);
|
|
|
|
if (OB_SUCC(ret)) {
|
|
if (OB_FAIL(table_schema.set_table_name(OB_PROC_TNAME))) {
|
|
LOG_ERROR("fail to set table_name", K(ret));
|
|
}
|
|
}
|
|
|
|
if (OB_SUCC(ret)) {
|
|
if (OB_FAIL(table_schema.set_compress_func_name(OB_DEFAULT_COMPRESS_FUNC_NAME))) {
|
|
LOG_ERROR("fail to set compress_func_name", K(ret));
|
|
}
|
|
}
|
|
table_schema.set_part_level(PARTITION_LEVEL_ZERO);
|
|
table_schema.set_charset_type(ObCharset::get_default_charset());
|
|
table_schema.set_collation_type(ObCharset::get_default_collation(ObCharset::get_default_charset()));
|
|
|
|
if (OB_SUCC(ret)) {
|
|
ADD_COLUMN_SCHEMA("db", //column_name
|
|
++column_id, //column_id
|
|
0, //rowkey_id
|
|
0, //index_id
|
|
0, //part_key_pos
|
|
ObVarcharType, //column_type
|
|
CS_TYPE_INVALID, //column_collation_type
|
|
OB_MAX_DATABASE_NAME_LENGTH, //column_length
|
|
-1, //column_precision
|
|
-1, //column_scale
|
|
false, //is_nullable
|
|
false); //is_autoincrement
|
|
}
|
|
|
|
if (OB_SUCC(ret)) {
|
|
ADD_COLUMN_SCHEMA("name", //column_name
|
|
++column_id, //column_id
|
|
0, //rowkey_id
|
|
0, //index_id
|
|
0, //part_key_pos
|
|
ObVarcharType, //column_type
|
|
CS_TYPE_INVALID, //column_collation_type
|
|
OB_MAX_ROUTINE_NAME_LENGTH, //column_length
|
|
-1, //column_precision
|
|
-1, //column_scale
|
|
false, //is_nullable
|
|
false); //is_autoincrement
|
|
}
|
|
|
|
if (OB_SUCC(ret)) {
|
|
ADD_COLUMN_SCHEMA("type", //column_name
|
|
++column_id, //column_id
|
|
0, //rowkey_id
|
|
0, //index_id
|
|
0, //part_key_pos
|
|
ObVarcharType, //column_type
|
|
CS_TYPE_INVALID, //column_collation_type
|
|
10, //column_length
|
|
-1, //column_precision
|
|
-1, //column_scale
|
|
false, //is_nullable
|
|
false); //is_autoincrement
|
|
}
|
|
|
|
if (OB_SUCC(ret)) {
|
|
ADD_COLUMN_SCHEMA("specific_name", //column_name
|
|
++column_id, //column_id
|
|
0, //rowkey_id
|
|
0, //index_id
|
|
0, //part_key_pos
|
|
ObVarcharType, //column_type
|
|
CS_TYPE_INVALID, //column_collation_type
|
|
OB_MAX_INFOSCHEMA_TABLE_NAME_LENGTH, //column_length
|
|
-1, //column_precision
|
|
-1, //column_scale
|
|
false, //is_nullable
|
|
false); //is_autoincrement
|
|
}
|
|
|
|
if (OB_SUCC(ret)) {
|
|
ObObj language_default;
|
|
language_default.set_varchar(ObString::make_string("SQL"));
|
|
ADD_COLUMN_SCHEMA_T("language", //column_name
|
|
++column_id, //column_id
|
|
0, //rowkey_id
|
|
0, //index_id
|
|
0, //part_key_pos
|
|
ObVarcharType, //column_type
|
|
CS_TYPE_INVALID, //column_collation_type
|
|
4, //column_length
|
|
-1, //column_precision
|
|
-1, //column_scale
|
|
false, //is_nullable
|
|
false, //is_autoincrement
|
|
language_default,
|
|
language_default); //default_value
|
|
}
|
|
|
|
if (OB_SUCC(ret)) {
|
|
ObObj sql_data_access_default;
|
|
sql_data_access_default.set_varchar(ObString::make_string("CONTAINS_SQL"));
|
|
ADD_COLUMN_SCHEMA_T("sql_data_access", //column_name
|
|
++column_id, //column_id
|
|
0, //rowkey_id
|
|
0, //index_id
|
|
0, //part_key_pos
|
|
ObVarcharType, //column_type
|
|
CS_TYPE_INVALID, //column_collation_type
|
|
32, //column_length
|
|
-1, //column_precision
|
|
-1, //column_scale
|
|
false, //is_nullable
|
|
false, //is_autoincrement
|
|
sql_data_access_default,
|
|
sql_data_access_default); //default_value
|
|
}
|
|
|
|
if (OB_SUCC(ret)) {
|
|
ObObj is_deterministic_default;
|
|
is_deterministic_default.set_varchar(ObString::make_string("NO"));
|
|
ADD_COLUMN_SCHEMA_T("is_deterministic", //column_name
|
|
++column_id, //column_id
|
|
0, //rowkey_id
|
|
0, //index_id
|
|
0, //part_key_pos
|
|
ObVarcharType, //column_type
|
|
CS_TYPE_INVALID, //column_collation_type
|
|
4, //column_length
|
|
-1, //column_precision
|
|
-1, //column_scale
|
|
false, //is_nullable
|
|
false, //is_autoincrement
|
|
is_deterministic_default,
|
|
is_deterministic_default); //default_value
|
|
}
|
|
|
|
if (OB_SUCC(ret)) {
|
|
ObObj security_type_default;
|
|
security_type_default.set_varchar(ObString::make_string("DEFINER"));
|
|
ADD_COLUMN_SCHEMA_T("security_type", //column_name
|
|
++column_id, //column_id
|
|
0, //rowkey_id
|
|
0, //index_id
|
|
0, //part_key_pos
|
|
ObVarcharType, //column_type
|
|
CS_TYPE_INVALID, //column_collation_type
|
|
10, //column_length
|
|
-1, //column_precision
|
|
-1, //column_scale
|
|
false, //is_nullable
|
|
false, //is_autoincrement
|
|
security_type_default,
|
|
security_type_default); //default_value
|
|
}
|
|
|
|
if (OB_SUCC(ret)) {
|
|
ADD_COLUMN_SCHEMA("param_list", //column_name
|
|
++column_id, //column_id
|
|
0, //rowkey_id
|
|
0, //index_id
|
|
0, //part_key_pos
|
|
ObLongTextType, //column_type
|
|
CS_TYPE_BINARY, //column_collation_type
|
|
0, //column_length
|
|
-1, //column_precision
|
|
-1, //column_scale
|
|
true, //is_nullable
|
|
false); //is_autoincrement
|
|
}
|
|
|
|
if (OB_SUCC(ret)) {
|
|
ADD_COLUMN_SCHEMA("returns", //column_name
|
|
++column_id, //column_id
|
|
0, //rowkey_id
|
|
0, //index_id
|
|
0, //part_key_pos
|
|
ObLongTextType, //column_type
|
|
CS_TYPE_BINARY, //column_collation_type
|
|
0, //column_length
|
|
-1, //column_precision
|
|
-1, //column_scale
|
|
true, //is_nullable
|
|
false); //is_autoincrement
|
|
}
|
|
|
|
if (OB_SUCC(ret)) {
|
|
ObObj body_default;
|
|
body_default.set_varchar(ObString::make_string(""));
|
|
ADD_COLUMN_SCHEMA_T("body", //column_name
|
|
++column_id, //column_id
|
|
0, //rowkey_id
|
|
0, //index_id
|
|
0, //part_key_pos
|
|
ObVarcharType, //column_type
|
|
CS_TYPE_INVALID, //column_collation_type
|
|
OB_MAX_VARCHAR_LENGTH, //column_length
|
|
-1, //column_precision
|
|
-1, //column_scale
|
|
false, //is_nullable
|
|
false, //is_autoincrement
|
|
body_default,
|
|
body_default); //default_value
|
|
}
|
|
|
|
if (OB_SUCC(ret)) {
|
|
ObObj definer_default;
|
|
definer_default.set_varchar(ObString::make_string(""));
|
|
ADD_COLUMN_SCHEMA_T("definer", //column_name
|
|
++column_id, //column_id
|
|
0, //rowkey_id
|
|
0, //index_id
|
|
0, //part_key_pos
|
|
ObVarcharType, //column_type
|
|
CS_TYPE_INVALID, //column_collation_type
|
|
77, //column_length
|
|
-1, //column_precision
|
|
-1, //column_scale
|
|
false, //is_nullable
|
|
false, //is_autoincrement
|
|
definer_default,
|
|
definer_default); //default_value
|
|
}
|
|
|
|
if (OB_SUCC(ret)) {
|
|
ADD_COLUMN_SCHEMA_TS("created", //column_name
|
|
++column_id, //column_id
|
|
0, //rowkey_id
|
|
0, //index_id
|
|
0, //part_key_pos
|
|
ObTimestampType, //column_type
|
|
CS_TYPE_INVALID, //column_collation_type
|
|
sizeof(ObPreciseDateTime), //column_length
|
|
-1, //column_precision
|
|
-1, //column_scale
|
|
false, //is_nullable
|
|
false, //is_autoincrement
|
|
false); //is_on_update_for_timestamp
|
|
}
|
|
|
|
if (OB_SUCC(ret)) {
|
|
ADD_COLUMN_SCHEMA_TS("modified", //column_name
|
|
++column_id, //column_id
|
|
0, //rowkey_id
|
|
0, //index_id
|
|
0, //part_key_pos
|
|
ObTimestampType, //column_type
|
|
CS_TYPE_INVALID, //column_collation_type
|
|
sizeof(ObPreciseDateTime), //column_length
|
|
-1, //column_precision
|
|
-1, //column_scale
|
|
false, //is_nullable
|
|
false, //is_autoincrement
|
|
false); //is_on_update_for_timestamp
|
|
}
|
|
|
|
if (OB_SUCC(ret)) {
|
|
ObObj sql_mode_default;
|
|
sql_mode_default.set_varchar(ObString::make_string(""));
|
|
ADD_COLUMN_SCHEMA_T("sql_mode", //column_name
|
|
++column_id, //column_id
|
|
0, //rowkey_id
|
|
0, //index_id
|
|
0, //part_key_pos
|
|
ObVarcharType, //column_type
|
|
CS_TYPE_INVALID, //column_collation_type
|
|
32, //column_length
|
|
-1, //column_precision
|
|
-1, //column_scale
|
|
false, //is_nullable
|
|
false, //is_autoincrement
|
|
sql_mode_default,
|
|
sql_mode_default); //default_value
|
|
}
|
|
|
|
if (OB_SUCC(ret)) {
|
|
ObObj comment_default;
|
|
comment_default.set_varchar(ObString::make_string(""));
|
|
ADD_COLUMN_SCHEMA_T("comment", //column_name
|
|
++column_id, //column_id
|
|
0, //rowkey_id
|
|
0, //index_id
|
|
0, //part_key_pos
|
|
ObVarcharType, //column_type
|
|
CS_TYPE_INVALID, //column_collation_type
|
|
OB_MAX_VARCHAR_LENGTH, //column_length
|
|
-1, //column_precision
|
|
-1, //column_scale
|
|
false, //is_nullable
|
|
false, //is_autoincrement
|
|
comment_default,
|
|
comment_default); //default_value
|
|
}
|
|
|
|
if (OB_SUCC(ret)) {
|
|
ADD_COLUMN_SCHEMA("character_set_client", //column_name
|
|
++column_id, //column_id
|
|
0, //rowkey_id
|
|
0, //index_id
|
|
0, //part_key_pos
|
|
ObVarcharType, //column_type
|
|
CS_TYPE_INVALID, //column_collation_type
|
|
MAX_CHARSET_LENGTH, //column_length
|
|
-1, //column_precision
|
|
-1, //column_scale
|
|
false, //is_nullable
|
|
false); //is_autoincrement
|
|
}
|
|
|
|
if (OB_SUCC(ret)) {
|
|
ADD_COLUMN_SCHEMA("collation_connection", //column_name
|
|
++column_id, //column_id
|
|
0, //rowkey_id
|
|
0, //index_id
|
|
0, //part_key_pos
|
|
ObVarcharType, //column_type
|
|
CS_TYPE_INVALID, //column_collation_type
|
|
MAX_CHARSET_LENGTH, //column_length
|
|
-1, //column_precision
|
|
-1, //column_scale
|
|
false, //is_nullable
|
|
false); //is_autoincrement
|
|
}
|
|
|
|
if (OB_SUCC(ret)) {
|
|
ADD_COLUMN_SCHEMA("db_collation", //column_name
|
|
++column_id, //column_id
|
|
0, //rowkey_id
|
|
0, //index_id
|
|
0, //part_key_pos
|
|
ObVarcharType, //column_type
|
|
CS_TYPE_INVALID, //column_collation_type
|
|
MAX_CHARSET_LENGTH, //column_length
|
|
-1, //column_precision
|
|
-1, //column_scale
|
|
false, //is_nullable
|
|
false); //is_autoincrement
|
|
}
|
|
|
|
if (OB_SUCC(ret)) {
|
|
ADD_COLUMN_SCHEMA("body_utf8", //column_name
|
|
++column_id, //column_id
|
|
0, //rowkey_id
|
|
0, //index_id
|
|
0, //part_key_pos
|
|
ObVarcharType, //column_type
|
|
CS_TYPE_INVALID, //column_collation_type
|
|
OB_MAX_VARCHAR_LENGTH, //column_length
|
|
-1, //column_precision
|
|
-1, //column_scale
|
|
false, //is_nullable
|
|
false); //is_autoincrement
|
|
}
|
|
table_schema.set_index_using_type(USING_HASH);
|
|
table_schema.set_row_store_type(ENCODING_ROW_STORE);
|
|
table_schema.set_store_format(OB_STORE_FORMAT_DYNAMIC_MYSQL);
|
|
table_schema.set_progressive_merge_round(1);
|
|
table_schema.set_storage_format_version(3);
|
|
table_schema.set_tablet_id(0);
|
|
|
|
table_schema.set_max_used_column_id(column_id);
|
|
return ret;
|
|
}
|
|
|
|
int ObInnerTableSchema::tenant_virtual_collation_schema(ObTableSchema &table_schema)
|
|
{
|
|
int ret = OB_SUCCESS;
|
|
uint64_t column_id = OB_APP_MIN_COLUMN_ID - 1;
|
|
|
|
//generated fields:
|
|
table_schema.set_tenant_id(OB_SYS_TENANT_ID);
|
|
table_schema.set_tablegroup_id(OB_INVALID_ID);
|
|
table_schema.set_database_id(OB_SYS_DATABASE_ID);
|
|
table_schema.set_table_id(OB_TENANT_VIRTUAL_COLLATION_TID);
|
|
table_schema.set_rowkey_split_pos(0);
|
|
table_schema.set_is_use_bloomfilter(false);
|
|
table_schema.set_progressive_merge_num(0);
|
|
table_schema.set_rowkey_column_num(0);
|
|
table_schema.set_load_type(TABLE_LOAD_TYPE_IN_DISK);
|
|
table_schema.set_table_type(VIRTUAL_TABLE);
|
|
table_schema.set_index_type(INDEX_TYPE_IS_NOT);
|
|
table_schema.set_def_type(TABLE_DEF_TYPE_INTERNAL);
|
|
|
|
if (OB_SUCC(ret)) {
|
|
if (OB_FAIL(table_schema.set_table_name(OB_TENANT_VIRTUAL_COLLATION_TNAME))) {
|
|
LOG_ERROR("fail to set table_name", K(ret));
|
|
}
|
|
}
|
|
|
|
if (OB_SUCC(ret)) {
|
|
if (OB_FAIL(table_schema.set_compress_func_name(OB_DEFAULT_COMPRESS_FUNC_NAME))) {
|
|
LOG_ERROR("fail to set compress_func_name", K(ret));
|
|
}
|
|
}
|
|
table_schema.set_part_level(PARTITION_LEVEL_ZERO);
|
|
table_schema.set_charset_type(ObCharset::get_default_charset());
|
|
table_schema.set_collation_type(ObCharset::get_default_collation(ObCharset::get_default_charset()));
|
|
|
|
if (OB_SUCC(ret)) {
|
|
ObObj collation_type_default;
|
|
collation_type_default.set_int(0);
|
|
ADD_COLUMN_SCHEMA_T("collation_type", //column_name
|
|
++column_id, //column_id
|
|
0, //rowkey_id
|
|
0, //index_id
|
|
0, //part_key_pos
|
|
ObIntType, //column_type
|
|
CS_TYPE_INVALID, //column_collation_type
|
|
sizeof(int64_t), //column_length
|
|
-1, //column_precision
|
|
-1, //column_scale
|
|
false, //is_nullable
|
|
false, //is_autoincrement
|
|
collation_type_default,
|
|
collation_type_default); //default_value
|
|
}
|
|
|
|
if (OB_SUCC(ret)) {
|
|
ObObj collation_default;
|
|
collation_default.set_varchar(ObString::make_string(""));
|
|
ADD_COLUMN_SCHEMA_T("collation", //column_name
|
|
++column_id, //column_id
|
|
0, //rowkey_id
|
|
0, //index_id
|
|
0, //part_key_pos
|
|
ObVarcharType, //column_type
|
|
CS_TYPE_INVALID, //column_collation_type
|
|
MAX_COLLATION_LENGTH, //column_length
|
|
-1, //column_precision
|
|
-1, //column_scale
|
|
false, //is_nullable
|
|
false, //is_autoincrement
|
|
collation_default,
|
|
collation_default); //default_value
|
|
}
|
|
|
|
if (OB_SUCC(ret)) {
|
|
ObObj charset_default;
|
|
charset_default.set_varchar(ObString::make_string(""));
|
|
ADD_COLUMN_SCHEMA_T("charset", //column_name
|
|
++column_id, //column_id
|
|
0, //rowkey_id
|
|
0, //index_id
|
|
0, //part_key_pos
|
|
ObVarcharType, //column_type
|
|
CS_TYPE_INVALID, //column_collation_type
|
|
MAX_CHARSET_LENGTH, //column_length
|
|
-1, //column_precision
|
|
-1, //column_scale
|
|
false, //is_nullable
|
|
false, //is_autoincrement
|
|
charset_default,
|
|
charset_default); //default_value
|
|
}
|
|
|
|
if (OB_SUCC(ret)) {
|
|
ObObj id_default;
|
|
id_default.set_int(0);
|
|
ADD_COLUMN_SCHEMA_T("id", //column_name
|
|
++column_id, //column_id
|
|
0, //rowkey_id
|
|
0, //index_id
|
|
0, //part_key_pos
|
|
ObIntType, //column_type
|
|
CS_TYPE_INVALID, //column_collation_type
|
|
sizeof(int64_t), //column_length
|
|
-1, //column_precision
|
|
-1, //column_scale
|
|
false, //is_nullable
|
|
false, //is_autoincrement
|
|
id_default,
|
|
id_default); //default_value
|
|
}
|
|
|
|
if (OB_SUCC(ret)) {
|
|
ObObj is_default_default;
|
|
is_default_default.set_varchar(ObString::make_string(""));
|
|
ADD_COLUMN_SCHEMA_T("is_default", //column_name
|
|
++column_id, //column_id
|
|
0, //rowkey_id
|
|
0, //index_id
|
|
0, //part_key_pos
|
|
ObVarcharType, //column_type
|
|
CS_TYPE_INVALID, //column_collation_type
|
|
MAX_BOOL_STR_LENGTH, //column_length
|
|
-1, //column_precision
|
|
-1, //column_scale
|
|
false, //is_nullable
|
|
false, //is_autoincrement
|
|
is_default_default,
|
|
is_default_default); //default_value
|
|
}
|
|
|
|
if (OB_SUCC(ret)) {
|
|
ObObj is_compiled_default;
|
|
is_compiled_default.set_varchar(ObString::make_string(""));
|
|
ADD_COLUMN_SCHEMA_T("is_compiled", //column_name
|
|
++column_id, //column_id
|
|
0, //rowkey_id
|
|
0, //index_id
|
|
0, //part_key_pos
|
|
ObVarcharType, //column_type
|
|
CS_TYPE_INVALID, //column_collation_type
|
|
MAX_BOOL_STR_LENGTH, //column_length
|
|
-1, //column_precision
|
|
-1, //column_scale
|
|
false, //is_nullable
|
|
false, //is_autoincrement
|
|
is_compiled_default,
|
|
is_compiled_default); //default_value
|
|
}
|
|
|
|
if (OB_SUCC(ret)) {
|
|
ObObj sortlen_default;
|
|
sortlen_default.set_int(0);
|
|
ADD_COLUMN_SCHEMA_T("sortlen", //column_name
|
|
++column_id, //column_id
|
|
0, //rowkey_id
|
|
0, //index_id
|
|
0, //part_key_pos
|
|
ObIntType, //column_type
|
|
CS_TYPE_INVALID, //column_collation_type
|
|
sizeof(int64_t), //column_length
|
|
-1, //column_precision
|
|
-1, //column_scale
|
|
false, //is_nullable
|
|
false, //is_autoincrement
|
|
sortlen_default,
|
|
sortlen_default); //default_value
|
|
}
|
|
table_schema.set_index_using_type(USING_HASH);
|
|
table_schema.set_row_store_type(ENCODING_ROW_STORE);
|
|
table_schema.set_store_format(OB_STORE_FORMAT_DYNAMIC_MYSQL);
|
|
table_schema.set_progressive_merge_round(1);
|
|
table_schema.set_storage_format_version(3);
|
|
table_schema.set_tablet_id(0);
|
|
|
|
table_schema.set_max_used_column_id(column_id);
|
|
return ret;
|
|
}
|
|
|
|
int ObInnerTableSchema::tenant_virtual_charset_schema(ObTableSchema &table_schema)
|
|
{
|
|
int ret = OB_SUCCESS;
|
|
uint64_t column_id = OB_APP_MIN_COLUMN_ID - 1;
|
|
|
|
//generated fields:
|
|
table_schema.set_tenant_id(OB_SYS_TENANT_ID);
|
|
table_schema.set_tablegroup_id(OB_INVALID_ID);
|
|
table_schema.set_database_id(OB_SYS_DATABASE_ID);
|
|
table_schema.set_table_id(OB_TENANT_VIRTUAL_CHARSET_TID);
|
|
table_schema.set_rowkey_split_pos(0);
|
|
table_schema.set_is_use_bloomfilter(false);
|
|
table_schema.set_progressive_merge_num(0);
|
|
table_schema.set_rowkey_column_num(0);
|
|
table_schema.set_load_type(TABLE_LOAD_TYPE_IN_DISK);
|
|
table_schema.set_table_type(VIRTUAL_TABLE);
|
|
table_schema.set_index_type(INDEX_TYPE_IS_NOT);
|
|
table_schema.set_def_type(TABLE_DEF_TYPE_INTERNAL);
|
|
|
|
if (OB_SUCC(ret)) {
|
|
if (OB_FAIL(table_schema.set_table_name(OB_TENANT_VIRTUAL_CHARSET_TNAME))) {
|
|
LOG_ERROR("fail to set table_name", K(ret));
|
|
}
|
|
}
|
|
|
|
if (OB_SUCC(ret)) {
|
|
if (OB_FAIL(table_schema.set_compress_func_name(OB_DEFAULT_COMPRESS_FUNC_NAME))) {
|
|
LOG_ERROR("fail to set compress_func_name", K(ret));
|
|
}
|
|
}
|
|
table_schema.set_part_level(PARTITION_LEVEL_ZERO);
|
|
table_schema.set_charset_type(ObCharset::get_default_charset());
|
|
table_schema.set_collation_type(ObCharset::get_default_collation(ObCharset::get_default_charset()));
|
|
|
|
if (OB_SUCC(ret)) {
|
|
ObObj charset_default;
|
|
charset_default.set_varchar(ObString::make_string(""));
|
|
ADD_COLUMN_SCHEMA_T("charset", //column_name
|
|
++column_id, //column_id
|
|
0, //rowkey_id
|
|
0, //index_id
|
|
0, //part_key_pos
|
|
ObVarcharType, //column_type
|
|
CS_TYPE_INVALID, //column_collation_type
|
|
MAX_CHARSET_LENGTH, //column_length
|
|
-1, //column_precision
|
|
-1, //column_scale
|
|
false, //is_nullable
|
|
false, //is_autoincrement
|
|
charset_default,
|
|
charset_default); //default_value
|
|
}
|
|
|
|
if (OB_SUCC(ret)) {
|
|
ObObj description_default;
|
|
description_default.set_varchar(ObString::make_string(""));
|
|
ADD_COLUMN_SCHEMA_T("description", //column_name
|
|
++column_id, //column_id
|
|
0, //rowkey_id
|
|
0, //index_id
|
|
0, //part_key_pos
|
|
ObVarcharType, //column_type
|
|
CS_TYPE_INVALID, //column_collation_type
|
|
MAX_CHARSET_DESCRIPTION_LENGTH, //column_length
|
|
-1, //column_precision
|
|
-1, //column_scale
|
|
false, //is_nullable
|
|
false, //is_autoincrement
|
|
description_default,
|
|
description_default); //default_value
|
|
}
|
|
|
|
if (OB_SUCC(ret)) {
|
|
ObObj default_collation_default;
|
|
default_collation_default.set_varchar(ObString::make_string(""));
|
|
ADD_COLUMN_SCHEMA_T("default_collation", //column_name
|
|
++column_id, //column_id
|
|
0, //rowkey_id
|
|
0, //index_id
|
|
0, //part_key_pos
|
|
ObVarcharType, //column_type
|
|
CS_TYPE_INVALID, //column_collation_type
|
|
MAX_COLLATION_LENGTH, //column_length
|
|
-1, //column_precision
|
|
-1, //column_scale
|
|
false, //is_nullable
|
|
false, //is_autoincrement
|
|
default_collation_default,
|
|
default_collation_default); //default_value
|
|
}
|
|
|
|
if (OB_SUCC(ret)) {
|
|
ObObj max_length_default;
|
|
max_length_default.set_int(0);
|
|
ADD_COLUMN_SCHEMA_T("max_length", //column_name
|
|
++column_id, //column_id
|
|
0, //rowkey_id
|
|
0, //index_id
|
|
0, //part_key_pos
|
|
ObIntType, //column_type
|
|
CS_TYPE_INVALID, //column_collation_type
|
|
sizeof(int64_t), //column_length
|
|
-1, //column_precision
|
|
-1, //column_scale
|
|
false, //is_nullable
|
|
false, //is_autoincrement
|
|
max_length_default,
|
|
max_length_default); //default_value
|
|
}
|
|
table_schema.set_index_using_type(USING_HASH);
|
|
table_schema.set_row_store_type(ENCODING_ROW_STORE);
|
|
table_schema.set_store_format(OB_STORE_FORMAT_DYNAMIC_MYSQL);
|
|
table_schema.set_progressive_merge_round(1);
|
|
table_schema.set_storage_format_version(3);
|
|
table_schema.set_tablet_id(0);
|
|
|
|
table_schema.set_max_used_column_id(column_id);
|
|
return ret;
|
|
}
|
|
|
|
int ObInnerTableSchema::all_virtual_tenant_memstore_allocator_info_schema(ObTableSchema &table_schema)
|
|
{
|
|
int ret = OB_SUCCESS;
|
|
uint64_t column_id = OB_APP_MIN_COLUMN_ID - 1;
|
|
|
|
//generated fields:
|
|
table_schema.set_tenant_id(OB_SYS_TENANT_ID);
|
|
table_schema.set_tablegroup_id(OB_INVALID_ID);
|
|
table_schema.set_database_id(OB_SYS_DATABASE_ID);
|
|
table_schema.set_table_id(OB_ALL_VIRTUAL_TENANT_MEMSTORE_ALLOCATOR_INFO_TID);
|
|
table_schema.set_rowkey_split_pos(0);
|
|
table_schema.set_is_use_bloomfilter(false);
|
|
table_schema.set_progressive_merge_num(0);
|
|
table_schema.set_rowkey_column_num(0);
|
|
table_schema.set_load_type(TABLE_LOAD_TYPE_IN_DISK);
|
|
table_schema.set_table_type(VIRTUAL_TABLE);
|
|
table_schema.set_index_type(INDEX_TYPE_IS_NOT);
|
|
table_schema.set_def_type(TABLE_DEF_TYPE_INTERNAL);
|
|
|
|
if (OB_SUCC(ret)) {
|
|
if (OB_FAIL(table_schema.set_table_name(OB_ALL_VIRTUAL_TENANT_MEMSTORE_ALLOCATOR_INFO_TNAME))) {
|
|
LOG_ERROR("fail to set table_name", K(ret));
|
|
}
|
|
}
|
|
|
|
if (OB_SUCC(ret)) {
|
|
if (OB_FAIL(table_schema.set_compress_func_name(OB_DEFAULT_COMPRESS_FUNC_NAME))) {
|
|
LOG_ERROR("fail to set compress_func_name", K(ret));
|
|
}
|
|
}
|
|
table_schema.set_part_level(PARTITION_LEVEL_ZERO);
|
|
table_schema.set_charset_type(ObCharset::get_default_charset());
|
|
table_schema.set_collation_type(ObCharset::get_default_collation(ObCharset::get_default_charset()));
|
|
|
|
if (OB_SUCC(ret)) {
|
|
ADD_COLUMN_SCHEMA("svr_ip", //column_name
|
|
++column_id, //column_id
|
|
0, //rowkey_id
|
|
0, //index_id
|
|
1, //part_key_pos
|
|
ObVarcharType, //column_type
|
|
CS_TYPE_INVALID, //column_collation_type
|
|
MAX_IP_ADDR_LENGTH, //column_length
|
|
-1, //column_precision
|
|
-1, //column_scale
|
|
false, //is_nullable
|
|
false); //is_autoincrement
|
|
}
|
|
|
|
if (OB_SUCC(ret)) {
|
|
ADD_COLUMN_SCHEMA("svr_port", //column_name
|
|
++column_id, //column_id
|
|
0, //rowkey_id
|
|
0, //index_id
|
|
2, //part_key_pos
|
|
ObIntType, //column_type
|
|
CS_TYPE_INVALID, //column_collation_type
|
|
sizeof(int64_t), //column_length
|
|
-1, //column_precision
|
|
-1, //column_scale
|
|
false, //is_nullable
|
|
false); //is_autoincrement
|
|
}
|
|
|
|
if (OB_SUCC(ret)) {
|
|
ADD_COLUMN_SCHEMA("tenant_id", //column_name
|
|
++column_id, //column_id
|
|
0, //rowkey_id
|
|
0, //index_id
|
|
0, //part_key_pos
|
|
ObIntType, //column_type
|
|
CS_TYPE_INVALID, //column_collation_type
|
|
sizeof(int64_t), //column_length
|
|
-1, //column_precision
|
|
-1, //column_scale
|
|
false, //is_nullable
|
|
false); //is_autoincrement
|
|
}
|
|
|
|
if (OB_SUCC(ret)) {
|
|
ADD_COLUMN_SCHEMA("ls_id", //column_name
|
|
++column_id, //column_id
|
|
0, //rowkey_id
|
|
0, //index_id
|
|
0, //part_key_pos
|
|
ObIntType, //column_type
|
|
CS_TYPE_INVALID, //column_collation_type
|
|
sizeof(int64_t), //column_length
|
|
-1, //column_precision
|
|
-1, //column_scale
|
|
false, //is_nullable
|
|
false); //is_autoincrement
|
|
}
|
|
|
|
if (OB_SUCC(ret)) {
|
|
ADD_COLUMN_SCHEMA("tablet_id", //column_name
|
|
++column_id, //column_id
|
|
0, //rowkey_id
|
|
0, //index_id
|
|
0, //part_key_pos
|
|
ObIntType, //column_type
|
|
CS_TYPE_INVALID, //column_collation_type
|
|
sizeof(int64_t), //column_length
|
|
-1, //column_precision
|
|
-1, //column_scale
|
|
false, //is_nullable
|
|
false); //is_autoincrement
|
|
}
|
|
|
|
if (OB_SUCC(ret)) {
|
|
ADD_COLUMN_SCHEMA("start_scn", //column_name
|
|
++column_id, //column_id
|
|
0, //rowkey_id
|
|
0, //index_id
|
|
0, //part_key_pos
|
|
ObUInt64Type, //column_type
|
|
CS_TYPE_INVALID, //column_collation_type
|
|
sizeof(uint64_t), //column_length
|
|
-1, //column_precision
|
|
-1, //column_scale
|
|
false, //is_nullable
|
|
false); //is_autoincrement
|
|
}
|
|
|
|
if (OB_SUCC(ret)) {
|
|
ADD_COLUMN_SCHEMA("end_scn", //column_name
|
|
++column_id, //column_id
|
|
0, //rowkey_id
|
|
0, //index_id
|
|
0, //part_key_pos
|
|
ObUInt64Type, //column_type
|
|
CS_TYPE_INVALID, //column_collation_type
|
|
sizeof(uint64_t), //column_length
|
|
-1, //column_precision
|
|
-1, //column_scale
|
|
false, //is_nullable
|
|
false); //is_autoincrement
|
|
}
|
|
|
|
if (OB_SUCC(ret)) {
|
|
ADD_COLUMN_SCHEMA("is_active", //column_name
|
|
++column_id, //column_id
|
|
0, //rowkey_id
|
|
0, //index_id
|
|
0, //part_key_pos
|
|
ObVarcharType, //column_type
|
|
CS_TYPE_INVALID, //column_collation_type
|
|
MAX_COLUMN_YES_NO_LENGTH, //column_length
|
|
-1, //column_precision
|
|
-1, //column_scale
|
|
false, //is_nullable
|
|
false); //is_autoincrement
|
|
}
|
|
|
|
if (OB_SUCC(ret)) {
|
|
ADD_COLUMN_SCHEMA("retire_clock", //column_name
|
|
++column_id, //column_id
|
|
0, //rowkey_id
|
|
0, //index_id
|
|
0, //part_key_pos
|
|
ObIntType, //column_type
|
|
CS_TYPE_INVALID, //column_collation_type
|
|
sizeof(int64_t), //column_length
|
|
-1, //column_precision
|
|
-1, //column_scale
|
|
false, //is_nullable
|
|
false); //is_autoincrement
|
|
}
|
|
|
|
if (OB_SUCC(ret)) {
|
|
ADD_COLUMN_SCHEMA("mt_protection_clock", //column_name
|
|
++column_id, //column_id
|
|
0, //rowkey_id
|
|
0, //index_id
|
|
0, //part_key_pos
|
|
ObIntType, //column_type
|
|
CS_TYPE_INVALID, //column_collation_type
|
|
sizeof(int64_t), //column_length
|
|
-1, //column_precision
|
|
-1, //column_scale
|
|
false, //is_nullable
|
|
false); //is_autoincrement
|
|
}
|
|
if (OB_SUCC(ret)) {
|
|
table_schema.get_part_option().set_part_num(1);
|
|
table_schema.set_part_level(PARTITION_LEVEL_ONE);
|
|
table_schema.get_part_option().set_part_func_type(PARTITION_FUNC_TYPE_LIST_COLUMNS);
|
|
if (OB_FAIL(table_schema.get_part_option().set_part_expr("svr_ip, svr_port"))) {
|
|
LOG_WARN("set_part_expr failed", K(ret));
|
|
} else if (OB_FAIL(table_schema.mock_list_partition_array())) {
|
|
LOG_WARN("mock list partition array failed", K(ret));
|
|
}
|
|
}
|
|
table_schema.set_index_using_type(USING_HASH);
|
|
table_schema.set_row_store_type(ENCODING_ROW_STORE);
|
|
table_schema.set_store_format(OB_STORE_FORMAT_DYNAMIC_MYSQL);
|
|
table_schema.set_progressive_merge_round(1);
|
|
table_schema.set_storage_format_version(3);
|
|
table_schema.set_tablet_id(0);
|
|
|
|
table_schema.set_max_used_column_id(column_id);
|
|
return ret;
|
|
}
|
|
|
|
int ObInnerTableSchema::all_virtual_table_mgr_schema(ObTableSchema &table_schema)
|
|
{
|
|
int ret = OB_SUCCESS;
|
|
uint64_t column_id = OB_APP_MIN_COLUMN_ID - 1;
|
|
|
|
//generated fields:
|
|
table_schema.set_tenant_id(OB_SYS_TENANT_ID);
|
|
table_schema.set_tablegroup_id(OB_INVALID_ID);
|
|
table_schema.set_database_id(OB_SYS_DATABASE_ID);
|
|
table_schema.set_table_id(OB_ALL_VIRTUAL_TABLE_MGR_TID);
|
|
table_schema.set_rowkey_split_pos(0);
|
|
table_schema.set_is_use_bloomfilter(false);
|
|
table_schema.set_progressive_merge_num(0);
|
|
table_schema.set_rowkey_column_num(0);
|
|
table_schema.set_load_type(TABLE_LOAD_TYPE_IN_DISK);
|
|
table_schema.set_table_type(VIRTUAL_TABLE);
|
|
table_schema.set_index_type(INDEX_TYPE_IS_NOT);
|
|
table_schema.set_def_type(TABLE_DEF_TYPE_INTERNAL);
|
|
|
|
if (OB_SUCC(ret)) {
|
|
if (OB_FAIL(table_schema.set_table_name(OB_ALL_VIRTUAL_TABLE_MGR_TNAME))) {
|
|
LOG_ERROR("fail to set table_name", K(ret));
|
|
}
|
|
}
|
|
|
|
if (OB_SUCC(ret)) {
|
|
if (OB_FAIL(table_schema.set_compress_func_name(OB_DEFAULT_COMPRESS_FUNC_NAME))) {
|
|
LOG_ERROR("fail to set compress_func_name", K(ret));
|
|
}
|
|
}
|
|
table_schema.set_part_level(PARTITION_LEVEL_ZERO);
|
|
table_schema.set_charset_type(ObCharset::get_default_charset());
|
|
table_schema.set_collation_type(ObCharset::get_default_collation(ObCharset::get_default_charset()));
|
|
|
|
if (OB_SUCC(ret)) {
|
|
ADD_COLUMN_SCHEMA("svr_ip", //column_name
|
|
++column_id, //column_id
|
|
0, //rowkey_id
|
|
0, //index_id
|
|
1, //part_key_pos
|
|
ObVarcharType, //column_type
|
|
CS_TYPE_INVALID, //column_collation_type
|
|
MAX_IP_ADDR_LENGTH, //column_length
|
|
-1, //column_precision
|
|
-1, //column_scale
|
|
false, //is_nullable
|
|
false); //is_autoincrement
|
|
}
|
|
|
|
if (OB_SUCC(ret)) {
|
|
ADD_COLUMN_SCHEMA("svr_port", //column_name
|
|
++column_id, //column_id
|
|
0, //rowkey_id
|
|
0, //index_id
|
|
2, //part_key_pos
|
|
ObIntType, //column_type
|
|
CS_TYPE_INVALID, //column_collation_type
|
|
sizeof(int64_t), //column_length
|
|
-1, //column_precision
|
|
-1, //column_scale
|
|
false, //is_nullable
|
|
false); //is_autoincrement
|
|
}
|
|
|
|
if (OB_SUCC(ret)) {
|
|
ADD_COLUMN_SCHEMA("tenant_id", //column_name
|
|
++column_id, //column_id
|
|
0, //rowkey_id
|
|
0, //index_id
|
|
0, //part_key_pos
|
|
ObIntType, //column_type
|
|
CS_TYPE_INVALID, //column_collation_type
|
|
sizeof(int64_t), //column_length
|
|
-1, //column_precision
|
|
-1, //column_scale
|
|
false, //is_nullable
|
|
false); //is_autoincrement
|
|
}
|
|
|
|
if (OB_SUCC(ret)) {
|
|
ADD_COLUMN_SCHEMA("ls_id", //column_name
|
|
++column_id, //column_id
|
|
0, //rowkey_id
|
|
0, //index_id
|
|
0, //part_key_pos
|
|
ObIntType, //column_type
|
|
CS_TYPE_INVALID, //column_collation_type
|
|
sizeof(int64_t), //column_length
|
|
-1, //column_precision
|
|
-1, //column_scale
|
|
false, //is_nullable
|
|
false); //is_autoincrement
|
|
}
|
|
|
|
if (OB_SUCC(ret)) {
|
|
ADD_COLUMN_SCHEMA("table_type", //column_name
|
|
++column_id, //column_id
|
|
0, //rowkey_id
|
|
0, //index_id
|
|
0, //part_key_pos
|
|
ObIntType, //column_type
|
|
CS_TYPE_INVALID, //column_collation_type
|
|
sizeof(int64_t), //column_length
|
|
-1, //column_precision
|
|
-1, //column_scale
|
|
false, //is_nullable
|
|
false); //is_autoincrement
|
|
}
|
|
|
|
if (OB_SUCC(ret)) {
|
|
ADD_COLUMN_SCHEMA("tablet_id", //column_name
|
|
++column_id, //column_id
|
|
0, //rowkey_id
|
|
0, //index_id
|
|
0, //part_key_pos
|
|
ObIntType, //column_type
|
|
CS_TYPE_INVALID, //column_collation_type
|
|
sizeof(int64_t), //column_length
|
|
-1, //column_precision
|
|
-1, //column_scale
|
|
false, //is_nullable
|
|
false); //is_autoincrement
|
|
}
|
|
|
|
if (OB_SUCC(ret)) {
|
|
ADD_COLUMN_SCHEMA("start_log_scn", //column_name
|
|
++column_id, //column_id
|
|
0, //rowkey_id
|
|
0, //index_id
|
|
0, //part_key_pos
|
|
ObUInt64Type, //column_type
|
|
CS_TYPE_INVALID, //column_collation_type
|
|
sizeof(uint64_t), //column_length
|
|
-1, //column_precision
|
|
-1, //column_scale
|
|
false, //is_nullable
|
|
false); //is_autoincrement
|
|
}
|
|
|
|
if (OB_SUCC(ret)) {
|
|
ADD_COLUMN_SCHEMA("end_log_scn", //column_name
|
|
++column_id, //column_id
|
|
0, //rowkey_id
|
|
0, //index_id
|
|
0, //part_key_pos
|
|
ObUInt64Type, //column_type
|
|
CS_TYPE_INVALID, //column_collation_type
|
|
sizeof(uint64_t), //column_length
|
|
-1, //column_precision
|
|
-1, //column_scale
|
|
false, //is_nullable
|
|
false); //is_autoincrement
|
|
}
|
|
|
|
if (OB_SUCC(ret)) {
|
|
ADD_COLUMN_SCHEMA("upper_trans_version", //column_name
|
|
++column_id, //column_id
|
|
0, //rowkey_id
|
|
0, //index_id
|
|
0, //part_key_pos
|
|
ObUInt64Type, //column_type
|
|
CS_TYPE_INVALID, //column_collation_type
|
|
sizeof(uint64_t), //column_length
|
|
-1, //column_precision
|
|
-1, //column_scale
|
|
false, //is_nullable
|
|
false); //is_autoincrement
|
|
}
|
|
|
|
if (OB_SUCC(ret)) {
|
|
ADD_COLUMN_SCHEMA("data_checksum", //column_name
|
|
++column_id, //column_id
|
|
0, //rowkey_id
|
|
0, //index_id
|
|
0, //part_key_pos
|
|
ObIntType, //column_type
|
|
CS_TYPE_INVALID, //column_collation_type
|
|
sizeof(int64_t), //column_length
|
|
-1, //column_precision
|
|
-1, //column_scale
|
|
false, //is_nullable
|
|
false); //is_autoincrement
|
|
}
|
|
|
|
if (OB_SUCC(ret)) {
|
|
ADD_COLUMN_SCHEMA("size", //column_name
|
|
++column_id, //column_id
|
|
0, //rowkey_id
|
|
0, //index_id
|
|
0, //part_key_pos
|
|
ObIntType, //column_type
|
|
CS_TYPE_INVALID, //column_collation_type
|
|
sizeof(int64_t), //column_length
|
|
-1, //column_precision
|
|
-1, //column_scale
|
|
false, //is_nullable
|
|
false); //is_autoincrement
|
|
}
|
|
|
|
if (OB_SUCC(ret)) {
|
|
ADD_COLUMN_SCHEMA("data_block_count", //column_name
|
|
++column_id, //column_id
|
|
0, //rowkey_id
|
|
0, //index_id
|
|
0, //part_key_pos
|
|
ObIntType, //column_type
|
|
CS_TYPE_INVALID, //column_collation_type
|
|
sizeof(int64_t), //column_length
|
|
-1, //column_precision
|
|
-1, //column_scale
|
|
false, //is_nullable
|
|
false); //is_autoincrement
|
|
}
|
|
|
|
if (OB_SUCC(ret)) {
|
|
ADD_COLUMN_SCHEMA("index_block_count", //column_name
|
|
++column_id, //column_id
|
|
0, //rowkey_id
|
|
0, //index_id
|
|
0, //part_key_pos
|
|
ObIntType, //column_type
|
|
CS_TYPE_INVALID, //column_collation_type
|
|
sizeof(int64_t), //column_length
|
|
-1, //column_precision
|
|
-1, //column_scale
|
|
false, //is_nullable
|
|
false); //is_autoincrement
|
|
}
|
|
|
|
if (OB_SUCC(ret)) {
|
|
ADD_COLUMN_SCHEMA("linked_block_count", //column_name
|
|
++column_id, //column_id
|
|
0, //rowkey_id
|
|
0, //index_id
|
|
0, //part_key_pos
|
|
ObIntType, //column_type
|
|
CS_TYPE_INVALID, //column_collation_type
|
|
sizeof(int64_t), //column_length
|
|
-1, //column_precision
|
|
-1, //column_scale
|
|
false, //is_nullable
|
|
false); //is_autoincrement
|
|
}
|
|
|
|
if (OB_SUCC(ret)) {
|
|
ADD_COLUMN_SCHEMA("ref", //column_name
|
|
++column_id, //column_id
|
|
0, //rowkey_id
|
|
0, //index_id
|
|
0, //part_key_pos
|
|
ObIntType, //column_type
|
|
CS_TYPE_INVALID, //column_collation_type
|
|
sizeof(int64_t), //column_length
|
|
-1, //column_precision
|
|
-1, //column_scale
|
|
false, //is_nullable
|
|
false); //is_autoincrement
|
|
}
|
|
|
|
if (OB_SUCC(ret)) {
|
|
ADD_COLUMN_SCHEMA("is_active", //column_name
|
|
++column_id, //column_id
|
|
0, //rowkey_id
|
|
0, //index_id
|
|
0, //part_key_pos
|
|
ObVarcharType, //column_type
|
|
CS_TYPE_INVALID, //column_collation_type
|
|
MAX_COLUMN_YES_NO_LENGTH, //column_length
|
|
-1, //column_precision
|
|
-1, //column_scale
|
|
false, //is_nullable
|
|
false); //is_autoincrement
|
|
}
|
|
|
|
if (OB_SUCC(ret)) {
|
|
ADD_COLUMN_SCHEMA("contain_uncommitted_row", //column_name
|
|
++column_id, //column_id
|
|
0, //rowkey_id
|
|
0, //index_id
|
|
0, //part_key_pos
|
|
ObVarcharType, //column_type
|
|
CS_TYPE_INVALID, //column_collation_type
|
|
MAX_COLUMN_YES_NO_LENGTH, //column_length
|
|
-1, //column_precision
|
|
-1, //column_scale
|
|
false, //is_nullable
|
|
false); //is_autoincrement
|
|
}
|
|
|
|
if (OB_SUCC(ret)) {
|
|
ADD_COLUMN_SCHEMA("nested_offset", //column_name
|
|
++column_id, //column_id
|
|
0, //rowkey_id
|
|
0, //index_id
|
|
0, //part_key_pos
|
|
ObIntType, //column_type
|
|
CS_TYPE_INVALID, //column_collation_type
|
|
sizeof(int64_t), //column_length
|
|
-1, //column_precision
|
|
-1, //column_scale
|
|
false, //is_nullable
|
|
false); //is_autoincrement
|
|
}
|
|
|
|
if (OB_SUCC(ret)) {
|
|
ADD_COLUMN_SCHEMA("nested_size", //column_name
|
|
++column_id, //column_id
|
|
0, //rowkey_id
|
|
0, //index_id
|
|
0, //part_key_pos
|
|
ObIntType, //column_type
|
|
CS_TYPE_INVALID, //column_collation_type
|
|
sizeof(int64_t), //column_length
|
|
-1, //column_precision
|
|
-1, //column_scale
|
|
false, //is_nullable
|
|
false); //is_autoincrement
|
|
}
|
|
|
|
if (OB_SUCC(ret)) {
|
|
ADD_COLUMN_SCHEMA("cg_idx", //column_name
|
|
++column_id, //column_id
|
|
0, //rowkey_id
|
|
0, //index_id
|
|
0, //part_key_pos
|
|
ObIntType, //column_type
|
|
CS_TYPE_INVALID, //column_collation_type
|
|
sizeof(int64_t), //column_length
|
|
-1, //column_precision
|
|
-1, //column_scale
|
|
false, //is_nullable
|
|
false); //is_autoincrement
|
|
}
|
|
if (OB_SUCC(ret)) {
|
|
table_schema.get_part_option().set_part_num(1);
|
|
table_schema.set_part_level(PARTITION_LEVEL_ONE);
|
|
table_schema.get_part_option().set_part_func_type(PARTITION_FUNC_TYPE_LIST_COLUMNS);
|
|
if (OB_FAIL(table_schema.get_part_option().set_part_expr("svr_ip, svr_port"))) {
|
|
LOG_WARN("set_part_expr failed", K(ret));
|
|
} else if (OB_FAIL(table_schema.mock_list_partition_array())) {
|
|
LOG_WARN("mock list partition array failed", K(ret));
|
|
}
|
|
}
|
|
table_schema.set_index_using_type(USING_HASH);
|
|
table_schema.set_row_store_type(ENCODING_ROW_STORE);
|
|
table_schema.set_store_format(OB_STORE_FORMAT_DYNAMIC_MYSQL);
|
|
table_schema.set_progressive_merge_round(1);
|
|
table_schema.set_storage_format_version(3);
|
|
table_schema.set_tablet_id(0);
|
|
|
|
table_schema.set_max_used_column_id(column_id);
|
|
return ret;
|
|
}
|
|
|
|
int ObInnerTableSchema::all_virtual_freeze_info_schema(ObTableSchema &table_schema)
|
|
{
|
|
int ret = OB_SUCCESS;
|
|
uint64_t column_id = OB_APP_MIN_COLUMN_ID - 1;
|
|
|
|
//generated fields:
|
|
table_schema.set_tenant_id(OB_SYS_TENANT_ID);
|
|
table_schema.set_tablegroup_id(OB_INVALID_ID);
|
|
table_schema.set_database_id(OB_SYS_DATABASE_ID);
|
|
table_schema.set_table_id(OB_ALL_VIRTUAL_FREEZE_INFO_TID);
|
|
table_schema.set_rowkey_split_pos(0);
|
|
table_schema.set_is_use_bloomfilter(false);
|
|
table_schema.set_progressive_merge_num(0);
|
|
table_schema.set_rowkey_column_num(2);
|
|
table_schema.set_load_type(TABLE_LOAD_TYPE_IN_DISK);
|
|
table_schema.set_table_type(VIRTUAL_TABLE);
|
|
table_schema.set_index_type(INDEX_TYPE_IS_NOT);
|
|
table_schema.set_def_type(TABLE_DEF_TYPE_INTERNAL);
|
|
|
|
if (OB_SUCC(ret)) {
|
|
if (OB_FAIL(table_schema.set_table_name(OB_ALL_VIRTUAL_FREEZE_INFO_TNAME))) {
|
|
LOG_ERROR("fail to set table_name", K(ret));
|
|
}
|
|
}
|
|
|
|
if (OB_SUCC(ret)) {
|
|
if (OB_FAIL(table_schema.set_compress_func_name(OB_DEFAULT_COMPRESS_FUNC_NAME))) {
|
|
LOG_ERROR("fail to set compress_func_name", K(ret));
|
|
}
|
|
}
|
|
table_schema.set_part_level(PARTITION_LEVEL_ZERO);
|
|
table_schema.set_charset_type(ObCharset::get_default_charset());
|
|
table_schema.set_collation_type(ObCharset::get_default_collation(ObCharset::get_default_charset()));
|
|
|
|
if (OB_SUCC(ret)) {
|
|
ADD_COLUMN_SCHEMA("tenant_id", //column_name
|
|
++column_id, //column_id
|
|
1, //rowkey_id
|
|
0, //index_id
|
|
0, //part_key_pos
|
|
ObIntType, //column_type
|
|
CS_TYPE_INVALID, //column_collation_type
|
|
sizeof(int64_t), //column_length
|
|
-1, //column_precision
|
|
-1, //column_scale
|
|
false, //is_nullable
|
|
false); //is_autoincrement
|
|
}
|
|
|
|
if (OB_SUCC(ret)) {
|
|
ADD_COLUMN_SCHEMA("frozen_scn", //column_name
|
|
++column_id, //column_id
|
|
2, //rowkey_id
|
|
0, //index_id
|
|
0, //part_key_pos
|
|
ObUInt64Type, //column_type
|
|
CS_TYPE_INVALID, //column_collation_type
|
|
sizeof(uint64_t), //column_length
|
|
-1, //column_precision
|
|
-1, //column_scale
|
|
false, //is_nullable
|
|
false); //is_autoincrement
|
|
}
|
|
|
|
if (OB_SUCC(ret)) {
|
|
ADD_COLUMN_SCHEMA_TS("gmt_create", //column_name
|
|
++column_id, //column_id
|
|
0, //rowkey_id
|
|
0, //index_id
|
|
0, //part_key_pos
|
|
ObTimestampType, //column_type
|
|
CS_TYPE_INVALID, //column_collation_type
|
|
sizeof(ObPreciseDateTime), //column_length
|
|
-1, //column_precision
|
|
-1, //column_scale
|
|
false, //is_nullable
|
|
false, //is_autoincrement
|
|
false); //is_on_update_for_timestamp
|
|
}
|
|
|
|
if (OB_SUCC(ret)) {
|
|
ADD_COLUMN_SCHEMA_TS("gmt_modified", //column_name
|
|
++column_id, //column_id
|
|
0, //rowkey_id
|
|
0, //index_id
|
|
0, //part_key_pos
|
|
ObTimestampType, //column_type
|
|
CS_TYPE_INVALID, //column_collation_type
|
|
sizeof(ObPreciseDateTime), //column_length
|
|
-1, //column_precision
|
|
-1, //column_scale
|
|
false, //is_nullable
|
|
false, //is_autoincrement
|
|
false); //is_on_update_for_timestamp
|
|
}
|
|
|
|
if (OB_SUCC(ret)) {
|
|
ADD_COLUMN_SCHEMA("cluster_version", //column_name
|
|
++column_id, //column_id
|
|
0, //rowkey_id
|
|
0, //index_id
|
|
0, //part_key_pos
|
|
ObIntType, //column_type
|
|
CS_TYPE_INVALID, //column_collation_type
|
|
sizeof(int64_t), //column_length
|
|
-1, //column_precision
|
|
-1, //column_scale
|
|
false, //is_nullable
|
|
false); //is_autoincrement
|
|
}
|
|
|
|
if (OB_SUCC(ret)) {
|
|
ADD_COLUMN_SCHEMA("schema_version", //column_name
|
|
++column_id, //column_id
|
|
0, //rowkey_id
|
|
0, //index_id
|
|
0, //part_key_pos
|
|
ObIntType, //column_type
|
|
CS_TYPE_INVALID, //column_collation_type
|
|
sizeof(int64_t), //column_length
|
|
-1, //column_precision
|
|
-1, //column_scale
|
|
false, //is_nullable
|
|
false); //is_autoincrement
|
|
}
|
|
table_schema.set_index_using_type(USING_BTREE);
|
|
table_schema.set_row_store_type(ENCODING_ROW_STORE);
|
|
table_schema.set_store_format(OB_STORE_FORMAT_DYNAMIC_MYSQL);
|
|
table_schema.set_progressive_merge_round(1);
|
|
table_schema.set_storage_format_version(3);
|
|
table_schema.set_tablet_id(0);
|
|
|
|
table_schema.set_max_used_column_id(column_id);
|
|
return ret;
|
|
}
|
|
|
|
int ObInnerTableSchema::all_virtual_bad_block_table_schema(ObTableSchema &table_schema)
|
|
{
|
|
int ret = OB_SUCCESS;
|
|
uint64_t column_id = OB_APP_MIN_COLUMN_ID - 1;
|
|
|
|
//generated fields:
|
|
table_schema.set_tenant_id(OB_SYS_TENANT_ID);
|
|
table_schema.set_tablegroup_id(OB_INVALID_ID);
|
|
table_schema.set_database_id(OB_SYS_DATABASE_ID);
|
|
table_schema.set_table_id(OB_ALL_VIRTUAL_BAD_BLOCK_TABLE_TID);
|
|
table_schema.set_rowkey_split_pos(0);
|
|
table_schema.set_is_use_bloomfilter(false);
|
|
table_schema.set_progressive_merge_num(0);
|
|
table_schema.set_rowkey_column_num(0);
|
|
table_schema.set_load_type(TABLE_LOAD_TYPE_IN_DISK);
|
|
table_schema.set_table_type(VIRTUAL_TABLE);
|
|
table_schema.set_index_type(INDEX_TYPE_IS_NOT);
|
|
table_schema.set_def_type(TABLE_DEF_TYPE_INTERNAL);
|
|
|
|
if (OB_SUCC(ret)) {
|
|
if (OB_FAIL(table_schema.set_table_name(OB_ALL_VIRTUAL_BAD_BLOCK_TABLE_TNAME))) {
|
|
LOG_ERROR("fail to set table_name", K(ret));
|
|
}
|
|
}
|
|
|
|
if (OB_SUCC(ret)) {
|
|
if (OB_FAIL(table_schema.set_compress_func_name(OB_DEFAULT_COMPRESS_FUNC_NAME))) {
|
|
LOG_ERROR("fail to set compress_func_name", K(ret));
|
|
}
|
|
}
|
|
table_schema.set_part_level(PARTITION_LEVEL_ZERO);
|
|
table_schema.set_charset_type(ObCharset::get_default_charset());
|
|
table_schema.set_collation_type(ObCharset::get_default_collation(ObCharset::get_default_charset()));
|
|
|
|
if (OB_SUCC(ret)) {
|
|
ADD_COLUMN_SCHEMA("svr_ip", //column_name
|
|
++column_id, //column_id
|
|
0, //rowkey_id
|
|
0, //index_id
|
|
1, //part_key_pos
|
|
ObVarcharType, //column_type
|
|
CS_TYPE_INVALID, //column_collation_type
|
|
MAX_IP_ADDR_LENGTH, //column_length
|
|
-1, //column_precision
|
|
-1, //column_scale
|
|
false, //is_nullable
|
|
false); //is_autoincrement
|
|
}
|
|
|
|
if (OB_SUCC(ret)) {
|
|
ADD_COLUMN_SCHEMA("svr_port", //column_name
|
|
++column_id, //column_id
|
|
0, //rowkey_id
|
|
0, //index_id
|
|
2, //part_key_pos
|
|
ObIntType, //column_type
|
|
CS_TYPE_INVALID, //column_collation_type
|
|
sizeof(int64_t), //column_length
|
|
-1, //column_precision
|
|
-1, //column_scale
|
|
false, //is_nullable
|
|
false); //is_autoincrement
|
|
}
|
|
|
|
if (OB_SUCC(ret)) {
|
|
ADD_COLUMN_SCHEMA("disk_id", //column_name
|
|
++column_id, //column_id
|
|
0, //rowkey_id
|
|
0, //index_id
|
|
0, //part_key_pos
|
|
ObIntType, //column_type
|
|
CS_TYPE_INVALID, //column_collation_type
|
|
sizeof(int64_t), //column_length
|
|
-1, //column_precision
|
|
-1, //column_scale
|
|
false, //is_nullable
|
|
false); //is_autoincrement
|
|
}
|
|
|
|
if (OB_SUCC(ret)) {
|
|
ADD_COLUMN_SCHEMA("store_file_path", //column_name
|
|
++column_id, //column_id
|
|
0, //rowkey_id
|
|
0, //index_id
|
|
0, //part_key_pos
|
|
ObVarcharType, //column_type
|
|
CS_TYPE_INVALID, //column_collation_type
|
|
MAX_PATH_SIZE, //column_length
|
|
-1, //column_precision
|
|
-1, //column_scale
|
|
false, //is_nullable
|
|
false); //is_autoincrement
|
|
}
|
|
|
|
if (OB_SUCC(ret)) {
|
|
ADD_COLUMN_SCHEMA("macro_block_index", //column_name
|
|
++column_id, //column_id
|
|
0, //rowkey_id
|
|
0, //index_id
|
|
0, //part_key_pos
|
|
ObIntType, //column_type
|
|
CS_TYPE_INVALID, //column_collation_type
|
|
sizeof(int64_t), //column_length
|
|
-1, //column_precision
|
|
-1, //column_scale
|
|
false, //is_nullable
|
|
false); //is_autoincrement
|
|
}
|
|
|
|
if (OB_SUCC(ret)) {
|
|
ADD_COLUMN_SCHEMA("error_type", //column_name
|
|
++column_id, //column_id
|
|
0, //rowkey_id
|
|
0, //index_id
|
|
0, //part_key_pos
|
|
ObIntType, //column_type
|
|
CS_TYPE_INVALID, //column_collation_type
|
|
sizeof(int64_t), //column_length
|
|
-1, //column_precision
|
|
-1, //column_scale
|
|
false, //is_nullable
|
|
false); //is_autoincrement
|
|
}
|
|
|
|
if (OB_SUCC(ret)) {
|
|
ADD_COLUMN_SCHEMA("error_msg", //column_name
|
|
++column_id, //column_id
|
|
0, //rowkey_id
|
|
0, //index_id
|
|
0, //part_key_pos
|
|
ObVarcharType, //column_type
|
|
CS_TYPE_INVALID, //column_collation_type
|
|
OB_MAX_ERROR_MSG_LEN, //column_length
|
|
-1, //column_precision
|
|
-1, //column_scale
|
|
false, //is_nullable
|
|
false); //is_autoincrement
|
|
}
|
|
|
|
if (OB_SUCC(ret)) {
|
|
ADD_COLUMN_SCHEMA_TS("check_time", //column_name
|
|
++column_id, //column_id
|
|
0, //rowkey_id
|
|
0, //index_id
|
|
0, //part_key_pos
|
|
ObTimestampType, //column_type
|
|
CS_TYPE_INVALID, //column_collation_type
|
|
sizeof(ObPreciseDateTime), //column_length
|
|
-1, //column_precision
|
|
-1, //column_scale
|
|
false, //is_nullable
|
|
false, //is_autoincrement
|
|
false); //is_on_update_for_timestamp
|
|
}
|
|
if (OB_SUCC(ret)) {
|
|
table_schema.get_part_option().set_part_num(1);
|
|
table_schema.set_part_level(PARTITION_LEVEL_ONE);
|
|
table_schema.get_part_option().set_part_func_type(PARTITION_FUNC_TYPE_LIST_COLUMNS);
|
|
if (OB_FAIL(table_schema.get_part_option().set_part_expr("svr_ip, svr_port"))) {
|
|
LOG_WARN("set_part_expr failed", K(ret));
|
|
} else if (OB_FAIL(table_schema.mock_list_partition_array())) {
|
|
LOG_WARN("mock list partition array failed", K(ret));
|
|
}
|
|
}
|
|
table_schema.set_index_using_type(USING_HASH);
|
|
table_schema.set_row_store_type(ENCODING_ROW_STORE);
|
|
table_schema.set_store_format(OB_STORE_FORMAT_DYNAMIC_MYSQL);
|
|
table_schema.set_progressive_merge_round(1);
|
|
table_schema.set_storage_format_version(3);
|
|
table_schema.set_tablet_id(0);
|
|
|
|
table_schema.set_max_used_column_id(column_id);
|
|
return ret;
|
|
}
|
|
|
|
int ObInnerTableSchema::all_virtual_px_worker_stat_schema(ObTableSchema &table_schema)
|
|
{
|
|
int ret = OB_SUCCESS;
|
|
uint64_t column_id = OB_APP_MIN_COLUMN_ID - 1;
|
|
|
|
//generated fields:
|
|
table_schema.set_tenant_id(OB_SYS_TENANT_ID);
|
|
table_schema.set_tablegroup_id(OB_INVALID_ID);
|
|
table_schema.set_database_id(OB_SYS_DATABASE_ID);
|
|
table_schema.set_table_id(OB_ALL_VIRTUAL_PX_WORKER_STAT_TID);
|
|
table_schema.set_rowkey_split_pos(0);
|
|
table_schema.set_is_use_bloomfilter(false);
|
|
table_schema.set_progressive_merge_num(0);
|
|
table_schema.set_rowkey_column_num(0);
|
|
table_schema.set_load_type(TABLE_LOAD_TYPE_IN_DISK);
|
|
table_schema.set_table_type(VIRTUAL_TABLE);
|
|
table_schema.set_index_type(INDEX_TYPE_IS_NOT);
|
|
table_schema.set_def_type(TABLE_DEF_TYPE_INTERNAL);
|
|
|
|
if (OB_SUCC(ret)) {
|
|
if (OB_FAIL(table_schema.set_table_name(OB_ALL_VIRTUAL_PX_WORKER_STAT_TNAME))) {
|
|
LOG_ERROR("fail to set table_name", K(ret));
|
|
}
|
|
}
|
|
|
|
if (OB_SUCC(ret)) {
|
|
if (OB_FAIL(table_schema.set_compress_func_name(OB_DEFAULT_COMPRESS_FUNC_NAME))) {
|
|
LOG_ERROR("fail to set compress_func_name", K(ret));
|
|
}
|
|
}
|
|
table_schema.set_part_level(PARTITION_LEVEL_ZERO);
|
|
table_schema.set_charset_type(ObCharset::get_default_charset());
|
|
table_schema.set_collation_type(ObCharset::get_default_collation(ObCharset::get_default_charset()));
|
|
|
|
if (OB_SUCC(ret)) {
|
|
ADD_COLUMN_SCHEMA("session_id", //column_name
|
|
++column_id, //column_id
|
|
0, //rowkey_id
|
|
0, //index_id
|
|
0, //part_key_pos
|
|
ObIntType, //column_type
|
|
CS_TYPE_INVALID, //column_collation_type
|
|
sizeof(int64_t), //column_length
|
|
-1, //column_precision
|
|
-1, //column_scale
|
|
false, //is_nullable
|
|
false); //is_autoincrement
|
|
}
|
|
|
|
if (OB_SUCC(ret)) {
|
|
ADD_COLUMN_SCHEMA("tenant_id", //column_name
|
|
++column_id, //column_id
|
|
0, //rowkey_id
|
|
0, //index_id
|
|
0, //part_key_pos
|
|
ObIntType, //column_type
|
|
CS_TYPE_INVALID, //column_collation_type
|
|
sizeof(int64_t), //column_length
|
|
-1, //column_precision
|
|
-1, //column_scale
|
|
false, //is_nullable
|
|
false); //is_autoincrement
|
|
}
|
|
|
|
if (OB_SUCC(ret)) {
|
|
ADD_COLUMN_SCHEMA("svr_ip", //column_name
|
|
++column_id, //column_id
|
|
0, //rowkey_id
|
|
0, //index_id
|
|
1, //part_key_pos
|
|
ObVarcharType, //column_type
|
|
CS_TYPE_INVALID, //column_collation_type
|
|
MAX_IP_ADDR_LENGTH, //column_length
|
|
-1, //column_precision
|
|
-1, //column_scale
|
|
false, //is_nullable
|
|
false); //is_autoincrement
|
|
}
|
|
|
|
if (OB_SUCC(ret)) {
|
|
ADD_COLUMN_SCHEMA("svr_port", //column_name
|
|
++column_id, //column_id
|
|
0, //rowkey_id
|
|
0, //index_id
|
|
2, //part_key_pos
|
|
ObIntType, //column_type
|
|
CS_TYPE_INVALID, //column_collation_type
|
|
sizeof(int64_t), //column_length
|
|
-1, //column_precision
|
|
-1, //column_scale
|
|
false, //is_nullable
|
|
false); //is_autoincrement
|
|
}
|
|
|
|
if (OB_SUCC(ret)) {
|
|
ADD_COLUMN_SCHEMA("trace_id", //column_name
|
|
++column_id, //column_id
|
|
0, //rowkey_id
|
|
0, //index_id
|
|
0, //part_key_pos
|
|
ObVarcharType, //column_type
|
|
CS_TYPE_INVALID, //column_collation_type
|
|
OB_MAX_HOST_NAME_LENGTH, //column_length
|
|
-1, //column_precision
|
|
-1, //column_scale
|
|
false, //is_nullable
|
|
false); //is_autoincrement
|
|
}
|
|
|
|
if (OB_SUCC(ret)) {
|
|
ADD_COLUMN_SCHEMA("qc_id", //column_name
|
|
++column_id, //column_id
|
|
0, //rowkey_id
|
|
0, //index_id
|
|
0, //part_key_pos
|
|
ObIntType, //column_type
|
|
CS_TYPE_INVALID, //column_collation_type
|
|
sizeof(int64_t), //column_length
|
|
-1, //column_precision
|
|
-1, //column_scale
|
|
false, //is_nullable
|
|
false); //is_autoincrement
|
|
}
|
|
|
|
if (OB_SUCC(ret)) {
|
|
ADD_COLUMN_SCHEMA("sqc_id", //column_name
|
|
++column_id, //column_id
|
|
0, //rowkey_id
|
|
0, //index_id
|
|
0, //part_key_pos
|
|
ObIntType, //column_type
|
|
CS_TYPE_INVALID, //column_collation_type
|
|
sizeof(int64_t), //column_length
|
|
-1, //column_precision
|
|
-1, //column_scale
|
|
false, //is_nullable
|
|
false); //is_autoincrement
|
|
}
|
|
|
|
if (OB_SUCC(ret)) {
|
|
ADD_COLUMN_SCHEMA("worker_id", //column_name
|
|
++column_id, //column_id
|
|
0, //rowkey_id
|
|
0, //index_id
|
|
0, //part_key_pos
|
|
ObIntType, //column_type
|
|
CS_TYPE_INVALID, //column_collation_type
|
|
sizeof(int64_t), //column_length
|
|
-1, //column_precision
|
|
-1, //column_scale
|
|
false, //is_nullable
|
|
false); //is_autoincrement
|
|
}
|
|
|
|
if (OB_SUCC(ret)) {
|
|
ADD_COLUMN_SCHEMA("dfo_id", //column_name
|
|
++column_id, //column_id
|
|
0, //rowkey_id
|
|
0, //index_id
|
|
0, //part_key_pos
|
|
ObIntType, //column_type
|
|
CS_TYPE_INVALID, //column_collation_type
|
|
sizeof(int64_t), //column_length
|
|
-1, //column_precision
|
|
-1, //column_scale
|
|
false, //is_nullable
|
|
false); //is_autoincrement
|
|
}
|
|
|
|
if (OB_SUCC(ret)) {
|
|
ADD_COLUMN_SCHEMA_TS("start_time", //column_name
|
|
++column_id, //column_id
|
|
0, //rowkey_id
|
|
0, //index_id
|
|
0, //part_key_pos
|
|
ObTimestampType, //column_type
|
|
CS_TYPE_INVALID, //column_collation_type
|
|
sizeof(ObPreciseDateTime), //column_length
|
|
-1, //column_precision
|
|
-1, //column_scale
|
|
false, //is_nullable
|
|
false, //is_autoincrement
|
|
false); //is_on_update_for_timestamp
|
|
}
|
|
|
|
if (OB_SUCC(ret)) {
|
|
ADD_COLUMN_SCHEMA("thread_id", //column_name
|
|
++column_id, //column_id
|
|
0, //rowkey_id
|
|
0, //index_id
|
|
0, //part_key_pos
|
|
ObIntType, //column_type
|
|
CS_TYPE_INVALID, //column_collation_type
|
|
sizeof(int64_t), //column_length
|
|
-1, //column_precision
|
|
-1, //column_scale
|
|
false, //is_nullable
|
|
false); //is_autoincrement
|
|
}
|
|
if (OB_SUCC(ret)) {
|
|
table_schema.get_part_option().set_part_num(1);
|
|
table_schema.set_part_level(PARTITION_LEVEL_ONE);
|
|
table_schema.get_part_option().set_part_func_type(PARTITION_FUNC_TYPE_LIST_COLUMNS);
|
|
if (OB_FAIL(table_schema.get_part_option().set_part_expr("svr_ip, svr_port"))) {
|
|
LOG_WARN("set_part_expr failed", K(ret));
|
|
} else if (OB_FAIL(table_schema.mock_list_partition_array())) {
|
|
LOG_WARN("mock list partition array failed", K(ret));
|
|
}
|
|
}
|
|
table_schema.set_index_using_type(USING_HASH);
|
|
table_schema.set_row_store_type(ENCODING_ROW_STORE);
|
|
table_schema.set_store_format(OB_STORE_FORMAT_DYNAMIC_MYSQL);
|
|
table_schema.set_progressive_merge_round(1);
|
|
table_schema.set_storage_format_version(3);
|
|
table_schema.set_tablet_id(0);
|
|
|
|
table_schema.set_max_used_column_id(column_id);
|
|
return ret;
|
|
}
|
|
|
|
|
|
} // end namespace share
|
|
} // end namespace oceanbase
|