[FEAT MERGE] materialized view
Co-authored-by: suz-yang <suz.yang@foxmail.com> Co-authored-by: leftgeek <1094669802@qq.com> Co-authored-by: chimyue <chimyue@gmail.com>
This commit is contained in:
@ -1860,7 +1860,7 @@ int ObInnerTableSchema::all_all_tables_ora_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(DB.DATABASE_NAME AS VARCHAR2(128)) AS OWNER, CAST(T.TABLE_NAME AS VARCHAR2(128)) AS TABLE_NAME, CAST(NULL AS VARCHAR2(30)) AS TABLESPACE_NAME, CAST(NULL AS VARCHAR2(128)) AS CLUSTER_NAME, CAST(NULL AS VARCHAR2(128)) AS IOT_NAME, CAST('VALID' AS VARCHAR2(8)) AS STATUS, CAST(T."PCTFREE" AS NUMBER) AS PCT_FREE, CAST(NULL AS NUMBER) AS PCT_USED, CAST(NULL AS NUMBER) AS INI_TRANS, CAST(NULL AS NUMBER) AS MAX_TRANS, CAST(NULL AS NUMBER) AS INITIAL_EXTENT, CAST(NULL AS NUMBER) AS NEXT_EXTENT, CAST(NULL AS NUMBER) AS MIN_EXTENTS, CAST(NULL AS NUMBER) AS MAX_EXTENTS, CAST(NULL AS NUMBER) AS PCT_INCREASE, CAST(NULL AS NUMBER) AS FREELISTS, CAST(NULL AS NUMBER) AS FREELIST_GROUPS, CAST(NULL AS VARCHAR2(3)) AS LOGGING, CAST(NULL AS VARCHAR2(1)) AS BACKED_UP, CAST(INFO.ROW_COUNT AS NUMBER) AS NUM_ROWS, CAST(NULL AS NUMBER) AS BLOCKS, CAST(NULL AS NUMBER) AS EMPTY_BLOCKS, CAST(NULL AS NUMBER) AS AVG_SPACE, CAST(NULL AS NUMBER) AS CHAIN_CNT, CAST(NULL AS NUMBER) AS AVG_ROW_LEN, CAST(NULL AS NUMBER) AS AVG_SPACE_FREELIST_BLOCKS, CAST(NULL AS NUMBER) AS NUM_FREELIST_BLOCKS, CAST(NULL AS VARCHAR2(10)) AS DEGREE, CAST(NULL AS VARCHAR2(10)) AS INSTANCES, CAST(NULL AS VARCHAR2(5)) AS CACHE, CAST(NULL AS VARCHAR2(8)) AS TABLE_LOCK, CAST(NULL AS NUMBER) AS SAMPLE_SIZE, CAST(NULL AS DATE) AS LAST_ANALYZED, CAST( CASE WHEN T.PART_LEVEL = 0 THEN 'NO' ELSE 'YES' END AS VARCHAR2(3)) AS PARTITIONED, CAST(NULL AS VARCHAR2(12)) AS IOT_TYPE, CAST(NULL AS VARCHAR2(16)) AS OBJECT_ID_TYPE, CAST(NULL AS VARCHAR2(128)) AS TABLE_TYPE_OWNER, CAST(NULL AS VARCHAR2(128)) AS TABLE_TYPE, CAST(DECODE (T.TABLE_TYPE, 8, 'YES', 9, 'YES', 'NO') AS VARCHAR2(1)) AS TEMPORARY, CAST(NULL AS VARCHAR2(1)) AS SECONDARY, CAST(NULL AS VARCHAR2(3)) AS NESTED, CAST(NULL AS VARCHAR2(7)) AS BUFFER_POOL, CAST(NULL AS VARCHAR2(7)) AS FLASH_CACHE, CAST(NULL AS VARCHAR2(7)) AS CELL_FLASH_CACHE, CAST(NULL AS VARCHAR2(8)) AS ROW_MOVEMENT, CAST(NULL AS VARCHAR2(3)) AS GLOBAL_STATS, CAST(NULL AS VARCHAR2(3)) AS USER_STATS, CAST( DECODE (T.TABLE_TYPE, 8, 'SYS$SESSION', 9, 'SYS$TRANSACTION', NULL) AS VARCHAR2(15)) AS DURATION, CAST(NULL AS VARCHAR2(8)) AS SKIP_CORRUPT, CAST(NULL AS VARCHAR2(3)) AS MONITORING, CAST(NULL AS VARCHAR2(30)) AS CLUSTER_OWNER, CAST(NULL AS VARCHAR2(8)) AS DEPENDENCIES, CAST(NULL AS VARCHAR2(8)) AS COMPRESSION, CAST(NULL AS VARCHAR2(30)) AS COMPRESS_FOR, CAST(CASE WHEN DB.IN_RECYCLEBIN = 1 THEN 'YES' ELSE 'NO' END AS VARCHAR2(3)) AS DROPPED, CAST(NULL AS VARCHAR2(3)) AS SEGMENT_CREATED, CAST(NULL AS VARCHAR2(8)) AS INMEMORY, CAST(NULL AS VARCHAR2(8)) AS INMEMORY_PRIORITY, CAST(NULL AS VARCHAR2(15)) AS INMEMORY_DISTRIBUTE, CAST(NULL AS VARCHAR2(17)) AS INMEMORY_COMPRESSION, CAST(NULL AS VARCHAR2(13)) AS INMEMORY_DUPLICATE, CAST(DECODE (T.TABLE_TYPE, 14, 'YES', 'NO') AS VARCHAR2(3)) AS EXTERNAL, CAST(NULL AS VARCHAR2(3)) AS HYBRID, CAST(NULL AS VARCHAR2(24)) AS CELLMEMORY, CAST(NULL AS VARCHAR2(12)) AS INMEMORY_SERVICE, CAST(NULL AS VARCHAR2(1000)) AS INMEMORY_SERVICE_NAME, CAST(NULL AS VARCHAR2(8)) AS MEMOPTIMIZE_READ, CAST(NULL AS VARCHAR2(8)) AS MEMOPTIMIZE_WRITE, CAST(NULL AS VARCHAR2(3)) AS HAS_SENSITIVE_COLUMN, CAST(NULL AS VARCHAR2(8)) AS LOGICAL_REPLICATION FROM ( SELECT TENANT_ID, TABLE_ID, ROW_CNT AS ROW_COUNT FROM SYS.ALL_VIRTUAL_TABLE_STAT_REAL_AGENT TS WHERE TS.TENANT_ID = EFFECTIVE_TENANT_ID() AND PARTITION_ID = -1 OR PARTITION_ID = TABLE_ID ) INFO RIGHT JOIN (SELECT TENANT_ID, DATABASE_ID, TABLE_ID, TABLE_NAME, TABLE_TYPE, "PCTFREE", PART_LEVEL FROM SYS.ALL_VIRTUAL_CORE_ALL_TABLE UNION ALL SELECT TENANT_ID, DATABASE_ID, TABLE_ID, TABLE_NAME, TABLE_TYPE, "PCTFREE", PART_LEVEL FROM SYS.ALL_VIRTUAL_TABLE_REAL_AGENT) T ON T.TENANT_ID = INFO.TENANT_ID AND T.TABLE_ID = INFO.TABLE_ID JOIN SYS.ALL_VIRTUAL_DATABASE_REAL_AGENT DB ON T.TENANT_ID = DB.TENANT_ID AND T.DATABASE_ID = DB.DATABASE_ID WHERE T.TENANT_ID = EFFECTIVE_TENANT_ID() AND T.TABLE_TYPE IN (0, 3, 8, 9, 14) AND DB.DATABASE_NAME != '__recyclebin' AND (T.DATABASE_ID = USERENV('SCHEMAID') OR USER_CAN_ACCESS_OBJ(1, T.TABLE_ID, T.DATABASE_ID) = 1) )__"))) {
|
||||
if (OB_FAIL(table_schema.set_view_definition(R"__( SELECT CAST(DB.DATABASE_NAME AS VARCHAR2(128)) AS OWNER, CAST(T.TABLE_NAME AS VARCHAR2(128)) AS TABLE_NAME, CAST(NULL AS VARCHAR2(30)) AS TABLESPACE_NAME, CAST(NULL AS VARCHAR2(128)) AS CLUSTER_NAME, CAST(NULL AS VARCHAR2(128)) AS IOT_NAME, CAST('VALID' AS VARCHAR2(8)) AS STATUS, CAST(T."PCTFREE" AS NUMBER) AS PCT_FREE, CAST(NULL AS NUMBER) AS PCT_USED, CAST(NULL AS NUMBER) AS INI_TRANS, CAST(NULL AS NUMBER) AS MAX_TRANS, CAST(NULL AS NUMBER) AS INITIAL_EXTENT, CAST(NULL AS NUMBER) AS NEXT_EXTENT, CAST(NULL AS NUMBER) AS MIN_EXTENTS, CAST(NULL AS NUMBER) AS MAX_EXTENTS, CAST(NULL AS NUMBER) AS PCT_INCREASE, CAST(NULL AS NUMBER) AS FREELISTS, CAST(NULL AS NUMBER) AS FREELIST_GROUPS, CAST(NULL AS VARCHAR2(3)) AS LOGGING, CAST(NULL AS VARCHAR2(1)) AS BACKED_UP, CAST(INFO.ROW_COUNT AS NUMBER) AS NUM_ROWS, CAST(NULL AS NUMBER) AS BLOCKS, CAST(NULL AS NUMBER) AS EMPTY_BLOCKS, CAST(NULL AS NUMBER) AS AVG_SPACE, CAST(NULL AS NUMBER) AS CHAIN_CNT, CAST(NULL AS NUMBER) AS AVG_ROW_LEN, CAST(NULL AS NUMBER) AS AVG_SPACE_FREELIST_BLOCKS, CAST(NULL AS NUMBER) AS NUM_FREELIST_BLOCKS, CAST(NULL AS VARCHAR2(10)) AS DEGREE, CAST(NULL AS VARCHAR2(10)) AS INSTANCES, CAST(NULL AS VARCHAR2(5)) AS CACHE, CAST(NULL AS VARCHAR2(8)) AS TABLE_LOCK, CAST(NULL AS NUMBER) AS SAMPLE_SIZE, CAST(NULL AS DATE) AS LAST_ANALYZED, CAST( CASE WHEN T.PART_LEVEL = 0 THEN 'NO' ELSE 'YES' END AS VARCHAR2(3)) AS PARTITIONED, CAST(NULL AS VARCHAR2(12)) AS IOT_TYPE, CAST(NULL AS VARCHAR2(16)) AS OBJECT_ID_TYPE, CAST(NULL AS VARCHAR2(128)) AS TABLE_TYPE_OWNER, CAST(NULL AS VARCHAR2(128)) AS TABLE_TYPE, CAST(DECODE (T.TABLE_TYPE, 8, 'YES', 9, 'YES', 'NO') AS VARCHAR2(1)) AS TEMPORARY, CAST(NULL AS VARCHAR2(1)) AS SECONDARY, CAST(NULL AS VARCHAR2(3)) AS NESTED, CAST(NULL AS VARCHAR2(7)) AS BUFFER_POOL, CAST(NULL AS VARCHAR2(7)) AS FLASH_CACHE, CAST(NULL AS VARCHAR2(7)) AS CELL_FLASH_CACHE, CAST(NULL AS VARCHAR2(8)) AS ROW_MOVEMENT, CAST(NULL AS VARCHAR2(3)) AS GLOBAL_STATS, CAST(NULL AS VARCHAR2(3)) AS USER_STATS, CAST( DECODE (T.TABLE_TYPE, 8, 'SYS$SESSION', 9, 'SYS$TRANSACTION', NULL) AS VARCHAR2(15)) AS DURATION, CAST(NULL AS VARCHAR2(8)) AS SKIP_CORRUPT, CAST(NULL AS VARCHAR2(3)) AS MONITORING, CAST(NULL AS VARCHAR2(30)) AS CLUSTER_OWNER, CAST(NULL AS VARCHAR2(8)) AS DEPENDENCIES, CAST(NULL AS VARCHAR2(8)) AS COMPRESSION, CAST(NULL AS VARCHAR2(30)) AS COMPRESS_FOR, CAST(CASE WHEN DB.IN_RECYCLEBIN = 1 THEN 'YES' ELSE 'NO' END AS VARCHAR2(3)) AS DROPPED, CAST(NULL AS VARCHAR2(3)) AS SEGMENT_CREATED, CAST(NULL AS VARCHAR2(8)) AS INMEMORY, CAST(NULL AS VARCHAR2(8)) AS INMEMORY_PRIORITY, CAST(NULL AS VARCHAR2(15)) AS INMEMORY_DISTRIBUTE, CAST(NULL AS VARCHAR2(17)) AS INMEMORY_COMPRESSION, CAST(NULL AS VARCHAR2(13)) AS INMEMORY_DUPLICATE, CAST(DECODE (T.TABLE_TYPE, 14, 'YES', 'NO') AS VARCHAR2(3)) AS EXTERNAL, CAST(NULL AS VARCHAR2(3)) AS HYBRID, CAST(NULL AS VARCHAR2(24)) AS CELLMEMORY, CAST(NULL AS VARCHAR2(12)) AS INMEMORY_SERVICE, CAST(NULL AS VARCHAR2(1000)) AS INMEMORY_SERVICE_NAME, CAST(NULL AS VARCHAR2(8)) AS MEMOPTIMIZE_READ, CAST(NULL AS VARCHAR2(8)) AS MEMOPTIMIZE_WRITE, CAST(NULL AS VARCHAR2(3)) AS HAS_SENSITIVE_COLUMN, CAST(NULL AS VARCHAR2(8)) AS LOGICAL_REPLICATION FROM ( SELECT TENANT_ID, TABLE_ID, ROW_CNT AS ROW_COUNT FROM SYS.ALL_VIRTUAL_TABLE_STAT_REAL_AGENT TS WHERE TS.TENANT_ID = EFFECTIVE_TENANT_ID() AND PARTITION_ID = -1 OR PARTITION_ID = TABLE_ID ) INFO RIGHT JOIN (SELECT TENANT_ID, DATABASE_ID, TABLE_ID, TABLE_NAME, TABLE_TYPE, "PCTFREE", PART_LEVEL FROM SYS.ALL_VIRTUAL_CORE_ALL_TABLE UNION ALL SELECT TENANT_ID, DATABASE_ID, TABLE_ID, TABLE_NAME, TABLE_TYPE, "PCTFREE", PART_LEVEL FROM SYS.ALL_VIRTUAL_TABLE_REAL_AGENT) T ON T.TENANT_ID = INFO.TENANT_ID AND T.TABLE_ID = INFO.TABLE_ID JOIN SYS.ALL_VIRTUAL_DATABASE_REAL_AGENT DB ON T.TENANT_ID = DB.TENANT_ID AND T.DATABASE_ID = DB.DATABASE_ID WHERE T.TENANT_ID = EFFECTIVE_TENANT_ID() AND T.TABLE_TYPE IN (0, 3, 8, 9, 14, 15) AND DB.DATABASE_NAME != '__recyclebin' AND (T.DATABASE_ID = USERENV('SCHEMAID') OR USER_CAN_ACCESS_OBJ(1, T.TABLE_ID, T.DATABASE_ID) = 1) )__"))) {
|
||||
LOG_ERROR("fail to set view_definition", K(ret));
|
||||
}
|
||||
}
|
||||
@ -1910,7 +1910,7 @@ int ObInnerTableSchema::dba_all_tables_ora_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(DB.DATABASE_NAME AS VARCHAR2(128)) AS OWNER, CAST(T.TABLE_NAME AS VARCHAR2(128)) AS TABLE_NAME, CAST(NULL AS VARCHAR2(30)) AS TABLESPACE_NAME, CAST(NULL AS VARCHAR2(128)) AS CLUSTER_NAME, CAST(NULL AS VARCHAR2(128)) AS IOT_NAME, CAST('VALID' AS VARCHAR2(8)) AS STATUS, CAST(T."PCTFREE" AS NUMBER) AS PCT_FREE, CAST(NULL AS NUMBER) AS PCT_USED, CAST(NULL AS NUMBER) AS INI_TRANS, CAST(NULL AS NUMBER) AS MAX_TRANS, CAST(NULL AS NUMBER) AS INITIAL_EXTENT, CAST(NULL AS NUMBER) AS NEXT_EXTENT, CAST(NULL AS NUMBER) AS MIN_EXTENTS, CAST(NULL AS NUMBER) AS MAX_EXTENTS, CAST(NULL AS NUMBER) AS PCT_INCREASE, CAST(NULL AS NUMBER) AS FREELISTS, CAST(NULL AS NUMBER) AS FREELIST_GROUPS, CAST(NULL AS VARCHAR2(3)) AS LOGGING, CAST(NULL AS VARCHAR2(1)) AS BACKED_UP, CAST(INFO.ROW_COUNT AS NUMBER) AS NUM_ROWS, CAST(NULL AS NUMBER) AS BLOCKS, CAST(NULL AS NUMBER) AS EMPTY_BLOCKS, CAST(NULL AS NUMBER) AS AVG_SPACE, CAST(NULL AS NUMBER) AS CHAIN_CNT, CAST(NULL AS NUMBER) AS AVG_ROW_LEN, CAST(NULL AS NUMBER) AS AVG_SPACE_FREELIST_BLOCKS, CAST(NULL AS NUMBER) AS NUM_FREELIST_BLOCKS, CAST(NULL AS VARCHAR2(10)) AS DEGREE, CAST(NULL AS VARCHAR2(10)) AS INSTANCES, CAST(NULL AS VARCHAR2(5)) AS CACHE, CAST(NULL AS VARCHAR2(8)) AS TABLE_LOCK, CAST(NULL AS NUMBER) AS SAMPLE_SIZE, CAST(NULL AS DATE) AS LAST_ANALYZED, CAST( CASE WHEN T.PART_LEVEL = 0 THEN 'NO' ELSE 'YES' END AS VARCHAR2(3)) AS PARTITIONED, CAST(NULL AS VARCHAR2(12)) AS IOT_TYPE, CAST(NULL AS VARCHAR2(16)) AS OBJECT_ID_TYPE, CAST(NULL AS VARCHAR2(128)) AS TABLE_TYPE_OWNER, CAST(NULL AS VARCHAR2(128)) AS TABLE_TYPE, CAST(DECODE (T.TABLE_TYPE, 8, 'YES', 9, 'YES', 'NO') AS VARCHAR2(1)) AS TEMPORARY, CAST(NULL AS VARCHAR2(1)) AS SECONDARY, CAST(NULL AS VARCHAR2(3)) AS NESTED, CAST(NULL AS VARCHAR2(7)) AS BUFFER_POOL, CAST(NULL AS VARCHAR2(7)) AS FLASH_CACHE, CAST(NULL AS VARCHAR2(7)) AS CELL_FLASH_CACHE, CAST(NULL AS VARCHAR2(8)) AS ROW_MOVEMENT, CAST(NULL AS VARCHAR2(3)) AS GLOBAL_STATS, CAST(NULL AS VARCHAR2(3)) AS USER_STATS, CAST( DECODE (T.TABLE_TYPE, 8, 'SYS$SESSION', 9, 'SYS$TRANSACTION', NULL) AS VARCHAR2(15)) AS DURATION, CAST(NULL AS VARCHAR2(8)) AS SKIP_CORRUPT, CAST(NULL AS VARCHAR2(3)) AS MONITORING, CAST(NULL AS VARCHAR2(30)) AS CLUSTER_OWNER, CAST(NULL AS VARCHAR2(8)) AS DEPENDENCIES, CAST(NULL AS VARCHAR2(8)) AS COMPRESSION, CAST(NULL AS VARCHAR2(30)) AS COMPRESS_FOR, CAST(CASE WHEN DB.IN_RECYCLEBIN = 1 THEN 'YES' ELSE 'NO' END AS VARCHAR2(3)) AS DROPPED, CAST(NULL AS VARCHAR2(3)) AS SEGMENT_CREATED, CAST(NULL AS VARCHAR2(8)) AS INMEMORY, CAST(NULL AS VARCHAR2(8)) AS INMEMORY_PRIORITY, CAST(NULL AS VARCHAR2(15)) AS INMEMORY_DISTRIBUTE, CAST(NULL AS VARCHAR2(17)) AS INMEMORY_COMPRESSION, CAST(NULL AS VARCHAR2(13)) AS INMEMORY_DUPLICATE, CAST(DECODE (T.TABLE_TYPE, 14, 'YES', 'NO') AS VARCHAR2(3)) AS EXTERNAL, CAST(NULL AS VARCHAR2(3)) AS HYBRID, CAST(NULL AS VARCHAR2(24)) AS CELLMEMORY, CAST(NULL AS VARCHAR2(12)) AS INMEMORY_SERVICE, CAST(NULL AS VARCHAR2(1000)) AS INMEMORY_SERVICE_NAME, CAST(NULL AS VARCHAR2(8)) AS MEMOPTIMIZE_READ, CAST(NULL AS VARCHAR2(8)) AS MEMOPTIMIZE_WRITE, CAST(NULL AS VARCHAR2(3)) AS HAS_SENSITIVE_COLUMN, CAST(NULL AS VARCHAR2(8)) AS LOGICAL_REPLICATION FROM ( SELECT TENANT_ID, TABLE_ID, ROW_CNT AS ROW_COUNT FROM SYS.ALL_VIRTUAL_TABLE_STAT_REAL_AGENT TS WHERE TS.TENANT_ID = EFFECTIVE_TENANT_ID() AND PARTITION_ID = -1 OR PARTITION_ID = TABLE_ID ) INFO RIGHT JOIN (SELECT TENANT_ID, DATABASE_ID, TABLE_ID, TABLE_NAME, TABLE_TYPE, "PCTFREE", PART_LEVEL FROM SYS.ALL_VIRTUAL_CORE_ALL_TABLE UNION ALL SELECT TENANT_ID, DATABASE_ID, TABLE_ID, TABLE_NAME, TABLE_TYPE, "PCTFREE", PART_LEVEL FROM SYS.ALL_VIRTUAL_TABLE_REAL_AGENT) T ON T.TENANT_ID = INFO.TENANT_ID AND T.TABLE_ID = INFO.TABLE_ID JOIN SYS.ALL_VIRTUAL_DATABASE_REAL_AGENT DB ON T.TENANT_ID = DB.TENANT_ID AND T.DATABASE_ID = DB.DATABASE_ID WHERE T.TENANT_ID = EFFECTIVE_TENANT_ID() AND T.TABLE_TYPE IN (0, 3, 8, 9) AND DB.DATABASE_NAME != '__recyclebin' )__"))) {
|
||||
if (OB_FAIL(table_schema.set_view_definition(R"__( SELECT CAST(DB.DATABASE_NAME AS VARCHAR2(128)) AS OWNER, CAST(T.TABLE_NAME AS VARCHAR2(128)) AS TABLE_NAME, CAST(NULL AS VARCHAR2(30)) AS TABLESPACE_NAME, CAST(NULL AS VARCHAR2(128)) AS CLUSTER_NAME, CAST(NULL AS VARCHAR2(128)) AS IOT_NAME, CAST('VALID' AS VARCHAR2(8)) AS STATUS, CAST(T."PCTFREE" AS NUMBER) AS PCT_FREE, CAST(NULL AS NUMBER) AS PCT_USED, CAST(NULL AS NUMBER) AS INI_TRANS, CAST(NULL AS NUMBER) AS MAX_TRANS, CAST(NULL AS NUMBER) AS INITIAL_EXTENT, CAST(NULL AS NUMBER) AS NEXT_EXTENT, CAST(NULL AS NUMBER) AS MIN_EXTENTS, CAST(NULL AS NUMBER) AS MAX_EXTENTS, CAST(NULL AS NUMBER) AS PCT_INCREASE, CAST(NULL AS NUMBER) AS FREELISTS, CAST(NULL AS NUMBER) AS FREELIST_GROUPS, CAST(NULL AS VARCHAR2(3)) AS LOGGING, CAST(NULL AS VARCHAR2(1)) AS BACKED_UP, CAST(INFO.ROW_COUNT AS NUMBER) AS NUM_ROWS, CAST(NULL AS NUMBER) AS BLOCKS, CAST(NULL AS NUMBER) AS EMPTY_BLOCKS, CAST(NULL AS NUMBER) AS AVG_SPACE, CAST(NULL AS NUMBER) AS CHAIN_CNT, CAST(NULL AS NUMBER) AS AVG_ROW_LEN, CAST(NULL AS NUMBER) AS AVG_SPACE_FREELIST_BLOCKS, CAST(NULL AS NUMBER) AS NUM_FREELIST_BLOCKS, CAST(NULL AS VARCHAR2(10)) AS DEGREE, CAST(NULL AS VARCHAR2(10)) AS INSTANCES, CAST(NULL AS VARCHAR2(5)) AS CACHE, CAST(NULL AS VARCHAR2(8)) AS TABLE_LOCK, CAST(NULL AS NUMBER) AS SAMPLE_SIZE, CAST(NULL AS DATE) AS LAST_ANALYZED, CAST( CASE WHEN T.PART_LEVEL = 0 THEN 'NO' ELSE 'YES' END AS VARCHAR2(3)) AS PARTITIONED, CAST(NULL AS VARCHAR2(12)) AS IOT_TYPE, CAST(NULL AS VARCHAR2(16)) AS OBJECT_ID_TYPE, CAST(NULL AS VARCHAR2(128)) AS TABLE_TYPE_OWNER, CAST(NULL AS VARCHAR2(128)) AS TABLE_TYPE, CAST(DECODE (T.TABLE_TYPE, 8, 'YES', 9, 'YES', 'NO') AS VARCHAR2(1)) AS TEMPORARY, CAST(NULL AS VARCHAR2(1)) AS SECONDARY, CAST(NULL AS VARCHAR2(3)) AS NESTED, CAST(NULL AS VARCHAR2(7)) AS BUFFER_POOL, CAST(NULL AS VARCHAR2(7)) AS FLASH_CACHE, CAST(NULL AS VARCHAR2(7)) AS CELL_FLASH_CACHE, CAST(NULL AS VARCHAR2(8)) AS ROW_MOVEMENT, CAST(NULL AS VARCHAR2(3)) AS GLOBAL_STATS, CAST(NULL AS VARCHAR2(3)) AS USER_STATS, CAST( DECODE (T.TABLE_TYPE, 8, 'SYS$SESSION', 9, 'SYS$TRANSACTION', NULL) AS VARCHAR2(15)) AS DURATION, CAST(NULL AS VARCHAR2(8)) AS SKIP_CORRUPT, CAST(NULL AS VARCHAR2(3)) AS MONITORING, CAST(NULL AS VARCHAR2(30)) AS CLUSTER_OWNER, CAST(NULL AS VARCHAR2(8)) AS DEPENDENCIES, CAST(NULL AS VARCHAR2(8)) AS COMPRESSION, CAST(NULL AS VARCHAR2(30)) AS COMPRESS_FOR, CAST(CASE WHEN DB.IN_RECYCLEBIN = 1 THEN 'YES' ELSE 'NO' END AS VARCHAR2(3)) AS DROPPED, CAST(NULL AS VARCHAR2(3)) AS SEGMENT_CREATED, CAST(NULL AS VARCHAR2(8)) AS INMEMORY, CAST(NULL AS VARCHAR2(8)) AS INMEMORY_PRIORITY, CAST(NULL AS VARCHAR2(15)) AS INMEMORY_DISTRIBUTE, CAST(NULL AS VARCHAR2(17)) AS INMEMORY_COMPRESSION, CAST(NULL AS VARCHAR2(13)) AS INMEMORY_DUPLICATE, CAST(DECODE (T.TABLE_TYPE, 14, 'YES', 'NO') AS VARCHAR2(3)) AS EXTERNAL, CAST(NULL AS VARCHAR2(3)) AS HYBRID, CAST(NULL AS VARCHAR2(24)) AS CELLMEMORY, CAST(NULL AS VARCHAR2(12)) AS INMEMORY_SERVICE, CAST(NULL AS VARCHAR2(1000)) AS INMEMORY_SERVICE_NAME, CAST(NULL AS VARCHAR2(8)) AS MEMOPTIMIZE_READ, CAST(NULL AS VARCHAR2(8)) AS MEMOPTIMIZE_WRITE, CAST(NULL AS VARCHAR2(3)) AS HAS_SENSITIVE_COLUMN, CAST(NULL AS VARCHAR2(8)) AS LOGICAL_REPLICATION FROM ( SELECT TENANT_ID, TABLE_ID, ROW_CNT AS ROW_COUNT FROM SYS.ALL_VIRTUAL_TABLE_STAT_REAL_AGENT TS WHERE TS.TENANT_ID = EFFECTIVE_TENANT_ID() AND PARTITION_ID = -1 OR PARTITION_ID = TABLE_ID ) INFO RIGHT JOIN (SELECT TENANT_ID, DATABASE_ID, TABLE_ID, TABLE_NAME, TABLE_TYPE, "PCTFREE", PART_LEVEL FROM SYS.ALL_VIRTUAL_CORE_ALL_TABLE UNION ALL SELECT TENANT_ID, DATABASE_ID, TABLE_ID, TABLE_NAME, TABLE_TYPE, "PCTFREE", PART_LEVEL FROM SYS.ALL_VIRTUAL_TABLE_REAL_AGENT) T ON T.TENANT_ID = INFO.TENANT_ID AND T.TABLE_ID = INFO.TABLE_ID JOIN SYS.ALL_VIRTUAL_DATABASE_REAL_AGENT DB ON T.TENANT_ID = DB.TENANT_ID AND T.DATABASE_ID = DB.DATABASE_ID WHERE T.TENANT_ID = EFFECTIVE_TENANT_ID() AND T.TABLE_TYPE IN (0, 3, 8, 9, 15) AND DB.DATABASE_NAME != '__recyclebin' )__"))) {
|
||||
LOG_ERROR("fail to set view_definition", K(ret));
|
||||
}
|
||||
}
|
||||
@ -1960,7 +1960,7 @@ int ObInnerTableSchema::user_all_tables_ora_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(T.TABLE_NAME AS VARCHAR2(128)) AS TABLE_NAME, CAST(NULL AS VARCHAR2(30)) AS TABLESPACE_NAME, CAST(NULL AS VARCHAR2(128)) AS CLUSTER_NAME, CAST(NULL AS VARCHAR2(128)) AS IOT_NAME, CAST('VALID' AS VARCHAR2(8)) AS STATUS, CAST(T."PCTFREE" AS NUMBER) AS PCT_FREE, CAST(NULL AS NUMBER) AS PCT_USED, CAST(NULL AS NUMBER) AS INI_TRANS, CAST(NULL AS NUMBER) AS MAX_TRANS, CAST(NULL AS NUMBER) AS INITIAL_EXTENT, CAST(NULL AS NUMBER) AS NEXT_EXTENT, CAST(NULL AS NUMBER) AS MIN_EXTENTS, CAST(NULL AS NUMBER) AS MAX_EXTENTS, CAST(NULL AS NUMBER) AS PCT_INCREASE, CAST(NULL AS NUMBER) AS FREELISTS, CAST(NULL AS NUMBER) AS FREELIST_GROUPS, CAST(NULL AS VARCHAR2(3)) AS LOGGING, CAST(NULL AS VARCHAR2(1)) AS BACKED_UP, CAST(INFO.ROW_COUNT AS NUMBER) AS NUM_ROWS, CAST(NULL AS NUMBER) AS BLOCKS, CAST(NULL AS NUMBER) AS EMPTY_BLOCKS, CAST(NULL AS NUMBER) AS AVG_SPACE, CAST(NULL AS NUMBER) AS CHAIN_CNT, CAST(NULL AS NUMBER) AS AVG_ROW_LEN, CAST(NULL AS NUMBER) AS AVG_SPACE_FREELIST_BLOCKS, CAST(NULL AS NUMBER) AS NUM_FREELIST_BLOCKS, CAST(NULL AS VARCHAR2(10)) AS DEGREE, CAST(NULL AS VARCHAR2(10)) AS INSTANCES, CAST(NULL AS VARCHAR2(5)) AS CACHE, CAST(NULL AS VARCHAR2(8)) AS TABLE_LOCK, CAST(NULL AS NUMBER) AS SAMPLE_SIZE, CAST(NULL AS DATE) AS LAST_ANALYZED, CAST( CASE WHEN T.PART_LEVEL = 0 THEN 'NO' ELSE 'YES' END AS VARCHAR2(3)) AS PARTITIONED, CAST(NULL AS VARCHAR2(12)) AS IOT_TYPE, CAST(NULL AS VARCHAR2(16)) AS OBJECT_ID_TYPE, CAST(NULL AS VARCHAR2(128)) AS TABLE_TYPE_OWNER, CAST(NULL AS VARCHAR2(128)) AS TABLE_TYPE, CAST(DECODE (T.TABLE_TYPE, 8, 'YES', 9, 'YES', 'NO') AS VARCHAR2(1)) AS TEMPORARY, CAST(NULL AS VARCHAR2(1)) AS SECONDARY, CAST(NULL AS VARCHAR2(3)) AS NESTED, CAST(NULL AS VARCHAR2(7)) AS BUFFER_POOL, CAST(NULL AS VARCHAR2(7)) AS FLASH_CACHE, CAST(NULL AS VARCHAR2(7)) AS CELL_FLASH_CACHE, CAST(NULL AS VARCHAR2(8)) AS ROW_MOVEMENT, CAST(NULL AS VARCHAR2(3)) AS GLOBAL_STATS, CAST(NULL AS VARCHAR2(3)) AS USER_STATS, CAST( DECODE (T.TABLE_TYPE, 8, 'SYS$SESSION', 9, 'SYS$TRANSACTION', NULL) AS VARCHAR2(15)) AS DURATION, CAST(NULL AS VARCHAR2(8)) AS SKIP_CORRUPT, CAST(NULL AS VARCHAR2(3)) AS MONITORING, CAST(NULL AS VARCHAR2(30)) AS CLUSTER_OWNER, CAST(NULL AS VARCHAR2(8)) AS DEPENDENCIES, CAST(NULL AS VARCHAR2(8)) AS COMPRESSION, CAST(NULL AS VARCHAR2(30)) AS COMPRESS_FOR, CAST(CASE WHEN DB.IN_RECYCLEBIN = 1 THEN 'YES' ELSE 'NO' END AS VARCHAR2(3)) AS DROPPED, CAST(NULL AS VARCHAR2(3)) AS SEGMENT_CREATED, CAST(NULL AS VARCHAR2(8)) AS INMEMORY, CAST(NULL AS VARCHAR2(8)) AS INMEMORY_PRIORITY, CAST(NULL AS VARCHAR2(15)) AS INMEMORY_DISTRIBUTE, CAST(NULL AS VARCHAR2(17)) AS INMEMORY_COMPRESSION, CAST(NULL AS VARCHAR2(13)) AS INMEMORY_DUPLICATE, CAST(DECODE (T.TABLE_TYPE, 14, 'YES', 'NO') AS VARCHAR2(3)) AS EXTERNAL, CAST(NULL AS VARCHAR2(3)) AS HYBRID, CAST(NULL AS VARCHAR2(24)) AS CELLMEMORY, CAST(NULL AS VARCHAR2(12)) AS INMEMORY_SERVICE, CAST(NULL AS VARCHAR2(1000)) AS INMEMORY_SERVICE_NAME, CAST(NULL AS VARCHAR2(8)) AS MEMOPTIMIZE_READ, CAST(NULL AS VARCHAR2(8)) AS MEMOPTIMIZE_WRITE, CAST(NULL AS VARCHAR2(3)) AS HAS_SENSITIVE_COLUMN, CAST(NULL AS VARCHAR2(8)) AS LOGICAL_REPLICATION FROM ( SELECT TENANT_ID, TABLE_ID, ROW_CNT AS ROW_COUNT FROM SYS.ALL_VIRTUAL_TABLE_STAT_REAL_AGENT TS WHERE TS.TENANT_ID = EFFECTIVE_TENANT_ID() AND PARTITION_ID = -1 OR PARTITION_ID = TABLE_ID ) INFO RIGHT JOIN (SELECT TENANT_ID, DATABASE_ID, TABLE_ID, TABLE_NAME, TABLE_TYPE, "PCTFREE", PART_LEVEL FROM SYS.ALL_VIRTUAL_CORE_ALL_TABLE UNION ALL SELECT TENANT_ID, DATABASE_ID, TABLE_ID, TABLE_NAME, TABLE_TYPE, "PCTFREE", PART_LEVEL FROM SYS.ALL_VIRTUAL_TABLE_REAL_AGENT) T ON T.TENANT_ID = INFO.TENANT_ID AND T.TABLE_ID = INFO.TABLE_ID JOIN SYS.ALL_VIRTUAL_DATABASE_REAL_AGENT DB ON T.TENANT_ID = DB.TENANT_ID AND T.DATABASE_ID = DB.DATABASE_ID WHERE T.TENANT_ID = EFFECTIVE_TENANT_ID() AND T.TABLE_TYPE IN (0, 3, 8, 9, 14) AND DB.DATABASE_NAME != '__recyclebin' AND T.DATABASE_ID = USERENV('SCHEMAID') )__"))) {
|
||||
if (OB_FAIL(table_schema.set_view_definition(R"__( SELECT CAST(T.TABLE_NAME AS VARCHAR2(128)) AS TABLE_NAME, CAST(NULL AS VARCHAR2(30)) AS TABLESPACE_NAME, CAST(NULL AS VARCHAR2(128)) AS CLUSTER_NAME, CAST(NULL AS VARCHAR2(128)) AS IOT_NAME, CAST('VALID' AS VARCHAR2(8)) AS STATUS, CAST(T."PCTFREE" AS NUMBER) AS PCT_FREE, CAST(NULL AS NUMBER) AS PCT_USED, CAST(NULL AS NUMBER) AS INI_TRANS, CAST(NULL AS NUMBER) AS MAX_TRANS, CAST(NULL AS NUMBER) AS INITIAL_EXTENT, CAST(NULL AS NUMBER) AS NEXT_EXTENT, CAST(NULL AS NUMBER) AS MIN_EXTENTS, CAST(NULL AS NUMBER) AS MAX_EXTENTS, CAST(NULL AS NUMBER) AS PCT_INCREASE, CAST(NULL AS NUMBER) AS FREELISTS, CAST(NULL AS NUMBER) AS FREELIST_GROUPS, CAST(NULL AS VARCHAR2(3)) AS LOGGING, CAST(NULL AS VARCHAR2(1)) AS BACKED_UP, CAST(INFO.ROW_COUNT AS NUMBER) AS NUM_ROWS, CAST(NULL AS NUMBER) AS BLOCKS, CAST(NULL AS NUMBER) AS EMPTY_BLOCKS, CAST(NULL AS NUMBER) AS AVG_SPACE, CAST(NULL AS NUMBER) AS CHAIN_CNT, CAST(NULL AS NUMBER) AS AVG_ROW_LEN, CAST(NULL AS NUMBER) AS AVG_SPACE_FREELIST_BLOCKS, CAST(NULL AS NUMBER) AS NUM_FREELIST_BLOCKS, CAST(NULL AS VARCHAR2(10)) AS DEGREE, CAST(NULL AS VARCHAR2(10)) AS INSTANCES, CAST(NULL AS VARCHAR2(5)) AS CACHE, CAST(NULL AS VARCHAR2(8)) AS TABLE_LOCK, CAST(NULL AS NUMBER) AS SAMPLE_SIZE, CAST(NULL AS DATE) AS LAST_ANALYZED, CAST( CASE WHEN T.PART_LEVEL = 0 THEN 'NO' ELSE 'YES' END AS VARCHAR2(3)) AS PARTITIONED, CAST(NULL AS VARCHAR2(12)) AS IOT_TYPE, CAST(NULL AS VARCHAR2(16)) AS OBJECT_ID_TYPE, CAST(NULL AS VARCHAR2(128)) AS TABLE_TYPE_OWNER, CAST(NULL AS VARCHAR2(128)) AS TABLE_TYPE, CAST(DECODE (T.TABLE_TYPE, 8, 'YES', 9, 'YES', 'NO') AS VARCHAR2(1)) AS TEMPORARY, CAST(NULL AS VARCHAR2(1)) AS SECONDARY, CAST(NULL AS VARCHAR2(3)) AS NESTED, CAST(NULL AS VARCHAR2(7)) AS BUFFER_POOL, CAST(NULL AS VARCHAR2(7)) AS FLASH_CACHE, CAST(NULL AS VARCHAR2(7)) AS CELL_FLASH_CACHE, CAST(NULL AS VARCHAR2(8)) AS ROW_MOVEMENT, CAST(NULL AS VARCHAR2(3)) AS GLOBAL_STATS, CAST(NULL AS VARCHAR2(3)) AS USER_STATS, CAST( DECODE (T.TABLE_TYPE, 8, 'SYS$SESSION', 9, 'SYS$TRANSACTION', NULL) AS VARCHAR2(15)) AS DURATION, CAST(NULL AS VARCHAR2(8)) AS SKIP_CORRUPT, CAST(NULL AS VARCHAR2(3)) AS MONITORING, CAST(NULL AS VARCHAR2(30)) AS CLUSTER_OWNER, CAST(NULL AS VARCHAR2(8)) AS DEPENDENCIES, CAST(NULL AS VARCHAR2(8)) AS COMPRESSION, CAST(NULL AS VARCHAR2(30)) AS COMPRESS_FOR, CAST(CASE WHEN DB.IN_RECYCLEBIN = 1 THEN 'YES' ELSE 'NO' END AS VARCHAR2(3)) AS DROPPED, CAST(NULL AS VARCHAR2(3)) AS SEGMENT_CREATED, CAST(NULL AS VARCHAR2(8)) AS INMEMORY, CAST(NULL AS VARCHAR2(8)) AS INMEMORY_PRIORITY, CAST(NULL AS VARCHAR2(15)) AS INMEMORY_DISTRIBUTE, CAST(NULL AS VARCHAR2(17)) AS INMEMORY_COMPRESSION, CAST(NULL AS VARCHAR2(13)) AS INMEMORY_DUPLICATE, CAST(DECODE (T.TABLE_TYPE, 14, 'YES', 'NO') AS VARCHAR2(3)) AS EXTERNAL, CAST(NULL AS VARCHAR2(3)) AS HYBRID, CAST(NULL AS VARCHAR2(24)) AS CELLMEMORY, CAST(NULL AS VARCHAR2(12)) AS INMEMORY_SERVICE, CAST(NULL AS VARCHAR2(1000)) AS INMEMORY_SERVICE_NAME, CAST(NULL AS VARCHAR2(8)) AS MEMOPTIMIZE_READ, CAST(NULL AS VARCHAR2(8)) AS MEMOPTIMIZE_WRITE, CAST(NULL AS VARCHAR2(3)) AS HAS_SENSITIVE_COLUMN, CAST(NULL AS VARCHAR2(8)) AS LOGICAL_REPLICATION FROM ( SELECT TENANT_ID, TABLE_ID, ROW_CNT AS ROW_COUNT FROM SYS.ALL_VIRTUAL_TABLE_STAT_REAL_AGENT TS WHERE TS.TENANT_ID = EFFECTIVE_TENANT_ID() AND PARTITION_ID = -1 OR PARTITION_ID = TABLE_ID ) INFO RIGHT JOIN (SELECT TENANT_ID, DATABASE_ID, TABLE_ID, TABLE_NAME, TABLE_TYPE, "PCTFREE", PART_LEVEL FROM SYS.ALL_VIRTUAL_CORE_ALL_TABLE UNION ALL SELECT TENANT_ID, DATABASE_ID, TABLE_ID, TABLE_NAME, TABLE_TYPE, "PCTFREE", PART_LEVEL FROM SYS.ALL_VIRTUAL_TABLE_REAL_AGENT) T ON T.TENANT_ID = INFO.TENANT_ID AND T.TABLE_ID = INFO.TABLE_ID JOIN SYS.ALL_VIRTUAL_DATABASE_REAL_AGENT DB ON T.TENANT_ID = DB.TENANT_ID AND T.DATABASE_ID = DB.DATABASE_ID WHERE T.TENANT_ID = EFFECTIVE_TENANT_ID() AND T.TABLE_TYPE IN (0, 3, 8, 9, 14, 15) AND DB.DATABASE_NAME != '__recyclebin' AND T.DATABASE_ID = USERENV('SCHEMAID') )__"))) {
|
||||
LOG_ERROR("fail to set view_definition", K(ret));
|
||||
}
|
||||
}
|
||||
|
||||
Reference in New Issue
Block a user