1
0
mirror of https://github.com/MariaDB/server.git synced 2025-08-08 11:22:35 +03:00

MDEV-36503 add Pad_attribute column to INFORMATION_SCHEMA.COLLATIONS

Adding a new column in INFORMATION_SCHEMA.COLLATIONS:

  PAD_ATTRIBUTE ENUM('PAD SPACE','NO PAD')

and a new column Pad_attribute into SHOW COLLATION.

The new column has been added after SORTLEN but before COMMENT.
This order is compatible with MySQL-8.0 order,
with the exception that MariaDB has an extra last column COMMENT:

MariaDB [test]> desc information_schema.collations;
+--------------------+----------------------------+------+-----+---------+-------+
| Field              | Type                       | Null | Key | Default | Extra |
+--------------------+----------------------------+------+-----+---------+-------+
| COLLATION_NAME     | varchar(64)                | NO   |     | NULL    |       |
| CHARACTER_SET_NAME | varchar(32)                | YES  |     | NULL    |       |
| ID                 | bigint(11)                 | YES  |     | NULL    |       |
| IS_DEFAULT         | varchar(3)                 | YES  |     | NULL    |       |
| IS_COMPILED        | varchar(3)                 | NO   |     | NULL    |       |
| SORTLEN            | bigint(3)                  | NO   |     | NULL    |       |
| PAD_ATTRIBUTE      | enum('PAD SPACE','NO PAD') | NO   |     | NULL    |       |
| COMMENT            | varchar(80)                | NO   |     | NULL    |       |
+--------------------+----------------------------+------+-----+---------+-------+

The new Pad_attribute in SHOW COLLATION has been added as the last column.
This is also compatible with MySQL:

MariaDB [test]> show collation like 'utf8mb4_bin';
+-------------+---------+------+---------+----------+---------+---------------+
| Collation   | Charset | Id   | Default | Compiled | Sortlen | Pad_attribute |
+-------------+---------+------+---------+----------+---------+---------------+
| utf8mb4_bin | utf8mb4 |   46 |         | Yes      |       1 | PAD SPACE     |
+-------------+---------+------+---------+----------+---------+---------------+
This commit is contained in:
Alexander Barkov
2025-04-09 11:38:33 +04:00
parent 30ed3b867a
commit cf644785e1
16 changed files with 1356 additions and 1323 deletions

View File

@@ -182,17 +182,17 @@ WHERE CHARACTER_SET_NAME='latin1';
CHARACTER_SET_NAME DEFAULT_COLLATE_NAME DESCRIPTION MAXLEN
latin1 latin1_bin cp1252 West European 1
SHOW COLLATION LIKE 'latin1%';
Collation Charset Id Default Compiled Sortlen
latin1_german1_ci latin1 5 Yes 1
latin1_swedish_ci latin1 8 Yes 1
latin1_danish_ci latin1 15 Yes 1
latin1_german2_ci latin1 31 Yes 2
latin1_bin latin1 47 Yes Yes 1
latin1_general_ci latin1 48 Yes 1
latin1_general_cs latin1 49 Yes 1
latin1_spanish_ci latin1 94 Yes 1
latin1_swedish_nopad_ci latin1 1032 Yes 1
latin1_nopad_bin latin1 1071 Yes 1
Collation Charset Id Default Compiled Sortlen Pad_attribute
latin1_german1_ci latin1 5 Yes 1 PAD SPACE
latin1_swedish_ci latin1 8 Yes 1 PAD SPACE
latin1_danish_ci latin1 15 Yes 1 PAD SPACE
latin1_german2_ci latin1 31 Yes 2 PAD SPACE
latin1_bin latin1 47 Yes Yes 1 PAD SPACE
latin1_general_ci latin1 48 Yes 1 PAD SPACE
latin1_general_cs latin1 49 Yes 1 PAD SPACE
latin1_spanish_ci latin1 94 Yes 1 PAD SPACE
latin1_swedish_nopad_ci latin1 1032 Yes 1 NO PAD
latin1_nopad_bin latin1 1071 Yes 1 NO PAD
SELECT COLLATION_NAME, IS_DEFAULT
FROM INFORMATION_SCHEMA.COLLATIONS
WHERE CHARACTER_SET_NAME LIKE 'latin1%';
@@ -229,8 +229,8 @@ WHERE CHARACTER_SET_NAME='utf8mb4';
CHARACTER_SET_NAME DEFAULT_COLLATE_NAME DESCRIPTION MAXLEN
utf8mb4 utf8mb4_uca1400_ai_ci UTF-8 Unicode 4
SHOW COLLATION LIKE '%uca1400_ai_ci%';
Collation Charset Id Default Compiled Sortlen
uca1400_ai_ci NULL NULL NULL Yes 8
Collation Charset Id Default Compiled Sortlen Pad_attribute
uca1400_ai_ci NULL NULL NULL Yes 8 PAD SPACE
SELECT COLLATION_NAME, IS_DEFAULT
FROM INFORMATION_SCHEMA.COLLATIONS
WHERE COLLATION_NAME LIKE '%uca1400_ai_ci%';

View File

@@ -1,8 +1,8 @@
drop table if exists t1;
DROP TABLE IF EXISTS t1;
SHOW COLLATION LIKE 'cp1250_czech_cs';
Collation Charset Id Default Compiled Sortlen
cp1250_czech_cs cp1250 34 Yes 2
Collation Charset Id Default Compiled Sortlen Pad_attribute
cp1250_czech_cs cp1250 34 Yes 2 PAD SPACE
SET @test_character_set= 'cp1250';
SET @test_collation= 'cp1250_general_ci';
SET @safe_character_set_server= @@character_set_server;

View File

@@ -7,8 +7,8 @@ show variables like 'character_sets_dir%';
Variable_name Value
character_sets_dir MYSQL_TEST_DIR/std_data/ldml/
show collation like 'utf8mb3_phone_ci';
Collation Charset Id Default Compiled Sortlen
utf8mb3_phone_ci utf8mb3 352 8
Collation Charset Id Default Compiled Sortlen Pad_attribute
utf8mb3_phone_ci utf8mb3 352 8 PAD SPACE
CREATE TABLE t1 (
name VARCHAR(64),
phone VARCHAR(64) CHARACTER SET utf8 COLLATE utf8_phone_ci
@@ -39,8 +39,8 @@ name phone
Bar +7-912-800-80-01
DROP TABLE t1;
show collation like 'utf8mb3_test_ci';
Collation Charset Id Default Compiled Sortlen
utf8mb3_test_ci utf8mb3 353 8
Collation Charset Id Default Compiled Sortlen Pad_attribute
utf8mb3_test_ci utf8mb3 353 8 PAD SPACE
create table t1 (c1 char(1) character set utf8 collate utf8_test_ci);
insert into t1 values ('a');
select * from t1 where c1='b';
@@ -48,8 +48,8 @@ c1
a
drop table t1;
show collation like 'ucs2_test_ci';
Collation Charset Id Default Compiled Sortlen
ucs2_test_ci ucs2 358 8
Collation Charset Id Default Compiled Sortlen Pad_attribute
ucs2_test_ci ucs2 358 8 PAD SPACE
create table t1 (c1 char(1) character set ucs2 collate ucs2_test_ci);
insert into t1 values ('a');
select * from t1 where c1='b';
@@ -57,8 +57,8 @@ c1
a
drop table t1;
show collation like 'utf8mb4_test_ci';
Collation Charset Id Default Compiled Sortlen
utf8mb4_test_ci utf8mb4 326 8
Collation Charset Id Default Compiled Sortlen Pad_attribute
utf8mb4_test_ci utf8mb4 326 8 PAD SPACE
create table t1 (c1 char(1) character set utf8mb4 collate utf8mb4_test_ci);
insert into t1 values ('a');
select * from t1 where c1='b';
@@ -66,8 +66,8 @@ c1
a
drop table t1;
show collation like 'utf16_test_ci';
Collation Charset Id Default Compiled Sortlen
utf16_test_ci utf16 327 8
Collation Charset Id Default Compiled Sortlen Pad_attribute
utf16_test_ci utf16 327 8 PAD SPACE
create table t1 (c1 char(1) character set utf16 collate utf16_test_ci);
insert into t1 values ('a');
select * from t1 where c1='b';
@@ -75,8 +75,8 @@ c1
a
drop table t1;
show collation like 'utf32_test_ci';
Collation Charset Id Default Compiled Sortlen
utf32_test_ci utf32 391 8
Collation Charset Id Default Compiled Sortlen Pad_attribute
utf32_test_ci utf32 391 8 PAD SPACE
create table t1 (c1 char(1) character set utf32 collate utf32_test_ci);
insert into t1 values ('a');
select * from t1 where c1='b';
@@ -174,8 +174,8 @@ Warning 1265 Data truncated for column 'c1' at row 1
DROP TABLE t1;
Vietnamese experimental collation
show collation like 'ucs2_vn_ci';
Collation Charset Id Default Compiled Sortlen
ucs2_vn_ci ucs2 359 8
Collation Charset Id Default Compiled Sortlen Pad_attribute
ucs2_vn_ci ucs2 359 8 PAD SPACE
create table t1 (c1 char(1) character set ucs2 collate ucs2_vn_ci);
insert into t1 values (0x0061),(0x0041),(0x00E0),(0x00C0),(0x1EA3),(0x1EA2),
(0x00E3),(0x00C3),(0x00E1),(0x00C1),(0x1EA1),(0x1EA0);
@@ -449,69 +449,69 @@ drop table t1;
Bug#46448 trailing spaces are not ignored when user collation maps space != 0x20
set names latin1;
show collation like 'latin1_test';
Collation Charset Id Default Compiled Sortlen
latin1_test latin1 331 1
Collation Charset Id Default Compiled Sortlen Pad_attribute
latin1_test latin1 331 1 PAD SPACE
select "foo" = "foo " collate latin1_test;
"foo" = "foo " collate latin1_test
1
The following tests check that two-byte collation IDs work
select * from information_schema.collations where id>256 and is_compiled<>'Yes' order by id;
COLLATION_NAME CHARACTER_SET_NAME ID IS_DEFAULT IS_COMPILED SORTLEN COMMENT
ascii2_general_nopad_ci ascii2 318 1
ascii2_bin2 ascii2 319 1
ascii2_general_ci ascii2 320 Yes 1
ascii2_bin ascii2 321 1
ascii2_general_inherited_ci ascii2 322 1
ascii2_general_inherited2_ci ascii2 323 1
ascii2_badly_inherited_ci ascii2 324 1
ascii2_nopad_bin ascii2 325 1
utf8mb4_test_ci utf8mb4 326 8
utf16_test_ci utf16 327 8
utf8mb4_test_400_ci utf8mb4 328 8
utf8mb4_test_520_nopad_ci utf8mb4 329 8
utf8mb4_uca1400_test01_as_ci utf8mb4 330 4
latin1_test latin1 331 1 cp1252 West European
latin1_test2 latin1 332 1 cp1252 West European
latin1_test2_cs latin1 333 1 cp1252 West European
latin1_swedish_nopad2_ci latin1 334 1 cp1252 West European
utf8mb3_bengali_standard_ci utf8mb3 336 8
utf8mb3_bengali_traditional_ci utf8mb3 337 8
utf8mb3_implicit_weights_ci utf8mb3 338 8
utf8mb3_phone_ci utf8mb3 352 8
utf8mb3_test_ci utf8mb3 353 8
utf8mb3_5624_1 utf8mb3 354 8
utf8mb3_5624_2 utf8mb3 355 8
utf8mb3_5624_3 utf8mb3 356 8
utf8mb3_5624_4 utf8mb3 357 8
ucs2_test_ci ucs2 358 8
ucs2_vn_ci ucs2 359 8
ucs2_5624_1 ucs2 360 8
utf8mb3_5624_5 utf8mb3 368 8
utf8mb3_5624_5_bad utf8mb3 369 8
utf8mb3_czech_test_w2 utf8mb3 370 4
utf8mb3_czech_test_nopad_w2 utf8mb3 371 4
utf8mb3_czech_test_bad_w2 utf8mb3 372 4
utf32_test_ci utf32 391 8
utf8mb3_maxuserid_ci utf8mb3 2047 8
COLLATION_NAME CHARACTER_SET_NAME ID IS_DEFAULT IS_COMPILED SORTLEN PAD_ATTRIBUTE COMMENT
ascii2_general_nopad_ci ascii2 318 1 NO PAD
ascii2_bin2 ascii2 319 1 PAD SPACE
ascii2_general_ci ascii2 320 Yes 1 PAD SPACE
ascii2_bin ascii2 321 1 PAD SPACE
ascii2_general_inherited_ci ascii2 322 1 PAD SPACE
ascii2_general_inherited2_ci ascii2 323 1 PAD SPACE
ascii2_badly_inherited_ci ascii2 324 1 PAD SPACE
ascii2_nopad_bin ascii2 325 1 NO PAD
utf8mb4_test_ci utf8mb4 326 8 PAD SPACE
utf16_test_ci utf16 327 8 PAD SPACE
utf8mb4_test_400_ci utf8mb4 328 8 PAD SPACE
utf8mb4_test_520_nopad_ci utf8mb4 329 8 NO PAD
utf8mb4_uca1400_test01_as_ci utf8mb4 330 4 PAD SPACE
latin1_test latin1 331 1 PAD SPACE cp1252 West European
latin1_test2 latin1 332 1 PAD SPACE cp1252 West European
latin1_test2_cs latin1 333 1 PAD SPACE cp1252 West European
latin1_swedish_nopad2_ci latin1 334 1 NO PAD cp1252 West European
utf8mb3_bengali_standard_ci utf8mb3 336 8 PAD SPACE
utf8mb3_bengali_traditional_ci utf8mb3 337 8 PAD SPACE
utf8mb3_implicit_weights_ci utf8mb3 338 8 PAD SPACE
utf8mb3_phone_ci utf8mb3 352 8 PAD SPACE
utf8mb3_test_ci utf8mb3 353 8 PAD SPACE
utf8mb3_5624_1 utf8mb3 354 8 PAD SPACE
utf8mb3_5624_2 utf8mb3 355 8 PAD SPACE
utf8mb3_5624_3 utf8mb3 356 8 PAD SPACE
utf8mb3_5624_4 utf8mb3 357 8 PAD SPACE
ucs2_test_ci ucs2 358 8 PAD SPACE
ucs2_vn_ci ucs2 359 8 PAD SPACE
ucs2_5624_1 ucs2 360 8 PAD SPACE
utf8mb3_5624_5 utf8mb3 368 8 PAD SPACE
utf8mb3_5624_5_bad utf8mb3 369 8 PAD SPACE
utf8mb3_czech_test_w2 utf8mb3 370 4 PAD SPACE
utf8mb3_czech_test_nopad_w2 utf8mb3 371 4 NO PAD
utf8mb3_czech_test_bad_w2 utf8mb3 372 4 PAD SPACE
utf32_test_ci utf32 391 8 PAD SPACE
utf8mb3_maxuserid_ci utf8mb3 2047 8 PAD SPACE
show collation like '%test%';
Collation Charset Id Default Compiled Sortlen
latin1_test latin1 331 1
latin1_test2 latin1 332 1
latin1_test2_cs latin1 333 1
utf8mb3_test_ci utf8mb3 353 8
utf8mb3_czech_test_w2 utf8mb3 370 4
utf8mb3_czech_test_nopad_w2 utf8mb3 371 4
utf8mb3_czech_test_bad_w2 utf8mb3 372 4
ucs2_test_ci ucs2 358 8
utf8mb4_test_ci utf8mb4 326 8
utf8mb4_test_400_ci utf8mb4 328 8
utf8mb4_test_520_nopad_ci utf8mb4 329 8
utf8mb4_uca1400_test01_as_ci utf8mb4 330 4
utf16_test_ci utf16 327 8
utf32_test_ci utf32 391 8
Collation Charset Id Default Compiled Sortlen Pad_attribute
latin1_test latin1 331 1 PAD SPACE
latin1_test2 latin1 332 1 PAD SPACE
latin1_test2_cs latin1 333 1 PAD SPACE
utf8mb3_test_ci utf8mb3 353 8 PAD SPACE
utf8mb3_czech_test_w2 utf8mb3 370 4 PAD SPACE
utf8mb3_czech_test_nopad_w2 utf8mb3 371 4 NO PAD
utf8mb3_czech_test_bad_w2 utf8mb3 372 4 PAD SPACE
ucs2_test_ci ucs2 358 8 PAD SPACE
utf8mb4_test_ci utf8mb4 326 8 PAD SPACE
utf8mb4_test_400_ci utf8mb4 328 8 PAD SPACE
utf8mb4_test_520_nopad_ci utf8mb4 329 8 NO PAD
utf8mb4_uca1400_test01_as_ci utf8mb4 330 4 PAD SPACE
utf16_test_ci utf16 327 8 PAD SPACE
utf32_test_ci utf32 391 8 PAD SPACE
show collation like 'ucs2_vn_ci';
Collation Charset Id Default Compiled Sortlen
ucs2_vn_ci ucs2 359 8
Collation Charset Id Default Compiled Sortlen Pad_attribute
ucs2_vn_ci ucs2 359 8 PAD SPACE
create table t1 (c1 char(1) character set ucs2 collate ucs2_vn_ci);
insert into t1 values (0x0061);
set @@character_set_results=NULL;
@@ -530,8 +530,8 @@ b
DROP TABLE t1;
SET NAMES utf8 COLLATE utf8_phone_ci;
show collation like 'utf8mb3_phone_ci';
Collation Charset Id Default Compiled Sortlen
utf8mb3_phone_ci utf8mb3 352 8
Collation Charset Id Default Compiled Sortlen Pad_attribute
utf8mb3_phone_ci utf8mb3 352 8 PAD SPACE
SET NAMES utf8;
SELECT hex(weight_string(_utf8mb4'a' collate utf8mb4_test_400_ci)) as exp;
exp
@@ -3108,7 +3108,7 @@ DROP TABLE case_folding;
# MDEV-7947 my_charset_same: strcmp() takes 0.37% in OLTP RO
#
SHOW COLLATION LIKE 'latin1_test_replace';
Collation Charset Id Default Compiled Sortlen
Collation Charset Id Default Compiled Sortlen Pad_attribute
SELECT 'foo' = 'foo ' COLLATE latin1_test_replace;
ERROR HY000: Unknown collation: 'latin1_test_replace'
#

View File

@@ -47,51 +47,51 @@ utf8mb4_tr_0900_as_cs utf8mb4 utf8mb4_tr_0900_as_cs 288
utf8mb4_vi_0900_ai_ci utf8mb4 utf8mb4_vi_0900_ai_ci 277
utf8mb4_vi_0900_as_cs utf8mb4 utf8mb4_vi_0900_as_cs 300
select * from information_schema.COLLATIONS where collation_name like "%0900%";
COLLATION_NAME CHARACTER_SET_NAME ID IS_DEFAULT IS_COMPILED SORTLEN COMMENT
utf8mb4_0900_ai_ci utf8mb4 255 Yes 8 Alias for utf8mb4_uca1400_nopad_ai_ci
utf8mb4_de_pb_0900_ai_ci utf8mb4 256 Yes 8 Alias for utf8mb4_uca1400_german2_nopad_ai_ci
utf8mb4_is_0900_ai_ci utf8mb4 257 Yes 8 Alias for utf8mb4_uca1400_icelandic_nopad_ai_ci
utf8mb4_lv_0900_ai_ci utf8mb4 258 Yes 8 Alias for utf8mb4_uca1400_latvian_nopad_ai_ci
utf8mb4_ro_0900_ai_ci utf8mb4 259 Yes 8 Alias for utf8mb4_uca1400_romanian_nopad_ai_ci
utf8mb4_sl_0900_ai_ci utf8mb4 260 Yes 8 Alias for utf8mb4_uca1400_slovenian_nopad_ai_ci
utf8mb4_pl_0900_ai_ci utf8mb4 261 Yes 8 Alias for utf8mb4_uca1400_polish_nopad_ai_ci
utf8mb4_et_0900_ai_ci utf8mb4 262 Yes 8 Alias for utf8mb4_uca1400_estonian_nopad_ai_ci
utf8mb4_es_0900_ai_ci utf8mb4 263 Yes 8 Alias for utf8mb4_uca1400_spanish_nopad_ai_ci
utf8mb4_sv_0900_ai_ci utf8mb4 264 Yes 8 Alias for utf8mb4_uca1400_swedish_nopad_ai_ci
utf8mb4_tr_0900_ai_ci utf8mb4 265 Yes 8 Alias for utf8mb4_uca1400_turkish_nopad_ai_ci
utf8mb4_cs_0900_ai_ci utf8mb4 266 Yes 8 Alias for utf8mb4_uca1400_czech_nopad_ai_ci
utf8mb4_da_0900_ai_ci utf8mb4 267 Yes 8 Alias for utf8mb4_uca1400_danish_nopad_ai_ci
utf8mb4_lt_0900_ai_ci utf8mb4 268 Yes 8 Alias for utf8mb4_uca1400_lithuanian_nopad_ai_ci
utf8mb4_sk_0900_ai_ci utf8mb4 269 Yes 8 Alias for utf8mb4_uca1400_slovak_nopad_ai_ci
utf8mb4_es_trad_0900_ai_ci utf8mb4 270 Yes 8 Alias for utf8mb4_uca1400_spanish2_nopad_ai_ci
utf8mb4_la_0900_ai_ci utf8mb4 271 Yes 8 Alias for utf8mb4_uca1400_roman_nopad_ai_ci
utf8mb4_eo_0900_ai_ci utf8mb4 273 Yes 8 Alias for utf8mb4_uca1400_esperanto_nopad_ai_ci
utf8mb4_hu_0900_ai_ci utf8mb4 274 Yes 8 Alias for utf8mb4_uca1400_hungarian_nopad_ai_ci
utf8mb4_hr_0900_ai_ci utf8mb4 275 Yes 8 Alias for utf8mb4_uca1400_croatian_nopad_ai_ci
utf8mb4_vi_0900_ai_ci utf8mb4 277 Yes 8 Alias for utf8mb4_uca1400_vietnamese_nopad_ai_ci
utf8mb4_0900_as_cs utf8mb4 278 Yes 8 Alias for utf8mb4_uca1400_nopad_as_cs
utf8mb4_de_pb_0900_as_cs utf8mb4 279 Yes 8 Alias for utf8mb4_uca1400_german2_nopad_as_cs
utf8mb4_is_0900_as_cs utf8mb4 280 Yes 8 Alias for utf8mb4_uca1400_icelandic_nopad_as_cs
utf8mb4_lv_0900_as_cs utf8mb4 281 Yes 8 Alias for utf8mb4_uca1400_latvian_nopad_as_cs
utf8mb4_ro_0900_as_cs utf8mb4 282 Yes 8 Alias for utf8mb4_uca1400_romanian_nopad_as_cs
utf8mb4_sl_0900_as_cs utf8mb4 283 Yes 8 Alias for utf8mb4_uca1400_slovenian_nopad_as_cs
utf8mb4_pl_0900_as_cs utf8mb4 284 Yes 8 Alias for utf8mb4_uca1400_polish_nopad_as_cs
utf8mb4_et_0900_as_cs utf8mb4 285 Yes 8 Alias for utf8mb4_uca1400_estonian_nopad_as_cs
utf8mb4_es_0900_as_cs utf8mb4 286 Yes 8 Alias for utf8mb4_uca1400_spanish_nopad_as_cs
utf8mb4_sv_0900_as_cs utf8mb4 287 Yes 8 Alias for utf8mb4_uca1400_swedish_nopad_as_cs
utf8mb4_tr_0900_as_cs utf8mb4 288 Yes 8 Alias for utf8mb4_uca1400_turkish_nopad_as_cs
utf8mb4_cs_0900_as_cs utf8mb4 289 Yes 8 Alias for utf8mb4_uca1400_czech_nopad_as_cs
utf8mb4_da_0900_as_cs utf8mb4 290 Yes 8 Alias for utf8mb4_uca1400_danish_nopad_as_cs
utf8mb4_lt_0900_as_cs utf8mb4 291 Yes 8 Alias for utf8mb4_uca1400_lithuanian_nopad_as_cs
utf8mb4_sk_0900_as_cs utf8mb4 292 Yes 8 Alias for utf8mb4_uca1400_slovak_nopad_as_cs
utf8mb4_es_trad_0900_as_cs utf8mb4 293 Yes 8 Alias for utf8mb4_uca1400_spanish2_nopad_as_cs
utf8mb4_la_0900_as_cs utf8mb4 294 Yes 8 Alias for utf8mb4_uca1400_roman_nopad_as_cs
utf8mb4_eo_0900_as_cs utf8mb4 296 Yes 8 Alias for utf8mb4_uca1400_esperanto_nopad_as_cs
utf8mb4_hu_0900_as_cs utf8mb4 297 Yes 8 Alias for utf8mb4_uca1400_hungarian_nopad_as_cs
utf8mb4_hr_0900_as_cs utf8mb4 298 Yes 8 Alias for utf8mb4_uca1400_croatian_nopad_as_cs
utf8mb4_vi_0900_as_cs utf8mb4 300 Yes 8 Alias for utf8mb4_uca1400_vietnamese_nopad_as_cs
utf8mb4_0900_as_ci utf8mb4 305 Yes 8 Alias for utf8mb4_uca1400_nopad_as_ci
utf8mb4_0900_bin utf8mb4 309 Yes 1 Alias for utf8mb4_nopad_bin
COLLATION_NAME CHARACTER_SET_NAME ID IS_DEFAULT IS_COMPILED SORTLEN PAD_ATTRIBUTE COMMENT
utf8mb4_0900_ai_ci utf8mb4 255 Yes 8 NO PAD Alias for utf8mb4_uca1400_nopad_ai_ci
utf8mb4_de_pb_0900_ai_ci utf8mb4 256 Yes 8 NO PAD Alias for utf8mb4_uca1400_german2_nopad_ai_ci
utf8mb4_is_0900_ai_ci utf8mb4 257 Yes 8 NO PAD Alias for utf8mb4_uca1400_icelandic_nopad_ai_ci
utf8mb4_lv_0900_ai_ci utf8mb4 258 Yes 8 NO PAD Alias for utf8mb4_uca1400_latvian_nopad_ai_ci
utf8mb4_ro_0900_ai_ci utf8mb4 259 Yes 8 NO PAD Alias for utf8mb4_uca1400_romanian_nopad_ai_ci
utf8mb4_sl_0900_ai_ci utf8mb4 260 Yes 8 NO PAD Alias for utf8mb4_uca1400_slovenian_nopad_ai_ci
utf8mb4_pl_0900_ai_ci utf8mb4 261 Yes 8 NO PAD Alias for utf8mb4_uca1400_polish_nopad_ai_ci
utf8mb4_et_0900_ai_ci utf8mb4 262 Yes 8 NO PAD Alias for utf8mb4_uca1400_estonian_nopad_ai_ci
utf8mb4_es_0900_ai_ci utf8mb4 263 Yes 8 NO PAD Alias for utf8mb4_uca1400_spanish_nopad_ai_ci
utf8mb4_sv_0900_ai_ci utf8mb4 264 Yes 8 NO PAD Alias for utf8mb4_uca1400_swedish_nopad_ai_ci
utf8mb4_tr_0900_ai_ci utf8mb4 265 Yes 8 NO PAD Alias for utf8mb4_uca1400_turkish_nopad_ai_ci
utf8mb4_cs_0900_ai_ci utf8mb4 266 Yes 8 NO PAD Alias for utf8mb4_uca1400_czech_nopad_ai_ci
utf8mb4_da_0900_ai_ci utf8mb4 267 Yes 8 NO PAD Alias for utf8mb4_uca1400_danish_nopad_ai_ci
utf8mb4_lt_0900_ai_ci utf8mb4 268 Yes 8 NO PAD Alias for utf8mb4_uca1400_lithuanian_nopad_ai_ci
utf8mb4_sk_0900_ai_ci utf8mb4 269 Yes 8 NO PAD Alias for utf8mb4_uca1400_slovak_nopad_ai_ci
utf8mb4_es_trad_0900_ai_ci utf8mb4 270 Yes 8 NO PAD Alias for utf8mb4_uca1400_spanish2_nopad_ai_ci
utf8mb4_la_0900_ai_ci utf8mb4 271 Yes 8 NO PAD Alias for utf8mb4_uca1400_roman_nopad_ai_ci
utf8mb4_eo_0900_ai_ci utf8mb4 273 Yes 8 NO PAD Alias for utf8mb4_uca1400_esperanto_nopad_ai_ci
utf8mb4_hu_0900_ai_ci utf8mb4 274 Yes 8 NO PAD Alias for utf8mb4_uca1400_hungarian_nopad_ai_ci
utf8mb4_hr_0900_ai_ci utf8mb4 275 Yes 8 NO PAD Alias for utf8mb4_uca1400_croatian_nopad_ai_ci
utf8mb4_vi_0900_ai_ci utf8mb4 277 Yes 8 NO PAD Alias for utf8mb4_uca1400_vietnamese_nopad_ai_ci
utf8mb4_0900_as_cs utf8mb4 278 Yes 8 NO PAD Alias for utf8mb4_uca1400_nopad_as_cs
utf8mb4_de_pb_0900_as_cs utf8mb4 279 Yes 8 NO PAD Alias for utf8mb4_uca1400_german2_nopad_as_cs
utf8mb4_is_0900_as_cs utf8mb4 280 Yes 8 NO PAD Alias for utf8mb4_uca1400_icelandic_nopad_as_cs
utf8mb4_lv_0900_as_cs utf8mb4 281 Yes 8 NO PAD Alias for utf8mb4_uca1400_latvian_nopad_as_cs
utf8mb4_ro_0900_as_cs utf8mb4 282 Yes 8 NO PAD Alias for utf8mb4_uca1400_romanian_nopad_as_cs
utf8mb4_sl_0900_as_cs utf8mb4 283 Yes 8 NO PAD Alias for utf8mb4_uca1400_slovenian_nopad_as_cs
utf8mb4_pl_0900_as_cs utf8mb4 284 Yes 8 NO PAD Alias for utf8mb4_uca1400_polish_nopad_as_cs
utf8mb4_et_0900_as_cs utf8mb4 285 Yes 8 NO PAD Alias for utf8mb4_uca1400_estonian_nopad_as_cs
utf8mb4_es_0900_as_cs utf8mb4 286 Yes 8 NO PAD Alias for utf8mb4_uca1400_spanish_nopad_as_cs
utf8mb4_sv_0900_as_cs utf8mb4 287 Yes 8 NO PAD Alias for utf8mb4_uca1400_swedish_nopad_as_cs
utf8mb4_tr_0900_as_cs utf8mb4 288 Yes 8 NO PAD Alias for utf8mb4_uca1400_turkish_nopad_as_cs
utf8mb4_cs_0900_as_cs utf8mb4 289 Yes 8 NO PAD Alias for utf8mb4_uca1400_czech_nopad_as_cs
utf8mb4_da_0900_as_cs utf8mb4 290 Yes 8 NO PAD Alias for utf8mb4_uca1400_danish_nopad_as_cs
utf8mb4_lt_0900_as_cs utf8mb4 291 Yes 8 NO PAD Alias for utf8mb4_uca1400_lithuanian_nopad_as_cs
utf8mb4_sk_0900_as_cs utf8mb4 292 Yes 8 NO PAD Alias for utf8mb4_uca1400_slovak_nopad_as_cs
utf8mb4_es_trad_0900_as_cs utf8mb4 293 Yes 8 NO PAD Alias for utf8mb4_uca1400_spanish2_nopad_as_cs
utf8mb4_la_0900_as_cs utf8mb4 294 Yes 8 NO PAD Alias for utf8mb4_uca1400_roman_nopad_as_cs
utf8mb4_eo_0900_as_cs utf8mb4 296 Yes 8 NO PAD Alias for utf8mb4_uca1400_esperanto_nopad_as_cs
utf8mb4_hu_0900_as_cs utf8mb4 297 Yes 8 NO PAD Alias for utf8mb4_uca1400_hungarian_nopad_as_cs
utf8mb4_hr_0900_as_cs utf8mb4 298 Yes 8 NO PAD Alias for utf8mb4_uca1400_croatian_nopad_as_cs
utf8mb4_vi_0900_as_cs utf8mb4 300 Yes 8 NO PAD Alias for utf8mb4_uca1400_vietnamese_nopad_as_cs
utf8mb4_0900_as_ci utf8mb4 305 Yes 8 NO PAD Alias for utf8mb4_uca1400_nopad_as_ci
utf8mb4_0900_bin utf8mb4 309 Yes 1 NO PAD Alias for utf8mb4_nopad_bin
#
# MDEV-20912 Add support for utf8mb4_0900_* collations in MariaDB Server
#

View File

@@ -281,41 +281,41 @@ Charset Description Default collation Maxlen
latin1 cp1252 West European latin1_swedish_ci 1
select * from information_schema.COLLATIONS
where COLLATION_NAME like 'latin1%';
COLLATION_NAME CHARACTER_SET_NAME ID IS_DEFAULT IS_COMPILED SORTLEN COMMENT
latin1_german1_ci latin1 5 # 1 cp1252 West European
latin1_swedish_ci latin1 8 Yes # 1 cp1252 West European
latin1_danish_ci latin1 15 # 1 cp1252 West European
latin1_german2_ci latin1 31 # 2 cp1252 West European
latin1_bin latin1 47 # 1 cp1252 West European
latin1_general_ci latin1 48 # 1 cp1252 West European
latin1_general_cs latin1 49 # 1 cp1252 West European
latin1_spanish_ci latin1 94 # 1 cp1252 West European
latin1_swedish_nopad_ci latin1 1032 # 1
latin1_nopad_bin latin1 1071 # 1
COLLATION_NAME CHARACTER_SET_NAME ID IS_DEFAULT IS_COMPILED SORTLEN PAD_ATTRIBUTE COMMENT
latin1_german1_ci latin1 5 # 1 PAD SPACE cp1252 West European
latin1_swedish_ci latin1 8 Yes # 1 PAD SPACE cp1252 West European
latin1_danish_ci latin1 15 # 1 PAD SPACE cp1252 West European
latin1_german2_ci latin1 31 # 2 PAD SPACE cp1252 West European
latin1_bin latin1 47 # 1 PAD SPACE cp1252 West European
latin1_general_ci latin1 48 # 1 PAD SPACE cp1252 West European
latin1_general_cs latin1 49 # 1 PAD SPACE cp1252 West European
latin1_spanish_ci latin1 94 # 1 PAD SPACE cp1252 West European
latin1_swedish_nopad_ci latin1 1032 # 1 NO PAD
latin1_nopad_bin latin1 1071 # 1 NO PAD
SHOW COLLATION LIKE 'latin1%';
Collation Charset Id Default Compiled Sortlen
latin1_german1_ci latin1 5 # 1
latin1_swedish_ci latin1 8 Yes # 1
latin1_danish_ci latin1 15 # 1
latin1_german2_ci latin1 31 # 2
latin1_bin latin1 47 # 1
latin1_general_ci latin1 48 # 1
latin1_general_cs latin1 49 # 1
latin1_spanish_ci latin1 94 # 1
latin1_swedish_nopad_ci latin1 1032 # 1
latin1_nopad_bin latin1 1071 # 1
Collation Charset Id Default Compiled Sortlen Pad_attribute
latin1_german1_ci latin1 5 # 1 PAD SPACE
latin1_swedish_ci latin1 8 Yes # 1 PAD SPACE
latin1_danish_ci latin1 15 # 1 PAD SPACE
latin1_german2_ci latin1 31 # 2 PAD SPACE
latin1_bin latin1 47 # 1 PAD SPACE
latin1_general_ci latin1 48 # 1 PAD SPACE
latin1_general_cs latin1 49 # 1 PAD SPACE
latin1_spanish_ci latin1 94 # 1 PAD SPACE
latin1_swedish_nopad_ci latin1 1032 # 1 NO PAD
latin1_nopad_bin latin1 1071 # 1 NO PAD
SHOW COLLATION WHERE collation like 'latin1%';
Collation Charset Id Default Compiled Sortlen
latin1_german1_ci latin1 5 # 1
latin1_swedish_ci latin1 8 Yes # 1
latin1_danish_ci latin1 15 # 1
latin1_german2_ci latin1 31 # 2
latin1_bin latin1 47 # 1
latin1_general_ci latin1 48 # 1
latin1_general_cs latin1 49 # 1
latin1_spanish_ci latin1 94 # 1
latin1_swedish_nopad_ci latin1 1032 # 1
latin1_nopad_bin latin1 1071 # 1
Collation Charset Id Default Compiled Sortlen Pad_attribute
latin1_german1_ci latin1 5 # 1 PAD SPACE
latin1_swedish_ci latin1 8 Yes # 1 PAD SPACE
latin1_danish_ci latin1 15 # 1 PAD SPACE
latin1_german2_ci latin1 31 # 2 PAD SPACE
latin1_bin latin1 47 # 1 PAD SPACE
latin1_general_ci latin1 48 # 1 PAD SPACE
latin1_general_cs latin1 49 # 1 PAD SPACE
latin1_spanish_ci latin1 94 # 1 PAD SPACE
latin1_swedish_nopad_ci latin1 1032 # 1 NO PAD
latin1_nopad_bin latin1 1071 # 1 NO PAD
select * from information_schema.COLLATION_CHARACTER_SET_APPLICABILITY
where COLLATION_NAME like 'latin1%';
COLLATION_NAME CHARACTER_SET_NAME FULL_COLLATION_NAME ID IS_DEFAULT
@@ -1660,7 +1660,7 @@ SELECT *
FROM tables ta
JOIN collations co ON ( co.collation_name = ta.table_catalog )
JOIN character_sets cs ON ( cs.character_set_name = ta.table_catalog );
TABLE_CATALOG TABLE_SCHEMA TABLE_NAME TABLE_TYPE ENGINE VERSION ROW_FORMAT TABLE_ROWS AVG_ROW_LENGTH DATA_LENGTH MAX_DATA_LENGTH INDEX_LENGTH DATA_FREE AUTO_INCREMENT CREATE_TIME UPDATE_TIME CHECK_TIME TABLE_COLLATION CHECKSUM CREATE_OPTIONS TABLE_COMMENT MAX_INDEX_LENGTH TEMPORARY COLLATION_NAME CHARACTER_SET_NAME ID IS_DEFAULT IS_COMPILED SORTLEN COMMENT CHARACTER_SET_NAME DEFAULT_COLLATE_NAME DESCRIPTION MAXLEN
TABLE_CATALOG TABLE_SCHEMA TABLE_NAME TABLE_TYPE ENGINE VERSION ROW_FORMAT TABLE_ROWS AVG_ROW_LENGTH DATA_LENGTH MAX_DATA_LENGTH INDEX_LENGTH DATA_FREE AUTO_INCREMENT CREATE_TIME UPDATE_TIME CHECK_TIME TABLE_COLLATION CHECKSUM CREATE_OPTIONS TABLE_COMMENT MAX_INDEX_LENGTH TEMPORARY COLLATION_NAME CHARACTER_SET_NAME ID IS_DEFAULT IS_COMPILED SORTLEN PAD_ATTRIBUTE COMMENT CHARACTER_SET_NAME DEFAULT_COLLATE_NAME DESCRIPTION MAXLEN
DROP TABLE test.t1;
SET max_heap_table_size = DEFAULT;
USE test;

View File

@@ -2367,11 +2367,11 @@ drop table if exists t1;
create table t1 (a int);
prepare stmt from "show collation where (1) in (select * from t1)";
execute stmt;
Collation Charset Id Default Compiled Sortlen
Collation Charset Id Default Compiled Sortlen Pad_attribute
drop table t1;
create table t1 (x int);
execute stmt;
Collation Charset Id Default Compiled Sortlen
Collation Charset Id Default Compiled Sortlen Pad_attribute
drop table t1;
deallocate prepare stmt;
#

View File

@@ -893,8 +893,9 @@ def information_schema COLLATIONS COLLATIONS ID Id 8 11 2 Y 36864 0 63
def information_schema COLLATIONS COLLATIONS IS_DEFAULT Default 253 9 0 Y 4096 0 33
def information_schema COLLATIONS COLLATIONS IS_COMPILED Compiled 253 9 3 N 4097 0 33
def information_schema COLLATIONS COLLATIONS SORTLEN Sortlen 8 3 1 N 36865 0 63
Collation Charset Id Default Compiled Sortlen
latin1_bin latin1 47 Yes 1
def information_schema COLLATIONS COLLATIONS PAD_ATTRIBUTE Pad_attribute 254 9 9 N 4353 0 33
Collation Charset Id Default Compiled Sortlen Pad_attribute
latin1_bin latin1 47 Yes 1 PAD SPACE
----------------------------------------------------------------
SHOW CREATE DATABASE mysqltest1;
Catalog Database Table Table_alias Column Column_alias Type Length Max length Is_null Flags Decimals Charsetnr

View File

@@ -2243,7 +2243,7 @@ show warnings;
end|
call bug4902()|
Charset Description Default collation Maxlen
Collation Charset Id Default Compiled Sortlen
Collation Charset Id Default Compiled Sortlen Pad_attribute
Table Create Table
t1 CREATE TABLE `t1` (
`id` char(16) NOT NULL DEFAULT '',
@@ -2264,7 +2264,7 @@ Variable_name Value
Level Code Message
call bug4902()|
Charset Description Default collation Maxlen
Collation Charset Id Default Compiled Sortlen
Collation Charset Id Default Compiled Sortlen Pad_attribute
Table Create Table
t1 CREATE TABLE `t1` (
`id` char(16) NOT NULL DEFAULT '',

File diff suppressed because it is too large Load Diff

File diff suppressed because it is too large Load Diff

View File

@@ -18,11 +18,11 @@ AND (collation_name LIKE CONCAT(character_set_name,'_general_ci')
OR
collation_name LIKE CONCAT(character_set_name,'_bin'))
ORDER BY collation_name;
COLLATION_NAME CHARACTER_SET_NAME ID IS_DEFAULT IS_COMPILED SORTLEN COMMENT
latin1_bin latin1 47 Yes 1 cp1252 West European
latin1_general_ci latin1 48 Yes 1 cp1252 West European
utf8mb3_bin utf8mb3 83 Yes 1 UTF-8 Unicode
utf8mb3_general_ci utf8mb3 33 Yes 1 UTF-8 Unicode
COLLATION_NAME CHARACTER_SET_NAME ID IS_DEFAULT IS_COMPILED SORTLEN PAD_ATTRIBUTE COMMENT
latin1_bin latin1 47 Yes 1 PAD SPACE cp1252 West European
latin1_general_ci latin1 48 Yes 1 PAD SPACE cp1252 West European
utf8mb3_bin utf8mb3 83 Yes 1 PAD SPACE UTF-8 Unicode
utf8mb3_general_ci utf8mb3 33 Yes 1 PAD SPACE UTF-8 Unicode
SELECT *
FROM information_schema.collation_character_set_applicability

View File

@@ -34,6 +34,7 @@ ID bigint(11) YES NULL
IS_DEFAULT varchar(3) YES NULL
IS_COMPILED varchar(3) NO NULL
SORTLEN bigint(3) NO NULL
PAD_ATTRIBUTE enum('PAD SPACE','NO PAD') NO NULL
COMMENT varchar(80) NO NULL
SHOW CREATE TABLE information_schema.COLLATIONS;
Table Create Table
@@ -44,6 +45,7 @@ COLLATIONS CREATE TEMPORARY TABLE `COLLATIONS` (
`IS_DEFAULT` varchar(3),
`IS_COMPILED` varchar(3) NOT NULL,
`SORTLEN` bigint(3) NOT NULL,
`PAD_ATTRIBUTE` enum('PAD SPACE','NO PAD') NOT NULL,
`COMMENT` varchar(80) NOT NULL
) ENGINE=MEMORY DEFAULT CHARSET=utf8mb3 COLLATE=utf8mb3_general_ci
SHOW COLUMNS FROM information_schema.COLLATIONS;
@@ -54,6 +56,7 @@ ID bigint(11) YES NULL
IS_DEFAULT varchar(3) YES NULL
IS_COMPILED varchar(3) NO NULL
SORTLEN bigint(3) NO NULL
PAD_ATTRIBUTE enum('PAD SPACE','NO PAD') NO NULL
COMMENT varchar(80) NO NULL
# Testcases 3.2.3.2 and 3.2.3.3 are checked in suite/funcs_1/t/charset_collation*.test
########################################################################

View File

@@ -59,10 +59,11 @@ def information_schema CLIENT_STATISTICS TOTAL_SSL_CONNECTIONS 26 NULL NO bigint
def information_schema CLIENT_STATISTICS UPDATE_COMMANDS 18 NULL NO bigint NULL NULL 19 0 NULL NULL NULL bigint(21) select NEVER NULL NO NO
def information_schema COLLATIONS CHARACTER_SET_NAME 2 NULL YES varchar 32 96 NULL NULL NULL utf8mb3 utf8mb3_general_ci varchar(32) select NEVER NULL NO NO
def information_schema COLLATIONS COLLATION_NAME 1 NULL NO varchar 64 192 NULL NULL NULL utf8mb3 utf8mb3_general_ci varchar(64) select NEVER NULL NO NO
def information_schema COLLATIONS COMMENT 7 NULL NO varchar 80 240 NULL NULL NULL utf8mb3 utf8mb3_general_ci varchar(80) select NEVER NULL NO NO
def information_schema COLLATIONS COMMENT 8 NULL NO varchar 80 240 NULL NULL NULL utf8mb3 utf8mb3_general_ci varchar(80) select NEVER NULL NO NO
def information_schema COLLATIONS ID 3 NULL YES bigint NULL NULL 19 0 NULL NULL NULL bigint(11) select NEVER NULL NO NO
def information_schema COLLATIONS IS_COMPILED 5 NULL NO varchar 3 9 NULL NULL NULL utf8mb3 utf8mb3_general_ci varchar(3) select NEVER NULL NO NO
def information_schema COLLATIONS IS_DEFAULT 4 NULL YES varchar 3 9 NULL NULL NULL utf8mb3 utf8mb3_general_ci varchar(3) select NEVER NULL NO NO
def information_schema COLLATIONS PAD_ATTRIBUTE 7 NULL NO enum 3 9 NULL NULL NULL utf8mb3 utf8mb3_general_ci enum('PAD SPACE','NO PAD') select NEVER NULL NO NO
def information_schema COLLATIONS SORTLEN 6 NULL NO bigint NULL NULL 19 0 NULL NULL NULL bigint(3) select NEVER NULL NO NO
def information_schema COLLATION_CHARACTER_SET_APPLICABILITY CHARACTER_SET_NAME 2 NULL NO varchar 32 96 NULL NULL NULL utf8mb3 utf8mb3_general_ci varchar(32) select NEVER NULL NO NO
def information_schema COLLATION_CHARACTER_SET_APPLICABILITY COLLATION_NAME 1 NULL NO varchar 64 192 NULL NULL NULL utf8mb3 utf8mb3_general_ci varchar(64) select NEVER NULL NO NO
@@ -643,6 +644,7 @@ AND table_name <> 'profiling' AND table_name not like 'innodb_%'
AND CHARACTER_OCTET_LENGTH / CHARACTER_MAXIMUM_LENGTH <> 1
ORDER BY CHARACTER_SET_NAME, COLLATION_NAME, COL_CML;
COL_CML DATA_TYPE CHARACTER_SET_NAME COLLATION_NAME
3.0000 enum utf8mb3 utf8mb3_general_ci
3.0000 varchar utf8mb3 utf8mb3_general_ci
SELECT DISTINCT
CHARACTER_OCTET_LENGTH / CHARACTER_MAXIMUM_LENGTH AS COL_CML,
@@ -740,6 +742,7 @@ NULL information_schema COLLATIONS ID bigint NULL NULL NULL NULL bigint(11)
3.0000 information_schema COLLATIONS IS_DEFAULT varchar 3 9 utf8mb3 utf8mb3_general_ci varchar(3)
3.0000 information_schema COLLATIONS IS_COMPILED varchar 3 9 utf8mb3 utf8mb3_general_ci varchar(3)
NULL information_schema COLLATIONS SORTLEN bigint NULL NULL NULL NULL bigint(3)
3.0000 information_schema COLLATIONS PAD_ATTRIBUTE enum 3 9 utf8mb3 utf8mb3_general_ci enum('PAD SPACE','NO PAD')
3.0000 information_schema COLLATIONS COMMENT varchar 80 240 utf8mb3 utf8mb3_general_ci varchar(80)
3.0000 information_schema COLLATION_CHARACTER_SET_APPLICABILITY COLLATION_NAME varchar 64 192 utf8mb3 utf8mb3_general_ci varchar(64)
3.0000 information_schema COLLATION_CHARACTER_SET_APPLICABILITY CHARACTER_SET_NAME varchar 32 96 utf8mb3 utf8mb3_general_ci varchar(32)

View File

@@ -59,10 +59,11 @@ def information_schema CLIENT_STATISTICS TOTAL_SSL_CONNECTIONS 26 NULL NO bigint
def information_schema CLIENT_STATISTICS UPDATE_COMMANDS 18 NULL NO bigint NULL NULL 19 0 NULL NULL NULL bigint(21) NEVER NULL NO NO
def information_schema COLLATIONS CHARACTER_SET_NAME 2 NULL YES varchar 32 96 NULL NULL NULL utf8mb3 utf8mb3_general_ci varchar(32) NEVER NULL NO NO
def information_schema COLLATIONS COLLATION_NAME 1 NULL NO varchar 64 192 NULL NULL NULL utf8mb3 utf8mb3_general_ci varchar(64) NEVER NULL NO NO
def information_schema COLLATIONS COMMENT 7 NULL NO varchar 80 240 NULL NULL NULL utf8mb3 utf8mb3_general_ci varchar(80) NEVER NULL NO NO
def information_schema COLLATIONS COMMENT 8 NULL NO varchar 80 240 NULL NULL NULL utf8mb3 utf8mb3_general_ci varchar(80) NEVER NULL NO NO
def information_schema COLLATIONS ID 3 NULL YES bigint NULL NULL 19 0 NULL NULL NULL bigint(11) NEVER NULL NO NO
def information_schema COLLATIONS IS_COMPILED 5 NULL NO varchar 3 9 NULL NULL NULL utf8mb3 utf8mb3_general_ci varchar(3) NEVER NULL NO NO
def information_schema COLLATIONS IS_DEFAULT 4 NULL YES varchar 3 9 NULL NULL NULL utf8mb3 utf8mb3_general_ci varchar(3) NEVER NULL NO NO
def information_schema COLLATIONS PAD_ATTRIBUTE 7 NULL NO enum 3 9 NULL NULL NULL utf8mb3 utf8mb3_general_ci enum('PAD SPACE','NO PAD') NEVER NULL NO NO
def information_schema COLLATIONS SORTLEN 6 NULL NO bigint NULL NULL 19 0 NULL NULL NULL bigint(3) NEVER NULL NO NO
def information_schema COLLATION_CHARACTER_SET_APPLICABILITY CHARACTER_SET_NAME 2 NULL NO varchar 32 96 NULL NULL NULL utf8mb3 utf8mb3_general_ci varchar(32) NEVER NULL NO NO
def information_schema COLLATION_CHARACTER_SET_APPLICABILITY COLLATION_NAME 1 NULL NO varchar 64 192 NULL NULL NULL utf8mb3 utf8mb3_general_ci varchar(64) NEVER NULL NO NO
@@ -576,6 +577,7 @@ AND table_name <> 'profiling' AND table_name not like 'innodb_%'
AND CHARACTER_OCTET_LENGTH / CHARACTER_MAXIMUM_LENGTH <> 1
ORDER BY CHARACTER_SET_NAME, COLLATION_NAME, COL_CML;
COL_CML DATA_TYPE CHARACTER_SET_NAME COLLATION_NAME
3.0000 enum utf8mb3 utf8mb3_general_ci
3.0000 varchar utf8mb3 utf8mb3_general_ci
SELECT DISTINCT
CHARACTER_OCTET_LENGTH / CHARACTER_MAXIMUM_LENGTH AS COL_CML,
@@ -672,6 +674,7 @@ NULL information_schema COLLATIONS ID bigint NULL NULL NULL NULL bigint(11)
3.0000 information_schema COLLATIONS IS_DEFAULT varchar 3 9 utf8mb3 utf8mb3_general_ci varchar(3)
3.0000 information_schema COLLATIONS IS_COMPILED varchar 3 9 utf8mb3 utf8mb3_general_ci varchar(3)
NULL information_schema COLLATIONS SORTLEN bigint NULL NULL NULL NULL bigint(3)
3.0000 information_schema COLLATIONS PAD_ATTRIBUTE enum 3 9 utf8mb3 utf8mb3_general_ci enum('PAD SPACE','NO PAD')
3.0000 information_schema COLLATIONS COMMENT varchar 80 240 utf8mb3 utf8mb3_general_ci varchar(80)
3.0000 information_schema COLLATION_CHARACTER_SET_APPLICABILITY COLLATION_NAME varchar 64 192 utf8mb3 utf8mb3_general_ci varchar(64)
3.0000 information_schema COLLATION_CHARACTER_SET_APPLICABILITY CHARACTER_SET_NAME varchar 32 96 utf8mb3 utf8mb3_general_ci varchar(32)

View File

@@ -7,8 +7,8 @@ show variables like 'character_sets_dir%';
Variable_name Value
character_sets_dir MYSQL_TEST_DIR/std_data/ldml/
show collation like 'utf8mb3_phone_ci';
Collation Charset Id Default Compiled Sortlen
utf8mb3_phone_ci utf8mb3 352 8
Collation Charset Id Default Compiled Sortlen Pad_attribute
utf8mb3_phone_ci utf8mb3 352 8 PAD SPACE
CREATE TABLE t1 (
name VARCHAR(64),
phone VARCHAR(64) CHARACTER SET utf8 COLLATE utf8_phone_ci
@@ -36,8 +36,8 @@ name phone
Bar +7-912-800-80-01
DROP TABLE t1;
show collation like 'utf8mb3_test_ci';
Collation Charset Id Default Compiled Sortlen
utf8mb3_test_ci utf8mb3 353 8
Collation Charset Id Default Compiled Sortlen Pad_attribute
utf8mb3_test_ci utf8mb3 353 8 PAD SPACE
create table t1 (c1 char(1) character set utf8 collate utf8_test_ci);
insert into t1 values ('a');
select * from t1 where c1='b';
@@ -45,8 +45,8 @@ c1
a
drop table t1;
show collation like 'ucs2_test_ci';
Collation Charset Id Default Compiled Sortlen
ucs2_test_ci ucs2 358 8
Collation Charset Id Default Compiled Sortlen Pad_attribute
ucs2_test_ci ucs2 358 8 PAD SPACE
create table t1 (c1 char(1) character set ucs2 collate ucs2_test_ci);
insert into t1 values ('a');
select * from t1 where c1='b';
@@ -54,8 +54,8 @@ c1
a
drop table t1;
show collation like 'utf8mb4_test_ci';
Collation Charset Id Default Compiled Sortlen
utf8mb4_test_ci utf8mb4 326 8
Collation Charset Id Default Compiled Sortlen Pad_attribute
utf8mb4_test_ci utf8mb4 326 8 PAD SPACE
create table t1 (c1 char(1) character set utf8mb4 collate utf8mb4_test_ci);
insert into t1 values ('a');
select * from t1 where c1='b';
@@ -63,8 +63,8 @@ c1
a
drop table t1;
show collation like 'utf16_test_ci';
Collation Charset Id Default Compiled Sortlen
utf16_test_ci utf16 327 8
Collation Charset Id Default Compiled Sortlen Pad_attribute
utf16_test_ci utf16 327 8 PAD SPACE
create table t1 (c1 char(1) character set utf16 collate utf16_test_ci);
insert into t1 values ('a');
select * from t1 where c1='b';
@@ -72,8 +72,8 @@ c1
a
drop table t1;
show collation like 'utf32_test_ci';
Collation Charset Id Default Compiled Sortlen
utf32_test_ci utf32 391 8
Collation Charset Id Default Compiled Sortlen Pad_attribute
utf32_test_ci utf32 391 8 PAD SPACE
create table t1 (c1 char(1) character set utf32 collate utf32_test_ci);
insert into t1 values ('a');
select * from t1 where c1='b';
@@ -107,8 +107,8 @@ Warning 1265 Data truncated for column 'c1' at row 1
DROP TABLE t1;
Vietnamese experimental collation
show collation like 'ucs2_vn_ci';
Collation Charset Id Default Compiled Sortlen
ucs2_vn_ci ucs2 359 8
Collation Charset Id Default Compiled Sortlen Pad_attribute
ucs2_vn_ci ucs2 359 8 PAD SPACE
create table t1 (c1 char(1) character set ucs2 collate ucs2_vn_ci);
insert into t1 values (0x0061),(0x0041),(0x00E0),(0x00C0),(0x1EA3),(0x1EA2),
(0x00E3),(0x00C3),(0x00E1),(0x00C1),(0x1EA1),(0x1EA0);
@@ -382,8 +382,8 @@ drop table t1;
Bug#46448 trailing spaces are not ignored when user collation maps space != 0x20
set names latin1;
show collation like 'latin1_test';
Collation Charset Id Default Compiled Sortlen
latin1_test latin1 331 1
Collation Charset Id Default Compiled Sortlen Pad_attribute
latin1_test latin1 331 1 PAD SPACE
select "foo" = "foo " collate latin1_test;
"foo" = "foo " collate latin1_test
1
@@ -427,24 +427,24 @@ utf8mb3_czech_test_bad_w2 utf8mb3 372 4
utf32_test_ci utf32 391 8
utf8mb3_maxuserid_ci utf8mb3 2047 8
show collation like '%test%';
Collation Charset Id Default Compiled Sortlen
latin1_test latin1 331 1
latin1_test2 latin1 332 1
latin1_test2_cs latin1 333 1
utf8mb3_test_ci utf8mb3 353 8
utf8mb3_czech_test_w2 utf8mb3 370 4
utf8mb3_czech_test_nopad_w2 utf8mb3 371 4
utf8mb3_czech_test_bad_w2 utf8mb3 372 4
ucs2_test_ci ucs2 358 8
utf8mb4_test_ci utf8mb4 326 8
utf8mb4_test_400_ci utf8mb4 328 8
utf8mb4_test_520_nopad_ci utf8mb4 329 8
utf8mb4_uca1400_test01_as_ci utf8mb4 330 4
utf16_test_ci utf16 327 8
utf32_test_ci utf32 391 8
Collation Charset Id Default Compiled Sortlen Pad_attribute
latin1_test latin1 331 1 PAD SPACE
latin1_test2 latin1 332 1 PAD SPACE
latin1_test2_cs latin1 333 1 PAD SPACE
utf8mb3_test_ci utf8mb3 353 8 PAD SPACE
utf8mb3_czech_test_w2 utf8mb3 370 4 PAD SPACE
utf8mb3_czech_test_nopad_w2 utf8mb3 371 4 NO PAD
utf8mb3_czech_test_bad_w2 utf8mb3 372 4 PAD SPACE
ucs2_test_ci ucs2 358 8 PAD SPACE
utf8mb4_test_ci utf8mb4 326 8 PAD SPACE
utf8mb4_test_400_ci utf8mb4 328 8 PAD SPACE
utf8mb4_test_520_nopad_ci utf8mb4 329 8 NO PAD
utf8mb4_uca1400_test01_as_ci utf8mb4 330 4 PAD SPACE
utf16_test_ci utf16 327 8 PAD SPACE
utf32_test_ci utf32 391 8 PAD SPACE
show collation like 'ucs2_vn_ci';
Collation Charset Id Default Compiled Sortlen
ucs2_vn_ci ucs2 359 8
Collation Charset Id Default Compiled Sortlen Pad_attribute
ucs2_vn_ci ucs2 359 8 PAD SPACE
create table t1 (c1 char(1) character set ucs2 collate ucs2_vn_ci);
show create table t1;
Table Create Table
@@ -468,8 +468,8 @@ b
DROP TABLE t1;
SET NAMES utf8 COLLATE utf8_phone_ci;
show collation like 'utf8mb3_phone_ci';
Collation Charset Id Default Compiled Sortlen
utf8mb3_phone_ci utf8mb3 352 8
Collation Charset Id Default Compiled Sortlen Pad_attribute
utf8mb3_phone_ci utf8mb3 352 8 PAD SPACE
SET NAMES utf8;
SELECT hex(weight_string(_utf8mb4'a' collate utf8mb4_test_400_ci));
hex(weight_string(_utf8mb4'a' collate utf8mb4_test_400_ci))

View File

@@ -6802,7 +6802,7 @@ int fill_schema_collation(THD *thd, TABLE_LIST *tables, COND *cond)
table->field[1]->set_null(); // CHARACTER_SET_NAME
table->field[2]->set_null(); // ID
table->field[3]->set_null(); // IS_DEFAULT
table->field[6]->set_null(); // Comment
table->field[7]->set_null(); // Comment
}
else
{
@@ -6818,12 +6818,14 @@ int fill_schema_collation(THD *thd, TABLE_LIST *tables, COND *cond)
LEX_CSTRING comment;
comment.str= tmp_cl->comment;
comment.length= strlen(comment.str);
table->field[6]->store(&comment, scs);
table->field[7]->store(&comment, scs);
}
}
table->field[4]->store(
Show::Yes_or_empty::value(tmp_cl->compiled_flag()), scs);
table->field[5]->store((longlong) tmp_cl->strxfrm_multiply, TRUE);
// PAD_ATTRIBUTE
table->field[6]->store(1 + (bool)(tmp_cl->state & MY_CS_NOPAD), true);
if (schema_table_store_record(thd, table))
return 1;
}
@@ -10004,6 +10006,26 @@ ST_FIELD_INFO charsets_fields_info[]=
};
class CollationPAD: public Enum
{
static const TypelibBuffer<2> *typelib()
{
static const LEX_CSTRING values[] =
{
{ STRING_WITH_LEN("PAD SPACE") },
{ STRING_WITH_LEN("NO PAD") }
};
static const TypelibBuffer<2> tl(values);
return &tl;
};
public:
CollationPAD()
:Enum(typelib())
{ }
};
ST_FIELD_INFO collation_fields_info[]=
{
Column("COLLATION_NAME", CLName(), NOT_NULL, "Collation"),
@@ -10012,6 +10034,7 @@ ST_FIELD_INFO collation_fields_info[]=
Column("IS_DEFAULT", Yes_or_empty(), NULLABLE, "Default"),
Column("IS_COMPILED", Yes_or_empty(), NOT_NULL, "Compiled"),
Column("SORTLEN", SLonglong(3), NOT_NULL, "Sortlen"),
Column("PAD_ATTRIBUTE", CollationPAD(), NOT_NULL, "Pad_attribute"),
Column("COMMENT", Varchar(80), NOT_NULL),
CEnd()
};