From b00f22171f8443b6a95cf2e7846a1703f02e93c5 Mon Sep 17 00:00:00 2001 From: Larry955 <1412857955@qq.com> Date: Mon, 12 Dec 2022 07:07:55 +0000 Subject: [PATCH] fix incorrect DEF_SUBPARTITION_COUNT value for partition table in oracle mode --- .../inner_table/ob_inner_table_schema.21151_21200.cpp | 2 +- .../inner_table/ob_inner_table_schema.21201_21250.cpp | 2 +- .../inner_table/ob_inner_table_schema.25051_25100.cpp | 6 +++--- src/share/inner_table/ob_inner_table_schema_def.py | 10 +++++----- 4 files changed, 10 insertions(+), 10 deletions(-) diff --git a/src/share/inner_table/ob_inner_table_schema.21151_21200.cpp b/src/share/inner_table/ob_inner_table_schema.21151_21200.cpp index d74b000563..c7e7bf7711 100644 --- a/src/share/inner_table/ob_inner_table_schema.21151_21200.cpp +++ b/src/share/inner_table/ob_inner_table_schema.21151_21200.cpp @@ -2209,7 +2209,7 @@ int ObInnerTableSchema::cdb_part_tables_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.TENANT_ID AS SIGNED) CON_ID, CAST(DB.DATABASE_NAME AS CHAR(128)) OWNER, CAST(TB.TABLE_NAME AS CHAR(128)) TABLE_NAME, CAST((CASE TB.PART_FUNC_TYPE WHEN 0 THEN 'HASH' WHEN 1 THEN (CASE COMPATIBILITY_MODE WHEN 1 THEN 'HASH' ELSE 'KEY' END) WHEN 2 THEN (CASE COMPATIBILITY_MODE WHEN 1 THEN 'HASH' ELSE 'KEY' END) WHEN 3 THEN 'RANGE' WHEN 4 THEN (CASE COMPATIBILITY_MODE WHEN 1 THEN 'RANGE' ELSE 'RANGE COLUMNS' END) WHEN 5 THEN 'LIST' WHEN 6 THEN (CASE COMPATIBILITY_MODE WHEN 1 THEN 'LIST' ELSE 'LIST COLUMNS' END) WHEN 7 THEN 'RANGE' END) AS CHAR(13)) PARTITIONING_TYPE, CAST((CASE TB.PART_LEVEL WHEN 1 THEN 'NONE' WHEN 2 THEN (CASE TB.SUB_PART_FUNC_TYPE WHEN 0 THEN 'HASH' WHEN 1 THEN (CASE COMPATIBILITY_MODE WHEN 1 THEN 'HASH' ELSE 'KEY' END) WHEN 2 THEN (CASE COMPATIBILITY_MODE WHEN 1 THEN 'HASH' ELSE 'KEY' END) WHEN 3 THEN 'RANGE' WHEN 4 THEN (CASE COMPATIBILITY_MODE WHEN 1 THEN 'RANGE' ELSE 'RANGE COLUMNS' END) WHEN 5 THEN 'LIST' WHEN 6 THEN (CASE COMPATIBILITY_MODE WHEN 1 THEN 'LIST' ELSE 'LIST COLUMNS' END) WHEN 7 THEN 'RANGE' END) END) AS CHAR(13)) SUBPARTITIONING_TYPE, CAST((CASE TB.PART_FUNC_TYPE WHEN 7 THEN 1048575 ELSE TB.PART_NUM END) AS SIGNED) PARTITION_COUNT, CAST ((CASE TB.PART_LEVEL WHEN 1 THEN 0 WHEN 2 THEN (CASE WHEN TB.SUB_PART_TEMPLATE_FLAGS > 0 THEN TB.SUB_PART_NUM ELSE 0 END) END) AS SIGNED) DEF_SUBPARTITION_COUNT, CAST(PART_INFO.PART_KEY_COUNT AS SIGNED) PARTITIONING_KEY_COUNT, CAST((CASE TB.PART_LEVEL WHEN 1 THEN 0 WHEN 2 THEN PART_INFO.SUBPART_KEY_COUNT END) AS SIGNED) SUBPARTITIONING_KEY_COUNT, CAST(NULL AS CHAR(8)) STATUS, CAST(TP.TABLESPACE_NAME AS CHAR(30)) DEF_TABLESPACE_NAME, CAST(NULL AS SIGNED) DEF_PCT_FREE, CAST(NULL AS SIGNED) DEF_PCT_USED, CAST(NULL AS SIGNED) DEF_INI_TRANS, CAST(NULL AS SIGNED) DEF_MAX_TRANS, CAST(NULL AS CHAR(40)) DEF_INITIAL_EXTENT, CAST(NULL AS CHAR(40)) DEF_NEXT_EXTENT, CAST(NULL AS CHAR(40)) DEF_MIN_EXTENTS, CAST(NULL AS CHAR(40)) DEF_MAX_EXTENTS, CAST(NULL AS CHAR(40)) DEF_MAX_SIZE, CAST(NULL AS CHAR(40)) DEF_PCT_INCREASE, CAST(NULL AS SIGNED) DEF_FREELISTS, CAST(NULL AS SIGNED) DEF_FREELIST_GROUPS, CAST(NULL AS CHAR(7)) DEF_LOGGING, CAST(CASE WHEN TB.COMPRESS_FUNC_NAME IS NULL THEN 'DISABLED' ELSE 'ENABLED' END AS CHAR(8)) DEF_COMPRESSION, CAST(TB.COMPRESS_FUNC_NAME AS CHAR(12)) DEF_COMPRESS_FOR, CAST(NULL AS CHAR(7)) DEF_BUFFER_POOL, CAST(NULL AS CHAR(7)) DEF_FLASH_CACHE, CAST(NULL AS CHAR(7)) DEF_CELL_FLASH_CACHE, CAST(NULL AS CHAR(128)) REF_PTN_CONSTRAINT_NAME, CAST(TB.INTERVAL_RANGE AS CHAR(1000)) "INTERVAL", CAST('NO' AS CHAR(3)) AUTOLIST, CAST(NULL AS CHAR(1000)) INTERVAL_SUBPARTITION, CAST('NO' AS CHAR(3)) AUTOLIST_SUBPARTITION, CAST(NULL AS CHAR(3)) IS_NESTED, CAST(NULL AS CHAR(4)) DEF_SEGMENT_CREATED, CAST(NULL AS CHAR(3)) DEF_INDEXING, CAST(NULL AS CHAR(8)) DEF_INMEMORY, CAST(NULL AS CHAR(8)) DEF_INMEMORY_PRIORITY, CAST(NULL AS CHAR(15)) DEF_INMEMORY_DISTRIBUTE, CAST(NULL AS CHAR(17)) DEF_INMEMORY_COMPRESSION, CAST(NULL AS CHAR(13)) DEF_INMEMORY_DUPLICATE, CAST(NULL AS CHAR(3)) DEF_READ_ONLY, CAST(NULL AS CHAR(24)) DEF_CELLMEMORY, CAST(NULL AS CHAR(12)) DEF_INMEMORY_SERVICE, CAST(NULL AS CHAR(1000)) DEF_INMEMORY_SERVICE_NAME, CAST('NO' AS CHAR(3)) AUTO FROM OCEANBASE.__ALL_VIRTUAL_TABLE TB JOIN OCEANBASE.__ALL_TENANT T ON TB.TENANT_ID = T.TENANT_ID JOIN OCEANBASE.__ALL_VIRTUAL_DATABASE DB ON TB.TENANT_ID = DB.TENANT_ID AND TB.DATABASE_ID = DB.DATABASE_ID JOIN (SELECT TENANT_ID, TABLE_ID, SUM(CASE WHEN (PARTITION_KEY_POSITION & 255) > 0 THEN 1 ELSE 0 END) AS PART_KEY_COUNT, SUM(CASE WHEN (PARTITION_KEY_POSITION & 65280) > 0 THEN 1 ELSE 0 END) AS SUBPART_KEY_COUNT FROM OCEANBASE.__ALL_VIRTUAL_COLUMN WHERE PARTITION_KEY_POSITION > 0 GROUP BY TENANT_ID, TABLE_ID) PART_INFO ON TB.TENANT_ID = PART_INFO.TENANT_ID AND TB.TABLE_ID = PART_INFO.TABLE_ID LEFT JOIN OCEANBASE.__ALL_VIRTUAL_TENANT_TABLESPACE TP ON TB.TENANT_ID = TP.TENANT_ID AND TP.TABLESPACE_ID = TB.TABLESPACE_ID WHERE TB.TABLE_TYPE IN (3, 6, 8, 9) AND TB.PART_LEVEL != 0 )__"))) { + if (OB_FAIL(table_schema.set_view_definition(R"__( SELECT CAST(DB.TENANT_ID AS SIGNED) CON_ID, CAST(DB.DATABASE_NAME AS CHAR(128)) OWNER, CAST(TB.TABLE_NAME AS CHAR(128)) TABLE_NAME, CAST((CASE TB.PART_FUNC_TYPE WHEN 0 THEN 'HASH' WHEN 1 THEN (CASE COMPATIBILITY_MODE WHEN 1 THEN 'HASH' ELSE 'KEY' END) WHEN 2 THEN (CASE COMPATIBILITY_MODE WHEN 1 THEN 'HASH' ELSE 'KEY' END) WHEN 3 THEN 'RANGE' WHEN 4 THEN (CASE COMPATIBILITY_MODE WHEN 1 THEN 'RANGE' ELSE 'RANGE COLUMNS' END) WHEN 5 THEN 'LIST' WHEN 6 THEN (CASE COMPATIBILITY_MODE WHEN 1 THEN 'LIST' ELSE 'LIST COLUMNS' END) WHEN 7 THEN 'RANGE' END) AS CHAR(13)) PARTITIONING_TYPE, CAST((CASE TB.PART_LEVEL WHEN 1 THEN 'NONE' WHEN 2 THEN (CASE TB.SUB_PART_FUNC_TYPE WHEN 0 THEN 'HASH' WHEN 1 THEN (CASE COMPATIBILITY_MODE WHEN 1 THEN 'HASH' ELSE 'KEY' END) WHEN 2 THEN (CASE COMPATIBILITY_MODE WHEN 1 THEN 'HASH' ELSE 'KEY' END) WHEN 3 THEN 'RANGE' WHEN 4 THEN (CASE COMPATIBILITY_MODE WHEN 1 THEN 'RANGE' ELSE 'RANGE COLUMNS' END) WHEN 5 THEN 'LIST' WHEN 6 THEN (CASE COMPATIBILITY_MODE WHEN 1 THEN 'LIST' ELSE 'LIST COLUMNS' END) WHEN 7 THEN 'RANGE' END) END) AS CHAR(13)) SUBPARTITIONING_TYPE, CAST((CASE TB.PART_FUNC_TYPE WHEN 7 THEN 1048575 ELSE TB.PART_NUM END) AS SIGNED) PARTITION_COUNT, CAST ((CASE TB.PART_LEVEL WHEN 1 THEN 0 WHEN 2 THEN (CASE WHEN TB.SUB_PART_TEMPLATE_FLAGS > 0 THEN TB.SUB_PART_NUM ELSE 1 END) END) AS SIGNED) DEF_SUBPARTITION_COUNT, CAST(PART_INFO.PART_KEY_COUNT AS SIGNED) PARTITIONING_KEY_COUNT, CAST((CASE TB.PART_LEVEL WHEN 1 THEN 0 WHEN 2 THEN PART_INFO.SUBPART_KEY_COUNT END) AS SIGNED) SUBPARTITIONING_KEY_COUNT, CAST(NULL AS CHAR(8)) STATUS, CAST(TP.TABLESPACE_NAME AS CHAR(30)) DEF_TABLESPACE_NAME, CAST(NULL AS SIGNED) DEF_PCT_FREE, CAST(NULL AS SIGNED) DEF_PCT_USED, CAST(NULL AS SIGNED) DEF_INI_TRANS, CAST(NULL AS SIGNED) DEF_MAX_TRANS, CAST(NULL AS CHAR(40)) DEF_INITIAL_EXTENT, CAST(NULL AS CHAR(40)) DEF_NEXT_EXTENT, CAST(NULL AS CHAR(40)) DEF_MIN_EXTENTS, CAST(NULL AS CHAR(40)) DEF_MAX_EXTENTS, CAST(NULL AS CHAR(40)) DEF_MAX_SIZE, CAST(NULL AS CHAR(40)) DEF_PCT_INCREASE, CAST(NULL AS SIGNED) DEF_FREELISTS, CAST(NULL AS SIGNED) DEF_FREELIST_GROUPS, CAST(NULL AS CHAR(7)) DEF_LOGGING, CAST(CASE WHEN TB.COMPRESS_FUNC_NAME IS NULL THEN 'DISABLED' ELSE 'ENABLED' END AS CHAR(8)) DEF_COMPRESSION, CAST(TB.COMPRESS_FUNC_NAME AS CHAR(12)) DEF_COMPRESS_FOR, CAST(NULL AS CHAR(7)) DEF_BUFFER_POOL, CAST(NULL AS CHAR(7)) DEF_FLASH_CACHE, CAST(NULL AS CHAR(7)) DEF_CELL_FLASH_CACHE, CAST(NULL AS CHAR(128)) REF_PTN_CONSTRAINT_NAME, CAST(TB.INTERVAL_RANGE AS CHAR(1000)) "INTERVAL", CAST('NO' AS CHAR(3)) AUTOLIST, CAST(NULL AS CHAR(1000)) INTERVAL_SUBPARTITION, CAST('NO' AS CHAR(3)) AUTOLIST_SUBPARTITION, CAST(NULL AS CHAR(3)) IS_NESTED, CAST(NULL AS CHAR(4)) DEF_SEGMENT_CREATED, CAST(NULL AS CHAR(3)) DEF_INDEXING, CAST(NULL AS CHAR(8)) DEF_INMEMORY, CAST(NULL AS CHAR(8)) DEF_INMEMORY_PRIORITY, CAST(NULL AS CHAR(15)) DEF_INMEMORY_DISTRIBUTE, CAST(NULL AS CHAR(17)) DEF_INMEMORY_COMPRESSION, CAST(NULL AS CHAR(13)) DEF_INMEMORY_DUPLICATE, CAST(NULL AS CHAR(3)) DEF_READ_ONLY, CAST(NULL AS CHAR(24)) DEF_CELLMEMORY, CAST(NULL AS CHAR(12)) DEF_INMEMORY_SERVICE, CAST(NULL AS CHAR(1000)) DEF_INMEMORY_SERVICE_NAME, CAST('NO' AS CHAR(3)) AUTO FROM OCEANBASE.__ALL_VIRTUAL_TABLE TB JOIN OCEANBASE.__ALL_TENANT T ON TB.TENANT_ID = T.TENANT_ID JOIN OCEANBASE.__ALL_VIRTUAL_DATABASE DB ON TB.TENANT_ID = DB.TENANT_ID AND TB.DATABASE_ID = DB.DATABASE_ID JOIN (SELECT TENANT_ID, TABLE_ID, SUM(CASE WHEN (PARTITION_KEY_POSITION & 255) > 0 THEN 1 ELSE 0 END) AS PART_KEY_COUNT, SUM(CASE WHEN (PARTITION_KEY_POSITION & 65280) > 0 THEN 1 ELSE 0 END) AS SUBPART_KEY_COUNT FROM OCEANBASE.__ALL_VIRTUAL_COLUMN WHERE PARTITION_KEY_POSITION > 0 GROUP BY TENANT_ID, TABLE_ID) PART_INFO ON TB.TENANT_ID = PART_INFO.TENANT_ID AND TB.TABLE_ID = PART_INFO.TABLE_ID LEFT JOIN OCEANBASE.__ALL_VIRTUAL_TENANT_TABLESPACE TP ON TB.TENANT_ID = TP.TENANT_ID AND TP.TABLESPACE_ID = TB.TABLESPACE_ID WHERE TB.TABLE_TYPE IN (3, 6, 8, 9) AND TB.PART_LEVEL != 0 )__"))) { LOG_ERROR("fail to set view_definition", K(ret)); } } diff --git a/src/share/inner_table/ob_inner_table_schema.21201_21250.cpp b/src/share/inner_table/ob_inner_table_schema.21201_21250.cpp index 92f1172b58..05b7f79955 100644 --- a/src/share/inner_table/ob_inner_table_schema.21201_21250.cpp +++ b/src/share/inner_table/ob_inner_table_schema.21201_21250.cpp @@ -309,7 +309,7 @@ int ObInnerTableSchema::dba_part_tables_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 CHAR(128)) OWNER, CAST(TB.TABLE_NAME AS CHAR(128)) TABLE_NAME, CAST((CASE TB.PART_FUNC_TYPE WHEN 0 THEN 'HASH' WHEN 1 THEN 'KEY' WHEN 2 THEN 'KEY' WHEN 3 THEN 'RANGE' WHEN 4 THEN 'RANGE COLUMNS' WHEN 5 THEN 'LIST' WHEN 6 THEN 'LIST COLUMNS' WHEN 7 THEN 'RANGE' END) AS CHAR(13)) PARTITIONING_TYPE, CAST((CASE TB.PART_LEVEL WHEN 1 THEN 'NONE' WHEN 2 THEN (CASE TB.SUB_PART_FUNC_TYPE WHEN 0 THEN 'HASH' WHEN 1 THEN 'KEY' WHEN 2 THEN 'KEY' WHEN 3 THEN 'RANGE' WHEN 4 THEN 'RANGE COLUMNS' WHEN 5 THEN 'LIST' WHEN 6 THEN 'LIST COLUMNS' WHEN 7 THEN 'RANGE' END) END) AS CHAR(13)) SUBPARTITIONING_TYPE, CAST((CASE TB.PART_FUNC_TYPE WHEN 7 THEN 1048575 ELSE TB.PART_NUM END) AS SIGNED) PARTITION_COUNT, CAST ((CASE TB.PART_LEVEL WHEN 1 THEN 0 WHEN 2 THEN (CASE WHEN TB.SUB_PART_TEMPLATE_FLAGS > 0 THEN TB.SUB_PART_NUM ELSE 0 END) END) AS SIGNED) DEF_SUBPARTITION_COUNT, CAST(PART_INFO.PART_KEY_COUNT AS SIGNED) PARTITIONING_KEY_COUNT, CAST((CASE TB.PART_LEVEL WHEN 1 THEN 0 WHEN 2 THEN PART_INFO.SUBPART_KEY_COUNT END) AS SIGNED) SUBPARTITIONING_KEY_COUNT, CAST(NULL AS CHAR(8)) STATUS, CAST(TP.TABLESPACE_NAME AS CHAR(30)) DEF_TABLESPACE_NAME, CAST(NULL AS SIGNED) DEF_PCT_FREE, CAST(NULL AS SIGNED) DEF_PCT_USED, CAST(NULL AS SIGNED) DEF_INI_TRANS, CAST(NULL AS SIGNED) DEF_MAX_TRANS, CAST(NULL AS CHAR(40)) DEF_INITIAL_EXTENT, CAST(NULL AS CHAR(40)) DEF_NEXT_EXTENT, CAST(NULL AS CHAR(40)) DEF_MIN_EXTENTS, CAST(NULL AS CHAR(40)) DEF_MAX_EXTENTS, CAST(NULL AS CHAR(40)) DEF_MAX_SIZE, CAST(NULL AS CHAR(40)) DEF_PCT_INCREASE, CAST(NULL AS SIGNED) DEF_FREELISTS, CAST(NULL AS SIGNED) DEF_FREELIST_GROUPS, CAST(NULL AS CHAR(7)) DEF_LOGGING, CAST(CASE WHEN TB.COMPRESS_FUNC_NAME IS NULL THEN 'DISABLED' ELSE 'ENABLED' END AS CHAR(8)) DEF_COMPRESSION, CAST(TB.COMPRESS_FUNC_NAME AS CHAR(12)) DEF_COMPRESS_FOR, CAST(NULL AS CHAR(7)) DEF_BUFFER_POOL, CAST(NULL AS CHAR(7)) DEF_FLASH_CACHE, CAST(NULL AS CHAR(7)) DEF_CELL_FLASH_CACHE, CAST(NULL AS CHAR(30)) REF_PTN_CONSTRAINT_NAME, CAST(TB.INTERVAL_RANGE AS CHAR(1000)) "INTERVAL", CAST('NO' AS CHAR(3)) AUTOLIST, CAST(NULL AS CHAR(1000)) INTERVAL_SUBPARTITION, CAST('NO' AS CHAR(3)) AUTOLIST_SUBPARTITION, CAST(NULL AS CHAR(3)) IS_NESTED, CAST(NULL AS CHAR(4)) DEF_SEGMENT_CREATED, CAST(NULL AS CHAR(3)) DEF_INDEXING, CAST(NULL AS CHAR(8)) DEF_INMEMORY, CAST(NULL AS CHAR(8)) DEF_INMEMORY_PRIORITY, CAST(NULL AS CHAR(15)) DEF_INMEMORY_DISTRIBUTE, CAST(NULL AS CHAR(17)) DEF_INMEMORY_COMPRESSION, CAST(NULL AS CHAR(13)) DEF_INMEMORY_DUPLICATE, CAST(NULL AS CHAR(3)) DEF_READ_ONLY, CAST(NULL AS CHAR(24)) DEF_CELLMEMORY, CAST(NULL AS CHAR(12)) DEF_INMEMORY_SERVICE, CAST(NULL AS CHAR(1000)) DEF_INMEMORY_SERVICE_NAME, CAST('NO' AS CHAR(3)) AUTO FROM OCEANBASE.__ALL_TABLE TB JOIN OCEANBASE.__ALL_DATABASE DB ON TB.TENANT_ID = DB.TENANT_ID AND TB.DATABASE_ID = DB.DATABASE_ID JOIN (SELECT TENANT_ID, TABLE_ID, SUM(CASE WHEN (PARTITION_KEY_POSITION & 255) > 0 THEN 1 ELSE 0 END) AS PART_KEY_COUNT, SUM(CASE WHEN (PARTITION_KEY_POSITION & 65280) > 0 THEN 1 ELSE 0 END) AS SUBPART_KEY_COUNT FROM OCEANBASE.__ALL_COLUMN WHERE PARTITION_KEY_POSITION > 0 GROUP BY TENANT_ID, TABLE_ID) PART_INFO ON TB.TENANT_ID = PART_INFO.TENANT_ID AND TB.TABLE_ID = PART_INFO.TABLE_ID LEFT JOIN OCEANBASE.__ALL_TENANT_TABLESPACE TP ON TB.TENANT_ID = TP.TENANT_ID AND TP.TABLESPACE_ID = TB.TABLESPACE_ID WHERE TB.TENANT_ID = 0 AND TB.TABLE_TYPE IN (3, 6) AND TB.PART_LEVEL != 0 )__"))) { + if (OB_FAIL(table_schema.set_view_definition(R"__( SELECT CAST(DB.DATABASE_NAME AS CHAR(128)) OWNER, CAST(TB.TABLE_NAME AS CHAR(128)) TABLE_NAME, CAST((CASE TB.PART_FUNC_TYPE WHEN 0 THEN 'HASH' WHEN 1 THEN 'KEY' WHEN 2 THEN 'KEY' WHEN 3 THEN 'RANGE' WHEN 4 THEN 'RANGE COLUMNS' WHEN 5 THEN 'LIST' WHEN 6 THEN 'LIST COLUMNS' WHEN 7 THEN 'RANGE' END) AS CHAR(13)) PARTITIONING_TYPE, CAST((CASE TB.PART_LEVEL WHEN 1 THEN 'NONE' WHEN 2 THEN (CASE TB.SUB_PART_FUNC_TYPE WHEN 0 THEN 'HASH' WHEN 1 THEN 'KEY' WHEN 2 THEN 'KEY' WHEN 3 THEN 'RANGE' WHEN 4 THEN 'RANGE COLUMNS' WHEN 5 THEN 'LIST' WHEN 6 THEN 'LIST COLUMNS' WHEN 7 THEN 'RANGE' END) END) AS CHAR(13)) SUBPARTITIONING_TYPE, CAST((CASE TB.PART_FUNC_TYPE WHEN 7 THEN 1048575 ELSE TB.PART_NUM END) AS SIGNED) PARTITION_COUNT, CAST ((CASE TB.PART_LEVEL WHEN 1 THEN 0 WHEN 2 THEN (CASE WHEN TB.SUB_PART_TEMPLATE_FLAGS > 0 THEN TB.SUB_PART_NUM ELSE 1 END) END) AS SIGNED) DEF_SUBPARTITION_COUNT, CAST(PART_INFO.PART_KEY_COUNT AS SIGNED) PARTITIONING_KEY_COUNT, CAST((CASE TB.PART_LEVEL WHEN 1 THEN 0 WHEN 2 THEN PART_INFO.SUBPART_KEY_COUNT END) AS SIGNED) SUBPARTITIONING_KEY_COUNT, CAST(NULL AS CHAR(8)) STATUS, CAST(TP.TABLESPACE_NAME AS CHAR(30)) DEF_TABLESPACE_NAME, CAST(NULL AS SIGNED) DEF_PCT_FREE, CAST(NULL AS SIGNED) DEF_PCT_USED, CAST(NULL AS SIGNED) DEF_INI_TRANS, CAST(NULL AS SIGNED) DEF_MAX_TRANS, CAST(NULL AS CHAR(40)) DEF_INITIAL_EXTENT, CAST(NULL AS CHAR(40)) DEF_NEXT_EXTENT, CAST(NULL AS CHAR(40)) DEF_MIN_EXTENTS, CAST(NULL AS CHAR(40)) DEF_MAX_EXTENTS, CAST(NULL AS CHAR(40)) DEF_MAX_SIZE, CAST(NULL AS CHAR(40)) DEF_PCT_INCREASE, CAST(NULL AS SIGNED) DEF_FREELISTS, CAST(NULL AS SIGNED) DEF_FREELIST_GROUPS, CAST(NULL AS CHAR(7)) DEF_LOGGING, CAST(CASE WHEN TB.COMPRESS_FUNC_NAME IS NULL THEN 'DISABLED' ELSE 'ENABLED' END AS CHAR(8)) DEF_COMPRESSION, CAST(TB.COMPRESS_FUNC_NAME AS CHAR(12)) DEF_COMPRESS_FOR, CAST(NULL AS CHAR(7)) DEF_BUFFER_POOL, CAST(NULL AS CHAR(7)) DEF_FLASH_CACHE, CAST(NULL AS CHAR(7)) DEF_CELL_FLASH_CACHE, CAST(NULL AS CHAR(30)) REF_PTN_CONSTRAINT_NAME, CAST(TB.INTERVAL_RANGE AS CHAR(1000)) "INTERVAL", CAST('NO' AS CHAR(3)) AUTOLIST, CAST(NULL AS CHAR(1000)) INTERVAL_SUBPARTITION, CAST('NO' AS CHAR(3)) AUTOLIST_SUBPARTITION, CAST(NULL AS CHAR(3)) IS_NESTED, CAST(NULL AS CHAR(4)) DEF_SEGMENT_CREATED, CAST(NULL AS CHAR(3)) DEF_INDEXING, CAST(NULL AS CHAR(8)) DEF_INMEMORY, CAST(NULL AS CHAR(8)) DEF_INMEMORY_PRIORITY, CAST(NULL AS CHAR(15)) DEF_INMEMORY_DISTRIBUTE, CAST(NULL AS CHAR(17)) DEF_INMEMORY_COMPRESSION, CAST(NULL AS CHAR(13)) DEF_INMEMORY_DUPLICATE, CAST(NULL AS CHAR(3)) DEF_READ_ONLY, CAST(NULL AS CHAR(24)) DEF_CELLMEMORY, CAST(NULL AS CHAR(12)) DEF_INMEMORY_SERVICE, CAST(NULL AS CHAR(1000)) DEF_INMEMORY_SERVICE_NAME, CAST('NO' AS CHAR(3)) AUTO FROM OCEANBASE.__ALL_TABLE TB JOIN OCEANBASE.__ALL_DATABASE DB ON TB.TENANT_ID = DB.TENANT_ID AND TB.DATABASE_ID = DB.DATABASE_ID JOIN (SELECT TENANT_ID, TABLE_ID, SUM(CASE WHEN (PARTITION_KEY_POSITION & 255) > 0 THEN 1 ELSE 0 END) AS PART_KEY_COUNT, SUM(CASE WHEN (PARTITION_KEY_POSITION & 65280) > 0 THEN 1 ELSE 0 END) AS SUBPART_KEY_COUNT FROM OCEANBASE.__ALL_COLUMN WHERE PARTITION_KEY_POSITION > 0 GROUP BY TENANT_ID, TABLE_ID) PART_INFO ON TB.TENANT_ID = PART_INFO.TENANT_ID AND TB.TABLE_ID = PART_INFO.TABLE_ID LEFT JOIN OCEANBASE.__ALL_TENANT_TABLESPACE TP ON TB.TENANT_ID = TP.TENANT_ID AND TP.TABLESPACE_ID = TB.TABLESPACE_ID WHERE TB.TENANT_ID = 0 AND TB.TABLE_TYPE IN (3, 6) AND TB.PART_LEVEL != 0 )__"))) { LOG_ERROR("fail to set view_definition", K(ret)); } } 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 493b69c883..2801e66a2a 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 @@ -1209,7 +1209,7 @@ int ObInnerTableSchema::all_part_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)) OWNER, CAST(TB.TABLE_NAME AS VARCHAR2(128)) TABLE_NAME, CAST(CASE TB.PART_FUNC_TYPE WHEN 0 THEN 'HASH' WHEN 1 THEN 'HASH' WHEN 2 THEN 'HASH' WHEN 3 THEN 'RANGE' WHEN 4 THEN 'RANGE' WHEN 5 THEN 'LIST' WHEN 6 THEN 'LIST' WHEN 7 THEN 'RANGE' END AS VARCHAR2(9)) PARTITIONING_TYPE, CAST (DECODE(TB.PART_LEVEL, 1, 'NONE', 2, DECODE(TB.SUB_PART_FUNC_TYPE, 0, 'HASH', 1, 'HASH', 2, 'HASH', 3, 'RANGE', 4, 'RANGE', 5, 'LIST', 6, 'LIST', 7, 'RANGE')) AS VARCHAR2(9)) SUBPARTITIONING_TYPE, CAST(DECODE(TB.PART_FUNC_TYPE, 7, 1048575, TB.PART_NUM) AS NUMBER) PARTITION_COUNT, CAST (DECODE (TB.PART_LEVEL, 1, 0, 2, (CASE WHEN TB.SUB_PART_TEMPLATE_FLAGS > 0 THEN TB.SUB_PART_NUM ELSE 0 END) ) AS NUMBER) DEF_SUBPARTITION_COUNT, CAST(PART_INFO.PART_KEY_COUNT AS NUMBER) PARTITIONING_KEY_COUNT, CAST (DECODE (TB.PART_LEVEL, 1, 0, 2, PART_INFO.SUBPART_KEY_COUNT) AS NUMBER) SUBPARTITIONING_KEY_COUNT, CAST(NULL AS VARCHAR2(8)) STATUS, CAST(TP.TABLESPACE_NAME AS VARCHAR2(30)) DEF_TABLESPACE_NAME, CAST(NULL AS NUMBER) DEF_PCT_FREE, CAST(NULL AS NUMBER) DEF_PCT_USED, CAST(NULL AS NUMBER) DEF_INI_TRANS, CAST(NULL AS NUMBER) DEF_MAX_TRANS, CAST(NULL AS VARCHAR2(40)) DEF_INITIAL_EXTENT, CAST(NULL AS VARCHAR2(40)) DEF_NEXT_EXTENT, CAST(NULL AS VARCHAR2(40)) DEF_MIN_EXTENTS, CAST(NULL AS VARCHAR2(40)) DEF_MAX_EXTENTS, CAST(NULL AS VARCHAR2(40)) DEF_MAX_SIZE, CAST(NULL AS VARCHAR2(40)) DEF_PCT_INCREASE, CAST(NULL AS NUMBER) DEF_FREELISTS, CAST(NULL AS NUMBER) DEF_FREELIST_GROUPS, CAST(NULL AS VARCHAR2(7)) DEF_LOGGING, CAST(CASE WHEN TB.COMPRESS_FUNC_NAME IS NULL THEN 'DISABLED' ELSE 'ENABLED' END AS VARCHAR2(8)) DEF_COMPRESSION, CAST(TB.COMPRESS_FUNC_NAME AS VARCHAR2(30)) DEF_COMPRESS_FOR, CAST(NULL AS VARCHAR2(7)) DEF_BUFFER_POOL, CAST(NULL AS VARCHAR2(7)) DEF_FLASH_CACHE, CAST(NULL AS VARCHAR2(7)) DEF_CELL_FLASH_CACHE, CAST(NULL AS VARCHAR2(128)) REF_PTN_CONSTRAINT_NAME, CAST(TB.INTERVAL_RANGE AS VARCHAR2(1000)) "INTERVAL", CAST('NO' AS VARCHAR2(3)) AUTOLIST, CAST(NULL AS VARCHAR2(1000)) INTERVAL_SUBPARTITION, CAST('NO' AS VARCHAR2(3)) AUTOLIST_SUBPARTITION, CAST(NULL AS VARCHAR2(3)) IS_NESTED, CAST(NULL AS VARCHAR2(4)) DEF_SEGMENT_CREATED, CAST(NULL AS VARCHAR2(3)) DEF_INDEXING, CAST(NULL AS VARCHAR2(8)) DEF_INMEMORY, CAST(NULL AS VARCHAR2(8)) DEF_INMEMORY_PRIORITY, CAST(NULL AS VARCHAR2(15)) DEF_INMEMORY_DISTRIBUTE, CAST(NULL AS VARCHAR2(17)) DEF_INMEMORY_COMPRESSION, CAST(NULL AS VARCHAR2(13)) DEF_INMEMORY_DUPLICATE, CAST(NULL AS VARCHAR2(3)) DEF_READ_ONLY, CAST(NULL AS VARCHAR2(24)) DEF_CELLMEMORY, CAST(NULL AS VARCHAR2(12)) DEF_INMEMORY_SERVICE, CAST(NULL AS VARCHAR2(1000)) DEF_INMEMORY_SERVICE_NAME, CAST('NO' AS VARCHAR2(3)) AUTO FROM SYS.ALL_VIRTUAL_TABLE_REAL_AGENT TB JOIN SYS.ALL_VIRTUAL_DATABASE_REAL_AGENT DB ON TB.TENANT_ID = DB.TENANT_ID AND TB.DATABASE_ID = DB.DATABASE_ID AND (TB.DATABASE_ID = USERENV('SCHEMAID') OR USER_CAN_ACCESS_OBJ(1, TB.TABLE_ID, TB.DATABASE_ID) = 1) JOIN (SELECT TABLE_ID, SUM(CASE WHEN BITAND(PARTITION_KEY_POSITION, 255) > 0 THEN 1 ELSE 0 END) AS PART_KEY_COUNT, SUM(CASE WHEN BITAND(PARTITION_KEY_POSITION, 65280) > 0 THEN 1 ELSE 0 END) AS SUBPART_KEY_COUNT FROM SYS.ALL_VIRTUAL_COLUMN_REAL_AGENT WHERE PARTITION_KEY_POSITION > 0 GROUP BY TENANT_ID, TABLE_ID) PART_INFO ON TB.TABLE_ID = PART_INFO.TABLE_ID LEFT JOIN SYS.ALL_VIRTUAL_TENANT_TABLESPACE_REAL_AGENT TP ON TB.TENANT_ID = TP.TENANT_ID AND TP.TABLESPACE_ID = TB.TABLESPACE_ID WHERE TB.TENANT_ID = EFFECTIVE_TENANT_ID() AND TB.TABLE_TYPE IN (3, 8, 9) AND TB.PART_LEVEL != 0 )__"))) { + if (OB_FAIL(table_schema.set_view_definition(R"__( SELECT CAST(DB.DATABASE_NAME AS VARCHAR2(128)) OWNER, CAST(TB.TABLE_NAME AS VARCHAR2(128)) TABLE_NAME, CAST(CASE TB.PART_FUNC_TYPE WHEN 0 THEN 'HASH' WHEN 1 THEN 'HASH' WHEN 2 THEN 'HASH' WHEN 3 THEN 'RANGE' WHEN 4 THEN 'RANGE' WHEN 5 THEN 'LIST' WHEN 6 THEN 'LIST' WHEN 7 THEN 'RANGE' END AS VARCHAR2(9)) PARTITIONING_TYPE, CAST (DECODE(TB.PART_LEVEL, 1, 'NONE', 2, DECODE(TB.SUB_PART_FUNC_TYPE, 0, 'HASH', 1, 'HASH', 2, 'HASH', 3, 'RANGE', 4, 'RANGE', 5, 'LIST', 6, 'LIST', 7, 'RANGE')) AS VARCHAR2(9)) SUBPARTITIONING_TYPE, CAST(DECODE(TB.PART_FUNC_TYPE, 7, 1048575, TB.PART_NUM) AS NUMBER) PARTITION_COUNT, CAST (DECODE (TB.PART_LEVEL, 1, 0, 2, (CASE WHEN TB.SUB_PART_TEMPLATE_FLAGS > 0 THEN TB.SUB_PART_NUM ELSE 1 END) ) AS NUMBER) DEF_SUBPARTITION_COUNT, CAST(PART_INFO.PART_KEY_COUNT AS NUMBER) PARTITIONING_KEY_COUNT, CAST (DECODE (TB.PART_LEVEL, 1, 0, 2, PART_INFO.SUBPART_KEY_COUNT) AS NUMBER) SUBPARTITIONING_KEY_COUNT, CAST(NULL AS VARCHAR2(8)) STATUS, CAST(TP.TABLESPACE_NAME AS VARCHAR2(30)) DEF_TABLESPACE_NAME, CAST(NULL AS NUMBER) DEF_PCT_FREE, CAST(NULL AS NUMBER) DEF_PCT_USED, CAST(NULL AS NUMBER) DEF_INI_TRANS, CAST(NULL AS NUMBER) DEF_MAX_TRANS, CAST(NULL AS VARCHAR2(40)) DEF_INITIAL_EXTENT, CAST(NULL AS VARCHAR2(40)) DEF_NEXT_EXTENT, CAST(NULL AS VARCHAR2(40)) DEF_MIN_EXTENTS, CAST(NULL AS VARCHAR2(40)) DEF_MAX_EXTENTS, CAST(NULL AS VARCHAR2(40)) DEF_MAX_SIZE, CAST(NULL AS VARCHAR2(40)) DEF_PCT_INCREASE, CAST(NULL AS NUMBER) DEF_FREELISTS, CAST(NULL AS NUMBER) DEF_FREELIST_GROUPS, CAST(NULL AS VARCHAR2(7)) DEF_LOGGING, CAST(CASE WHEN TB.COMPRESS_FUNC_NAME IS NULL THEN 'DISABLED' ELSE 'ENABLED' END AS VARCHAR2(8)) DEF_COMPRESSION, CAST(TB.COMPRESS_FUNC_NAME AS VARCHAR2(30)) DEF_COMPRESS_FOR, CAST(NULL AS VARCHAR2(7)) DEF_BUFFER_POOL, CAST(NULL AS VARCHAR2(7)) DEF_FLASH_CACHE, CAST(NULL AS VARCHAR2(7)) DEF_CELL_FLASH_CACHE, CAST(NULL AS VARCHAR2(128)) REF_PTN_CONSTRAINT_NAME, CAST(TB.INTERVAL_RANGE AS VARCHAR2(1000)) "INTERVAL", CAST('NO' AS VARCHAR2(3)) AUTOLIST, CAST(NULL AS VARCHAR2(1000)) INTERVAL_SUBPARTITION, CAST('NO' AS VARCHAR2(3)) AUTOLIST_SUBPARTITION, CAST(NULL AS VARCHAR2(3)) IS_NESTED, CAST(NULL AS VARCHAR2(4)) DEF_SEGMENT_CREATED, CAST(NULL AS VARCHAR2(3)) DEF_INDEXING, CAST(NULL AS VARCHAR2(8)) DEF_INMEMORY, CAST(NULL AS VARCHAR2(8)) DEF_INMEMORY_PRIORITY, CAST(NULL AS VARCHAR2(15)) DEF_INMEMORY_DISTRIBUTE, CAST(NULL AS VARCHAR2(17)) DEF_INMEMORY_COMPRESSION, CAST(NULL AS VARCHAR2(13)) DEF_INMEMORY_DUPLICATE, CAST(NULL AS VARCHAR2(3)) DEF_READ_ONLY, CAST(NULL AS VARCHAR2(24)) DEF_CELLMEMORY, CAST(NULL AS VARCHAR2(12)) DEF_INMEMORY_SERVICE, CAST(NULL AS VARCHAR2(1000)) DEF_INMEMORY_SERVICE_NAME, CAST('NO' AS VARCHAR2(3)) AUTO FROM SYS.ALL_VIRTUAL_TABLE_REAL_AGENT TB JOIN SYS.ALL_VIRTUAL_DATABASE_REAL_AGENT DB ON TB.TENANT_ID = DB.TENANT_ID AND TB.DATABASE_ID = DB.DATABASE_ID AND (TB.DATABASE_ID = USERENV('SCHEMAID') OR USER_CAN_ACCESS_OBJ(1, TB.TABLE_ID, TB.DATABASE_ID) = 1) JOIN (SELECT TABLE_ID, SUM(CASE WHEN BITAND(PARTITION_KEY_POSITION, 255) > 0 THEN 1 ELSE 0 END) AS PART_KEY_COUNT, SUM(CASE WHEN BITAND(PARTITION_KEY_POSITION, 65280) > 0 THEN 1 ELSE 0 END) AS SUBPART_KEY_COUNT FROM SYS.ALL_VIRTUAL_COLUMN_REAL_AGENT WHERE PARTITION_KEY_POSITION > 0 GROUP BY TENANT_ID, TABLE_ID) PART_INFO ON TB.TABLE_ID = PART_INFO.TABLE_ID LEFT JOIN SYS.ALL_VIRTUAL_TENANT_TABLESPACE_REAL_AGENT TP ON TB.TENANT_ID = TP.TENANT_ID AND TP.TABLESPACE_ID = TB.TABLESPACE_ID WHERE TB.TENANT_ID = EFFECTIVE_TENANT_ID() AND TB.TABLE_TYPE IN (3, 8, 9) AND TB.PART_LEVEL != 0 )__"))) { LOG_ERROR("fail to set view_definition", K(ret)); } } @@ -1259,7 +1259,7 @@ int ObInnerTableSchema::dba_part_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)) OWNER, CAST(TB.TABLE_NAME AS VARCHAR2(128)) TABLE_NAME, CAST(CASE TB.PART_FUNC_TYPE WHEN 0 THEN 'HASH' WHEN 1 THEN 'HASH' WHEN 2 THEN 'HASH' WHEN 3 THEN 'RANGE' WHEN 4 THEN 'RANGE' WHEN 5 THEN 'LIST' WHEN 6 THEN 'LIST' WHEN 7 THEN 'RANGE' END AS VARCHAR2(9)) PARTITIONING_TYPE, CAST (DECODE(TB.PART_LEVEL, 1, 'NONE', 2, DECODE(TB.SUB_PART_FUNC_TYPE, 0, 'HASH', 1, 'HASH', 2, 'HASH', 3, 'RANGE', 4, 'RANGE', 5, 'LIST', 6, 'LIST', 7, 'RANGE')) AS VARCHAR2(9)) SUBPARTITIONING_TYPE, CAST(DECODE(TB.PART_FUNC_TYPE, 7, 1048575, TB.PART_NUM) AS NUMBER) PARTITION_COUNT, CAST (DECODE (TB.PART_LEVEL, 1, 0, 2, (CASE WHEN TB.SUB_PART_TEMPLATE_FLAGS > 0 THEN TB.SUB_PART_NUM ELSE 0 END) ) AS NUMBER) DEF_SUBPARTITION_COUNT, CAST(PART_INFO.PART_KEY_COUNT AS NUMBER) PARTITIONING_KEY_COUNT, CAST (DECODE (TB.PART_LEVEL, 1, 0, 2, PART_INFO.SUBPART_KEY_COUNT) AS NUMBER) SUBPARTITIONING_KEY_COUNT, CAST(NULL AS VARCHAR2(8)) STATUS, CAST(TP.TABLESPACE_NAME AS VARCHAR2(30)) DEF_TABLESPACE_NAME, CAST(NULL AS NUMBER) DEF_PCT_FREE, CAST(NULL AS NUMBER) DEF_PCT_USED, CAST(NULL AS NUMBER) DEF_INI_TRANS, CAST(NULL AS NUMBER) DEF_MAX_TRANS, CAST(NULL AS VARCHAR2(40)) DEF_INITIAL_EXTENT, CAST(NULL AS VARCHAR2(40)) DEF_NEXT_EXTENT, CAST(NULL AS VARCHAR2(40)) DEF_MIN_EXTENTS, CAST(NULL AS VARCHAR2(40)) DEF_MAX_EXTENTS, CAST(NULL AS VARCHAR2(40)) DEF_MAX_SIZE, CAST(NULL AS VARCHAR2(40)) DEF_PCT_INCREASE, CAST(NULL AS NUMBER) DEF_FREELISTS, CAST(NULL AS NUMBER) DEF_FREELIST_GROUPS, CAST(NULL AS VARCHAR2(7)) DEF_LOGGING, CAST(CASE WHEN TB.COMPRESS_FUNC_NAME IS NULL THEN 'DISABLED' ELSE 'ENABLED' END AS VARCHAR2(8)) DEF_COMPRESSION, CAST(TB.COMPRESS_FUNC_NAME AS VARCHAR2(30)) DEF_COMPRESS_FOR, CAST(NULL AS VARCHAR2(7)) DEF_BUFFER_POOL, CAST(NULL AS VARCHAR2(7)) DEF_FLASH_CACHE, CAST(NULL AS VARCHAR2(7)) DEF_CELL_FLASH_CACHE, CAST(NULL AS VARCHAR2(128)) REF_PTN_CONSTRAINT_NAME, CAST(TB.INTERVAL_RANGE AS VARCHAR2(1000)) "INTERVAL", CAST('NO' AS VARCHAR2(3)) AUTOLIST, CAST(NULL AS VARCHAR2(1000)) INTERVAL_SUBPARTITION, CAST('NO' AS VARCHAR2(3)) AUTOLIST_SUBPARTITION, CAST(NULL AS VARCHAR2(3)) IS_NESTED, CAST(NULL AS VARCHAR2(4)) DEF_SEGMENT_CREATED, CAST(NULL AS VARCHAR2(3)) DEF_INDEXING, CAST(NULL AS VARCHAR2(8)) DEF_INMEMORY, CAST(NULL AS VARCHAR2(8)) DEF_INMEMORY_PRIORITY, CAST(NULL AS VARCHAR2(15)) DEF_INMEMORY_DISTRIBUTE, CAST(NULL AS VARCHAR2(17)) DEF_INMEMORY_COMPRESSION, CAST(NULL AS VARCHAR2(13)) DEF_INMEMORY_DUPLICATE, CAST(NULL AS VARCHAR2(3)) DEF_READ_ONLY, CAST(NULL AS VARCHAR2(24)) DEF_CELLMEMORY, CAST(NULL AS VARCHAR2(12)) DEF_INMEMORY_SERVICE, CAST(NULL AS VARCHAR2(1000)) DEF_INMEMORY_SERVICE_NAME, CAST('NO' AS VARCHAR2(3)) AUTO FROM SYS.ALL_VIRTUAL_TABLE_REAL_AGENT TB JOIN SYS.ALL_VIRTUAL_DATABASE_REAL_AGENT DB ON TB.TENANT_ID = DB.TENANT_ID AND TB.DATABASE_ID = DB.DATABASE_ID JOIN (SELECT TABLE_ID, SUM(CASE WHEN BITAND(PARTITION_KEY_POSITION, 255) > 0 THEN 1 ELSE 0 END) AS PART_KEY_COUNT, SUM(CASE WHEN BITAND(PARTITION_KEY_POSITION, 65280) > 0 THEN 1 ELSE 0 END) AS SUBPART_KEY_COUNT FROM SYS.ALL_VIRTUAL_COLUMN_REAL_AGENT WHERE PARTITION_KEY_POSITION > 0 GROUP BY TENANT_ID, TABLE_ID) PART_INFO ON TB.TABLE_ID = PART_INFO.TABLE_ID LEFT JOIN SYS.ALL_VIRTUAL_TENANT_TABLESPACE_REAL_AGENT TP ON TB.TENANT_ID = TP.TENANT_ID AND TP.TABLESPACE_ID = TB.TABLESPACE_ID WHERE TB.TENANT_ID = EFFECTIVE_TENANT_ID() AND TB.TABLE_TYPE IN (3, 8, 9) AND TB.PART_LEVEL != 0 )__"))) { + if (OB_FAIL(table_schema.set_view_definition(R"__( SELECT CAST(DB.DATABASE_NAME AS VARCHAR2(128)) OWNER, CAST(TB.TABLE_NAME AS VARCHAR2(128)) TABLE_NAME, CAST(CASE TB.PART_FUNC_TYPE WHEN 0 THEN 'HASH' WHEN 1 THEN 'HASH' WHEN 2 THEN 'HASH' WHEN 3 THEN 'RANGE' WHEN 4 THEN 'RANGE' WHEN 5 THEN 'LIST' WHEN 6 THEN 'LIST' WHEN 7 THEN 'RANGE' END AS VARCHAR2(9)) PARTITIONING_TYPE, CAST (DECODE(TB.PART_LEVEL, 1, 'NONE', 2, DECODE(TB.SUB_PART_FUNC_TYPE, 0, 'HASH', 1, 'HASH', 2, 'HASH', 3, 'RANGE', 4, 'RANGE', 5, 'LIST', 6, 'LIST', 7, 'RANGE')) AS VARCHAR2(9)) SUBPARTITIONING_TYPE, CAST(DECODE(TB.PART_FUNC_TYPE, 7, 1048575, TB.PART_NUM) AS NUMBER) PARTITION_COUNT, CAST (DECODE (TB.PART_LEVEL, 1, 0, 2, (CASE WHEN TB.SUB_PART_TEMPLATE_FLAGS > 0 THEN TB.SUB_PART_NUM ELSE 1 END) ) AS NUMBER) DEF_SUBPARTITION_COUNT, CAST(PART_INFO.PART_KEY_COUNT AS NUMBER) PARTITIONING_KEY_COUNT, CAST (DECODE (TB.PART_LEVEL, 1, 0, 2, PART_INFO.SUBPART_KEY_COUNT) AS NUMBER) SUBPARTITIONING_KEY_COUNT, CAST(NULL AS VARCHAR2(8)) STATUS, CAST(TP.TABLESPACE_NAME AS VARCHAR2(30)) DEF_TABLESPACE_NAME, CAST(NULL AS NUMBER) DEF_PCT_FREE, CAST(NULL AS NUMBER) DEF_PCT_USED, CAST(NULL AS NUMBER) DEF_INI_TRANS, CAST(NULL AS NUMBER) DEF_MAX_TRANS, CAST(NULL AS VARCHAR2(40)) DEF_INITIAL_EXTENT, CAST(NULL AS VARCHAR2(40)) DEF_NEXT_EXTENT, CAST(NULL AS VARCHAR2(40)) DEF_MIN_EXTENTS, CAST(NULL AS VARCHAR2(40)) DEF_MAX_EXTENTS, CAST(NULL AS VARCHAR2(40)) DEF_MAX_SIZE, CAST(NULL AS VARCHAR2(40)) DEF_PCT_INCREASE, CAST(NULL AS NUMBER) DEF_FREELISTS, CAST(NULL AS NUMBER) DEF_FREELIST_GROUPS, CAST(NULL AS VARCHAR2(7)) DEF_LOGGING, CAST(CASE WHEN TB.COMPRESS_FUNC_NAME IS NULL THEN 'DISABLED' ELSE 'ENABLED' END AS VARCHAR2(8)) DEF_COMPRESSION, CAST(TB.COMPRESS_FUNC_NAME AS VARCHAR2(30)) DEF_COMPRESS_FOR, CAST(NULL AS VARCHAR2(7)) DEF_BUFFER_POOL, CAST(NULL AS VARCHAR2(7)) DEF_FLASH_CACHE, CAST(NULL AS VARCHAR2(7)) DEF_CELL_FLASH_CACHE, CAST(NULL AS VARCHAR2(128)) REF_PTN_CONSTRAINT_NAME, CAST(TB.INTERVAL_RANGE AS VARCHAR2(1000)) "INTERVAL", CAST('NO' AS VARCHAR2(3)) AUTOLIST, CAST(NULL AS VARCHAR2(1000)) INTERVAL_SUBPARTITION, CAST('NO' AS VARCHAR2(3)) AUTOLIST_SUBPARTITION, CAST(NULL AS VARCHAR2(3)) IS_NESTED, CAST(NULL AS VARCHAR2(4)) DEF_SEGMENT_CREATED, CAST(NULL AS VARCHAR2(3)) DEF_INDEXING, CAST(NULL AS VARCHAR2(8)) DEF_INMEMORY, CAST(NULL AS VARCHAR2(8)) DEF_INMEMORY_PRIORITY, CAST(NULL AS VARCHAR2(15)) DEF_INMEMORY_DISTRIBUTE, CAST(NULL AS VARCHAR2(17)) DEF_INMEMORY_COMPRESSION, CAST(NULL AS VARCHAR2(13)) DEF_INMEMORY_DUPLICATE, CAST(NULL AS VARCHAR2(3)) DEF_READ_ONLY, CAST(NULL AS VARCHAR2(24)) DEF_CELLMEMORY, CAST(NULL AS VARCHAR2(12)) DEF_INMEMORY_SERVICE, CAST(NULL AS VARCHAR2(1000)) DEF_INMEMORY_SERVICE_NAME, CAST('NO' AS VARCHAR2(3)) AUTO FROM SYS.ALL_VIRTUAL_TABLE_REAL_AGENT TB JOIN SYS.ALL_VIRTUAL_DATABASE_REAL_AGENT DB ON TB.TENANT_ID = DB.TENANT_ID AND TB.DATABASE_ID = DB.DATABASE_ID JOIN (SELECT TABLE_ID, SUM(CASE WHEN BITAND(PARTITION_KEY_POSITION, 255) > 0 THEN 1 ELSE 0 END) AS PART_KEY_COUNT, SUM(CASE WHEN BITAND(PARTITION_KEY_POSITION, 65280) > 0 THEN 1 ELSE 0 END) AS SUBPART_KEY_COUNT FROM SYS.ALL_VIRTUAL_COLUMN_REAL_AGENT WHERE PARTITION_KEY_POSITION > 0 GROUP BY TENANT_ID, TABLE_ID) PART_INFO ON TB.TABLE_ID = PART_INFO.TABLE_ID LEFT JOIN SYS.ALL_VIRTUAL_TENANT_TABLESPACE_REAL_AGENT TP ON TB.TENANT_ID = TP.TENANT_ID AND TP.TABLESPACE_ID = TB.TABLESPACE_ID WHERE TB.TENANT_ID = EFFECTIVE_TENANT_ID() AND TB.TABLE_TYPE IN (3, 8, 9) AND TB.PART_LEVEL != 0 )__"))) { LOG_ERROR("fail to set view_definition", K(ret)); } } @@ -1309,7 +1309,7 @@ int ObInnerTableSchema::user_part_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(TB.TABLE_NAME AS VARCHAR2(128)) TABLE_NAME, CAST(CASE TB.PART_FUNC_TYPE WHEN 0 THEN 'HASH' WHEN 1 THEN 'HASH' WHEN 2 THEN 'HASH' WHEN 3 THEN 'RANGE' WHEN 4 THEN 'RANGE' WHEN 5 THEN 'LIST' WHEN 6 THEN 'LIST' WHEN 7 THEN 'RANGE' END AS VARCHAR2(9)) PARTITIONING_TYPE, CAST (DECODE(TB.PART_LEVEL, 1, 'NONE', 2, DECODE(TB.SUB_PART_FUNC_TYPE, 0, 'HASH', 1, 'HASH', 2, 'HASH', 3, 'RANGE', 4, 'RANGE', 5, 'LIST', 6, 'LIST', 7, 'RANGE')) AS VARCHAR2(9)) SUBPARTITIONING_TYPE, CAST(DECODE(TB.PART_FUNC_TYPE, 7, 1048575, TB.PART_NUM) AS NUMBER) PARTITION_COUNT, CAST (DECODE (TB.PART_LEVEL, 1, 0, 2, (CASE WHEN TB.SUB_PART_TEMPLATE_FLAGS > 0 THEN TB.SUB_PART_NUM ELSE 0 END) ) AS NUMBER) DEF_SUBPARTITION_COUNT, CAST(PART_INFO.PART_KEY_COUNT AS NUMBER) PARTITIONING_KEY_COUNT, CAST (DECODE (TB.PART_LEVEL, 1, 0, 2, PART_INFO.SUBPART_KEY_COUNT) AS NUMBER) SUBPARTITIONING_KEY_COUNT, CAST(NULL AS VARCHAR2(8)) STATUS, CAST(TP.TABLESPACE_NAME AS VARCHAR2(30)) DEF_TABLESPACE_NAME, CAST(NULL AS NUMBER) DEF_PCT_FREE, CAST(NULL AS NUMBER) DEF_PCT_USED, CAST(NULL AS NUMBER) DEF_INI_TRANS, CAST(NULL AS NUMBER) DEF_MAX_TRANS, CAST(NULL AS VARCHAR2(40)) DEF_INITIAL_EXTENT, CAST(NULL AS VARCHAR2(40)) DEF_NEXT_EXTENT, CAST(NULL AS VARCHAR2(40)) DEF_MIN_EXTENTS, CAST(NULL AS VARCHAR2(40)) DEF_MAX_EXTENTS, CAST(NULL AS VARCHAR2(40)) DEF_MAX_SIZE, CAST(NULL AS VARCHAR2(40)) DEF_PCT_INCREASE, CAST(NULL AS NUMBER) DEF_FREELISTS, CAST(NULL AS NUMBER) DEF_FREELIST_GROUPS, CAST(NULL AS VARCHAR2(7)) DEF_LOGGING, CAST(CASE WHEN TB.COMPRESS_FUNC_NAME IS NULL THEN 'DISABLED' ELSE 'ENABLED' END AS VARCHAR2(8)) DEF_COMPRESSION, CAST(TB.COMPRESS_FUNC_NAME AS VARCHAR2(30)) DEF_COMPRESS_FOR, CAST(NULL AS VARCHAR2(7)) DEF_BUFFER_POOL, CAST(NULL AS VARCHAR2(7)) DEF_FLASH_CACHE, CAST(NULL AS VARCHAR2(7)) DEF_CELL_FLASH_CACHE, CAST(NULL AS VARCHAR2(128)) REF_PTN_CONSTRAINT_NAME, CAST(TB.INTERVAL_RANGE AS VARCHAR2(1000)) "INTERVAL", CAST('NO' AS VARCHAR2(3)) AUTOLIST, CAST(NULL AS VARCHAR2(1000)) INTERVAL_SUBPARTITION, CAST('NO' AS VARCHAR2(3)) AUTOLIST_SUBPARTITION, CAST(NULL AS VARCHAR2(3)) IS_NESTED, CAST(NULL AS VARCHAR2(4)) DEF_SEGMENT_CREATED, CAST(NULL AS VARCHAR2(3)) DEF_INDEXING, CAST(NULL AS VARCHAR2(8)) DEF_INMEMORY, CAST(NULL AS VARCHAR2(8)) DEF_INMEMORY_PRIORITY, CAST(NULL AS VARCHAR2(15)) DEF_INMEMORY_DISTRIBUTE, CAST(NULL AS VARCHAR2(17)) DEF_INMEMORY_COMPRESSION, CAST(NULL AS VARCHAR2(13)) DEF_INMEMORY_DUPLICATE, CAST(NULL AS VARCHAR2(3)) DEF_READ_ONLY, CAST(NULL AS VARCHAR2(24)) DEF_CELLMEMORY, CAST(NULL AS VARCHAR2(12)) DEF_INMEMORY_SERVICE, CAST(NULL AS VARCHAR2(1000)) DEF_INMEMORY_SERVICE_NAME, CAST('NO' AS VARCHAR2(3)) AUTO FROM SYS.ALL_VIRTUAL_TABLE_REAL_AGENT TB JOIN SYS.ALL_VIRTUAL_DATABASE_REAL_AGENT DB ON TB.TENANT_ID = DB.TENANT_ID AND TB.DATABASE_ID = DB.DATABASE_ID AND TB.DATABASE_ID = USERENV('SCHEMAID') JOIN (SELECT TABLE_ID, SUM(CASE WHEN BITAND(PARTITION_KEY_POSITION, 255) > 0 THEN 1 ELSE 0 END) AS PART_KEY_COUNT, SUM(CASE WHEN BITAND(PARTITION_KEY_POSITION, 65280) > 0 THEN 1 ELSE 0 END) AS SUBPART_KEY_COUNT FROM SYS.ALL_VIRTUAL_COLUMN_REAL_AGENT WHERE PARTITION_KEY_POSITION > 0 GROUP BY TENANT_ID, TABLE_ID) PART_INFO ON TB.TABLE_ID = PART_INFO.TABLE_ID LEFT JOIN SYS.ALL_VIRTUAL_TENANT_TABLESPACE_REAL_AGENT TP ON TB.TENANT_ID = TP.TENANT_ID AND TP.TABLESPACE_ID = TB.TABLESPACE_ID WHERE TB.TENANT_ID = EFFECTIVE_TENANT_ID() AND TB.TABLE_TYPE IN (3, 8, 9) AND TB.PART_LEVEL != 0 )__"))) { + if (OB_FAIL(table_schema.set_view_definition(R"__( SELECT CAST(TB.TABLE_NAME AS VARCHAR2(128)) TABLE_NAME, CAST(CASE TB.PART_FUNC_TYPE WHEN 0 THEN 'HASH' WHEN 1 THEN 'HASH' WHEN 2 THEN 'HASH' WHEN 3 THEN 'RANGE' WHEN 4 THEN 'RANGE' WHEN 5 THEN 'LIST' WHEN 6 THEN 'LIST' WHEN 7 THEN 'RANGE' END AS VARCHAR2(9)) PARTITIONING_TYPE, CAST (DECODE(TB.PART_LEVEL, 1, 'NONE', 2, DECODE(TB.SUB_PART_FUNC_TYPE, 0, 'HASH', 1, 'HASH', 2, 'HASH', 3, 'RANGE', 4, 'RANGE', 5, 'LIST', 6, 'LIST', 7, 'RANGE')) AS VARCHAR2(9)) SUBPARTITIONING_TYPE, CAST(DECODE(TB.PART_FUNC_TYPE, 7, 1048575, TB.PART_NUM) AS NUMBER) PARTITION_COUNT, CAST (DECODE (TB.PART_LEVEL, 1, 0, 2, (CASE WHEN TB.SUB_PART_TEMPLATE_FLAGS > 0 THEN TB.SUB_PART_NUM ELSE 1 END) ) AS NUMBER) DEF_SUBPARTITION_COUNT, CAST(PART_INFO.PART_KEY_COUNT AS NUMBER) PARTITIONING_KEY_COUNT, CAST (DECODE (TB.PART_LEVEL, 1, 0, 2, PART_INFO.SUBPART_KEY_COUNT) AS NUMBER) SUBPARTITIONING_KEY_COUNT, CAST(NULL AS VARCHAR2(8)) STATUS, CAST(TP.TABLESPACE_NAME AS VARCHAR2(30)) DEF_TABLESPACE_NAME, CAST(NULL AS NUMBER) DEF_PCT_FREE, CAST(NULL AS NUMBER) DEF_PCT_USED, CAST(NULL AS NUMBER) DEF_INI_TRANS, CAST(NULL AS NUMBER) DEF_MAX_TRANS, CAST(NULL AS VARCHAR2(40)) DEF_INITIAL_EXTENT, CAST(NULL AS VARCHAR2(40)) DEF_NEXT_EXTENT, CAST(NULL AS VARCHAR2(40)) DEF_MIN_EXTENTS, CAST(NULL AS VARCHAR2(40)) DEF_MAX_EXTENTS, CAST(NULL AS VARCHAR2(40)) DEF_MAX_SIZE, CAST(NULL AS VARCHAR2(40)) DEF_PCT_INCREASE, CAST(NULL AS NUMBER) DEF_FREELISTS, CAST(NULL AS NUMBER) DEF_FREELIST_GROUPS, CAST(NULL AS VARCHAR2(7)) DEF_LOGGING, CAST(CASE WHEN TB.COMPRESS_FUNC_NAME IS NULL THEN 'DISABLED' ELSE 'ENABLED' END AS VARCHAR2(8)) DEF_COMPRESSION, CAST(TB.COMPRESS_FUNC_NAME AS VARCHAR2(30)) DEF_COMPRESS_FOR, CAST(NULL AS VARCHAR2(7)) DEF_BUFFER_POOL, CAST(NULL AS VARCHAR2(7)) DEF_FLASH_CACHE, CAST(NULL AS VARCHAR2(7)) DEF_CELL_FLASH_CACHE, CAST(NULL AS VARCHAR2(128)) REF_PTN_CONSTRAINT_NAME, CAST(TB.INTERVAL_RANGE AS VARCHAR2(1000)) "INTERVAL", CAST('NO' AS VARCHAR2(3)) AUTOLIST, CAST(NULL AS VARCHAR2(1000)) INTERVAL_SUBPARTITION, CAST('NO' AS VARCHAR2(3)) AUTOLIST_SUBPARTITION, CAST(NULL AS VARCHAR2(3)) IS_NESTED, CAST(NULL AS VARCHAR2(4)) DEF_SEGMENT_CREATED, CAST(NULL AS VARCHAR2(3)) DEF_INDEXING, CAST(NULL AS VARCHAR2(8)) DEF_INMEMORY, CAST(NULL AS VARCHAR2(8)) DEF_INMEMORY_PRIORITY, CAST(NULL AS VARCHAR2(15)) DEF_INMEMORY_DISTRIBUTE, CAST(NULL AS VARCHAR2(17)) DEF_INMEMORY_COMPRESSION, CAST(NULL AS VARCHAR2(13)) DEF_INMEMORY_DUPLICATE, CAST(NULL AS VARCHAR2(3)) DEF_READ_ONLY, CAST(NULL AS VARCHAR2(24)) DEF_CELLMEMORY, CAST(NULL AS VARCHAR2(12)) DEF_INMEMORY_SERVICE, CAST(NULL AS VARCHAR2(1000)) DEF_INMEMORY_SERVICE_NAME, CAST('NO' AS VARCHAR2(3)) AUTO FROM SYS.ALL_VIRTUAL_TABLE_REAL_AGENT TB JOIN SYS.ALL_VIRTUAL_DATABASE_REAL_AGENT DB ON TB.TENANT_ID = DB.TENANT_ID AND TB.DATABASE_ID = DB.DATABASE_ID AND TB.DATABASE_ID = USERENV('SCHEMAID') JOIN (SELECT TABLE_ID, SUM(CASE WHEN BITAND(PARTITION_KEY_POSITION, 255) > 0 THEN 1 ELSE 0 END) AS PART_KEY_COUNT, SUM(CASE WHEN BITAND(PARTITION_KEY_POSITION, 65280) > 0 THEN 1 ELSE 0 END) AS SUBPART_KEY_COUNT FROM SYS.ALL_VIRTUAL_COLUMN_REAL_AGENT WHERE PARTITION_KEY_POSITION > 0 GROUP BY TENANT_ID, TABLE_ID) PART_INFO ON TB.TABLE_ID = PART_INFO.TABLE_ID LEFT JOIN SYS.ALL_VIRTUAL_TENANT_TABLESPACE_REAL_AGENT TP ON TB.TENANT_ID = TP.TENANT_ID AND TP.TABLESPACE_ID = TB.TABLESPACE_ID WHERE TB.TENANT_ID = EFFECTIVE_TENANT_ID() AND TB.TABLE_TYPE IN (3, 8, 9) AND TB.PART_LEVEL != 0 )__"))) { 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 6b966c7ecd..002f566b28 100644 --- a/src/share/inner_table/ob_inner_table_schema_def.py +++ b/src/share/inner_table/ob_inner_table_schema_def.py @@ -16858,7 +16858,7 @@ def_table_schema( ELSE TB.PART_NUM END) AS SIGNED) PARTITION_COUNT, CAST ((CASE TB.PART_LEVEL WHEN 1 THEN 0 - WHEN 2 THEN (CASE WHEN TB.SUB_PART_TEMPLATE_FLAGS > 0 THEN TB.SUB_PART_NUM ELSE 0 END) + WHEN 2 THEN (CASE WHEN TB.SUB_PART_TEMPLATE_FLAGS > 0 THEN TB.SUB_PART_NUM ELSE 1 END) END) AS SIGNED) DEF_SUBPARTITION_COUNT, CAST(PART_INFO.PART_KEY_COUNT AS SIGNED) PARTITIONING_KEY_COUNT, CAST((CASE TB.PART_LEVEL @@ -18152,7 +18152,7 @@ def_table_schema( ELSE TB.PART_NUM END) AS SIGNED) PARTITION_COUNT, CAST ((CASE TB.PART_LEVEL WHEN 1 THEN 0 - WHEN 2 THEN (CASE WHEN TB.SUB_PART_TEMPLATE_FLAGS > 0 THEN TB.SUB_PART_NUM ELSE 0 END) + WHEN 2 THEN (CASE WHEN TB.SUB_PART_TEMPLATE_FLAGS > 0 THEN TB.SUB_PART_NUM ELSE 1 END) END) AS SIGNED) DEF_SUBPARTITION_COUNT, CAST(PART_INFO.PART_KEY_COUNT AS SIGNED) PARTITIONING_KEY_COUNT, CAST((CASE TB.PART_LEVEL @@ -31493,7 +31493,7 @@ def_table_schema( TB.PART_NUM) AS NUMBER) PARTITION_COUNT, CAST (DECODE (TB.PART_LEVEL, 1, 0, - 2, (CASE WHEN TB.SUB_PART_TEMPLATE_FLAGS > 0 THEN TB.SUB_PART_NUM ELSE 0 END) + 2, (CASE WHEN TB.SUB_PART_TEMPLATE_FLAGS > 0 THEN TB.SUB_PART_NUM ELSE 1 END) ) AS NUMBER) DEF_SUBPARTITION_COUNT, CAST(PART_INFO.PART_KEY_COUNT AS NUMBER) PARTITIONING_KEY_COUNT, CAST (DECODE (TB.PART_LEVEL, @@ -31607,7 +31607,7 @@ def_table_schema( TB.PART_NUM) AS NUMBER) PARTITION_COUNT, CAST (DECODE (TB.PART_LEVEL, 1, 0, - 2, (CASE WHEN TB.SUB_PART_TEMPLATE_FLAGS > 0 THEN TB.SUB_PART_NUM ELSE 0 END) + 2, (CASE WHEN TB.SUB_PART_TEMPLATE_FLAGS > 0 THEN TB.SUB_PART_NUM ELSE 1 END) ) AS NUMBER) DEF_SUBPARTITION_COUNT, CAST(PART_INFO.PART_KEY_COUNT AS NUMBER) PARTITIONING_KEY_COUNT, CAST (DECODE (TB.PART_LEVEL, @@ -31719,7 +31719,7 @@ def_table_schema( TB.PART_NUM) AS NUMBER) PARTITION_COUNT, CAST (DECODE (TB.PART_LEVEL, 1, 0, - 2, (CASE WHEN TB.SUB_PART_TEMPLATE_FLAGS > 0 THEN TB.SUB_PART_NUM ELSE 0 END) + 2, (CASE WHEN TB.SUB_PART_TEMPLATE_FLAGS > 0 THEN TB.SUB_PART_NUM ELSE 1 END) ) AS NUMBER) DEF_SUBPARTITION_COUNT, CAST(PART_INFO.PART_KEY_COUNT AS NUMBER) PARTITIONING_KEY_COUNT, CAST (DECODE (TB.PART_LEVEL, -- GitLab