From 8707a8d00d959c3b471814e5bb171d4abe439c91 Mon Sep 17 00:00:00 2001 From: THEGREATHXY <1130034182@qq.com> Date: Wed, 2 Aug 2023 06:42:21 +0000 Subject: [PATCH] [to #50589858] add type/type body info to all_source table --- .../ob_inner_table_schema.25051_25100.cpp | 6 +-- .../inner_table/ob_inner_table_schema_def.py | 47 +++++++++++++++++++ 2 files changed, 50 insertions(+), 3 deletions(-) diff --git a/src/share/inner_table/ob_inner_table_schema.25051_25100.cpp b/src/share/inner_table/ob_inner_table_schema.25051_25100.cpp index 27f4cd611c..368699bcf9 100644 --- a/src/share/inner_table/ob_inner_table_schema.25051_25100.cpp +++ b/src/share/inner_table/ob_inner_table_schema.25051_25100.cpp @@ -310,7 +310,7 @@ int ObInnerTableSchema::dba_source_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 CAST(D.DATABASE_NAME AS VARCHAR2(128)) AS OWNER, CAST(P.PACKAGE_NAME AS VARCHAR2(128)) AS NAME, CAST(CASE P.TYPE WHEN 1 THEN 'PACKAGE' WHEN 2 THEN 'PACKAGE BODY' END AS VARCHAR2(12)) AS TYPE, CAST(1 AS NUMBER) AS LINE, TO_CLOB(P.SOURCE) AS TEXT, P.TENANT_ID AS ORIGIN_CON_ID FROM (SELECT * FROM SYS.ALL_VIRTUAL_PACKAGE_REAL_AGENT WHERE TENANT_ID = EFFECTIVE_TENANT_ID()) P LEFT JOIN SYS.ALL_VIRTUAL_DATABASE_REAL_AGENT D ON P.DATABASE_ID = D.DATABASE_ID AND D.TENANT_ID = EFFECTIVE_TENANT_ID() WHERE D.IN_RECYCLEBIN = 0 UNION ALL SELECT CAST(D.DATABASE_NAME AS VARCHAR2(128)) AS OWNER, CAST(R.ROUTINE_NAME AS VARCHAR2(128)) AS NAME, CAST(CASE R.ROUTINE_TYPE WHEN 1 THEN 'PROCEDURE' WHEN 2 THEN 'FUNCTION' END AS VARCHAR2(12)) AS TYPE, CAST(1 AS NUMBER) AS LINE, TO_CLOB(R.ROUTINE_BODY) AS TEXT, R.TENANT_ID AS ORIGIN_CON_ID FROM (SELECT * FROM SYS.ALL_VIRTUAL_ROUTINE_REAL_AGENT WHERE TENANT_ID = EFFECTIVE_TENANT_ID()) R LEFT JOIN SYS.ALL_VIRTUAL_DATABASE_REAL_AGENT D ON R.DATABASE_ID = D.DATABASE_ID AND D.TENANT_ID = EFFECTIVE_TENANT_ID() WHERE D.IN_RECYCLEBIN = 0 AND R.PACKAGE_ID = -1 UNION ALL SELECT CAST(D.DATABASE_NAME AS VARCHAR2(128)) AS OWNER, CAST(T.TRIGGER_NAME AS VARCHAR2(128)) AS NAME, CAST('TRIGGER' AS VARCHAR2(12)) AS TYPE, CAST(1 AS NUMBER) AS LINE, TO_CLOB(T.TRIGGER_BODY) AS TEXT, T.TENANT_ID AS ORIGIN_CON_ID FROM (SELECT * FROM SYS.ALL_VIRTUAL_TENANT_TRIGGER_REAL_AGENT WHERE TENANT_ID = EFFECTIVE_TENANT_ID()) T LEFT JOIN SYS.ALL_VIRTUAL_DATABASE_REAL_AGENT D ON T.DATABASE_ID = D.DATABASE_ID AND D.TENANT_ID = EFFECTIVE_TENANT_ID() WHERE D.IN_RECYCLEBIN = 0 UNION ALL SELECT CAST('SYS' AS VARCHAR2(128)) AS OWNER, CAST(PS.PACKAGE_NAME AS VARCHAR2(128)) AS NAME, CAST(CASE PS.TYPE WHEN 1 THEN 'PACKAGE' WHEN 2 THEN 'PACKAGE BODY' END AS VARCHAR2(12)) AS TYPE, CAST(1 AS NUMBER) AS LINE, TO_CLOB(PS.SOURCE) AS TEXT, PS.TENANT_ID AS ORIGIN_CON_ID FROM SYS.ALL_VIRTUAL_PACKAGE_SYS_AGENT PS UNION ALL SELECT CAST('SYS' AS VARCHAR2(128)) AS OWNER, CAST(RS.ROUTINE_NAME AS VARCHAR2(128)) AS NAME, CAST(CASE RS.ROUTINE_TYPE WHEN 1 THEN 'PROCEDURE' WHEN 2 THEN 'FUNCTION' WHEN 3 THEN 'PACKAGE' END AS VARCHAR2(12)) AS TYPE, CAST(1 AS NUMBER) AS LINE, TO_CLOB(RS.ROUTINE_BODY) AS TEXT, RS.TENANT_ID AS ORIGIN_CON_ID FROM SYS.ALL_VIRTUAL_ROUTINE_SYS_AGENT RS WHERE RS.ROUTINE_TYPE = 1 OR RS.ROUTINE_TYPE = 2 UNION ALL SELECT CAST('SYS' AS VARCHAR2(128)) AS OWNER, CAST(TS.TRIGGER_NAME AS VARCHAR2(128)) AS NAME, CAST('TRIGGER' AS VARCHAR2(12)) AS TYPE, CAST(1 AS NUMBER) AS LINE, TO_CLOB(TS.TRIGGER_BODY) AS TEXT, TS.TENANT_ID AS ORIGIN_CON_ID FROM SYS.ALL_VIRTUAL_TENANT_TRIGGER_SYS_AGENT TS )__"))) { + if (OB_FAIL(table_schema.set_view_definition(R"__( SELECT CAST(D.DATABASE_NAME AS VARCHAR2(128)) AS OWNER, CAST(P.PACKAGE_NAME AS VARCHAR2(128)) AS NAME, CAST(CASE P.TYPE WHEN 1 THEN 'PACKAGE' WHEN 2 THEN 'PACKAGE BODY' END AS VARCHAR2(12)) AS TYPE, CAST(1 AS NUMBER) AS LINE, TO_CLOB(P.SOURCE) AS TEXT, P.TENANT_ID AS ORIGIN_CON_ID FROM (SELECT * FROM SYS.ALL_VIRTUAL_PACKAGE_REAL_AGENT WHERE TENANT_ID = EFFECTIVE_TENANT_ID()) P LEFT JOIN SYS.ALL_VIRTUAL_DATABASE_REAL_AGENT D ON P.DATABASE_ID = D.DATABASE_ID AND D.TENANT_ID = EFFECTIVE_TENANT_ID() WHERE D.IN_RECYCLEBIN = 0 UNION ALL SELECT CAST(D.DATABASE_NAME AS VARCHAR2(128)) AS OWNER, CAST(R.ROUTINE_NAME AS VARCHAR2(128)) AS NAME, CAST(CASE R.ROUTINE_TYPE WHEN 1 THEN 'PROCEDURE' WHEN 2 THEN 'FUNCTION' END AS VARCHAR2(12)) AS TYPE, CAST(1 AS NUMBER) AS LINE, TO_CLOB(R.ROUTINE_BODY) AS TEXT, R.TENANT_ID AS ORIGIN_CON_ID FROM (SELECT * FROM SYS.ALL_VIRTUAL_ROUTINE_REAL_AGENT WHERE TENANT_ID = EFFECTIVE_TENANT_ID()) R LEFT JOIN SYS.ALL_VIRTUAL_DATABASE_REAL_AGENT D ON R.DATABASE_ID = D.DATABASE_ID AND D.TENANT_ID = EFFECTIVE_TENANT_ID() WHERE D.IN_RECYCLEBIN = 0 AND R.PACKAGE_ID = -1 UNION ALL SELECT CAST(D.DATABASE_NAME AS VARCHAR2(128)) AS OWNER, CAST(T.TRIGGER_NAME AS VARCHAR2(128)) AS NAME, CAST('TRIGGER' AS VARCHAR2(12)) AS TYPE, CAST(1 AS NUMBER) AS LINE, TO_CLOB(T.TRIGGER_BODY) AS TEXT, T.TENANT_ID AS ORIGIN_CON_ID FROM (SELECT * FROM SYS.ALL_VIRTUAL_TENANT_TRIGGER_REAL_AGENT WHERE TENANT_ID = EFFECTIVE_TENANT_ID()) T LEFT JOIN SYS.ALL_VIRTUAL_DATABASE_REAL_AGENT D ON T.DATABASE_ID = D.DATABASE_ID AND D.TENANT_ID = EFFECTIVE_TENANT_ID() WHERE D.IN_RECYCLEBIN = 0 UNION ALL SELECT CAST('SYS' AS VARCHAR2(128)) AS OWNER, CAST(PS.PACKAGE_NAME AS VARCHAR2(128)) AS NAME, CAST(CASE PS.TYPE WHEN 1 THEN 'PACKAGE' WHEN 2 THEN 'PACKAGE BODY' END AS VARCHAR2(12)) AS TYPE, CAST(1 AS NUMBER) AS LINE, TO_CLOB(PS.SOURCE) AS TEXT, PS.TENANT_ID AS ORIGIN_CON_ID FROM SYS.ALL_VIRTUAL_PACKAGE_SYS_AGENT PS UNION ALL SELECT CAST('SYS' AS VARCHAR2(128)) AS OWNER, CAST(RS.ROUTINE_NAME AS VARCHAR2(128)) AS NAME, CAST(CASE RS.ROUTINE_TYPE WHEN 1 THEN 'PROCEDURE' WHEN 2 THEN 'FUNCTION' WHEN 3 THEN 'PACKAGE' END AS VARCHAR2(12)) AS TYPE, CAST(1 AS NUMBER) AS LINE, TO_CLOB(RS.ROUTINE_BODY) AS TEXT, RS.TENANT_ID AS ORIGIN_CON_ID FROM SYS.ALL_VIRTUAL_ROUTINE_SYS_AGENT RS WHERE RS.ROUTINE_TYPE = 1 OR RS.ROUTINE_TYPE = 2 UNION ALL SELECT CAST('SYS' AS VARCHAR2(128)) AS OWNER, CAST(TS.TRIGGER_NAME AS VARCHAR2(128)) AS NAME, CAST('TRIGGER' AS VARCHAR2(12)) AS TYPE, CAST(1 AS NUMBER) AS LINE, TO_CLOB(TS.TRIGGER_BODY) AS TEXT, TS.TENANT_ID AS ORIGIN_CON_ID FROM SYS.ALL_VIRTUAL_TENANT_TRIGGER_SYS_AGENT TS UNION ALL SELECT CAST(D.DATABASE_NAME AS VARCHAR2(128)) AS OWNER, CAST(TY.object_name AS VARCHAR2(128)) AS NAME, CAST(CASE TY.TYPE WHEN 1 THEN 'TYPE' WHEN 2 THEN 'TYPE BODY' END AS VARCHAR2(12)) AS TYPE, CAST(1 AS NUMBER) AS LINE, TO_CLOB(TY.SOURCE) AS TEXT, TY.TENANT_ID AS ORIGIN_CON_ID FROM (SELECT * FROM SYS.ALL_VIRTUAL_TENANT_OBJECT_TYPE_REAL_AGENT WHERE TENANT_ID = EFFECTIVE_TENANT_ID()) TY LEFT JOIN SYS.ALL_VIRTUAL_DATABASE_REAL_AGENT D ON TY.DATABASE_ID = D.DATABASE_ID AND D.TENANT_ID = EFFECTIVE_TENANT_ID() WHERE D.IN_RECYCLEBIN = 0 )__"))) { LOG_ERROR("fail to set view_definition", K(ret)); } } @@ -460,7 +460,7 @@ int ObInnerTableSchema::all_source_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 CAST(D.DATABASE_NAME AS VARCHAR2(128)) AS OWNER, CAST(P.PACKAGE_NAME AS VARCHAR2(128)) AS NAME, CAST(CASE P.TYPE WHEN 1 THEN 'PACKAGE' WHEN 2 THEN 'PACKAGE BODY' END AS VARCHAR2(12)) AS TYPE, CAST(1 AS NUMBER) AS LINE, TO_CLOB(P.SOURCE) AS TEXT, P.TENANT_ID AS ORIGIN_CON_ID FROM (SELECT * FROM SYS.ALL_VIRTUAL_PACKAGE_REAL_AGENT WHERE TENANT_ID = EFFECTIVE_TENANT_ID()) P LEFT JOIN SYS.ALL_VIRTUAL_DATABASE_REAL_AGENT D ON P.DATABASE_ID = D.DATABASE_ID AND D.TENANT_ID = EFFECTIVE_TENANT_ID() WHERE D.IN_RECYCLEBIN = 0 AND (P.DATABASE_ID = USERENV('SCHEMAID') OR USER_CAN_ACCESS_OBJ(12, P.PACKAGE_ID, P.DATABASE_ID) = 1) UNION ALL SELECT CAST(D.DATABASE_NAME AS VARCHAR2(128)) AS OWNER, CAST(R.ROUTINE_NAME AS VARCHAR2(128)) AS NAME, CAST(CASE R.ROUTINE_TYPE WHEN 1 THEN 'PROCEDURE' WHEN 2 THEN 'FUNCTION' END AS VARCHAR2(12)) AS TYPE, CAST(1 AS NUMBER) AS LINE, TO_CLOB(R.ROUTINE_BODY) AS TEXT, R.TENANT_ID AS ORIGIN_CON_ID FROM (SELECT * FROM SYS.ALL_VIRTUAL_ROUTINE_REAL_AGENT WHERE TENANT_ID = EFFECTIVE_TENANT_ID()) R LEFT JOIN SYS.ALL_VIRTUAL_DATABASE_REAL_AGENT D ON R.DATABASE_ID = D.DATABASE_ID AND D.TENANT_ID = EFFECTIVE_TENANT_ID() WHERE D.IN_RECYCLEBIN = 0 AND R.PACKAGE_ID = -1 AND (R.DATABASE_ID = USERENV('SCHEMAID') OR USER_CAN_ACCESS_OBJ(12, R.ROUTINE_ID, R.DATABASE_ID) = 1) UNION ALL SELECT CAST(D.DATABASE_NAME AS VARCHAR2(128)) AS OWNER, CAST(T.TRIGGER_NAME AS VARCHAR2(128)) AS NAME, CAST('TRIGGER' AS VARCHAR2(12)) AS TYPE, CAST(1 AS NUMBER) AS LINE, TO_CLOB(T.TRIGGER_BODY) AS TEXT, T.TENANT_ID AS ORIGIN_CON_ID FROM (SELECT * FROM SYS.ALL_VIRTUAL_TENANT_TRIGGER_REAL_AGENT WHERE TENANT_ID = EFFECTIVE_TENANT_ID())T LEFT JOIN SYS.ALL_VIRTUAL_DATABASE_REAL_AGENT D ON T.DATABASE_ID = D.DATABASE_ID AND D.TENANT_ID = EFFECTIVE_TENANT_ID() WHERE D.IN_RECYCLEBIN = 0 AND (T.DATABASE_ID = USERENV('SCHEMAID') OR USER_CAN_ACCESS_OBJ(12, T.TRIGGER_ID, T.DATABASE_ID) = 1) UNION ALL SELECT CAST('SYS' AS VARCHAR2(128)) AS OWNER, CAST(PS.PACKAGE_NAME AS VARCHAR2(128)) AS NAME, CAST(CASE PS.TYPE WHEN 1 THEN 'PACKAGE' WHEN 2 THEN 'PACKAGE BODY' END AS VARCHAR2(12)) AS TYPE, CAST(1 AS NUMBER) AS LINE, TO_CLOB(PS.SOURCE) AS TEXT, PS.TENANT_ID AS ORIGIN_CON_ID FROM SYS.ALL_VIRTUAL_PACKAGE_SYS_AGENT PS UNION ALL SELECT CAST('SYS' AS VARCHAR2(128)) AS OWNER, CAST(RS.ROUTINE_NAME AS VARCHAR2(128)) AS NAME, CAST(CASE RS.ROUTINE_TYPE WHEN 1 THEN 'PROCEDURE' WHEN 2 THEN 'FUNCTION' WHEN 3 THEN 'PACKAGE' END AS VARCHAR2(12)) AS TYPE, CAST(1 AS NUMBER) AS LINE, TO_CLOB(RS.ROUTINE_BODY) AS TEXT, RS.TENANT_ID AS ORIGIN_CON_ID FROM SYS.ALL_VIRTUAL_ROUTINE_SYS_AGENT RS WHERE RS.ROUTINE_TYPE = 1 OR RS.ROUTINE_TYPE = 2 UNION ALL SELECT CAST('SYS' AS VARCHAR2(128)) AS OWNER, CAST(TS.TRIGGER_NAME AS VARCHAR2(128)) AS NAME, CAST('TRIGGER' AS VARCHAR2(12)) AS TYPE, CAST(1 AS NUMBER) AS LINE, TO_CLOB(TS.TRIGGER_BODY) AS TEXT, TS.TENANT_ID AS ORIGIN_CON_ID FROM SYS.ALL_VIRTUAL_TENANT_TRIGGER_SYS_AGENT TS )__"))) { + if (OB_FAIL(table_schema.set_view_definition(R"__( SELECT CAST(D.DATABASE_NAME AS VARCHAR2(128)) AS OWNER, CAST(P.PACKAGE_NAME AS VARCHAR2(128)) AS NAME, CAST(CASE P.TYPE WHEN 1 THEN 'PACKAGE' WHEN 2 THEN 'PACKAGE BODY' END AS VARCHAR2(12)) AS TYPE, CAST(1 AS NUMBER) AS LINE, TO_CLOB(P.SOURCE) AS TEXT, P.TENANT_ID AS ORIGIN_CON_ID FROM (SELECT * FROM SYS.ALL_VIRTUAL_PACKAGE_REAL_AGENT WHERE TENANT_ID = EFFECTIVE_TENANT_ID()) P LEFT JOIN SYS.ALL_VIRTUAL_DATABASE_REAL_AGENT D ON P.DATABASE_ID = D.DATABASE_ID AND D.TENANT_ID = EFFECTIVE_TENANT_ID() WHERE D.IN_RECYCLEBIN = 0 AND (P.DATABASE_ID = USERENV('SCHEMAID') OR USER_CAN_ACCESS_OBJ(12, P.PACKAGE_ID, P.DATABASE_ID) = 1) UNION ALL SELECT CAST(D.DATABASE_NAME AS VARCHAR2(128)) AS OWNER, CAST(R.ROUTINE_NAME AS VARCHAR2(128)) AS NAME, CAST(CASE R.ROUTINE_TYPE WHEN 1 THEN 'PROCEDURE' WHEN 2 THEN 'FUNCTION' END AS VARCHAR2(12)) AS TYPE, CAST(1 AS NUMBER) AS LINE, TO_CLOB(R.ROUTINE_BODY) AS TEXT, R.TENANT_ID AS ORIGIN_CON_ID FROM (SELECT * FROM SYS.ALL_VIRTUAL_ROUTINE_REAL_AGENT WHERE TENANT_ID = EFFECTIVE_TENANT_ID()) R LEFT JOIN SYS.ALL_VIRTUAL_DATABASE_REAL_AGENT D ON R.DATABASE_ID = D.DATABASE_ID AND D.TENANT_ID = EFFECTIVE_TENANT_ID() WHERE D.IN_RECYCLEBIN = 0 AND R.PACKAGE_ID = -1 AND (R.DATABASE_ID = USERENV('SCHEMAID') OR USER_CAN_ACCESS_OBJ(12, R.ROUTINE_ID, R.DATABASE_ID) = 1) UNION ALL SELECT CAST(D.DATABASE_NAME AS VARCHAR2(128)) AS OWNER, CAST(T.TRIGGER_NAME AS VARCHAR2(128)) AS NAME, CAST('TRIGGER' AS VARCHAR2(12)) AS TYPE, CAST(1 AS NUMBER) AS LINE, TO_CLOB(T.TRIGGER_BODY) AS TEXT, T.TENANT_ID AS ORIGIN_CON_ID FROM (SELECT * FROM SYS.ALL_VIRTUAL_TENANT_TRIGGER_REAL_AGENT WHERE TENANT_ID = EFFECTIVE_TENANT_ID())T LEFT JOIN SYS.ALL_VIRTUAL_DATABASE_REAL_AGENT D ON T.DATABASE_ID = D.DATABASE_ID AND D.TENANT_ID = EFFECTIVE_TENANT_ID() WHERE D.IN_RECYCLEBIN = 0 AND (T.DATABASE_ID = USERENV('SCHEMAID') OR USER_CAN_ACCESS_OBJ(12, T.TRIGGER_ID, T.DATABASE_ID) = 1) UNION ALL SELECT CAST('SYS' AS VARCHAR2(128)) AS OWNER, CAST(PS.PACKAGE_NAME AS VARCHAR2(128)) AS NAME, CAST(CASE PS.TYPE WHEN 1 THEN 'PACKAGE' WHEN 2 THEN 'PACKAGE BODY' END AS VARCHAR2(12)) AS TYPE, CAST(1 AS NUMBER) AS LINE, TO_CLOB(PS.SOURCE) AS TEXT, PS.TENANT_ID AS ORIGIN_CON_ID FROM SYS.ALL_VIRTUAL_PACKAGE_SYS_AGENT PS UNION ALL SELECT CAST('SYS' AS VARCHAR2(128)) AS OWNER, CAST(RS.ROUTINE_NAME AS VARCHAR2(128)) AS NAME, CAST(CASE RS.ROUTINE_TYPE WHEN 1 THEN 'PROCEDURE' WHEN 2 THEN 'FUNCTION' WHEN 3 THEN 'PACKAGE' END AS VARCHAR2(12)) AS TYPE, CAST(1 AS NUMBER) AS LINE, TO_CLOB(RS.ROUTINE_BODY) AS TEXT, RS.TENANT_ID AS ORIGIN_CON_ID FROM SYS.ALL_VIRTUAL_ROUTINE_SYS_AGENT RS WHERE RS.ROUTINE_TYPE = 1 OR RS.ROUTINE_TYPE = 2 UNION ALL SELECT CAST('SYS' AS VARCHAR2(128)) AS OWNER, CAST(TS.TRIGGER_NAME AS VARCHAR2(128)) AS NAME, CAST('TRIGGER' AS VARCHAR2(12)) AS TYPE, CAST(1 AS NUMBER) AS LINE, TO_CLOB(TS.TRIGGER_BODY) AS TEXT, TS.TENANT_ID AS ORIGIN_CON_ID FROM SYS.ALL_VIRTUAL_TENANT_TRIGGER_SYS_AGENT TS UNION ALL SELECT CAST(D.DATABASE_NAME AS VARCHAR2(128)) AS OWNER, CAST(TY.object_name AS VARCHAR2(128)) AS NAME, CAST(CASE TY.TYPE WHEN 1 THEN 'TYPE' WHEN 2 THEN 'TYPE BODY' END AS VARCHAR2(12)) AS TYPE, CAST(1 AS NUMBER) AS LINE, TO_CLOB(TY.SOURCE) AS TEXT, TY.TENANT_ID AS ORIGIN_CON_ID FROM (SELECT * FROM SYS.ALL_VIRTUAL_TENANT_OBJECT_TYPE_REAL_AGENT WHERE TENANT_ID = EFFECTIVE_TENANT_ID()) TY LEFT JOIN SYS.ALL_VIRTUAL_DATABASE_REAL_AGENT D ON TY.DATABASE_ID = D.DATABASE_ID AND D.TENANT_ID = EFFECTIVE_TENANT_ID() WHERE D.IN_RECYCLEBIN = 0 AND (TY.DATABASE_ID = USERENV('SCHEMAID') OR USER_CAN_ACCESS_OBJ(12, TY.OBJECT_TYPE_ID, TY.DATABASE_ID) = 1) )__"))) { LOG_ERROR("fail to set view_definition", K(ret)); } } @@ -610,7 +610,7 @@ int ObInnerTableSchema::user_source_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 CAST(P.PACKAGE_NAME AS VARCHAR2(128)) AS NAME, CAST(CASE P.TYPE WHEN 1 THEN 'PACKAGE' WHEN 2 THEN 'PACKAGE BODY' END AS VARCHAR2(12)) AS TYPE, CAST(1 AS NUMBER) AS LINE, TO_CLOB(P.SOURCE) AS TEXT, P.TENANT_ID AS ORIGIN_CON_ID FROM (SELECT * FROM SYS.ALL_VIRTUAL_PACKAGE_REAL_AGENT WHERE TENANT_ID = EFFECTIVE_TENANT_ID()) P LEFT JOIN SYS.ALL_VIRTUAL_DATABASE_REAL_AGENT D ON P.DATABASE_ID = D.DATABASE_ID AND D.TENANT_ID = EFFECTIVE_TENANT_ID() WHERE D.IN_RECYCLEBIN = 0 UNION ALL SELECT CAST(R.ROUTINE_NAME AS VARCHAR2(128)) AS NAME, CAST(CASE R.ROUTINE_TYPE WHEN 1 THEN 'PROCEDURE' WHEN 2 THEN 'FUNCTION' WHEN 3 THEN 'PACKAGE' END AS VARCHAR2(12)) AS TYPE, CAST(1 AS NUMBER) AS LINE, TO_CLOB(R.ROUTINE_BODY) AS TEXT, R.TENANT_ID AS ORIGIN_CON_ID FROM (SELECT * FROM SYS.ALL_VIRTUAL_ROUTINE_REAL_AGENT WHERE TENANT_ID = EFFECTIVE_TENANT_ID()) R LEFT JOIN SYS.ALL_VIRTUAL_DATABASE_REAL_AGENT D ON R.DATABASE_ID = D.DATABASE_ID AND D.TENANT_ID = EFFECTIVE_TENANT_ID() WHERE D.IN_RECYCLEBIN = 0 AND R.PACKAGE_ID = -1 AND R.DATABASE_ID = USERENV('SCHEMAID') UNION ALL SELECT CAST(T.TRIGGER_NAME AS VARCHAR2(128)) AS NAME, CAST('TRIGGER' AS VARCHAR2(12)) AS TYPE, CAST(1 AS NUMBER) AS LINE, TO_CLOB(T.TRIGGER_BODY) AS TEXT, T.TENANT_ID AS ORIGIN_CON_ID FROM (SELECT * FROM SYS.ALL_VIRTUAL_TENANT_TRIGGER_REAL_AGENT WHERE TENANT_ID = EFFECTIVE_TENANT_ID()) T LEFT JOIN SYS.ALL_VIRTUAL_DATABASE_REAL_AGENT D ON T.DATABASE_ID = D.DATABASE_ID AND D.TENANT_ID = EFFECTIVE_TENANT_ID() WHERE D.IN_RECYCLEBIN = 0 AND T.DATABASE_ID = USERENV('SCHEMAID') )__"))) { + if (OB_FAIL(table_schema.set_view_definition(R"__( SELECT CAST(P.PACKAGE_NAME AS VARCHAR2(128)) AS NAME, CAST(CASE P.TYPE WHEN 1 THEN 'PACKAGE' WHEN 2 THEN 'PACKAGE BODY' END AS VARCHAR2(12)) AS TYPE, CAST(1 AS NUMBER) AS LINE, TO_CLOB(P.SOURCE) AS TEXT, P.TENANT_ID AS ORIGIN_CON_ID FROM (SELECT * FROM SYS.ALL_VIRTUAL_PACKAGE_REAL_AGENT WHERE TENANT_ID = EFFECTIVE_TENANT_ID()) P LEFT JOIN SYS.ALL_VIRTUAL_DATABASE_REAL_AGENT D ON P.DATABASE_ID = D.DATABASE_ID AND D.TENANT_ID = EFFECTIVE_TENANT_ID() WHERE D.IN_RECYCLEBIN = 0 UNION ALL SELECT CAST(R.ROUTINE_NAME AS VARCHAR2(128)) AS NAME, CAST(CASE R.ROUTINE_TYPE WHEN 1 THEN 'PROCEDURE' WHEN 2 THEN 'FUNCTION' WHEN 3 THEN 'PACKAGE' END AS VARCHAR2(12)) AS TYPE, CAST(1 AS NUMBER) AS LINE, TO_CLOB(R.ROUTINE_BODY) AS TEXT, R.TENANT_ID AS ORIGIN_CON_ID FROM (SELECT * FROM SYS.ALL_VIRTUAL_ROUTINE_REAL_AGENT WHERE TENANT_ID = EFFECTIVE_TENANT_ID()) R LEFT JOIN SYS.ALL_VIRTUAL_DATABASE_REAL_AGENT D ON R.DATABASE_ID = D.DATABASE_ID AND D.TENANT_ID = EFFECTIVE_TENANT_ID() WHERE D.IN_RECYCLEBIN = 0 AND R.PACKAGE_ID = -1 AND R.DATABASE_ID = USERENV('SCHEMAID') UNION ALL SELECT CAST(T.TRIGGER_NAME AS VARCHAR2(128)) AS NAME, CAST('TRIGGER' AS VARCHAR2(12)) AS TYPE, CAST(1 AS NUMBER) AS LINE, TO_CLOB(T.TRIGGER_BODY) AS TEXT, T.TENANT_ID AS ORIGIN_CON_ID FROM (SELECT * FROM SYS.ALL_VIRTUAL_TENANT_TRIGGER_REAL_AGENT WHERE TENANT_ID = EFFECTIVE_TENANT_ID()) T LEFT JOIN SYS.ALL_VIRTUAL_DATABASE_REAL_AGENT D ON T.DATABASE_ID = D.DATABASE_ID AND D.TENANT_ID = EFFECTIVE_TENANT_ID() WHERE D.IN_RECYCLEBIN = 0 AND T.DATABASE_ID = USERENV('SCHEMAID') UNION ALL SELECT CAST(TY.object_name AS VARCHAR2(128)) AS NAME, CAST(CASE TY.TYPE WHEN 1 THEN 'TYPE' WHEN 2 THEN 'TYPE BODY' END AS VARCHAR2(12)) AS TYPE, CAST(1 AS NUMBER) AS LINE, TO_CLOB(TY.SOURCE) AS TEXT, TY.TENANT_ID AS ORIGIN_CON_ID FROM (SELECT * FROM SYS.ALL_VIRTUAL_TENANT_OBJECT_TYPE_REAL_AGENT WHERE TENANT_ID = EFFECTIVE_TENANT_ID()) TY LEFT JOIN SYS.ALL_VIRTUAL_DATABASE_REAL_AGENT D ON TY.DATABASE_ID = D.DATABASE_ID AND D.TENANT_ID = EFFECTIVE_TENANT_ID() WHERE D.IN_RECYCLEBIN = 0 AND TY.DATABASE_ID = USERENV('SCHEMAID') )__"))) { LOG_ERROR("fail to set view_definition", K(ret)); } } diff --git a/src/share/inner_table/ob_inner_table_schema_def.py b/src/share/inner_table/ob_inner_table_schema_def.py index 9a76dc06be..e1bebf40fe 100644 --- a/src/share/inner_table/ob_inner_table_schema_def.py +++ b/src/share/inner_table/ob_inner_table_schema_def.py @@ -34761,6 +34761,21 @@ def_table_schema( TS.TENANT_ID AS ORIGIN_CON_ID FROM SYS.ALL_VIRTUAL_TENANT_TRIGGER_SYS_AGENT TS + UNION ALL + SELECT + CAST(D.DATABASE_NAME AS VARCHAR2(128)) AS OWNER, + CAST(TY.object_name AS VARCHAR2(128)) AS NAME, + CAST(CASE TY.TYPE WHEN 1 THEN 'TYPE' WHEN 2 THEN 'TYPE BODY' END AS VARCHAR2(12)) AS TYPE, + CAST(1 AS NUMBER) AS LINE, + TO_CLOB(TY.SOURCE) AS TEXT, + TY.TENANT_ID AS ORIGIN_CON_ID + FROM + (SELECT * FROM SYS.ALL_VIRTUAL_TENANT_OBJECT_TYPE_REAL_AGENT + WHERE TENANT_ID = EFFECTIVE_TENANT_ID()) TY + LEFT JOIN SYS.ALL_VIRTUAL_DATABASE_REAL_AGENT D ON TY.DATABASE_ID = D.DATABASE_ID + AND D.TENANT_ID = EFFECTIVE_TENANT_ID() + WHERE + D.IN_RECYCLEBIN = 0 """.replace("\n", " ") ) @@ -35066,6 +35081,23 @@ def_table_schema( TS.TENANT_ID AS ORIGIN_CON_ID FROM SYS.ALL_VIRTUAL_TENANT_TRIGGER_SYS_AGENT TS + UNION ALL + SELECT + CAST(D.DATABASE_NAME AS VARCHAR2(128)) AS OWNER, + CAST(TY.object_name AS VARCHAR2(128)) AS NAME, + CAST(CASE TY.TYPE WHEN 1 THEN 'TYPE' WHEN 2 THEN 'TYPE BODY' END AS VARCHAR2(12)) AS TYPE, + CAST(1 AS NUMBER) AS LINE, + TO_CLOB(TY.SOURCE) AS TEXT, + TY.TENANT_ID AS ORIGIN_CON_ID + FROM + (SELECT * FROM SYS.ALL_VIRTUAL_TENANT_OBJECT_TYPE_REAL_AGENT + WHERE TENANT_ID = EFFECTIVE_TENANT_ID()) TY + LEFT JOIN SYS.ALL_VIRTUAL_DATABASE_REAL_AGENT D ON TY.DATABASE_ID = D.DATABASE_ID + AND D.TENANT_ID = EFFECTIVE_TENANT_ID() + WHERE + D.IN_RECYCLEBIN = 0 + AND (TY.DATABASE_ID = USERENV('SCHEMAID') + OR USER_CAN_ACCESS_OBJ(12, TY.OBJECT_TYPE_ID, TY.DATABASE_ID) = 1) """.replace("\n", " ") ) @@ -35247,6 +35279,21 @@ def_table_schema( WHERE D.IN_RECYCLEBIN = 0 AND T.DATABASE_ID = USERENV('SCHEMAID') + UNION ALL + SELECT + CAST(TY.object_name AS VARCHAR2(128)) AS NAME, + CAST(CASE TY.TYPE WHEN 1 THEN 'TYPE' WHEN 2 THEN 'TYPE BODY' END AS VARCHAR2(12)) AS TYPE, + CAST(1 AS NUMBER) AS LINE, + TO_CLOB(TY.SOURCE) AS TEXT, + TY.TENANT_ID AS ORIGIN_CON_ID + FROM + (SELECT * FROM SYS.ALL_VIRTUAL_TENANT_OBJECT_TYPE_REAL_AGENT + WHERE TENANT_ID = EFFECTIVE_TENANT_ID()) TY + LEFT JOIN SYS.ALL_VIRTUAL_DATABASE_REAL_AGENT D ON TY.DATABASE_ID = D.DATABASE_ID + AND D.TENANT_ID = EFFECTIVE_TENANT_ID() + WHERE + D.IN_RECYCLEBIN = 0 + AND TY.DATABASE_ID = USERENV('SCHEMAID') """.replace("\n", " ") )