support displaying the correct DEFAULT_CHARACTER_SET_NAME and DEFAULT_COLLATION_NAME

This commit is contained in:
dimstars
2023-04-13 08:44:07 +00:00
committed by ob-robot
parent 3926fdba2f
commit e175a19daa
4 changed files with 10 additions and 10 deletions

View File

@ -160,7 +160,7 @@ int ObInnerTableSchema::schemata_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 'def' AS CATALOG_NAME, DATABASE_NAME AS SCHEMA_NAME, 'utf8mb4' AS DEFAULT_CHARACTER_SET_NAME, 'utf8mb4_general_ci' AS DEFAULT_COLLATION_NAME, NULL AS SQL_PATH, 'NO' as DEFAULT_ENCRYPTION FROM oceanbase.__all_database a WHERE a.tenant_id = 0 and in_recyclebin = 0 and database_name != '__recyclebin' )__"))) {
if (OB_FAIL(table_schema.set_view_definition(R"__( SELECT 'def' AS CATALOG_NAME, DATABASE_NAME AS SCHEMA_NAME, b.charset AS DEFAULT_CHARACTER_SET_NAME, b.collation AS DEFAULT_COLLATION_NAME, NULL AS SQL_PATH, 'NO' as DEFAULT_ENCRYPTION FROM oceanbase.__all_database a left join oceanbase.__tenant_virtual_collation b ON a.collation_type = b.collation_type WHERE a.tenant_id = 0 and in_recyclebin = 0 and database_name != '__recyclebin' )__"))) {
LOG_ERROR("fail to set view_definition", K(ret));
}
}

View File

@ -11808,11 +11808,11 @@ def_table_schema(
view_definition = """
SELECT 'def' AS CATALOG_NAME,
DATABASE_NAME AS SCHEMA_NAME,
'utf8mb4' AS DEFAULT_CHARACTER_SET_NAME,
'utf8mb4_general_ci' AS DEFAULT_COLLATION_NAME,
b.charset AS DEFAULT_CHARACTER_SET_NAME,
b.collation AS DEFAULT_COLLATION_NAME,
NULL AS SQL_PATH,
'NO' as DEFAULT_ENCRYPTION
FROM oceanbase.__all_database a
FROM oceanbase.__all_database a left join oceanbase.__tenant_virtual_collation b ON a.collation_type = b.collation_type
WHERE a.tenant_id = 0
and in_recyclebin = 0
and database_name != '__recyclebin'

View File

@ -111,8 +111,8 @@ desc schemata;
Field Type Null Key Default Extra
CATALOG_NAME varchar(3) NO
SCHEMA_NAME varchar(128) NO
DEFAULT_CHARACTER_SET_NAME varchar(7) NO
DEFAULT_COLLATION_NAME varchar(18) NO
DEFAULT_CHARACTER_SET_NAME varchar(128) NO
DEFAULT_COLLATION_NAME varchar(128) NO
SQL_PATH null NO
DEFAULT_ENCRYPTION varchar(2) NO
desc session_status;
@ -256,7 +256,7 @@ View Create View character_set_client collation_connection
SCHEMA_PRIVILEGES CREATE VIEW `SCHEMA_PRIVILEGES` AS SELECT CAST(CONCAT('''', V.USER_NAME, '''', '@', '''', V.HOST, '''') AS CHAR(81)) AS GRANTEE , CAST('def' AS CHAR(512)) AS TABLE_CATALOG , CAST(V.DATABASE_NAME AS CHAR(128)) AS TABLE_SCHEMA , CAST(V.PRIVILEGE_TYPE AS CHAR(64)) AS PRIVILEGE_TYPE , CAST(V.IS_GRANTABLE AS CHAR(3)) AS IS_GRANTABLE FROM (SELECT DP.DATABASE_NAME DATABASE_NAME, U.USER_NAME AS USER_NAME, U.HOST AS HOST, CASE WHEN V1.C1 = 1 AND DP.PRIV_ALTER = 1 THEN 'ALTER' WHEN V1.C1 = 2 AND DP.PRIV_CREATE = 1 THEN 'CREATE' WHEN V1.C1 = 4 AND DP.PRIV_DELETE = 1 THEN 'DELETE' WHEN V1.C1 = 5 AND DP.PRIV_DROP = 1 THEN 'DROP' WHEN V1.C1 = 7 AND DP.PRIV_INSERT = 1 THEN 'INSERT' WHEN V1.C1 = 8 AND DP.PRIV_UPDATE = 1 THEN 'UPDATE' WHEN V1.C1 = 9 AND DP.PRIV_SELECT = 1 THEN 'SELECT' WHEN V1.C1 = 10 AND DP.PRIV_INDEX = 1 THEN 'INDEX' WHEN V1.C1 = 11 AND DP.PRIV_CREATE_VIEW = 1 THEN 'CREATE VIEW' WHEN V1.C1 = 12 AND DP.PRIV_SHOW_VIEW = 1 THEN 'SHOW VIEW' ELSE NULL END PRIVILEGE_TYPE , CASE WHEN DP.PRIV_GRANT_OPTION = 1 THEN 'YES' WHEN DP.PRIV_GRANT_OPTION = 0 THEN 'NO' END IS_GRANTABLE FROM oceanbase.__all_database_privilege DP, oceanbase.__all_user U, (SELECT 1 AS C1 UNION ALL SELECT 2 AS C1 UNION ALL SELECT 4 AS C1 UNION ALL SELECT 5 AS C1 UNION ALL SELECT 7 AS C1 UNION ALL SELECT 8 AS C1 UNION ALL SELECT 9 AS C1 UNION ALL SELECT 10 AS C1 UNION ALL SELECT 11 AS C1 UNION ALL SELECT 12 AS C1) V1, (SELECT USER_ID FROM oceanbase.__all_user WHERE TENANT_ID= 0 AND CONCAT(USER_NAME, '@', HOST) = CURRENT_USER()) CURR LEFT JOIN (SELECT USER_ID FROM oceanbase.__all_database_privilege WHERE TENANT_ID = 0 AND DATABASE_NAME = 'mysql' AND PRIV_SELECT = 1) DB ON CURR.USER_ID = DB.USER_ID WHERE DP.TENANT_ID = 0 AND DP.TENANT_ID = U.TENANT_ID AND DP.USER_ID = U.USER_ID AND DP.DATABASE_NAME != '__recyclebin' AND DP.DATABASE_NAME != '__public' AND DP.DATABASE_NAME != 'SYS' AND DP.DATABASE_NAME != 'LBACSYS' AND DP.DATABASE_NAME != 'ORAAUDITOR' AND (DB.USER_ID IS NOT NULL OR 512 & CURRENT_USER_PRIV() = 512 OR DP.USER_ID = CURR.USER_ID)) V WHERE V.PRIVILEGE_TYPE IS NOT NULL utf8mb4 utf8mb4_general_ci
show create table schemata;
View Create View character_set_client collation_connection
SCHEMATA CREATE VIEW `SCHEMATA` AS SELECT 'def' AS CATALOG_NAME, DATABASE_NAME AS SCHEMA_NAME, 'utf8mb4' AS DEFAULT_CHARACTER_SET_NAME, 'utf8mb4_general_ci' AS DEFAULT_COLLATION_NAME, NULL AS SQL_PATH, 'NO' as DEFAULT_ENCRYPTION FROM oceanbase.__all_database a WHERE a.tenant_id = 0 and in_recyclebin = 0 and database_name != '__recyclebin' utf8mb4 utf8mb4_general_ci
SCHEMATA CREATE VIEW `SCHEMATA` AS SELECT 'def' AS CATALOG_NAME, DATABASE_NAME AS SCHEMA_NAME, b.charset AS DEFAULT_CHARACTER_SET_NAME, b.collation AS DEFAULT_COLLATION_NAME, NULL AS SQL_PATH, 'NO' as DEFAULT_ENCRYPTION FROM oceanbase.__all_database a left join oceanbase.__tenant_virtual_collation b ON a.collation_type = b.collation_type WHERE a.tenant_id = 0 and in_recyclebin = 0 and database_name != '__recyclebin' utf8mb4 utf8mb4_general_ci
show create table session_status;
Table Create Table
SESSION_STATUS CREATE TABLE `SESSION_STATUS` (

View File

@ -4,12 +4,12 @@ CATALOG_NAME SCHEMA_NAME DEFAULT_CHARACTER_SET_NAME DEFAULT_COLLATION_NAME SQL_P
select schema_name from schemata;
show create view schemata;
View Create View character_set_client collation_connection
SCHEMATA CREATE VIEW `SCHEMATA` AS SELECT 'def' AS CATALOG_NAME, DATABASE_NAME AS SCHEMA_NAME, 'utf8mb4' AS DEFAULT_CHARACTER_SET_NAME, 'utf8mb4_general_ci' AS DEFAULT_COLLATION_NAME, NULL AS SQL_PATH, 'NO' as DEFAULT_ENCRYPTION FROM oceanbase.__all_database a WHERE a.tenant_id = 0 and in_recyclebin = 0 and database_name != '__recyclebin' utf8mb4 utf8mb4_general_ci
SCHEMATA CREATE VIEW `SCHEMATA` AS SELECT 'def' AS CATALOG_NAME, DATABASE_NAME AS SCHEMA_NAME, b.charset AS DEFAULT_CHARACTER_SET_NAME, b.collation AS DEFAULT_COLLATION_NAME, NULL AS SQL_PATH, 'NO' as DEFAULT_ENCRYPTION FROM oceanbase.__all_database a left join oceanbase.__tenant_virtual_collation b ON a.collation_type = b.collation_type WHERE a.tenant_id = 0 and in_recyclebin = 0 and database_name != '__recyclebin' utf8mb4 utf8mb4_general_ci
desc schemata;
Field Type Null Key Default Extra
CATALOG_NAME varchar(3) NO
SCHEMA_NAME varchar(128) NO
DEFAULT_CHARACTER_SET_NAME varchar(7) NO
DEFAULT_COLLATION_NAME varchar(18) NO
DEFAULT_CHARACTER_SET_NAME varchar(128) NO
DEFAULT_COLLATION_NAME varchar(128) NO
SQL_PATH null NO
DEFAULT_ENCRYPTION varchar(2) NO