place holder for all outline

This commit is contained in:
obdev 2023-11-29 12:41:45 +00:00 committed by ob-robot
parent 88451e8b98
commit e991c80bcc
9 changed files with 345 additions and 6 deletions

View File

@ -2336,6 +2336,10 @@ typedef enum ObItemType
T_ROW_ITER_EXPR,
T_FULLTEXT_COLUMN_LIST,
T_MATCH_COLUMN_LIST,
T_CREATE_FMT_OUTLINE,
T_ALTER_FMT_OUTLINE,
T_DROP_FMT_OUTLINE,
T_MAX //Attention: add a new type before T_MAX
} ObItemType;

View File

@ -11209,6 +11209,59 @@ int ObInnerTableSchema::all_outline_schema(ObTableSchema &table_schema)
true, //is_nullable
false); //is_autoincrement
}
if (OB_SUCC(ret)) {
ADD_COLUMN_SCHEMA("format_sql_text", //column_name
++column_id, //column_id
0, //rowkey_id
0, //index_id
0, //part_key_pos
ObLongTextType, //column_type
CS_TYPE_INVALID, //column_collation_type
0, //column_length
-1, //column_precision
-1, //column_scale
true, //is_nullable
false); //is_autoincrement
}
if (OB_SUCC(ret)) {
ObObj format_sql_id_default;
format_sql_id_default.set_varbinary(ObString::make_string(""));
ADD_COLUMN_SCHEMA_T("format_sql_id", //column_name
++column_id, //column_id
0, //rowkey_id
0, //index_id
0, //part_key_pos
ObVarcharType, //column_type
CS_TYPE_BINARY, //column_collation_type
OB_MAX_SQL_ID_LENGTH, //column_length
-1, //column_precision
-1, //column_scale
false, //is_nullable
false, //is_autoincrement
format_sql_id_default,
format_sql_id_default); //default_value
}
if (OB_SUCC(ret)) {
ObObj format_outline_default;
format_outline_default.set_int(0);
ADD_COLUMN_SCHEMA_T("format_outline", //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
format_outline_default,
format_outline_default); //default_value
}
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);
@ -11626,6 +11679,59 @@ int ObInnerTableSchema::all_outline_history_schema(ObTableSchema &table_schema)
true, //is_nullable
false); //is_autoincrement
}
if (OB_SUCC(ret)) {
ADD_COLUMN_SCHEMA("format_sql_text", //column_name
++column_id, //column_id
0, //rowkey_id
0, //index_id
0, //part_key_pos
ObLongTextType, //column_type
CS_TYPE_INVALID, //column_collation_type
0, //column_length
-1, //column_precision
-1, //column_scale
true, //is_nullable
false); //is_autoincrement
}
if (OB_SUCC(ret)) {
ObObj format_sql_id_default;
format_sql_id_default.set_varbinary(ObString::make_string(""));
ADD_COLUMN_SCHEMA_T("format_sql_id", //column_name
++column_id, //column_id
0, //rowkey_id
0, //index_id
0, //part_key_pos
ObVarcharType, //column_type
CS_TYPE_BINARY, //column_collation_type
OB_MAX_SQL_ID_LENGTH, //column_length
-1, //column_precision
-1, //column_scale
true, //is_nullable
false, //is_autoincrement
format_sql_id_default,
format_sql_id_default); //default_value
}
if (OB_SUCC(ret)) {
ObObj format_outline_default;
format_outline_default.set_int(0);
ADD_COLUMN_SCHEMA_T("format_outline", //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
true, //is_nullable
false, //is_autoincrement
format_outline_default,
format_outline_default); //default_value
}
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);

View File

@ -1665,6 +1665,59 @@ int ObInnerTableSchema::all_virtual_outline_schema(ObTableSchema &table_schema)
true, //is_nullable
false); //is_autoincrement
}
if (OB_SUCC(ret)) {
ADD_COLUMN_SCHEMA("format_sql_text", //column_name
++column_id, //column_id
0, //rowkey_id
0, //index_id
0, //part_key_pos
ObLongTextType, //column_type
CS_TYPE_INVALID, //column_collation_type
0, //column_length
-1, //column_precision
-1, //column_scale
true, //is_nullable
false); //is_autoincrement
}
if (OB_SUCC(ret)) {
ObObj format_sql_id_default;
format_sql_id_default.set_varbinary(ObString::make_string(""));
ADD_COLUMN_SCHEMA_T("format_sql_id", //column_name
++column_id, //column_id
0, //rowkey_id
0, //index_id
0, //part_key_pos
ObVarcharType, //column_type
CS_TYPE_BINARY, //column_collation_type
OB_MAX_SQL_ID_LENGTH, //column_length
-1, //column_precision
-1, //column_scale
false, //is_nullable
false, //is_autoincrement
format_sql_id_default,
format_sql_id_default); //default_value
}
if (OB_SUCC(ret)) {
ObObj format_outline_default;
format_outline_default.set_int(0);
ADD_COLUMN_SCHEMA_T("format_outline", //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
format_outline_default,
format_outline_default); //default_value
}
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);
@ -2066,6 +2119,59 @@ int ObInnerTableSchema::all_virtual_outline_history_schema(ObTableSchema &table_
true, //is_nullable
false); //is_autoincrement
}
if (OB_SUCC(ret)) {
ADD_COLUMN_SCHEMA("format_sql_text", //column_name
++column_id, //column_id
0, //rowkey_id
0, //index_id
0, //part_key_pos
ObLongTextType, //column_type
CS_TYPE_INVALID, //column_collation_type
0, //column_length
-1, //column_precision
-1, //column_scale
true, //is_nullable
false); //is_autoincrement
}
if (OB_SUCC(ret)) {
ObObj format_sql_id_default;
format_sql_id_default.set_varbinary(ObString::make_string(""));
ADD_COLUMN_SCHEMA_T("format_sql_id", //column_name
++column_id, //column_id
0, //rowkey_id
0, //index_id
0, //part_key_pos
ObVarcharType, //column_type
CS_TYPE_BINARY, //column_collation_type
OB_MAX_SQL_ID_LENGTH, //column_length
-1, //column_precision
-1, //column_scale
true, //is_nullable
false, //is_autoincrement
format_sql_id_default,
format_sql_id_default); //default_value
}
if (OB_SUCC(ret)) {
ObObj format_outline_default;
format_outline_default.set_int(0);
ADD_COLUMN_SCHEMA_T("format_outline", //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
true, //is_nullable
false, //is_autoincrement
format_outline_default,
format_outline_default); //default_value
}
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);

View File

@ -17973,6 +17973,51 @@ int ObInnerTableSchema::all_virtual_outline_real_agent_ora_schema(ObTableSchema
false); //is_autoincrement
}
if (OB_SUCC(ret)) {
ADD_COLUMN_SCHEMA("FORMAT_SQL_TEXT", //column_name
++column_id, //column_id
0, //rowkey_id
0, //index_id
0, //part_key_pos
ObLongTextType, //column_type
CS_TYPE_INVALID, //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("FORMAT_SQL_ID", //column_name
++column_id, //column_id
0, //rowkey_id
0, //index_id
0, //part_key_pos
ObVarcharType, //column_type
CS_TYPE_BINARY, //column_collation_type
OB_MAX_SQL_ID_LENGTH, //column_length
-1, //column_precision
-1, //column_scale
true, //is_nullable
false); //is_autoincrement
}
if (OB_SUCC(ret)) {
ADD_COLUMN_SCHEMA("FORMAT_OUTLINE", //column_name
++column_id, //column_id
0, //rowkey_id
0, //index_id
0, //part_key_pos
ObNumberType, //column_type
CS_TYPE_INVALID, //column_collation_type
38, //column_length
38, //column_precision
0, //column_scale
false, //is_nullable
false); //is_autoincrement
}
if (OB_SUCC(ret)) {
ADD_COLUMN_SCHEMA("GMT_CREATE", //column_name
++column_id, //column_id

View File

@ -344,6 +344,51 @@ int ObInnerTableSchema::all_virtual_outline_history_real_agent_ora_schema(ObTabl
false); //is_autoincrement
}
if (OB_SUCC(ret)) {
ADD_COLUMN_SCHEMA("FORMAT_SQL_TEXT", //column_name
++column_id, //column_id
0, //rowkey_id
0, //index_id
0, //part_key_pos
ObLongTextType, //column_type
CS_TYPE_INVALID, //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("FORMAT_SQL_ID", //column_name
++column_id, //column_id
0, //rowkey_id
0, //index_id
0, //part_key_pos
ObVarcharType, //column_type
CS_TYPE_BINARY, //column_collation_type
OB_MAX_SQL_ID_LENGTH, //column_length
-1, //column_precision
-1, //column_scale
true, //is_nullable
false); //is_autoincrement
}
if (OB_SUCC(ret)) {
ADD_COLUMN_SCHEMA("FORMAT_OUTLINE", //column_name
++column_id, //column_id
0, //rowkey_id
0, //index_id
0, //part_key_pos
ObNumberType, //column_type
CS_TYPE_INVALID, //column_collation_type
38, //column_length
38, //column_precision
0, //column_scale
true, //is_nullable
false); //is_autoincrement
}
if (OB_SUCC(ret)) {
ADD_COLUMN_SCHEMA("GMT_CREATE", //column_name
++column_id, //column_id

View File

@ -999,6 +999,9 @@ all_outline_def = dict(
('outline_target', 'longtext', 'false'),
('sql_id', 'varbinary:OB_MAX_SQL_ID_LENGTH', 'false', ''),
('owner_id', 'int', 'true'),
('format_sql_text', 'longtext', 'true'),
('format_sql_id', 'varbinary:OB_MAX_SQL_ID_LENGTH', 'false', ''),
('format_outline', 'int', 'false', '0')
],
)
@ -7969,8 +7972,8 @@ def_table_schema(
('outline_target', 'longtext', 'false'),
('outline_sql', 'longtext', 'false'),
('sql_id', 'varchar:OB_MAX_SQL_ID_LENGTH', 'false', ''),
('outline_content', 'longtext', 'false'),
],
('outline_content', 'longtext', 'false')
],
)
def_table_schema(

View File

@ -10114,6 +10114,7 @@ ObOutlineInfo &ObOutlineInfo::operator=(const ObOutlineInfo &src_info)
compatible_ = src_info.compatible_;
enabled_ = src_info.enabled_;
format_ = src_info.format_;
format_outline_ = src_info.format_outline_;
if (OB_FAIL(deep_copy_str(src_info.name_, name_))) {
LOG_WARN("Fail to deep copy name", K(ret));
} else if (OB_FAIL(deep_copy_str(src_info.signature_, signature_))) {
@ -10124,6 +10125,10 @@ ObOutlineInfo &ObOutlineInfo::operator=(const ObOutlineInfo &src_info)
LOG_WARN("Fail to deep copy outline_content", K(ret));
} else if (OB_FAIL(deep_copy_str(src_info.sql_text_, sql_text_))) {
LOG_WARN("Fail to deep copy sql_text", K(ret));
} else if (OB_FAIL(deep_copy_str(src_info.format_sql_text_, format_sql_text_))) {
LOG_WARN("Fail to deep copy sql_text", K(ret));
} else if (OB_FAIL(deep_copy_str(src_info.format_sql_id_, format_sql_id_))) {
LOG_WARN("Fail to deep copy signature", K(ret));
} else if (OB_FAIL(deep_copy_str(src_info.outline_target_, outline_target_))) {
LOG_WARN("Fail to deep copy outline target", K(ret));
} else if (OB_FAIL(deep_copy_str(src_info.owner_, owner_))) {
@ -10156,6 +10161,8 @@ void ObOutlineInfo::reset()
reset_string(name_);
reset_string(signature_);
reset_string(sql_id_);
reset_string(format_sql_id_);
reset_string(format_sql_text_);
reset_string(outline_content_);
reset_string(sql_text_);
reset_string(outline_target_);
@ -10165,6 +10172,7 @@ void ObOutlineInfo::reset()
compatible_ = true;
enabled_ = true;
format_ = HINT_NORMAL;
format_outline_ = false;
outline_params_wrapper_.destroy();
ObSchema::reset();
}
@ -10344,7 +10352,7 @@ OB_DEF_SERIALIZE(ObOutlineInfo)
LST_DO_CODE(OB_UNIS_ENCODE, tenant_id_, database_id_, outline_id_, schema_version_,
name_, signature_, outline_content_, sql_text_, outline_target_, owner_,
used_, version_, compatible_, enabled_, format_, outline_params_wrapper_,
sql_id_, owner_id_);
sql_id_, owner_id_, format_sql_text_, format_sql_id_, format_outline_);
return ret;
}
@ -10360,6 +10368,8 @@ OB_DEF_DESERIALIZE(ObOutlineInfo)
ObString outline_target;
ObString owner;
ObString version;
ObString format_sql_id;
ObString format_sql_text;
LST_DO_CODE(OB_UNIS_DECODE, tenant_id_, database_id_, outline_id_, schema_version_,
name, signature, outline_content, sql_text, outline_target, owner, used_,
@ -10393,7 +10403,14 @@ OB_DEF_DESERIALIZE(ObOutlineInfo)
LOG_WARN("Fail to deep copy sql_id", K(ret));
} else {
if (pos < data_len) {
LST_DO_CODE(OB_UNIS_DECODE, owner_id_);
LST_DO_CODE(OB_UNIS_DECODE, owner_id_, format_sql_text, format_sql_id, format_outline_);
if (OB_FAIL(ret)){
// do nothing
}else if (OB_FAIL(deep_copy_str(format_sql_text, format_sql_text_))) {
LOG_WARN("Fail to deep copy sql_text", K(ret));
} else if (OB_FAIL(deep_copy_str(format_sql_id, format_sql_id_))) {
LOG_WARN("Fail to deep copy sql_id", K(ret));
}
} else {
owner_id_ = OB_INVALID_ID;
}
@ -10409,7 +10426,8 @@ OB_DEF_SERIALIZE_SIZE(ObOutlineInfo)
int64_t len = 0;
LST_DO_CODE(OB_UNIS_ADD_LEN, tenant_id_, database_id_, outline_id_, schema_version_,
name_, signature_, sql_id_, outline_content_, sql_text_, outline_target_, owner_,
used_, version_, compatible_, enabled_, format_, outline_params_wrapper_, owner_id_);
used_, version_, compatible_, enabled_, format_, outline_params_wrapper_, owner_id_,
format_sql_text_, format_sql_id_, format_outline_);
return len;
}

View File

@ -5109,6 +5109,8 @@ public:
int get_hex_str_from_outline_params(common::ObString &hex_str, common::ObIAllocator &allocator) const;
const ObOutlineParamsWrapper &get_outline_params_wrapper() const { return outline_params_wrapper_; }
ObOutlineParamsWrapper &get_outline_params_wrapper() { return outline_params_wrapper_; }
bool is_format() { return format_outline_; }
bool is_format() const { return format_outline_; }
bool has_outline_params() const { return outline_params_wrapper_.get_outline_params().count() > 0; }
int has_concurrent_limit_param(bool &has) const;
int gen_valid_allocator();
@ -5121,7 +5123,8 @@ public:
VIRTUAL_TO_STRING_KV(K_(tenant_id), K_(database_id), K_(outline_id), K_(schema_version),
K_(name), K_(signature), K_(sql_id), K_(outline_content), K_(sql_text),
K_(owner_id), K_(owner), K_(used), K_(compatible),
K_(enabled), K_(format), K_(outline_params_wrapper), K_(outline_target));
K_(enabled), K_(format), K_(outline_params_wrapper), K_(outline_target),
K_(format_sql_text), K_(format_sql_id), K_(format_outline));
static bool is_sql_id_valid(const common::ObString &sql_id);
private:
static int replace_question_mark(const common::ObString &not_param_sql,
@ -5155,6 +5158,9 @@ protected:
ObHintFormat format_;
uint64_t owner_id_;
ObOutlineParamsWrapper outline_params_wrapper_;
common::ObString format_sql_text_;
common::ObString format_sql_id_;
bool format_outline_;
};
class ObDbLinkBaseInfo : public ObSchema

View File

@ -2333,6 +2333,9 @@ outline_params varbinary(65536) NO
outline_target longtext NO NULL
sql_id varbinary(32) NO
owner_id bigint(20) YES NULL
format_sql_text longtext YES NULL
format_sql_id varbinary(32) NO
format_outline bigint(20) NO 0
select /*+QUERY_TIMEOUT(60000000)*/ IF(count(*) >= 0, 1, 0) from oceanbase.__all_virtual_outline;
IF(count(*) >= 0, 1, 0)
1
@ -2359,6 +2362,9 @@ outline_params varbinary(65536) YES
outline_target longtext YES NULL
sql_id varbinary(32) YES
owner_id bigint(20) YES NULL
format_sql_text longtext YES NULL
format_sql_id varbinary(32) YES
format_outline bigint(20) YES 0
select /*+QUERY_TIMEOUT(60000000)*/ IF(count(*) >= 0, 1, 0) from oceanbase.__all_virtual_outline_history;
IF(count(*) >= 0, 1, 0)
1