Skip to content

Commit

Permalink
[CP] adjust sys view definition to avoid system view modification col…
Browse files Browse the repository at this point in the history
…umns not being able to affect dependent views
  • Loading branch information
demo1994 authored and junye committed Feb 27, 2024
1 parent fac02c6 commit c984fe7
Show file tree
Hide file tree
Showing 21 changed files with 2,568 additions and 255 deletions.
6 changes: 6 additions & 0 deletions src/share/inner_table/generate_inner_table_schema.py
Original file line number Diff line number Diff line change
Expand Up @@ -1717,6 +1717,12 @@ def def_table_schema(**keywords):
elif keywords.has_key('partition_columns') and 0 != len(keywords['partition_columns']):
raise Exception("partition_columns only works for virtual table after 4.0", tid)

if is_sys_view(tid):
pattern = re.compile(r'^\s*SELECT\s+\*', re.IGNORECASE)
if keywords.has_key('view_definition') and 0 != len(keywords['view_definition']) and pattern.match(keywords['view_definition'].upper().replace("\n", " ")):
print(keywords['view_definition'])
raise Exception("The system view definition cannot start with select *. Please specify the column name explicitly, ", tid)

fill_default_values(default_filed_values, keywords, missing_fields)
check_fileds(fields, keywords)

Expand Down
34 changes: 17 additions & 17 deletions src/share/inner_table/ob_inner_table_schema.21001_21050.cpp

Large diffs are not rendered by default.

56 changes: 47 additions & 9 deletions src/share/inner_table/ob_inner_table_schema.21051_21100.cpp
Original file line number Diff line number Diff line change
Expand Up @@ -310,7 +310,7 @@ int ObInnerTableSchema::v_session_longops_schema(ObTableSchema &table_schema)
table_schema.set_collation_type(ObCharset::get_default_collation(ObCharset::get_default_charset()));

if (OB_SUCC(ret)) {
if (OB_FAIL(table_schema.set_view_definition(R"__( SELECT * FROM OCEANBASE.GV$SESSION_LONGOPS WHERE SVR_IP = HOST_IP() AND SVR_PORT = RPC_PORT() )__"))) {
if (OB_FAIL(table_schema.set_view_definition(R"__( SELECT SID, TRACE_ID, OPNAME, TARGET, SVR_IP, SVR_PORT, START_TIME, ELAPSED_SECONDS, TIME_REMAINING, LAST_UPDATE_TIME, MESSAGE FROM OCEANBASE.GV$SESSION_LONGOPS WHERE SVR_IP = HOST_IP() AND SVR_PORT = RPC_PORT() )__"))) {
LOG_ERROR("fail to set view_definition", K(ret));
}
}
Expand Down Expand Up @@ -531,7 +531,7 @@ int ObInnerTableSchema::v_ob_px_worker_stat_schema(ObTableSchema &table_schema)
table_schema.set_collation_type(ObCharset::get_default_collation(ObCharset::get_default_charset()));

if (OB_SUCC(ret)) {
if (OB_FAIL(table_schema.set_view_definition(R"__( SELECT * FROM oceanbase.GV$OB_PX_WORKER_STAT where svr_ip = host_ip() AND svr_port = rpc_port() )__"))) {
if (OB_FAIL(table_schema.set_view_definition(R"__( SELECT SESSION_ID, TENANT_ID, SVR_IP, SVR_PORT, TRACE_ID, QC_ID, SQC_ID, WORKER_ID, DFO_ID, START_TIME FROM oceanbase.GV$OB_PX_WORKER_STAT where svr_ip = host_ip() AND svr_port = rpc_port() )__"))) {
LOG_ERROR("fail to set view_definition", K(ret));
}
}
Expand Down Expand Up @@ -631,7 +631,7 @@ int ObInnerTableSchema::v_ob_ps_stat_schema(ObTableSchema &table_schema)
table_schema.set_collation_type(ObCharset::get_default_collation(ObCharset::get_default_charset()));

if (OB_SUCC(ret)) {
if (OB_FAIL(table_schema.set_view_definition(R"__( SELECT * FROM oceanbase.GV$OB_PS_STAT WHERE svr_ip=HOST_IP() AND svr_port=RPC_PORT() )__"))) {
if (OB_FAIL(table_schema.set_view_definition(R"__( SELECT TENANT_ID, SVR_IP, SVR_PORT, STMT_COUNT, HIT_COUNT, ACCESS_COUNT, MEM_HOLD FROM oceanbase.GV$OB_PS_STAT WHERE svr_ip=HOST_IP() AND svr_port=RPC_PORT() )__"))) {
LOG_ERROR("fail to set view_definition", K(ret));
}
}
Expand Down Expand Up @@ -731,7 +731,7 @@ int ObInnerTableSchema::v_ob_ps_item_info_schema(ObTableSchema &table_schema)
table_schema.set_collation_type(ObCharset::get_default_collation(ObCharset::get_default_charset()));

if (OB_SUCC(ret)) {
if (OB_FAIL(table_schema.set_view_definition(R"__( SELECT * FROM oceanbase.GV$OB_PS_ITEM_INFO WHERE svr_ip=HOST_IP() AND svr_port=RPC_PORT() )__"))) {
if (OB_FAIL(table_schema.set_view_definition(R"__( SELECT TENANT_ID, SVR_IP, SVR_PORT, STMT_ID, DB_ID, PS_SQL, PARAM_COUNT, STMT_ITEM_REF_COUNT, STMT_INFO_REF_COUNT, MEM_HOLD, STMT_TYPE, CHECKSUM, EXPIRED FROM oceanbase.GV$OB_PS_ITEM_INFO WHERE svr_ip=HOST_IP() AND svr_port=RPC_PORT() )__"))) {
LOG_ERROR("fail to set view_definition", K(ret));
}
}
Expand Down Expand Up @@ -831,7 +831,7 @@ int ObInnerTableSchema::v_sql_workarea_schema(ObTableSchema &table_schema)
table_schema.set_collation_type(ObCharset::get_default_collation(ObCharset::get_default_charset()));

if (OB_SUCC(ret)) {
if (OB_FAIL(table_schema.set_view_definition(R"__( SELECT * FROM OCEANBASE.GV$SQL_WORKAREA WHERE SVR_IP = HOST_IP() AND SVR_PORT = RPC_PORT() )__"))) {
if (OB_FAIL(table_schema.set_view_definition(R"__( SELECT ADDRESS, HASH_VALUE, SQL_ID, CHILD_NUMBER, WORKAREA_ADDRESS, OPERATION_TYPE, OPERATION_ID, POLICY, ESTIMATED_OPTIMAL_SIZE, ESTIMATED_ONEPASS_SIZE, LAST_MEMORY_USED, LAST_EXECUTION, LAST_DEGREE, TOTAL_EXECUTIONS, OPTIMAL_EXECUTIONS, ONEPASS_EXECUTIONS, MULTIPASSES_EXECUTIONS, ACTIVE_TIME, MAX_TEMPSEG_SIZE, LAST_TEMPSEG_SIZE, CON_ID, SVR_IP, SVR_PORT FROM OCEANBASE.GV$SQL_WORKAREA WHERE SVR_IP = HOST_IP() AND SVR_PORT = RPC_PORT() )__"))) {
LOG_ERROR("fail to set view_definition", K(ret));
}
}
Expand Down Expand Up @@ -931,7 +931,7 @@ int ObInnerTableSchema::v_sql_workarea_active_schema(ObTableSchema &table_schema
table_schema.set_collation_type(ObCharset::get_default_collation(ObCharset::get_default_charset()));

if (OB_SUCC(ret)) {
if (OB_FAIL(table_schema.set_view_definition(R"__( SELECT * FROM OCEANBASE.GV$SQL_WORKAREA_ACTIVE WHERE SVR_IP = HOST_IP() AND SVR_PORT = RPC_PORT() )__"))) {
if (OB_FAIL(table_schema.set_view_definition(R"__( SELECT SQL_HASH_VALUE, SQL_ID, SQL_EXEC_START, SQL_EXEC_ID, WORKAREA_ADDRESS, OPERATION_TYPE, OPERATION_ID, POLICY, SID, QCINST_ID, QCSID, ACTIVE_TIME, WORK_AREA_SIZE, EXPECT_SIZE, ACTUAL_MEM_USED, MAX_MEM_USED, NUMBER_PASSES, TEMPSEG_SIZE, TABLESPACE, `SEGRFNO#`, `SEGBLK#`, CON_ID, SVR_IP, SVR_PORT FROM OCEANBASE.GV$SQL_WORKAREA_ACTIVE WHERE SVR_IP = HOST_IP() AND SVR_PORT = RPC_PORT() )__"))) {
LOG_ERROR("fail to set view_definition", K(ret));
}
}
Expand Down Expand Up @@ -1031,7 +1031,7 @@ int ObInnerTableSchema::v_sql_workarea_histogram_schema(ObTableSchema &table_sch
table_schema.set_collation_type(ObCharset::get_default_collation(ObCharset::get_default_charset()));

if (OB_SUCC(ret)) {
if (OB_FAIL(table_schema.set_view_definition(R"__( SELECT * FROM OCEANBASE.GV$SQL_WORKAREA_HISTOGRAM WHERE SVR_IP = HOST_IP() AND SVR_PORT = RPC_PORT() )__"))) {
if (OB_FAIL(table_schema.set_view_definition(R"__( SELECT LOW_OPTIMAL_SIZE, HIGH_OPTIMAL_SIZE, OPTIMAL_EXECUTIONS, ONEPASS_EXECUTIONS, MULTIPASSES_EXECUTIONS, TOTAL_EXECUTIONS, CON_ID, SVR_IP, SVR_PORT FROM OCEANBASE.GV$SQL_WORKAREA_HISTOGRAM WHERE SVR_IP = HOST_IP() AND SVR_PORT = RPC_PORT() )__"))) {
LOG_ERROR("fail to set view_definition", K(ret));
}
}
Expand Down Expand Up @@ -1131,7 +1131,7 @@ int ObInnerTableSchema::v_ob_sql_workarea_memory_info_schema(ObTableSchema &tabl
table_schema.set_collation_type(ObCharset::get_default_collation(ObCharset::get_default_charset()));

if (OB_SUCC(ret)) {
if (OB_FAIL(table_schema.set_view_definition(R"__( SELECT * FROM OCEANBASE.GV$OB_SQL_WORKAREA_MEMORY_INFO WHERE SVR_IP = HOST_IP() AND SVR_PORT = RPC_PORT() )__"))) {
if (OB_FAIL(table_schema.set_view_definition(R"__( SELECT MAX_WORKAREA_SIZE, WORKAREA_HOLD_SIZE, MAX_AUTO_WORKAREA_SIZE, MEM_TARGET, TOTAL_MEM_USED, GLOBAL_MEM_BOUND, DRIFT_SIZE, WORKAREA_COUNT, MANUAL_CALC_COUNT, TENANT_ID, SVR_IP, SVR_PORT FROM OCEANBASE.GV$OB_SQL_WORKAREA_MEMORY_INFO WHERE SVR_IP = HOST_IP() AND SVR_PORT = RPC_PORT() )__"))) {
LOG_ERROR("fail to set view_definition", K(ret));
}
}
Expand Down Expand Up @@ -1232,7 +1232,45 @@ int ObInnerTableSchema::v_ob_plan_cache_reference_info_schema(ObTableSchema &tab

if (OB_SUCC(ret)) {
if (OB_FAIL(table_schema.set_view_definition(R"__(
SELECT * FROM oceanbase.GV$OB_PLAN_CACHE_REFERENCE_INFO
SELECT SVR_IP,
SVR_PORT,
TENANT_ID,
PC_REF_PLAN_LOCAL,
PC_REF_PLAN_REMOTE,
PC_REF_PLAN_DIST,
PC_REF_PLAN_ARR,
PC_REF_PL,
PC_REF_PL_STAT,
PLAN_GEN,
CLI_QUERY,
OUTLINE_EXEC,
PLAN_EXPLAIN,
ASYN_BASELINE,
LOAD_BASELINE,
PS_EXEC,
GV_SQL,
PL_ANON,
PL_ROUTINE,
PACKAGE_VAR,
PACKAGE_TYPE,
PACKAGE_SPEC,
PACKAGE_BODY,
PACKAGE_RESV,
GET_PKG,
INDEX_BUILDER,
PCV_SET,
PCV_RD,
PCV_WR,
PCV_GET_PLAN_KEY,
PCV_GET_PL_KEY,
PCV_EXPIRE_BY_USED,
PCV_EXPIRE_BY_MEM,
LC_REF_CACHE_NODE,
LC_NODE,
LC_NODE_RD,
LC_NODE_WR,
LC_REF_CACHE_OBJ_STAT
FROM oceanbase.GV$OB_PLAN_CACHE_REFERENCE_INFO
WHERE SVR_IP=HOST_IP() AND SVR_PORT=RPC_PORT()
)__"))) {
LOG_ERROR("fail to set view_definition", K(ret));
Expand Down
10 changes: 5 additions & 5 deletions src/share/inner_table/ob_inner_table_schema.21101_21150.cpp
Original file line number Diff line number Diff line change
Expand Up @@ -110,7 +110,7 @@ int ObInnerTableSchema::v_ob_sstables_schema(ObTableSchema &table_schema)
table_schema.set_collation_type(ObCharset::get_default_collation(ObCharset::get_default_charset()));

if (OB_SUCC(ret)) {
if (OB_FAIL(table_schema.set_view_definition(R"__( SELECT * FROM OCEANBASE.GV$OB_SSTABLES WHERE SVR_IP=HOST_IP() AND SVR_PORT=RPC_PORT() )__"))) {
if (OB_FAIL(table_schema.set_view_definition(R"__( SELECT M.SVR_IP, M.SVR_PORT, M.TABLE_TYPE, M.TENANT_ID, M.LS_ID, M.TABLET_ID, M.START_LOG_SCN, M.END_LOG_SCN, M.SIZE, M.REF, M.UPPER_TRANS_VERSION, M.IS_ACTIVE, M.CONTAIN_UNCOMMITTED_ROW FROM OCEANBASE.GV$OB_SSTABLES M WHERE SVR_IP=HOST_IP() AND SVR_PORT=RPC_PORT() )__"))) {
LOG_ERROR("fail to set view_definition", K(ret));
}
}
Expand Down Expand Up @@ -310,7 +310,7 @@ int ObInnerTableSchema::v_ob_server_schema_info_schema(ObTableSchema &table_sche
table_schema.set_collation_type(ObCharset::get_default_collation(ObCharset::get_default_charset()));

if (OB_SUCC(ret)) {
if (OB_FAIL(table_schema.set_view_definition(R"__( SELECT * FROM oceanbase.GV$OB_SERVER_SCHEMA_INFO WHERE SVR_IP=HOST_IP() AND SVR_PORT=RPC_PORT() )__"))) {
if (OB_FAIL(table_schema.set_view_definition(R"__( SELECT SVR_IP, SVR_PORT, TENANT_ID, REFRESHED_SCHEMA_VERSION, RECEIVED_SCHEMA_VERSION, SCHEMA_COUNT, SCHEMA_SIZE, MIN_SSTABLE_SCHEMA_VERSION FROM oceanbase.GV$OB_SERVER_SCHEMA_INFO WHERE SVR_IP=HOST_IP() AND SVR_PORT=RPC_PORT() )__"))) {
LOG_ERROR("fail to set view_definition", K(ret));
}
}
Expand Down Expand Up @@ -460,7 +460,7 @@ int ObInnerTableSchema::v_ob_merge_info_schema(ObTableSchema &table_schema)
table_schema.set_collation_type(ObCharset::get_default_collation(ObCharset::get_default_charset()));

if (OB_SUCC(ret)) {
if (OB_FAIL(table_schema.set_view_definition(R"__( SELECT * FROM OCEANBASE.GV$OB_MERGE_INFO WHERE SVR_IP = HOST_IP() AND SVR_PORT = RPC_PORT() )__"))) {
if (OB_FAIL(table_schema.set_view_definition(R"__( SELECT SVR_IP, SVR_PORT, TENANT_ID, LS_ID, TABLET_ID, ACTION, COMPACTION_SCN, START_TIME, END_TIME, MACRO_BLOCK_COUNT, REUSE_PCT, PARALLEL_DEGREE FROM OCEANBASE.GV$OB_MERGE_INFO WHERE SVR_IP = HOST_IP() AND SVR_PORT = RPC_PORT() )__"))) {
LOG_ERROR("fail to set view_definition", K(ret));
}
}
Expand Down Expand Up @@ -810,7 +810,7 @@ int ObInnerTableSchema::v_ob_tenant_memory_schema(ObTableSchema &table_schema)
table_schema.set_collation_type(ObCharset::get_default_collation(ObCharset::get_default_charset()));

if (OB_SUCC(ret)) {
if (OB_FAIL(table_schema.set_view_definition(R"__( SELECT * FROM oceanbase.GV$OB_TENANT_MEMORY WHERE SVR_IP=HOST_IP() AND SVR_PORT=RPC_PORT() )__"))) {
if (OB_FAIL(table_schema.set_view_definition(R"__( SELECT TENANT_ID, SVR_IP, SVR_PORT, HOLD, FREE FROM oceanbase.GV$OB_TENANT_MEMORY WHERE SVR_IP=HOST_IP() AND SVR_PORT=RPC_PORT() )__"))) {
LOG_ERROR("fail to set view_definition", K(ret));
}
}
Expand Down Expand Up @@ -910,7 +910,7 @@ int ObInnerTableSchema::v_ob_px_target_monitor_schema(ObTableSchema &table_schem
table_schema.set_collation_type(ObCharset::get_default_collation(ObCharset::get_default_charset()));

if (OB_SUCC(ret)) {
if (OB_FAIL(table_schema.set_view_definition(R"__(SELECT * FROM oceanbase.GV$OB_PX_TARGET_MONITOR WHERE svr_ip=HOST_IP() AND svr_port=RPC_PORT() )__"))) {
if (OB_FAIL(table_schema.set_view_definition(R"__(SELECT SVR_IP, SVR_PORT, TENANT_ID, IS_LEADER, VERSION, PEER_IP, PEER_PORT, PEER_TARGET, PEER_TARGET_USED, LOCAL_TARGET_USED, LOCAL_PARALLEL_SESSION_COUNT FROM oceanbase.GV$OB_PX_TARGET_MONITOR WHERE svr_ip=HOST_IP() AND svr_port=RPC_PORT() )__"))) {
LOG_ERROR("fail to set view_definition", K(ret));
}
}
Expand Down
Original file line number Diff line number Diff line change
Expand Up @@ -360,7 +360,7 @@ int ObInnerTableSchema::files_schema(ObTableSchema &table_schema)
table_schema.set_collation_type(ObCharset::get_default_collation(ObCharset::get_default_charset()));

if (OB_SUCC(ret)) {
if (OB_FAIL(table_schema.set_view_definition(R"__(SELECT * FROM oceanbase.__all_virtual_files)__"))) {
if (OB_FAIL(table_schema.set_view_definition(R"__(SELECT FILE_ID, FILE_NAME, FILE_TYPE, TABLESPACE_NAME, TABLE_CATALOG, TABLE_SCHEMA, TABLE_NAME, LOGFILE_GROUP_NAME, LOGFILE_GROUP_NUMBER, ENGINE, FULLTEXT_KEYS, DELETED_ROWS, UPDATE_COUNT, FREE_EXTENTS, TOTAL_EXTENTS, EXTENT_SIZE, INITIAL_SIZE, MAXIMUM_SIZE, AUTOEXTEND_SIZE, CREATION_TIME, LAST_UPDATE_TIME, LAST_ACCESS_TIME, RECOVER_TIME, TRANSACTION_COUNTER, VERSION, ROW_FORMAT, TABLE_ROWS, AVG_ROW_LENGTH, DATA_LENGTH, MAX_DATA_LENGTH, INDEX_LENGTH, DATA_FREE, CREATE_TIME, UPDATE_TIME, CHECK_TIME, CHECKSUM, STATUS, EXTRA FROM oceanbase.__all_virtual_files)__"))) {
LOG_ERROR("fail to set view_definition", K(ret));
}
}
Expand Down

0 comments on commit c984fe7

Please sign in to comment.