[FEAT MERGE] information_schema enhence

This commit is contained in:
obdev
2023-01-13 03:42:07 +00:00
committed by OB-robot
parent 9ce9e1a357
commit ec56715ea5
98 changed files with 4513 additions and 3156 deletions

View File

@ -306,12 +306,7 @@ select 0xffffffffff & table_id, table_name, table_type, database_id, part_num fr
11115 __all_virtual_io_quota 2 201001 1
11116 __all_virtual_server_compaction_event_history 2 201001 1
12001 SESSION_VARIABLES 2 201002 1
12002 TABLE_PRIVILEGES 2 201002 1
12003 USER_PRIVILEGES 2 201002 1
12004 SCHEMA_PRIVILEGES 2 201002 1
12005 TABLE_CONSTRAINTS 2 201002 1
12006 GLOBAL_STATUS 2 201002 1
12007 PARTITIONS 2 201002 1
12008 SESSION_STATUS 2 201002 1
12009 user 2 201003 1
12010 db 2 201003 1
@ -322,7 +317,6 @@ select 0xffffffffff & table_id, table_name, table_type, database_id, part_num fr
12033 __all_virtual_tenant_memstore_allocator_info 2 201001 1
12034 __all_virtual_table_mgr 2 201001 1
12036 __all_virtual_freeze_info 2 201001 1
12037 PARAMETERS 2 201002 1
12038 __all_virtual_bad_block_table 2 201001 1
12039 __all_virtual_px_worker_stat 2 201001 1
12055 __all_virtual_auto_increment 2 201001 1
@ -425,7 +419,6 @@ select 0xffffffffff & table_id, table_name, table_type, database_id, part_num fr
12167 __all_virtual_backup_info 2 201001 1
12175 __all_virtual_error 2 201001 1
12176 __all_virtual_id_service 2 201001 1
12177 REFERENTIAL_CONSTRAINTS 2 201002 1
12182 __all_virtual_object_type 2 201001 1
12185 __all_virtual_sql_plan_monitor 2 201001 1
12186 __all_virtual_sql_monitor_statname 2 201001 1
@ -452,7 +445,6 @@ select 0xffffffffff & table_id, table_name, table_type, database_id, part_num fr
12218 __all_virtual_column_stat 2 201001 1
12219 __all_virtual_histogram_stat 2 201001 1
12220 __all_virtual_tenant_memory_info 2 201001 1
12221 TRIGGERS 2 201002 1
12222 __tenant_virtual_show_create_trigger 2 201001 1
12223 __all_virtual_px_target_monitor 2 201001 1
12224 __all_virtual_monitor_modified 2 201001 1
@ -466,7 +458,6 @@ select 0xffffffffff & table_id, table_name, table_type, database_id, part_num fr
12232 __all_virtual_log_archive_history 2 201001 1
12233 __all_virtual_log_archive_piece_files 2 201001 1
12234 __all_virtual_ls_log_archive_progress 2 201001 1
12235 CHECK_CONSTRAINTS 2 201002 1
12236 __all_virtual_backup_storage_info 2 201001 1
12237 __all_virtual_ls_status 2 201001 1
12238 __all_virtual_ls 2 201001 1
@ -828,6 +819,15 @@ select 0xffffffffff & table_id, table_name, table_type, database_id, part_num fr
21339 CDB_OB_DATABASE_PRIVILEGE 1 201001 1
21340 DBA_OB_USER_DEFINED_RULES 1 201001 1
21345 DBA_OB_CLUSTER_EVENT_HISTORY 1 201001 1
21346 PARAMETERS 1 201002 1
21347 TABLE_PRIVILEGES 1 201002 1
21348 USER_PRIVILEGES 1 201002 1
21349 SCHEMA_PRIVILEGES 1 201002 1
21350 CHECK_CONSTRAINTS 1 201002 1
21351 REFERENTIAL_CONSTRAINTS 1 201002 1
21352 TABLE_CONSTRAINTS 1 201002 1
21355 TRIGGERS 1 201002 1
21356 PARTITIONS 1 201002 1
check sys table count and table_id range success
check count and table_id range for virtual table success
select * from information_schema.CHARACTER_SETS limit 1;

View File

@ -1,10 +1,10 @@
drop table if exists pt1;
create table pt1 (c1 int primary key, c2 int) partition by key(c1) partitions 3;
select * from information_schema.partitions where table_name = 'pt1';
TABLE_CATALOG TABLE_SCHEMA TABLE_NAME PARTITION_NAME SUBPARTITION_NAME PARTITION_ORDINAL_POSITION SUBPARTITION_ORDINAL_POSITION PARTITION_METHOD SUBPARTITION_METHOD PARTITION_EXPRESSION SUBPARTITION_EXPRESSION PARTITION_DESCRIPTION TABLE_ROWS AVG_ROW_LENGTH DATA_LENGTH MAX_DATA_LENGTH INDEX_LENGTH DATA_FREE CREATE_TIME UPDATE_TIME CHECK_TIME CHECKSUM PARTITION_COMMENT NODEGROUP TABLESPACE_NAME
def test pt1 p0 NULL 1 NULL KEY NULL c1 NULL NULL NULL NULL NULL NULL NULL NULL NULL NULL NULL NULL NULL default NULL
def test pt1 p1 NULL 2 NULL KEY NULL c1 NULL NULL NULL NULL NULL NULL NULL NULL NULL NULL NULL NULL NULL default NULL
def test pt1 p2 NULL 3 NULL KEY NULL c1 NULL NULL NULL NULL NULL NULL NULL NULL NULL NULL NULL NULL NULL default NULL
TABLE_CATALOG TABLE_SCHEMA TABLE_NAME PARTITION_NAME SUBPARTITION_NAME PARTITION_ORDINAL_POSITION SUBPARTITION_ORDINAL_POSITION PARTITION_METHOD SUBPARTITION_METHOD PARTITION_EXPRESSION SUBPARTITION_EXPRESSION PARTITION_DESCRIPTION SUBPARTITION_DESCRIPTION TABLE_ROWS AVG_ROW_LENGTH DATA_LENGTH MAX_DATA_LENGTH INDEX_LENGTH DATA_FREE CREATE_TIME UPDATE_TIME CHECK_TIME CHECKSUM PARTITION_COMMENT NODEGROUP TABLESPACE_NAME
def test pt1 p0 NULL 1 NULL KEY NULL c1 NULL NULL NULL NULL NULL NULL NULL NULL NULL YYYY-MM-DD hh:mm:ss NULL NULL NULL default NULL
def test pt1 p1 NULL 2 NULL KEY NULL c1 NULL NULL NULL NULL NULL NULL NULL NULL NULL YYYY-MM-DD hh:mm:ss NULL NULL NULL default NULL
def test pt1 p2 NULL 3 NULL KEY NULL c1 NULL NULL NULL NULL NULL NULL NULL NULL NULL YYYY-MM-DD hh:mm:ss NULL NULL NULL default NULL
select table_schema, table_name from information_schema.partitions where table_name = 'pt1';
table_schema table_name
test pt1
@ -12,29 +12,30 @@ test pt1
test pt1
desc information_schema.partitions;
Field Type Null Key Default Extra
TABLE_CATALOG varchar(4096) NO
TABLE_CATALOG text NO
TABLE_SCHEMA varchar(128) NO
TABLE_NAME varchar(256) NO
PARTITION_NAME varchar(64) YES NULL
SUBPARTITION_NAME varchar(64) YES NULL
PARTITION_ORDINAL_POSITION bigint(20) unsigned YES NULL
SUBPARTITION_ORDINAL_POSITION bigint(20) unsigned YES NULL
PARTITION_METHOD varchar(18) YES NULL
SUBPARTITION_METHOD varchar(18) YES NULL
PARTITION_EXPRESSION varchar(4096) YES NULL
SUBPARTITION_EXPRESSION varchar(4096) YES NULL
PARTITION_DESCRIPTION varchar(1024) YES NULL
TABLE_ROWS bigint(20) unsigned NO 0
AVG_ROW_LENGTH bigint(20) unsigned NO 0
DATA_LENGTH bigint(20) unsigned NO 0
MAX_DATA_LENGTH bigint(20) unsigned YES NULL
INDEX_LENGTH bigint(20) unsigned NO 0
DATA_FREE bigint(20) unsigned NO 0
PARTITION_NAME varchar(64) NO
SUBPARTITION_NAME varchar(64) NO
PARTITION_ORDINAL_POSITION bigint(20) unsigned NO
SUBPARTITION_ORDINAL_POSITION bigint(20) unsigned NO
PARTITION_METHOD varchar(13) NO
SUBPARTITION_METHOD varchar(13) NO
PARTITION_EXPRESSION text NO
SUBPARTITION_EXPRESSION text NO
PARTITION_DESCRIPTION text NO
SUBPARTITION_DESCRIPTION text NO
TABLE_ROWS bigint(20) unsigned NO NULL
AVG_ROW_LENGTH bigint(21) unsigned NO NULL
DATA_LENGTH bigint(0) unsigned NO
MAX_DATA_LENGTH bigint(0) unsigned NO
INDEX_LENGTH bigint(0) unsigned NO
DATA_FREE bigint(0) unsigned NO
CREATE_TIME timestamp(6) YES NULL
UPDATE_TIME timestamp(6) YES NULL
CHECK_TIME timestamp(6) YES NULL
CHECKSUM bigint(20) YES NULL
PARTITION_COMMENT varchar(1024) NO
NODEGROUP varchar(12) NO
TABLESPACE_NAME varchar(128) YES NULL
UPDATE_TIME datetime NO
CHECK_TIME datetime NO
CHECKSUM bigint(0) NO
PARTITION_COMMENT text NO
NODEGROUP varchar(256) NO
TABLESPACE_NAME varchar(268) NO NULL
drop table pt1;

View File

@ -13,7 +13,7 @@ select * from information_schema.table_constraints where CONSTRAINT_SCHEMA = 'xi
| def | xiaofeng_db | PRIMARY | xiaofeng_db | t1 | PRIMARY KEY | YES |
| def | xiaofeng_db | c1 | xiaofeng_db | t2 | UNIQUE | YES |
| def | xiaofeng_db | test_for_table_constraints_check_name | xiaofeng_db | t2 | CHECK | YES |
| def | xiaofeng_db | test_for_table_constraints_fk_name_2 | xiaofeng_db | t2 | FOREIGN KEY | YES |
| def | xiaofeng_db | test_for_table_constraints_fk_name_1 | xiaofeng_db | t2 | FOREIGN KEY | YES |
| def | xiaofeng_db | test_for_table_constraints_fk_name_2 | xiaofeng_db | t2 | FOREIGN KEY | YES |
+--------------------+-------------------+---------------------------------------+--------------+------------+-----------------+----------+
drop database xiaofeng_db;

View File

@ -3,19 +3,12 @@ create database test_user_priv_db;
use test_user_priv_db;
create table zhan_t1 (a int primary key, b int);
show create table information_schema.table_privileges;
Table Create Table
TABLE_PRIVILEGES CREATE TABLE `TABLE_PRIVILEGES` (
`GRANTEE` varchar(81) NOT NULL DEFAULT '',
`TABLE_CATALOG` varchar(4096) NOT NULL DEFAULT '',
`TABLE_SCHEMA` varchar(128) NOT NULL DEFAULT '',
`TABLE_NAME` varchar(64) NOT NULL DEFAULT '',
`PRIVILEGE_TYPE` varchar(64) NOT NULL DEFAULT '',
`IS_GRANTABLE` varchar(3) NOT NULL DEFAULT ''
) DEFAULT CHARSET = utf8mb4 COMPRESSION = 'none' REPLICA_NUM = NUM BLOCK_SIZE = SIZE USE_BLOOM_FILTER = FALSE TABLET_SIZE = SIZE PCTFREE = 10
View Create View character_set_client collation_connection
TABLE_PRIVILEGES CREATE VIEW `TABLE_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.TABLE_NAME AS CHAR(64)) AS TABLE_NAME, CAST(V.PRIVILEGE_TYPE AS CHAR(64)) AS PRIVILEGE_TYPE , CAST(V.IS_GRANTABLE AS CHAR(3)) AS IS_GRANTABLE FROM (SELECT TP.DATABASE_NAME AS DATABASE_NAME, TP.TABLE_NAME AS TABLE_NAME, U.USER_NAME AS USER_NAME, U.HOST AS HOST, CASE WHEN V1.C1 = 1 AND TP.PRIV_ALTER = 1 THEN 'ALTER' WHEN V1.C1 = 2 AND TP.PRIV_CREATE = 1 THEN 'CREATE' WHEN V1.C1 = 4 AND TP.PRIV_DELETE = 1 THEN 'DELETE' WHEN V1.C1 = 5 AND TP.PRIV_DROP = 1 THEN 'DROP' WHEN V1.C1 = 7 AND TP.PRIV_INSERT = 1 THEN 'INSERT' WHEN V1.C1 = 8 AND TP.PRIV_UPDATE = 1 THEN 'UPDATE' WHEN V1.C1 = 9 AND TP.PRIV_SELECT = 1 THEN 'SELECT' WHEN V1.C1 = 10 AND TP.PRIV_INDEX = 1 THEN 'INDEX' WHEN V1.C1 = 11 AND TP.PRIV_CREATE_VIEW = 1 THEN 'CREATE VIEW' WHEN V1.C1 = 12 AND TP.PRIV_SHOW_VIEW = 1 THEN 'SHOW VIEW' ELSE NULL END PRIVILEGE_TYPE , CASE WHEN TP.PRIV_GRANT_OPTION = 1 THEN 'YES' WHEN TP.PRIV_GRANT_OPTION = 0 THEN 'NO' END IS_GRANTABLE FROM oceanbase.__all_table_privilege TP, 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 TP.TENANT_ID = 0 AND TP.TENANT_ID = U.TENANT_ID AND TP.USER_ID = U.USER_ID AND (DB.USER_ID IS NOT NULL OR 512 & CURRENT_USER_PRIV() = 512 OR TP.USER_ID = CURR.USER_ID)) V WHERE V.PRIVILEGE_TYPE IS NOT NULL utf8mb4 utf8mb4_general_ci
desc information_schema.table_privileges;
Field Type Null Key Default Extra
GRANTEE varchar(81) NO
TABLE_CATALOG varchar(4096) NO
TABLE_CATALOG varchar(512) NO
TABLE_SCHEMA varchar(128) NO
TABLE_NAME varchar(64) NO
PRIVILEGE_TYPE varchar(64) NO

File diff suppressed because one or more lines are too long

View File

@ -13,16 +13,16 @@ mysql time_zone_name
mysql time_zone
show create view views;
View Create View character_set_client collation_connection
VIEWS CREATE VIEW `VIEWS` AS select 'def' AS TABLE_CATALOG, d.database_name as TABLE_SCHEMA, t.table_name as TABLE_NAME, t.view_definition as VIEW_DEFINITION, case t.view_check_option when 1 then 'LOCAL' when 2 then 'CASCADED' else 'NONE' end as CHECK_OPTION, case t.view_is_updatable when 1 then 'YES' else 'NO' end as IS_UPDATABLE, case t.define_user_id when -1 then 'NONE' else concat(u.user_name, '@', u.host) end as DEFINER, 'NONE' AS SECURITY_TYPE, case t.collation_type when 45 then 'utf8mb4' else 'NONE' end AS CHARACTER_SET_CLIENT, case t.collation_type when 45 then 'utf8mb4_general_ci' else 'NONE' end AS COLLATION_CONNECTION from oceanbase.__all_table as t join oceanbase.__all_database as d on t.tenant_id = d.tenant_id and t.database_id = d.database_id left join oceanbase.__all_user as u on t.tenant_id = u.tenant_id and t.define_user_id = u.user_id and t.define_user_id != -1 where t.tenant_id = 0 and t.table_type in (1, 4) and d.in_recyclebin = 0 and d.database_name != '__recyclebin' and d.database_name != 'information_schema' and d.database_name != 'oceanbase' and 0 = sys_privilege_check('table_acc', effective_tenant_id(), d.database_name, t.table_name) utf8mb4 utf8mb4_general_ci
VIEWS CREATE VIEW `VIEWS` AS select cast('def' as CHAR(64)) AS TABLE_CATALOG, d.database_name as TABLE_SCHEMA, t.table_name as TABLE_NAME, t.view_definition as VIEW_DEFINITION, case t.view_check_option when 1 then 'LOCAL' when 2 then 'CASCADED' else 'NONE' end as CHECK_OPTION, case t.view_is_updatable when 1 then 'YES' else 'NO' end as IS_UPDATABLE, cast((case t.define_user_id when -1 then 'NONE' else concat(u.user_name, '@', u.host) end) as CHAR(288)) as DEFINER, cast('NONE' as CHAR(7)) AS SECURITY_TYPE, cast((case t.collation_type when 45 then 'utf8mb4' else 'NONE' end) as CHAR(64)) AS CHARACTER_SET_CLIENT, cast((case t.collation_type when 45 then 'utf8mb4_general_ci' else 'NONE' end) as CHAR(64)) AS COLLATION_CONNECTION from oceanbase.__all_table as t join oceanbase.__all_database as d on t.tenant_id = d.tenant_id and t.database_id = d.database_id left join oceanbase.__all_user as u on t.tenant_id = u.tenant_id and t.define_user_id = u.user_id and t.define_user_id != -1 where t.tenant_id = 0 and t.table_type in (1, 4) and d.in_recyclebin = 0 and d.database_name != '__recyclebin' and d.database_name != 'information_schema' and d.database_name != 'oceanbase' and 0 = sys_privilege_check('table_acc', effective_tenant_id(), d.database_name, t.table_name) utf8mb4 utf8mb4_general_ci
desc views;
Field Type Null Key Default Extra
TABLE_CATALOG varchar(3) NO
TABLE_CATALOG varchar(64) NO
TABLE_SCHEMA varchar(128) NO
TABLE_NAME varchar(256) NO
VIEW_DEFINITION longtext NO NULL
CHECK_OPTION varchar(8) NO NULL
IS_UPDATABLE varchar(3) NO NULL
DEFINER varchar(257) NO
SECURITY_TYPE varchar(4) NO
CHARACTER_SET_CLIENT varchar(7) NO NULL
COLLATION_CONNECTION varchar(18) NO NULL
DEFINER varchar(288) NO
SECURITY_TYPE varchar(7) NO
CHARACTER_SET_CLIENT varchar(64) NO
COLLATION_CONNECTION varchar(64) NO

View File

@ -9,6 +9,7 @@ set @@session.explicit_defaults_for_timestamp=off;
drop table if exists pt1;
--enable_warnings
create table pt1 (c1 int primary key, c2 int) partition by key(c1) partitions 3;
--replace_column 20 "YYYY-MM-DD hh:mm:ss"
select * from information_schema.partitions where table_name = 'pt1';
select table_schema, table_name from information_schema.partitions where table_name = 'pt1';
desc information_schema.partitions;

View File

@ -264,7 +264,7 @@ def substr(v,1) 253 512 0 Y 0 0 45
##cast test
select substr(cast(date_c as char(1024)), 0) from build_in_func_test_table;
Catalog Database Table Table_alias Column Column_alias Type Length Max length Is_null Flags Decimals Charsetnr
def substr(cast(date_c as char(1024)), 0) 253 4096 0 Y 0 0 45
def substr(cast(date_c as char(1024)), 0) 251 536870908 0 Y 16 0 45
+---------------------------------------+
| substr(cast(date_c as char(1024)), 0) |
+---------------------------------------+
@ -272,7 +272,7 @@ def substr(cast(date_c as char(1024)), 0) 253 4096 0 Y 0 0 45
+---------------------------------------+
select substr(cast(date_c as char(1024)), 10) from build_in_func_test_table;
Catalog Database Table Table_alias Column Column_alias Type Length Max length Is_null Flags Decimals Charsetnr
def substr(cast(date_c as char(1024)), 10) 253 4060 17 Y 0 0 45
def substr(cast(date_c as char(1024)), 10) 251 536870908 17 Y 16 0 45
+----------------------------------------+
| substr(cast(date_c as char(1024)), 10) |
+----------------------------------------+
@ -280,7 +280,7 @@ def substr(cast(date_c as char(1024)), 10) 253 4060 17 Y 0 0 45
+----------------------------------------+
select substr(cast(1024 as char(1024)), 1, 2) from build_in_func_test_table;
Catalog Database Table Table_alias Column Column_alias Type Length Max length Is_null Flags Decimals Charsetnr
def substr(cast(1024 as char(1024)), 1, 2) 253 8 2 Y 0 0 45
def substr(cast(1024 as char(1024)), 1, 2) 251 536870908 2 Y 16 0 45
+----------------------------------------+
| substr(cast(1024 as char(1024)), 1, 2) |
+----------------------------------------+
@ -288,7 +288,7 @@ def substr(cast(1024 as char(1024)), 1, 2) 253 8 2 Y 0 0 45
+----------------------------------------+
select substr(cast(date_c as char(1024)) from 10) from build_in_func_test_table;
Catalog Database Table Table_alias Column Column_alias Type Length Max length Is_null Flags Decimals Charsetnr
def substr(cast(date_c as char(1024)) from 10) 253 4060 17 Y 0 0 45
def substr(cast(date_c as char(1024)) from 10) 251 536870908 17 Y 16 0 45
+--------------------------------------------+
| substr(cast(date_c as char(1024)) from 10) |
+--------------------------------------------+
@ -296,7 +296,7 @@ def substr(cast(date_c as char(1024)) from 10) 253 4060 17 Y 0 0 45
+--------------------------------------------+
select substr(cast(date_c as char(1024)) from 10 for 10) from build_in_func_test_table;
Catalog Database Table Table_alias Column Column_alias Type Length Max length Is_null Flags Decimals Charsetnr
def substr(cast(date_c as char(1024)) from 10 for 10) 253 40 10 Y 0 0 45
def substr(cast(date_c as char(1024)) from 10 for 10) 251 536870908 10 Y 16 0 45
+---------------------------------------------------+
| substr(cast(date_c as char(1024)) from 10 for 10) |
+---------------------------------------------------+
@ -572,7 +572,7 @@ def trim(1) 253 4 1 Y 0 0 45
+---------+
select trim(cast(111 as char(1024))) from build_in_func_test_table;
Catalog Database Table Table_alias Column Column_alias Type Length Max length Is_null Flags Decimals Charsetnr
def trim(cast(111 as char(1024))) 253 4096 3 Y 0 0 45
def trim(cast(111 as char(1024))) 252 65532 3 Y 16 0 45
+-------------------------------+
| trim(cast(111 as char(1024))) |
+-------------------------------+
@ -580,7 +580,7 @@ def trim(cast(111 as char(1024))) 253 4096 3 Y 0 0 45
+-------------------------------+
select trim(LEADING '1' from cast(111 as char(1024))) from build_in_func_test_table;
Catalog Database Table Table_alias Column Column_alias Type Length Max length Is_null Flags Decimals Charsetnr
def trim(LEADING '1' from cast(111 as char(1024))) 253 4096 0 Y 0 0 45
def trim(LEADING '1' from cast(111 as char(1024))) 252 65532 0 Y 16 0 45
+------------------------------------------------+
| trim(LEADING '1' from cast(111 as char(1024))) |
+------------------------------------------------+
@ -588,7 +588,7 @@ def trim(LEADING '1' from cast(111 as char(1024))) 253 4096 0 Y 0 0 45
+------------------------------------------------+
select trim(TRAILING '1' from cast(111 as char(1024))) from build_in_func_test_table;
Catalog Database Table Table_alias Column Column_alias Type Length Max length Is_null Flags Decimals Charsetnr
def trim(TRAILING '1' from cast(111 as char(1024))) 253 4096 0 Y 0 0 45
def trim(TRAILING '1' from cast(111 as char(1024))) 252 65532 0 Y 16 0 45
+-------------------------------------------------+
| trim(TRAILING '1' from cast(111 as char(1024))) |
+-------------------------------------------------+
@ -2770,7 +2770,7 @@ def unhex('123') 253 3 2 Y 128 0 63
+--------------+
select unhex(cast(repeat('123',5) as char(1024)));
Catalog Database Table Table_alias Column Column_alias Type Length Max length Is_null Flags Decimals Charsetnr
def unhex(cast(repeat('123',5) as char(1024))) 253 512 8 Y 128 0 63
def unhex(cast(repeat('123',5) as char(1024))) 251 536870911 8 Y 144 0 63
+--------------------------------------------+
| unhex(cast(repeat('123',5) as char(1024))) |
+--------------------------------------------+