From dbcd3384e0799ee99a966edaff2c0f135ef51a29 Mon Sep 17 00:00:00 2001 From: Monty Date: Mon, 20 Jul 2020 19:26:31 +0300 Subject: [PATCH] MDEV-7947 strcmp() takes 0.37% in OLTP RO This patch ensures that all identical character sets shares the same cs->csname. This allows us to replace strcmp() in my_charset_same() with comparisons of pointers. This fixes a long standing performance issue that could cause as strcmp() for every item sent trough the protocol class to the end user. One consequence of this patch is that we don't allow one to add a character definition in the Index.xml file that changes the csname of an existing character set. This is by design as changing character set names of existing ones is extremely dangerous, especially as some storage engines just records character set numbers. As we now have a hash over character set's csname, we can in the future use that for faster access to a specific character set. This could be done by changing the hash to non unique and use the hash to find the next character set with same csname. --- include/my_sys.h | 6 +- include/mysys_err.h | 3 +- mysql-test/main/ctype_ldml.result | 12 +- mysql-test/main/ctype_ldml.test | 13 + mysql-test/std_data/ldml/Index.xml | 9 +- .../suite/innodb/r/innodb_ctype_ldml.result | 5 +- .../suite/innodb/t/innodb_ctype_ldml.test | 1 + mysys/charset-def.c | 2 +- mysys/charset.c | 100 +++++- mysys/errors.c | 4 +- mysys/my_static.c | 1 + mysys/mysys_priv.h | 1 + strings/ctype-big5.c | 10 +- strings/ctype-bin.c | 4 +- strings/ctype-cp932.c | 13 +- strings/ctype-czech.c | 2 +- strings/ctype-euc_kr.c | 9 +- strings/ctype-eucjpms.c | 10 +- strings/ctype-gb2312.c | 10 +- strings/ctype-gbk.c | 9 +- strings/ctype-latin1.c | 12 +- strings/ctype-sjis.c | 9 +- strings/ctype-tis620.c | 10 +- strings/ctype-uca.c | 293 +++++++++--------- strings/ctype-ucs2.c | 36 +-- strings/ctype-ujis.c | 9 +- strings/ctype-utf8.c | 20 +- strings/ctype-win1250ch.c | 3 +- strings/ctype.c | 6 + strings/strings_def.h | 9 + 30 files changed, 386 insertions(+), 245 deletions(-) diff --git a/include/my_sys.h b/include/my_sys.h index 29d019d96b8..3acc1487f95 100644 --- a/include/my_sys.h +++ b/include/my_sys.h @@ -1049,9 +1049,13 @@ extern my_bool resolve_collation(const char *cl_name, CHARSET_INFO **cl); extern void free_charsets(void); extern char *get_charsets_dir(char *buf); -extern my_bool my_charset_same(CHARSET_INFO *cs1, CHARSET_INFO *cs2); +static inline my_bool my_charset_same(CHARSET_INFO *cs1, CHARSET_INFO *cs2) +{ + return (cs1->csname == cs2->csname); +} extern my_bool init_compiled_charsets(myf flags); extern void add_compiled_collation(struct charset_info_st *cs); +extern void add_compiled_extra_collation(struct charset_info_st *cs); extern size_t escape_string_for_mysql(CHARSET_INFO *charset_info, char *to, size_t to_length, const char *from, size_t length); diff --git a/include/mysys_err.h b/include/mysys_err.h index 08463c9fedb..e0e97d0284a 100644 --- a/include/mysys_err.h +++ b/include/mysys_err.h @@ -72,7 +72,8 @@ extern const char *globerrs[]; /* my_error_messages is here */ #define EE_BADMEMORYRELEASE 36 #define EE_PERM_LOCK_MEMORY 37 #define EE_MEMCNTL 38 -#define EE_ERROR_LAST 38 /* Copy last error nr */ +#define EE_DUPLICATE_CHARSET 39 +#define EE_ERROR_LAST 39 /* Copy last error nr */ /* Add error numbers before EE_ERROR_LAST and change it accordingly. */ diff --git a/mysql-test/main/ctype_ldml.result b/mysql-test/main/ctype_ldml.result index 3ce50331ed0..22b7a316111 100644 --- a/mysql-test/main/ctype_ldml.result +++ b/mysql-test/main/ctype_ldml.result @@ -447,7 +447,7 @@ 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 99 Yes 1 +latin1_test latin1 331 1 select "foo" = "foo " collate latin1_test; "foo" = "foo " collate latin1_test 1 @@ -466,6 +466,7 @@ 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 +latin1_test latin1 331 1 latin1_test2 latin1 332 1 latin1_test2_cs latin1 333 1 latin1_swedish_nopad2_ci latin1 334 1 @@ -490,7 +491,7 @@ utf32_test_ci utf32 391 8 utf8_maxuserid_ci utf8 2047 8 show collation like '%test%'; Collation Charset Id Default Compiled Sortlen -latin1_test latin1 99 Yes 1 +latin1_test latin1 331 1 latin1_test2 latin1 332 1 latin1_test2_cs latin1 333 1 utf8_test_ci utf8 353 8 @@ -3034,3 +3035,10 @@ SELECT 'chž'< 'i'; 1 SELECT 'a' COLLATE utf8_czech_test_bad_w2; ERROR HY000: Unknown collation: 'utf8_czech_test_bad_w2' +# +# MDEV-7947 my_charset_same: strcmp() takes 0.37% in OLTP RO +# +SHOW COLLATION LIKE 'latin1_test_replace'; +Collation Charset Id Default Compiled Sortlen +SELECT 'foo' = 'foo ' COLLATE latin1_test_replace; +ERROR HY000: Unknown collation: 'latin1_test_replace' diff --git a/mysql-test/main/ctype_ldml.test b/mysql-test/main/ctype_ldml.test index a6cba4b9780..8baabdf2bcb 100644 --- a/mysql-test/main/ctype_ldml.test +++ b/mysql-test/main/ctype_ldml.test @@ -3,6 +3,10 @@ --source include/have_utf16.inc --source include/have_utf32.inc +--disable_query_log +call mtr.add_suppression("Charset id.*trying to replace"); +--enable_query_log + --disable_warnings drop table if exists t1; --enable_warnings @@ -602,3 +606,12 @@ SELECT 'chž'< 'i'; --error ER_UNKNOWN_COLLATION SELECT 'a' COLLATE utf8_czech_test_bad_w2; + + +--echo # +--echo # MDEV-7947 my_charset_same: strcmp() takes 0.37% in OLTP RO +--echo # + +SHOW COLLATION LIKE 'latin1_test_replace'; +--error ER_UNKNOWN_COLLATION +SELECT 'foo' = 'foo ' COLLATE latin1_test_replace; diff --git a/mysql-test/std_data/ldml/Index.xml b/mysql-test/std_data/ldml/Index.xml index 0435b2ab689..c4b91535af6 100644 --- a/mysql-test/std_data/ldml/Index.xml +++ b/mysql-test/std_data/ldml/Index.xml @@ -362,7 +362,14 @@ iso_8859-1:1987 l1 latin1 - + + + diff --git a/mysql-test/suite/innodb/r/innodb_ctype_ldml.result b/mysql-test/suite/innodb/r/innodb_ctype_ldml.result index 1f3b271941d..502f57156c3 100644 --- a/mysql-test/suite/innodb/r/innodb_ctype_ldml.result +++ b/mysql-test/suite/innodb/r/innodb_ctype_ldml.result @@ -383,7 +383,7 @@ 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 99 Yes 1 +latin1_test latin1 331 1 select "foo" = "foo " collate latin1_test; "foo" = "foo " collate latin1_test 1 @@ -402,6 +402,7 @@ 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 +latin1_test latin1 331 1 latin1_test2 latin1 332 1 latin1_test2_cs latin1 333 1 latin1_swedish_nopad2_ci latin1 334 1 @@ -426,7 +427,7 @@ utf32_test_ci utf32 391 8 utf8_maxuserid_ci utf8 2047 8 show collation like '%test%'; Collation Charset Id Default Compiled Sortlen -latin1_test latin1 99 Yes 1 +latin1_test latin1 331 1 latin1_test2 latin1 332 1 latin1_test2_cs latin1 333 1 utf8_test_ci utf8 353 8 diff --git a/mysql-test/suite/innodb/t/innodb_ctype_ldml.test b/mysql-test/suite/innodb/t/innodb_ctype_ldml.test index 26af717b15a..f065c51505b 100644 --- a/mysql-test/suite/innodb/t/innodb_ctype_ldml.test +++ b/mysql-test/suite/innodb/t/innodb_ctype_ldml.test @@ -13,6 +13,7 @@ drop table if exists t1; --disable_query_log call mtr.add_suppression("Syntax error at '\\[strength tertiary\\]'"); call mtr.add_suppression("Can't reset before a primary ignorable character U\\+A48C"); +call mtr.add_suppression("Charset id.*trying to replace"); --enable_query_log --echo In the following tests we change the order of letter "b" diff --git a/mysys/charset-def.c b/mysys/charset-def.c index 249fb1b5e4d..259b7af9a60 100644 --- a/mysys/charset-def.c +++ b/mysys/charset-def.c @@ -469,7 +469,7 @@ my_bool init_compiled_charsets(myf flags __attribute__((unused))) /* Copy compiled charsets */ for (cs=compiled_charsets; cs->name; cs++) - add_compiled_collation((struct charset_info_st *) cs); + add_compiled_extra_collation((struct charset_info_st *) cs); return FALSE; } diff --git a/mysys/charset.c b/mysys/charset.c index 5e999c8435d..32cfeb56e2d 100644 --- a/mysys/charset.c +++ b/mysys/charset.c @@ -20,6 +20,7 @@ #include #include #include +#include #include #ifdef HAVE_LANGINFO_H #include @@ -28,6 +29,8 @@ #include #endif +extern HASH charset_name_hash; + /* The code below implements this functionality: @@ -38,15 +41,10 @@ - Setting server default character set */ -my_bool my_charset_same(CHARSET_INFO *cs1, CHARSET_INFO *cs2) -{ - return ((cs1 == cs2) || !strcmp(cs1->csname,cs2->csname)); -} - - static uint get_collation_number_internal(const char *name) { + CHARSET_INFO **cs; for (cs= all_charsets; cs < all_charsets + array_elements(all_charsets); @@ -72,11 +70,10 @@ static my_bool init_state_maps(struct charset_info_st *cs) uchar *state_map; uchar *ident_map; - if (!(cs->state_map= state_map= (uchar*) my_once_alloc(256, MYF(MY_WME)))) + if (!(cs->state_map= state_map= (uchar*) my_once_alloc(256*2, MYF(MY_WME)))) return 1; - if (!(cs->ident_map= ident_map= (uchar*) my_once_alloc(256, MYF(MY_WME)))) - return 1; + cs->ident_map= ident_map= state_map + 256; /* Fill state_map with states to get a faster parser */ for (i=0; i < 256 ; i++) @@ -153,7 +150,8 @@ static int cs_copy_data(struct charset_info_st *to, CHARSET_INFO *from) { to->number= from->number ? from->number : to->number; - if (from->csname) + /* Don't replace csname if already set */ + if (from->csname && !to->csname) if (!(to->csname= my_once_strdup(from->csname,MYF(MY_WME)))) goto err; @@ -322,7 +320,21 @@ static int add_collation(struct charset_info_st *cs) return MY_XML_ERROR; bzero(newcs,sizeof(CHARSET_INFO)); } - + else + { + /* Don't allow change of csname */ + if (newcs->csname && strcmp(newcs->csname, cs->csname)) + { + my_error(EE_DUPLICATE_CHARSET, MYF(ME_WARNING), + cs->number, cs->csname, newcs->csname); + /* + Continue parsing rest of Index.xml. We got an warning in the log + so the user can fix the wrong character set definition. + */ + return MY_XML_OK; + } + } + if (cs->primary_number == cs->number) cs->state |= MY_CS_PRIMARY; @@ -402,8 +414,8 @@ static int add_collation(struct charset_info_st *cs) { newcs->state |= MY_CS_LOADED; } - newcs->state|= MY_CS_AVAILABLE; } + add_compiled_extra_collation(newcs); } else { @@ -420,7 +432,7 @@ static int add_collation(struct charset_info_st *cs) if (cs->comment) if (!(newcs->comment= my_once_strdup(cs->comment,MYF(MY_WME)))) return MY_XML_ERROR; - if (cs->csname) + if (cs->csname && ! newcs->csname) if (!(newcs->csname= my_once_strdup(cs->csname,MYF(MY_WME)))) return MY_XML_ERROR; if (cs->name) @@ -557,14 +569,55 @@ char *get_charsets_dir(char *buf) CHARSET_INFO *all_charsets[MY_ALL_CHARSETS_SIZE]={NULL}; CHARSET_INFO *default_charset_info = &my_charset_latin1; + +/* + Add standard character set compiled into the application + All related character sets should share same cname +*/ + void add_compiled_collation(struct charset_info_st *cs) { DBUG_ASSERT(cs->number < array_elements(all_charsets)); all_charsets[cs->number]= cs; cs->state|= MY_CS_AVAILABLE; + if ((my_hash_insert(&charset_name_hash, (uchar*) cs))) + { +#ifndef DBUG_OFF + CHARSET_INFO *org= (CHARSET_INFO*) my_hash_search(&charset_name_hash, + (uchar*) cs->csname, + strlen(cs->csname)); + DBUG_ASSERT(org); + DBUG_ASSERT(org->csname == cs->csname); +#endif + } } +/* + Add optional characters sets from ctype-extra.c + + If cname is already in use, replace csname in new object with a pointer to + the already used csname to ensure that all csname's points to the same string + for the same character set. +*/ + + +void add_compiled_extra_collation(struct charset_info_st *cs) +{ + DBUG_ASSERT(cs->number < array_elements(all_charsets)); + all_charsets[cs->number]= cs; + cs->state|= MY_CS_AVAILABLE; + if ((my_hash_insert(&charset_name_hash, (uchar*) cs))) + { + CHARSET_INFO *org= (CHARSET_INFO*) my_hash_search(&charset_name_hash, + (uchar*) cs->csname, + strlen(cs->csname)); + cs->csname= org->csname; + } +} + + + static my_pthread_once_t charsets_initialized= MY_PTHREAD_ONCE_INIT; static my_pthread_once_t charsets_template= MY_PTHREAD_ONCE_INIT; @@ -612,14 +665,31 @@ const char *my_collation_get_tailoring(uint id) } +HASH charset_name_hash; + +static uchar *get_charset_key(const uchar *object, + size_t *size, + my_bool not_used __attribute__((unused))) +{ + CHARSET_INFO *cs= (CHARSET_INFO*) object; + *size= strlen(cs->csname); + return (uchar*) cs->csname; +} + static void init_available_charsets(void) { char fname[FN_REFLEN + sizeof(MY_CHARSET_INDEX)]; struct charset_info_st **cs; MY_CHARSET_LOADER loader; + DBUG_ENTER("init_available_charsets"); bzero((char*) &all_charsets,sizeof(all_charsets)); bzero((char*) &my_collation_statistics, sizeof(my_collation_statistics)); + + my_hash_init2(key_memory_charsets, &charset_name_hash, 16, + &my_charset_latin1, 64, 0, 0, get_charset_key, + 0, 0, HASH_UNIQUE); + init_compiled_charsets(MYF(0)); /* Copy compiled charsets */ @@ -640,12 +710,14 @@ static void init_available_charsets(void) my_charset_loader_init_mysys(&loader); strmov(get_charsets_dir(fname), MY_CHARSET_INDEX); my_read_charset_file(&loader, fname, MYF(0)); + DBUG_VOID_RETURN; } void free_charsets(void) { charsets_initialized= charsets_template; + my_hash_free(&charset_name_hash); } @@ -1431,4 +1503,4 @@ const char* my_default_csname() csname = my_os_charset_to_mysql_charset(csname); #endif return csname ? csname : MYSQL_DEFAULT_CHARSET_NAME; -} \ No newline at end of file +} diff --git a/mysys/errors.c b/mysys/errors.c index a7ccf752c0c..d88540fe277 100644 --- a/mysys/errors.c +++ b/mysys/errors.c @@ -58,7 +58,8 @@ const char *globerrs[GLOBERRS]= "Warning: Can't copy ownership for file '%s' (Errcode: %M)", "Failed to release memory pointer %p, %zu bytes (Errcode: %M)", "Lock Pages in memory access rights required", - "Memcntl %s cmd %s error" + "Memcntl %s cmd %s error", + "Warning: Charset id '%d' csname '%s' trying to replace existing csname '%s'", }; void init_glob_errs(void) @@ -107,6 +108,7 @@ void init_glob_errs() EE(EE_BADMEMORYRELEASE)= "Failed to release memory pointer %p, %zu bytes (Errcode: %M)"; EE(EE_PERM_LOCK_MEMORY)= "Lock Pages in memory access rights required"; EE(EE_MEMCNTL) = "Memcntl %s cmd %s error"; + EE(EE_DUPLICATE_CHARSET)= "Warning: Charset id %d trying to replace csname %s with %s"; } #endif diff --git a/mysys/my_static.c b/mysys/my_static.c index cb0465929ab..6c09ab8d94b 100644 --- a/mysys/my_static.c +++ b/mysys/my_static.c @@ -47,6 +47,7 @@ PSI_memory_key key_memory_my_compress_alloc; PSI_memory_key key_memory_my_err_head; PSI_memory_key key_memory_my_file_info; PSI_memory_key key_memory_pack_frm; +PSI_memory_key key_memory_charsets; #ifdef _WIN32 PSI_memory_key key_memory_win_SECURITY_ATTRIBUTES; diff --git a/mysys/mysys_priv.h b/mysys/mysys_priv.h index 5115e0452d5..adf2d39046a 100644 --- a/mysys/mysys_priv.h +++ b/mysys/mysys_priv.h @@ -87,6 +87,7 @@ extern PSI_memory_key key_memory_my_compress_alloc; extern PSI_memory_key key_memory_my_err_head; extern PSI_memory_key key_memory_my_file_info; extern PSI_memory_key key_memory_pack_frm; +extern PSI_memory_key key_memory_charsets; #ifdef _WIN32 extern PSI_memory_key key_memory_win_SECURITY_ATTRIBUTES; diff --git a/strings/ctype-big5.c b/strings/ctype-big5.c index 945bbdfdc62..f5dd92f736e 100644 --- a/strings/ctype-big5.c +++ b/strings/ctype-big5.c @@ -32,6 +32,8 @@ #ifdef HAVE_CHARSET_big5 +const char charset_name_big5[]= "big5"; + /* Support for Chinese(BIG5) characters, by jou@nematic.ieo.nctu.edu.tw CP950 and HKSCS additional characters are also accepted. @@ -6807,7 +6809,7 @@ struct charset_info_st my_charset_big5_chinese_ci= { 1,0,0, /* number */ MY_CS_COMPILED|MY_CS_PRIMARY|MY_CS_STRNXFRM, /* state */ - "big5", /* cs name */ + charset_name_big5, /* cs name */ "big5_chinese_ci", /* name */ "", /* comment */ NULL, /* tailoring */ @@ -6840,7 +6842,7 @@ struct charset_info_st my_charset_big5_bin= { 84,0,0, /* number */ MY_CS_COMPILED|MY_CS_BINSORT, /* state */ - "big5", /* cs name */ + charset_name_big5, /* cs name */ "big5_bin", /* name */ "", /* comment */ NULL, /* tailoring */ @@ -6873,7 +6875,7 @@ struct charset_info_st my_charset_big5_chinese_nopad_ci= { MY_NOPAD_ID(1),0,0, /* number */ MY_CS_COMPILED|MY_CS_STRNXFRM|MY_CS_NOPAD, /* state */ - "big5", /* cs name */ + charset_name_big5, /* cs name */ "big5_chinese_nopad_ci", /* name */ "", /* comment */ NULL, /* tailoring */ @@ -6906,7 +6908,7 @@ struct charset_info_st my_charset_big5_nopad_bin= { MY_NOPAD_ID(84),0,0, /* number */ MY_CS_COMPILED|MY_CS_BINSORT|MY_CS_NOPAD, /* state */ - "big5", /* cs name */ + charset_name_big5, /* cs name */ "big5_nopad_bin", /* name */ "", /* comment */ NULL, /* tailoring */ diff --git a/strings/ctype-bin.c b/strings/ctype-bin.c index fe28752a3f7..84e5c85697b 100644 --- a/strings/ctype-bin.c +++ b/strings/ctype-bin.c @@ -23,6 +23,8 @@ #include "strings_def.h" #include +const char charset_name_binary[]= "binary"; + static const uchar ctype_bin[]= { 0, @@ -568,7 +570,7 @@ struct charset_info_st my_charset_bin = { 63,0,0, /* number */ MY_CS_COMPILED|MY_CS_BINSORT|MY_CS_PRIMARY|MY_CS_NOPAD,/* state */ - "binary", /* cs name */ + charset_name_binary, /* cs name */ "binary", /* name */ "", /* comment */ NULL, /* tailoring */ diff --git a/strings/ctype-cp932.c b/strings/ctype-cp932.c index 45b5bde9510..28fea965bf3 100644 --- a/strings/ctype-cp932.c +++ b/strings/ctype-cp932.c @@ -22,6 +22,7 @@ #ifdef HAVE_CHARSET_cp932 +const char charset_name_cp932[]= "cp932"; /* * This comment is parsed by configure to create ctype.c, @@ -34764,8 +34765,8 @@ struct charset_info_st my_charset_cp932_japanese_ci= { 95,0,0, /* number */ MY_CS_COMPILED|MY_CS_PRIMARY|MY_CS_STRNXFRM, /* state */ - "cp932", /* cs name */ - "cp932_japanese_ci", /* name */ + charset_name_cp932, /* cs name */ + "cp932_japanese_ci", /* name */ "", /* comment */ NULL, /* tailoring */ ctype_cp932, @@ -34796,8 +34797,8 @@ struct charset_info_st my_charset_cp932_bin= { 96,0,0, /* number */ MY_CS_COMPILED|MY_CS_BINSORT, /* state */ - "cp932", /* cs name */ - "cp932_bin", /* name */ + charset_name_cp932, /* cs name */ + "cp932_bin", /* name */ "", /* comment */ NULL, /* tailoring */ ctype_cp932, @@ -34829,7 +34830,7 @@ struct charset_info_st my_charset_cp932_japanese_nopad_ci= { MY_NOPAD_ID(95),0,0, /* number */ MY_CS_COMPILED|MY_CS_STRNXFRM|MY_CS_NOPAD, /* state */ - "cp932", /* cs name */ + charset_name_cp932, /* cs name */ "cp932_japanese_nopad_ci",/* name */ "", /* comment */ NULL, /* tailoring */ @@ -34861,7 +34862,7 @@ struct charset_info_st my_charset_cp932_nopad_bin= { MY_NOPAD_ID(96),0,0, /* number */ MY_CS_COMPILED|MY_CS_BINSORT|MY_CS_NOPAD, /* state */ - "cp932", /* cs name */ + charset_name_cp932, /* cs name */ "cp932_nopad_bin", /* name */ "", /* comment */ NULL, /* tailoring */ diff --git a/strings/ctype-czech.c b/strings/ctype-czech.c index 17c4c98c24e..b80fe1ae8ed 100644 --- a/strings/ctype-czech.c +++ b/strings/ctype-czech.c @@ -625,7 +625,7 @@ struct charset_info_st my_charset_latin2_czech_ci = 2,0,0, /* number */ MY_CS_COMPILED|MY_CS_STRNXFRM|MY_CS_CSSORT| MY_CS_STRNXFRM_BAD_NWEIGHTS|MY_CS_NON1TO1, /* state */ - "latin2", /* cs name */ + charset_name_latin2, /* cs name */ "latin2_czech_cs", /* name */ "", /* comment */ NULL, /* tailoring */ diff --git a/strings/ctype-euc_kr.c b/strings/ctype-euc_kr.c index 0362f799fc6..61c64dbcc18 100644 --- a/strings/ctype-euc_kr.c +++ b/strings/ctype-euc_kr.c @@ -31,6 +31,7 @@ #ifdef HAVE_CHARSET_euckr +const char charset_name_euckr[]= "euckr"; static const uchar ctype_euc_kr[257] = { @@ -10054,7 +10055,7 @@ struct charset_info_st my_charset_euckr_korean_ci= { 19,0,0, /* number */ MY_CS_COMPILED|MY_CS_PRIMARY, /* state */ - "euckr", /* cs name */ + charset_name_euckr, /* cs name */ "euckr_korean_ci", /* name */ "", /* comment */ NULL, /* tailoring */ @@ -10087,7 +10088,7 @@ struct charset_info_st my_charset_euckr_bin= { 85,0,0, /* number */ MY_CS_COMPILED|MY_CS_BINSORT, /* state */ - "euckr", /* cs name */ + charset_name_euckr, /* cs name */ "euckr_bin", /* name */ "", /* comment */ NULL, /* tailoring */ @@ -10120,7 +10121,7 @@ struct charset_info_st my_charset_euckr_korean_nopad_ci= { MY_NOPAD_ID(19),0,0,/* number */ MY_CS_COMPILED|MY_CS_NOPAD, /* state */ - "euckr", /* cs name */ + charset_name_euckr, /* cs name */ "euckr_korean_nopad_ci", /* name */ "", /* comment */ NULL, /* tailoring */ @@ -10153,7 +10154,7 @@ struct charset_info_st my_charset_euckr_nopad_bin= { MY_NOPAD_ID(85),0,0,/* number */ MY_CS_COMPILED|MY_CS_BINSORT|MY_CS_NOPAD, /* state */ - "euckr", /* cs name */ + charset_name_euckr, /* cs name */ "euckr_nopad_bin", /* name */ "", /* comment */ NULL, /* tailoring */ diff --git a/strings/ctype-eucjpms.c b/strings/ctype-eucjpms.c index 1dd179fed57..2c24bc5ffda 100644 --- a/strings/ctype-eucjpms.c +++ b/strings/ctype-eucjpms.c @@ -33,6 +33,8 @@ ctype-ujis.c file. #ifdef HAVE_CHARSET_eucjpms +const char charset_name_eucjpms[]= "eucjpms"; + static const uchar ctype_eucjpms[257] = { @@ -67593,7 +67595,7 @@ struct charset_info_st my_charset_eucjpms_japanese_ci= { 97,0,0, /* number */ MY_CS_COMPILED|MY_CS_PRIMARY, /* state */ - "eucjpms", /* cs name */ + charset_name_eucjpms, /* cs name */ "eucjpms_japanese_ci", /* name */ "", /* comment */ NULL, /* tailoring */ @@ -67626,7 +67628,7 @@ struct charset_info_st my_charset_eucjpms_bin= { 98,0,0, /* number */ MY_CS_COMPILED|MY_CS_BINSORT, /* state */ - "eucjpms", /* cs name */ + charset_name_eucjpms, /* cs name */ "eucjpms_bin", /* name */ "", /* comment */ NULL, /* tailoring */ @@ -67659,7 +67661,7 @@ struct charset_info_st my_charset_eucjpms_japanese_nopad_ci= { MY_NOPAD_ID(97),0,0, /* number */ MY_CS_COMPILED|MY_CS_NOPAD,/* state */ - "eucjpms", /* cs name */ + charset_name_eucjpms, /* cs name */ "eucjpms_japanese_nopad_ci", /* name */ "", /* comment */ NULL, /* tailoring */ @@ -67692,7 +67694,7 @@ struct charset_info_st my_charset_eucjpms_nopad_bin= { MY_NOPAD_ID(98),0,0, /* number */ MY_CS_COMPILED|MY_CS_BINSORT|MY_CS_NOPAD, /* state */ - "eucjpms", /* cs name */ + charset_name_eucjpms, /* cs name */ "eucjpms_nopad_bin", /* name */ "", /* comment */ NULL, /* tailoring */ diff --git a/strings/ctype-gb2312.c b/strings/ctype-gb2312.c index 266799f32a3..91ee2504b65 100644 --- a/strings/ctype-gb2312.c +++ b/strings/ctype-gb2312.c @@ -29,6 +29,8 @@ #ifdef HAVE_CHARSET_gb2312 +const char charset_name_gb2312[]= "gb2312"; + static const uchar ctype_gb2312[257] = { 0, /* For standard library */ @@ -6459,7 +6461,7 @@ struct charset_info_st my_charset_gb2312_chinese_ci= { 24,0,0, /* number */ MY_CS_COMPILED|MY_CS_PRIMARY, /* state */ - "gb2312", /* cs name */ + charset_name_gb2312, /* cs name */ "gb2312_chinese_ci",/* name */ "", /* comment */ NULL, /* tailoring */ @@ -6492,7 +6494,7 @@ struct charset_info_st my_charset_gb2312_bin= { 86,0,0, /* number */ MY_CS_COMPILED|MY_CS_BINSORT, /* state */ - "gb2312", /* cs name */ + charset_name_gb2312, /* cs name */ "gb2312_bin", /* name */ "", /* comment */ NULL, /* tailoring */ @@ -6525,7 +6527,7 @@ struct charset_info_st my_charset_gb2312_chinese_nopad_ci= { MY_NOPAD_ID(24),0,0,/* number */ MY_CS_COMPILED|MY_CS_NOPAD, /* state */ - "gb2312", /* cs name */ + charset_name_gb2312, /* cs name */ "gb2312_chinese_nopad_ci",/* name */ "", /* comment */ NULL, /* tailoring */ @@ -6558,7 +6560,7 @@ struct charset_info_st my_charset_gb2312_nopad_bin= { MY_NOPAD_ID(86),0,0,/* number */ MY_CS_COMPILED|MY_CS_BINSORT|MY_CS_NOPAD, /* state */ - "gb2312", /* cs name */ + charset_name_gb2312, /* cs name */ "gb2312_nopad_bin", /* name */ "", /* comment */ NULL, /* tailoring */ diff --git a/strings/ctype-gbk.c b/strings/ctype-gbk.c index fa6dba9bfb5..041fe318eed 100644 --- a/strings/ctype-gbk.c +++ b/strings/ctype-gbk.c @@ -31,6 +31,7 @@ #ifdef HAVE_CHARSET_gbk +const char charset_name_gbk[]= "gbk"; /* Support for Chinese(GBK) characters, by hewei@mail.ied.ac.cn */ @@ -10741,7 +10742,7 @@ struct charset_info_st my_charset_gbk_chinese_ci= { 28,0,0, /* number */ MY_CS_COMPILED|MY_CS_PRIMARY|MY_CS_STRNXFRM, /* state */ - "gbk", /* cs name */ + charset_name_gbk, /* cs name */ "gbk_chinese_ci", /* name */ "", /* comment */ NULL, /* tailoring */ @@ -10773,7 +10774,7 @@ struct charset_info_st my_charset_gbk_bin= { 87,0,0, /* number */ MY_CS_COMPILED|MY_CS_BINSORT, /* state */ - "gbk", /* cs name */ + charset_name_gbk, /* cs name */ "gbk_bin", /* name */ "", /* comment */ NULL, /* tailoring */ @@ -10806,7 +10807,7 @@ struct charset_info_st my_charset_gbk_chinese_nopad_ci= { MY_NOPAD_ID(28),0,0,/* number */ MY_CS_COMPILED|MY_CS_STRNXFRM|MY_CS_NOPAD, /* state */ - "gbk", /* cs name */ + charset_name_gbk, /* cs name */ "gbk_chinese_nopad_ci",/* name */ "", /* comment */ NULL, /* tailoring */ @@ -10838,7 +10839,7 @@ struct charset_info_st my_charset_gbk_nopad_bin= { MY_NOPAD_ID(87),0,0,/* number */ MY_CS_COMPILED|MY_CS_BINSORT|MY_CS_NOPAD, /* state */ - "gbk", /* cs name */ + charset_name_gbk, /* cs name */ "gbk_nopad_bin", /* name */ "", /* comment */ NULL, /* tailoring */ diff --git a/strings/ctype-latin1.c b/strings/ctype-latin1.c index 53ce27e491e..4753ca737a6 100644 --- a/strings/ctype-latin1.c +++ b/strings/ctype-latin1.c @@ -18,6 +18,8 @@ #include "strings_def.h" #include +const char charset_name_latin1[]= "latin1"; + static const uchar ctype_latin1[] = { 0, 32, 32, 32, 32, 32, 32, 32, 32, 32, 40, 40, 40, 40, 40, 32, 32, @@ -431,7 +433,7 @@ struct charset_info_st my_charset_latin1= { 8,0,0, /* number */ MY_CS_COMPILED | MY_CS_PRIMARY, /* state */ - "latin1", /* cs name */ + charset_name_latin1, /* cs name */ "latin1_swedish_ci", /* name */ "", /* comment */ NULL, /* tailoring */ @@ -464,7 +466,7 @@ struct charset_info_st my_charset_latin1_nopad= { MY_NOPAD_ID(8),0,0, /* number */ MY_CS_COMPILED | MY_CS_NOPAD, /* state */ - "latin1", /* cs name */ + charset_name_latin1, /* cs name */ "latin1_swedish_nopad_ci", /* name */ "", /* comment */ NULL, /* tailoring */ @@ -742,7 +744,7 @@ struct charset_info_st my_charset_latin1_german2_ci= { 31,0,0, /* number */ MY_CS_COMPILED|MY_CS_STRNXFRM|MY_CS_NON1TO1, /* state */ - "latin1", /* cs name */ + charset_name_latin1, /* cs name */ "latin1_german2_ci", /* name */ "", /* comment */ NULL, /* tailoring */ @@ -775,7 +777,7 @@ struct charset_info_st my_charset_latin1_bin= { 47,0,0, /* number */ MY_CS_COMPILED|MY_CS_BINSORT, /* state */ - "latin1", /* cs name */ + charset_name_latin1, /* cs name */ "latin1_bin", /* name */ "", /* comment */ NULL, /* tailoring */ @@ -808,7 +810,7 @@ struct charset_info_st my_charset_latin1_nopad_bin= { MY_NOPAD_ID(47),0,0, /* number */ MY_CS_COMPILED|MY_CS_BINSORT|MY_CS_NOPAD,/* state */ - "latin1", /* cs name */ + charset_name_latin1, /* cs name */ "latin1_nopad_bin", /* name */ "", /* comment */ NULL, /* tailoring */ diff --git a/strings/ctype-sjis.c b/strings/ctype-sjis.c index e1c6a871772..57458ca3a48 100644 --- a/strings/ctype-sjis.c +++ b/strings/ctype-sjis.c @@ -22,6 +22,7 @@ #ifdef HAVE_CHARSET_sjis +const char charset_name_sjis[]= "sjis"; /* * This comment is parsed by configure to create ctype.c, @@ -34152,7 +34153,7 @@ struct charset_info_st my_charset_sjis_japanese_ci= { 13,0,0, /* number */ MY_CS_COMPILED|MY_CS_PRIMARY|MY_CS_STRNXFRM|MY_CS_NONASCII, /* state */ - "sjis", /* cs name */ + charset_name_sjis, /* cs name */ "sjis_japanese_ci", /* name */ "", /* comment */ NULL, /* tailoring */ @@ -34184,7 +34185,7 @@ struct charset_info_st my_charset_sjis_bin= { 88,0,0, /* number */ MY_CS_COMPILED|MY_CS_BINSORT|MY_CS_NONASCII, /* state */ - "sjis", /* cs name */ + charset_name_sjis, /* cs name */ "sjis_bin", /* name */ "", /* comment */ NULL, /* tailoring */ @@ -34217,7 +34218,7 @@ struct charset_info_st my_charset_sjis_japanese_nopad_ci= { MY_NOPAD_ID(13),0,0, /* number */ MY_CS_COMPILED|MY_CS_STRNXFRM|MY_CS_NONASCII|MY_CS_NOPAD, /* state */ - "sjis", /* cs name */ + charset_name_sjis, /* cs name */ "sjis_japanese_nopad_ci", /* name */ "", /* comment */ NULL, /* tailoring */ @@ -34249,7 +34250,7 @@ struct charset_info_st my_charset_sjis_nopad_bin= { MY_NOPAD_ID(88),0,0, /* number */ MY_CS_COMPILED|MY_CS_BINSORT|MY_CS_NONASCII|MY_CS_NOPAD, /* state */ - "sjis", /* cs name */ + charset_name_sjis, /* cs name */ "sjis_nopad_bin", /* name */ "", /* comment */ NULL, /* tailoring */ diff --git a/strings/ctype-tis620.c b/strings/ctype-tis620.c index 772294fb5c0..90773a0dabc 100644 --- a/strings/ctype-tis620.c +++ b/strings/ctype-tis620.c @@ -40,6 +40,8 @@ #ifdef HAVE_CHARSET_tis620 +const char charset_name_tis620[]= "tis620"; + #define M L_MIDDLE #define U L_UPPER #define L L_LOWER @@ -914,7 +916,7 @@ struct charset_info_st my_charset_tis620_thai_ci= { 18,0,0, /* number */ MY_CS_COMPILED|MY_CS_PRIMARY|MY_CS_STRNXFRM|MY_CS_NON1TO1, /* state */ - "tis620", /* cs name */ + charset_name_tis620, /* cs name */ "tis620_thai_ci", /* name */ "", /* comment */ NULL, /* tailoring */ @@ -946,7 +948,7 @@ struct charset_info_st my_charset_tis620_bin= { 89,0,0, /* number */ MY_CS_COMPILED|MY_CS_BINSORT, /* state */ - "tis620", /* cs name */ + charset_name_tis620, /* cs name */ "tis620_bin", /* name */ "", /* comment */ NULL, /* tailoring */ @@ -979,7 +981,7 @@ struct charset_info_st my_charset_tis620_thai_nopad_ci= { MY_NOPAD_ID(18),0,0, /* number */ MY_CS_COMPILED|MY_CS_STRNXFRM|MY_CS_NON1TO1|MY_CS_NOPAD, /* state */ - "tis620", /* cs name */ + charset_name_tis620, /* cs name */ "tis620_thai_nopad_ci",/* name */ "", /* comment */ NULL, /* tailoring */ @@ -1012,7 +1014,7 @@ struct charset_info_st my_charset_tis620_nopad_bin= { MY_NOPAD_ID(89),0,0, /* number */ MY_CS_COMPILED|MY_CS_BINSORT|MY_CS_NOPAD, /* state */ - "tis620", /* cs name */ + charset_name_tis620, /* cs name */ "tis620_nopad_bin", /* name */ "", /* comment */ NULL, /* tailoring */ diff --git a/strings/ctype-uca.c b/strings/ctype-uca.c index 94b73335a4f..2d1fa5ef496 100644 --- a/strings/ctype-uca.c +++ b/strings/ctype-uca.c @@ -33884,7 +33884,6 @@ ex: #define MY_UCA_COLL_INIT my_coll_init_uca #include "ctype-uca.ic" - #define MY_CS_UCS2_UCA_FLAGS (MY_CS_COMMON_UCA_FLAGS|MY_CS_NONASCII) #define MY_CS_UCS2_UCA_NOPAD_FLAGS (MY_CS_UCS2_UCA_FLAGS|MY_CS_NOPAD) @@ -33892,7 +33891,7 @@ struct charset_info_st my_charset_ucs2_unicode_ci= { 128,0,0, /* number */ MY_CS_UCS2_UCA_FLAGS,/* state */ - "ucs2", /* cs name */ + charset_name_ucs2, /* cs name */ "ucs2_unicode_ci", /* name */ "", /* comment */ "", /* tailoring */ @@ -33924,7 +33923,7 @@ struct charset_info_st my_charset_ucs2_icelandic_uca_ci= { 129,0,0, /* number */ MY_CS_UCS2_UCA_FLAGS,/* state */ - "ucs2", /* cs name */ + charset_name_ucs2, /* cs name */ "ucs2_icelandic_ci",/* name */ "", /* comment */ icelandic, /* tailoring */ @@ -33956,7 +33955,7 @@ struct charset_info_st my_charset_ucs2_latvian_uca_ci= { 130,0,0, /* number */ MY_CS_UCS2_UCA_FLAGS,/* state */ - "ucs2", /* cs name */ + charset_name_ucs2, /* cs name */ "ucs2_latvian_ci", /* name */ "", /* comment */ latvian, /* tailoring */ @@ -33988,7 +33987,7 @@ struct charset_info_st my_charset_ucs2_romanian_uca_ci= { 131,0,0, /* number */ MY_CS_UCS2_UCA_FLAGS,/* state */ - "ucs2", /* cs name */ + charset_name_ucs2, /* cs name */ "ucs2_romanian_ci", /* name */ "", /* comment */ romanian, /* tailoring */ @@ -34020,7 +34019,7 @@ struct charset_info_st my_charset_ucs2_slovenian_uca_ci= { 132,0,0, /* number */ MY_CS_UCS2_UCA_FLAGS,/* state */ - "ucs2", /* cs name */ + charset_name_ucs2, /* cs name */ "ucs2_slovenian_ci",/* name */ "", /* comment */ slovenian, /* tailoring */ @@ -34052,7 +34051,7 @@ struct charset_info_st my_charset_ucs2_polish_uca_ci= { 133,0,0, /* number */ MY_CS_UCS2_UCA_FLAGS,/* state */ - "ucs2", /* cs name */ + charset_name_ucs2, /* cs name */ "ucs2_polish_ci", /* name */ "", /* comment */ polish, /* tailoring */ @@ -34084,7 +34083,7 @@ struct charset_info_st my_charset_ucs2_estonian_uca_ci= { 134,0,0, /* number */ MY_CS_UCS2_UCA_FLAGS,/* state */ - "ucs2", /* cs name */ + charset_name_ucs2, /* cs name */ "ucs2_estonian_ci", /* name */ "", /* comment */ estonian, /* tailoring */ @@ -34116,7 +34115,7 @@ struct charset_info_st my_charset_ucs2_spanish_uca_ci= { 135,0,0, /* number */ MY_CS_UCS2_UCA_FLAGS,/* state */ - "ucs2", /* cs name */ + charset_name_ucs2, /* cs name */ "ucs2_spanish_ci", /* name */ "", /* comment */ spanish, /* tailoring */ @@ -34148,7 +34147,7 @@ struct charset_info_st my_charset_ucs2_swedish_uca_ci= { 136,0,0, /* number */ MY_CS_UCS2_UCA_FLAGS,/* state */ - "ucs2", /* cs name */ + charset_name_ucs2, /* cs name */ "ucs2_swedish_ci", /* name */ "", /* comment */ swedish, /* tailoring */ @@ -34180,7 +34179,7 @@ struct charset_info_st my_charset_ucs2_turkish_uca_ci= { 137,0,0, /* number */ MY_CS_UCS2_UCA_FLAGS,/* state */ - "ucs2", /* cs name */ + charset_name_ucs2, /* cs name */ "ucs2_turkish_ci", /* name */ "", /* comment */ turkish, /* tailoring */ @@ -34212,7 +34211,7 @@ struct charset_info_st my_charset_ucs2_czech_uca_ci= { 138,0,0, /* number */ MY_CS_UCS2_UCA_FLAGS,/* state */ - "ucs2", /* cs name */ + charset_name_ucs2, /* cs name */ "ucs2_czech_ci", /* name */ "", /* comment */ czech, /* tailoring */ @@ -34245,7 +34244,7 @@ struct charset_info_st my_charset_ucs2_danish_uca_ci= { 139,0,0, /* number */ MY_CS_UCS2_UCA_FLAGS,/* state */ - "ucs2", /* cs name */ + charset_name_ucs2, /* cs name */ "ucs2_danish_ci", /* name */ "", /* comment */ danish, /* tailoring */ @@ -34277,7 +34276,7 @@ struct charset_info_st my_charset_ucs2_lithuanian_uca_ci= { 140,0,0, /* number */ MY_CS_UCS2_UCA_FLAGS,/* state */ - "ucs2", /* cs name */ + charset_name_ucs2, /* cs name */ "ucs2_lithuanian_ci",/* name */ "", /* comment */ lithuanian, /* tailoring */ @@ -34309,7 +34308,7 @@ struct charset_info_st my_charset_ucs2_slovak_uca_ci= { 141,0,0, /* number */ MY_CS_UCS2_UCA_FLAGS,/* state */ - "ucs2", /* cs name */ + charset_name_ucs2, /* cs name */ "ucs2_slovak_ci", /* name */ "", /* comment */ slovak, /* tailoring */ @@ -34341,7 +34340,7 @@ struct charset_info_st my_charset_ucs2_spanish2_uca_ci= { 142,0,0, /* number */ MY_CS_UCS2_UCA_FLAGS,/* state */ - "ucs2", /* cs name */ + charset_name_ucs2, /* cs name */ "ucs2_spanish2_ci", /* name */ "", /* comment */ spanish2, /* tailoring */ @@ -34374,7 +34373,7 @@ struct charset_info_st my_charset_ucs2_roman_uca_ci= { 143,0,0, /* number */ MY_CS_UCS2_UCA_FLAGS,/* state */ - "ucs2", /* cs name */ + charset_name_ucs2, /* cs name */ "ucs2_roman_ci", /* name */ "", /* comment */ roman, /* tailoring */ @@ -34407,7 +34406,7 @@ struct charset_info_st my_charset_ucs2_persian_uca_ci= { 144,0,0, /* number */ MY_CS_UCS2_UCA_FLAGS,/* state */ - "ucs2", /* cs name */ + charset_name_ucs2, /* cs name */ "ucs2_persian_ci", /* name */ "", /* comment */ persian, /* tailoring */ @@ -34440,7 +34439,7 @@ struct charset_info_st my_charset_ucs2_esperanto_uca_ci= { 145,0,0, /* number */ MY_CS_UCS2_UCA_FLAGS,/* state */ - "ucs2", /* cs name */ + charset_name_ucs2, /* cs name */ "ucs2_esperanto_ci",/* name */ "", /* comment */ esperanto, /* tailoring */ @@ -34473,7 +34472,7 @@ struct charset_info_st my_charset_ucs2_hungarian_uca_ci= { 146,0,0, /* number */ MY_CS_UCS2_UCA_FLAGS,/* state */ - "ucs2", /* cs name */ + charset_name_ucs2, /* cs name */ "ucs2_hungarian_ci",/* name */ "", /* comment */ hungarian, /* tailoring */ @@ -34505,7 +34504,7 @@ struct charset_info_st my_charset_ucs2_sinhala_uca_ci= { 147,0,0, /* number */ MY_CS_UCS2_UCA_FLAGS,/* state */ - "ucs2", /* csname */ + charset_name_ucs2, /* csname */ "ucs2_sinhala_ci", /* name */ "", /* comment */ sinhala, /* tailoring */ @@ -34539,7 +34538,7 @@ struct charset_info_st my_charset_ucs2_german2_uca_ci= { 148,0,0, /* number */ MY_CS_UCS2_UCA_FLAGS,/* state */ - "ucs2", /* csname */ + charset_name_ucs2, /* csname */ "ucs2_german2_ci", /* name */ "", /* comment */ german2, /* tailoring */ @@ -34571,7 +34570,7 @@ struct charset_info_st my_charset_ucs2_croatian_mysql561_uca_ci= { 149,0,0, /* number */ MY_CS_UCS2_UCA_FLAGS,/* state */ - "ucs2", /* cs name */ + charset_name_ucs2, /* cs name */ "ucs2_croatian_mysql561_ci",/* name */ "", /* comment */ croatian_mysql561, /* tailoring */ @@ -34604,7 +34603,7 @@ struct charset_info_st my_charset_ucs2_croatian_uca_ci= { MY_PAGE2_COLLATION_ID_UCS2,0,0, /* number */ MY_CS_UCS2_UCA_FLAGS,/* state */ - "ucs2", /* cs name */ + charset_name_ucs2, /* cs name */ "ucs2_croatian_ci", /* name */ "", /* comment */ croatian_mariadb, /* tailoring */ @@ -34637,7 +34636,7 @@ struct charset_info_st my_charset_ucs2_myanmar_uca_ci= { MY_PAGE2_COLLATION_ID_UCS2+1,0,0, /* number */ MY_CS_UCS2_UCA_FLAGS,/* state */ - "ucs2", /* cs name */ + charset_name_ucs2, /* cs name */ "ucs2_myanmar_ci", /* name */ "", /* comment */ myanmar, /* tailoring */ @@ -34670,7 +34669,7 @@ struct charset_info_st my_charset_ucs2_thai_520_w2= { MY_PAGE2_COLLATION_ID_UCS2+2,0,0, /* number */ MY_CS_UCS2_UCA_FLAGS,/* flags */ - "ucs2", /* csname */ + charset_name_ucs2, /* csname */ "ucs2_thai_520_w2", /* name */ "", /* comment */ "[strength 2]", /* tailoring */ @@ -34702,7 +34701,7 @@ struct charset_info_st my_charset_ucs2_unicode_520_ci= { 150,0,0, /* number */ MY_CS_UCS2_UCA_FLAGS,/* state */ - "ucs2", /* cs name */ + charset_name_ucs2, /* cs name */ "ucs2_unicode_520_ci",/* name */ "", /* comment */ "", /* tailoring */ @@ -34735,7 +34734,7 @@ struct charset_info_st my_charset_ucs2_vietnamese_ci= { 151,0,0, /* number */ MY_CS_UCS2_UCA_FLAGS,/* state */ - "ucs2", /* csname */ + charset_name_ucs2, /* csname */ "ucs2_vietnamese_ci",/* name */ "", /* comment */ vietnamese, /* tailoring */ @@ -34768,7 +34767,7 @@ struct charset_info_st my_charset_ucs2_unicode_nopad_ci= { MY_NOPAD_ID(128),0,0, /* number */ MY_CS_UCS2_UCA_NOPAD_FLAGS,/* state */ - "ucs2", /* cs name */ + charset_name_ucs2, /* cs name */ "ucs2_unicode_nopad_ci", /* name */ "", /* comment */ "", /* tailoring */ @@ -34801,7 +34800,7 @@ struct charset_info_st my_charset_ucs2_unicode_520_nopad_ci= { MY_NOPAD_ID(150),0,0, /* number */ MY_CS_UCS2_UCA_NOPAD_FLAGS, /* state */ - "ucs2", /* cs name */ + charset_name_ucs2, /* cs name */ "ucs2_unicode_520_nopad_ci",/* name */ "", /* comment */ "", /* tailoring */ @@ -34903,7 +34902,7 @@ struct charset_info_st my_charset_utf8mb3_unicode_ci= { 192,0,0, /* number */ MY_CS_UTF8MB3_UCA_FLAGS,/* flags */ - MY_UTF8MB3, /* cs name */ + charset_name_utf8, /* cs name */ MY_UTF8MB3 "_unicode_ci", /* name */ "", /* comment */ "", /* tailoring */ @@ -34936,7 +34935,7 @@ struct charset_info_st my_charset_utf8mb3_icelandic_uca_ci= { 193,0,0, /* number */ MY_CS_UTF8MB3_UCA_FLAGS,/* flags */ - MY_UTF8MB3, /* cs name */ + charset_name_utf8, /* cs name */ MY_UTF8MB3 "_icelandic_ci",/* name */ "", /* comment */ icelandic, /* tailoring */ @@ -34968,7 +34967,7 @@ struct charset_info_st my_charset_utf8mb3_latvian_uca_ci= { 194,0,0, /* number */ MY_CS_UTF8MB3_UCA_FLAGS,/* flags */ - MY_UTF8MB3, /* cs name */ + charset_name_utf8, /* cs name */ MY_UTF8MB3 "_latvian_ci",/* name */ "", /* comment */ latvian, /* tailoring */ @@ -35000,7 +34999,7 @@ struct charset_info_st my_charset_utf8mb3_romanian_uca_ci= { 195,0,0, /* number */ MY_CS_UTF8MB3_UCA_FLAGS,/* flags */ - MY_UTF8MB3, /* cs name */ + charset_name_utf8, /* cs name */ MY_UTF8MB3 "_romanian_ci", /* name */ "", /* comment */ romanian, /* tailoring */ @@ -35032,7 +35031,7 @@ struct charset_info_st my_charset_utf8mb3_slovenian_uca_ci= { 196,0,0, /* number */ MY_CS_UTF8MB3_UCA_FLAGS,/* flags */ - MY_UTF8MB3, /* cs name */ + charset_name_utf8, /* cs name */ MY_UTF8MB3 "_slovenian_ci",/* name */ "", /* comment */ slovenian, /* tailoring */ @@ -35064,7 +35063,7 @@ struct charset_info_st my_charset_utf8mb3_polish_uca_ci= { 197,0,0, /* number */ MY_CS_UTF8MB3_UCA_FLAGS,/* flags */ - MY_UTF8MB3, /* cs name */ + charset_name_utf8, /* cs name */ MY_UTF8MB3 "_polish_ci",/* name */ "", /* comment */ polish, /* tailoring */ @@ -35096,7 +35095,7 @@ struct charset_info_st my_charset_utf8mb3_estonian_uca_ci= { 198,0,0, /* number */ MY_CS_UTF8MB3_UCA_FLAGS,/* flags */ - MY_UTF8MB3, /* cs name */ + charset_name_utf8, /* cs name */ MY_UTF8MB3 "_estonian_ci",/* name */ "", /* comment */ estonian, /* tailoring */ @@ -35128,7 +35127,7 @@ struct charset_info_st my_charset_utf8mb3_spanish_uca_ci= { 199,0,0, /* number */ MY_CS_UTF8MB3_UCA_FLAGS,/* flags */ - MY_UTF8MB3, /* cs name */ + charset_name_utf8, /* cs name */ MY_UTF8MB3 "_spanish_ci", /* name */ "", /* comment */ spanish, /* tailoring */ @@ -35160,7 +35159,7 @@ struct charset_info_st my_charset_utf8mb3_swedish_uca_ci= { 200,0,0, /* number */ MY_CS_UTF8MB3_UCA_FLAGS,/* flags */ - MY_UTF8MB3, /* cs name */ + charset_name_utf8, /* cs name */ MY_UTF8MB3 "_swedish_ci", /* name */ "", /* comment */ swedish, /* tailoring */ @@ -35192,7 +35191,7 @@ struct charset_info_st my_charset_utf8mb3_turkish_uca_ci= { 201,0,0, /* number */ MY_CS_UTF8MB3_UCA_FLAGS,/* flags */ - MY_UTF8MB3, /* cs name */ + charset_name_utf8, /* cs name */ MY_UTF8MB3 "_turkish_ci", /* name */ "", /* comment */ turkish, /* tailoring */ @@ -35224,7 +35223,7 @@ struct charset_info_st my_charset_utf8mb3_czech_uca_ci= { 202,0,0, /* number */ MY_CS_UTF8MB3_UCA_FLAGS,/* flags */ - MY_UTF8MB3, /* cs name */ + charset_name_utf8, /* cs name */ MY_UTF8MB3 "_czech_ci", /* name */ "", /* comment */ czech, /* tailoring */ @@ -35257,7 +35256,7 @@ struct charset_info_st my_charset_utf8mb3_danish_uca_ci= { 203,0,0, /* number */ MY_CS_UTF8MB3_UCA_FLAGS,/* flags */ - MY_UTF8MB3, /* cs name */ + charset_name_utf8, /* cs name */ MY_UTF8MB3 "_danish_ci", /* name */ "", /* comment */ danish, /* tailoring */ @@ -35289,7 +35288,7 @@ struct charset_info_st my_charset_utf8mb3_lithuanian_uca_ci= { 204,0,0, /* number */ MY_CS_UTF8MB3_UCA_FLAGS,/* flags */ - MY_UTF8MB3, /* cs name */ + charset_name_utf8, /* cs name */ MY_UTF8MB3 "_lithuanian_ci",/* name */ "", /* comment */ lithuanian, /* tailoring */ @@ -35321,7 +35320,7 @@ struct charset_info_st my_charset_utf8mb3_slovak_uca_ci= { 205,0,0, /* number */ MY_CS_UTF8MB3_UCA_FLAGS,/* flags */ - MY_UTF8MB3, /* cs name */ + charset_name_utf8, /* cs name */ MY_UTF8MB3 "_slovak_ci",/* name */ "", /* comment */ slovak, /* tailoring */ @@ -35353,7 +35352,7 @@ struct charset_info_st my_charset_utf8mb3_spanish2_uca_ci= { 206,0,0, /* number */ MY_CS_UTF8MB3_UCA_FLAGS,/* flags */ - MY_UTF8MB3, /* cs name */ + charset_name_utf8, /* cs name */ MY_UTF8MB3 "_spanish2_ci",/* name */ "", /* comment */ spanish2, /* tailoring */ @@ -35385,7 +35384,7 @@ struct charset_info_st my_charset_utf8mb3_roman_uca_ci= { 207,0,0, /* number */ MY_CS_UTF8MB3_UCA_FLAGS,/* flags */ - MY_UTF8MB3, /* cs name */ + charset_name_utf8, /* cs name */ MY_UTF8MB3 "_roman_ci",/* name */ "", /* comment */ roman, /* tailoring */ @@ -35417,7 +35416,7 @@ struct charset_info_st my_charset_utf8mb3_persian_uca_ci= { 208,0,0, /* number */ MY_CS_UTF8MB3_UCA_FLAGS,/* flags */ - MY_UTF8MB3, /* cs name */ + charset_name_utf8, /* cs name */ MY_UTF8MB3 "_persian_ci",/* name */ "", /* comment */ persian, /* tailoring */ @@ -35449,7 +35448,7 @@ struct charset_info_st my_charset_utf8mb3_esperanto_uca_ci= { 209,0,0, /* number */ MY_CS_UTF8MB3_UCA_FLAGS,/* flags */ - MY_UTF8MB3, /* cs name */ + charset_name_utf8, /* cs name */ MY_UTF8MB3 "_esperanto_ci",/* name */ "", /* comment */ esperanto, /* tailoring */ @@ -35481,7 +35480,7 @@ struct charset_info_st my_charset_utf8mb3_hungarian_uca_ci= { 210,0,0, /* number */ MY_CS_UTF8MB3_UCA_FLAGS,/* flags */ - MY_UTF8MB3, /* cs name */ + charset_name_utf8, /* cs name */ MY_UTF8MB3 "_hungarian_ci",/* name */ "", /* comment */ hungarian, /* tailoring */ @@ -35513,7 +35512,7 @@ struct charset_info_st my_charset_utf8mb3_sinhala_uca_ci= { 211,0,0, /* number */ MY_CS_UTF8MB3_UCA_FLAGS,/* flags */ - MY_UTF8MB3, /* cs name */ + charset_name_utf8, /* cs name */ MY_UTF8MB3 "_sinhala_ci", /* name */ "", /* comment */ sinhala, /* tailoring */ @@ -35546,7 +35545,7 @@ struct charset_info_st my_charset_utf8mb3_german2_uca_ci= { 212,0,0, /* number */ MY_CS_UTF8MB3_UCA_FLAGS,/* flags */ - MY_UTF8MB3, /* cs name */ + charset_name_utf8, /* cs name */ MY_UTF8MB3 "_german2_ci",/* name */ "", /* comment */ german2, /* tailoring */ @@ -35578,7 +35577,7 @@ struct charset_info_st my_charset_utf8mb3_croatian_mysql561_uca_ci= { 213,0,0, /* number */ MY_CS_UTF8MB3_UCA_FLAGS,/* flags */ - MY_UTF8MB3, /* cs name */ + charset_name_utf8, /* cs name */ MY_UTF8MB3 "_croatian_mysql561_ci",/* name */ "", /* comment */ croatian_mysql561, /* tailoring */ @@ -35611,7 +35610,7 @@ struct charset_info_st my_charset_utf8mb3_croatian_uca_ci= { MY_PAGE2_COLLATION_ID_UTF8,0,0, /* number */ MY_CS_UTF8MB3_UCA_FLAGS,/* flags */ - MY_UTF8MB3, /* cs name */ + charset_name_utf8, /* cs name */ MY_UTF8MB3 "_croatian_ci",/* name */ "", /* comment */ croatian_mariadb, /* tailoring */ @@ -35644,7 +35643,7 @@ struct charset_info_st my_charset_utf8mb3_myanmar_uca_ci= { MY_PAGE2_COLLATION_ID_UTF8+1,0,0, /* number */ MY_CS_UTF8MB3_UCA_FLAGS,/* flags */ - MY_UTF8MB3, /* cs name */ + charset_name_utf8, /* cs name */ MY_UTF8MB3 "_myanmar_ci",/* name */ "", /* comment */ myanmar, /* tailoring */ @@ -35677,7 +35676,7 @@ struct charset_info_st my_charset_utf8mb3_unicode_520_ci= { 214,0,0, /* number */ MY_CS_UTF8MB3_UCA_FLAGS,/* flags */ - MY_UTF8MB3, /* csname */ + charset_name_utf8, /* csname */ MY_UTF8MB3 "_unicode_520_ci",/* name */ "", /* comment */ "", /* tailoring */ @@ -35709,7 +35708,7 @@ struct charset_info_st my_charset_utf8mb3_thai_520_w2= { MY_PAGE2_COLLATION_ID_UTF8+2,0,0, /* number */ MY_CS_UTF8MB3_UCA_FLAGS,/* flags */ - MY_UTF8MB3, /* csname */ + charset_name_utf8, /* csname */ MY_UTF8MB3 "_thai_520_w2",/* name */ "", /* comment */ "[strength 2]", /* tailoring */ @@ -35741,7 +35740,7 @@ struct charset_info_st my_charset_utf8mb3_vietnamese_ci= { 215,0,0, /* number */ MY_CS_UTF8MB3_UCA_FLAGS,/* flags */ - MY_UTF8MB3, /* cs name */ + charset_name_utf8, /* cs name */ MY_UTF8MB3 "_vietnamese_ci",/* name */ "", /* comment */ vietnamese, /* tailoring */ @@ -35774,7 +35773,7 @@ struct charset_info_st my_charset_utf8mb3_unicode_nopad_ci= { MY_NOPAD_ID(192),0,0, /* number */ MY_CS_UTF8MB3_UCA_NOPAD_FLAGS, /* flags */ - MY_UTF8MB3, /* cs name */ + charset_name_utf8, /* cs name */ MY_UTF8MB3 "_unicode_nopad_ci",/* name */ "", /* comment */ "", /* tailoring */ @@ -35807,7 +35806,7 @@ struct charset_info_st my_charset_utf8mb3_unicode_520_nopad_ci= { MY_NOPAD_ID(214),0,0, /* number */ MY_CS_UTF8MB3_UCA_NOPAD_FLAGS, /* flags */ - MY_UTF8MB3, /* csname */ + charset_name_utf8, /* csname */ MY_UTF8MB3 "_unicode_520_nopad_ci", /* name */ "", /* comment */ "", /* tailoring */ @@ -35882,7 +35881,7 @@ struct charset_info_st my_charset_utf8mb4_unicode_ci= { 224,0,0, /* number */ MY_CS_UTF8MB4_UCA_FLAGS,/* state */ - MY_UTF8MB4, /* csname */ + charset_name_utf8mb4, /* csname */ MY_UTF8MB4 "_unicode_ci",/* name */ "", /* comment */ "", /* tailoring */ @@ -35915,7 +35914,7 @@ struct charset_info_st my_charset_utf8mb4_icelandic_uca_ci= { 225,0,0, /* number */ MY_CS_UTF8MB4_UCA_FLAGS,/* state */ - MY_UTF8MB4, /* csname */ + charset_name_utf8mb4, /* csname */ MY_UTF8MB4 "_icelandic_ci",/* name */ "", /* comment */ icelandic, /* tailoring */ @@ -35947,7 +35946,7 @@ struct charset_info_st my_charset_utf8mb4_latvian_uca_ci= { 226,0,0, /* number */ MY_CS_UTF8MB4_UCA_FLAGS,/* state */ - MY_UTF8MB4, /* csname */ + charset_name_utf8mb4, /* csname */ MY_UTF8MB4 "_latvian_ci", /* name */ "", /* comment */ latvian, /* tailoring */ @@ -35979,7 +35978,7 @@ struct charset_info_st my_charset_utf8mb4_romanian_uca_ci= { 227,0,0, /* number */ MY_CS_UTF8MB4_UCA_FLAGS,/* state */ - MY_UTF8MB4, /* csname */ + charset_name_utf8mb4, /* csname */ MY_UTF8MB4 "_romanian_ci", /* name */ "", /* comment */ romanian, /* tailoring */ @@ -36011,7 +36010,7 @@ struct charset_info_st my_charset_utf8mb4_slovenian_uca_ci= { 228,0,0, /* number */ MY_CS_UTF8MB4_UCA_FLAGS,/* state */ - MY_UTF8MB4, /* csname */ + charset_name_utf8mb4, /* csname */ MY_UTF8MB4 "_slovenian_ci",/* name */ "", /* comment */ slovenian, /* tailoring */ @@ -36043,7 +36042,7 @@ struct charset_info_st my_charset_utf8mb4_polish_uca_ci= { 229,0,0, /* number */ MY_CS_UTF8MB4_UCA_FLAGS,/* state */ - MY_UTF8MB4, /* csname */ + charset_name_utf8mb4, /* csname */ MY_UTF8MB4 "_polish_ci", /* name */ "", /* comment */ polish, /* tailoring */ @@ -36075,7 +36074,7 @@ struct charset_info_st my_charset_utf8mb4_estonian_uca_ci= { 230,0,0, /* number */ MY_CS_UTF8MB4_UCA_FLAGS,/* state */ - MY_UTF8MB4, /* csname */ + charset_name_utf8mb4, /* csname */ MY_UTF8MB4 "_estonian_ci", /* name */ "", /* comment */ estonian, /* tailoring */ @@ -36107,7 +36106,7 @@ struct charset_info_st my_charset_utf8mb4_spanish_uca_ci= { 231,0,0, /* number */ MY_CS_UTF8MB4_UCA_FLAGS,/* state */ - MY_UTF8MB4, /* csname */ + charset_name_utf8mb4, /* csname */ MY_UTF8MB4 "_spanish_ci", /* name */ "", /* comment */ spanish, /* tailoring */ @@ -36139,7 +36138,7 @@ struct charset_info_st my_charset_utf8mb4_swedish_uca_ci= { 232,0,0, /* number */ MY_CS_UTF8MB4_UCA_FLAGS,/* state */ - MY_UTF8MB4, /* csname */ + charset_name_utf8mb4, /* csname */ MY_UTF8MB4 "_swedish_ci", /* name */ "", /* comment */ swedish, /* tailoring */ @@ -36171,7 +36170,7 @@ struct charset_info_st my_charset_utf8mb4_turkish_uca_ci= { 233,0,0, /* number */ MY_CS_UTF8MB4_UCA_FLAGS,/* state */ - MY_UTF8MB4, /* csname */ + charset_name_utf8mb4, /* csname */ MY_UTF8MB4 "_turkish_ci", /* name */ "", /* comment */ turkish, /* tailoring */ @@ -36203,7 +36202,7 @@ struct charset_info_st my_charset_utf8mb4_czech_uca_ci= { 234,0,0, /* number */ MY_CS_UTF8MB4_UCA_FLAGS,/* state */ - MY_UTF8MB4, /* csname */ + charset_name_utf8mb4, /* csname */ MY_UTF8MB4 "_czech_ci", /* name */ "", /* comment */ czech, /* tailoring */ @@ -36236,7 +36235,7 @@ struct charset_info_st my_charset_utf8mb4_danish_uca_ci= { 235,0,0, /* number */ MY_CS_UTF8MB4_UCA_FLAGS,/* state */ - MY_UTF8MB4, /* csname */ + charset_name_utf8mb4, /* csname */ MY_UTF8MB4 "_danish_ci", /* name */ "", /* comment */ danish, /* tailoring */ @@ -36268,7 +36267,7 @@ struct charset_info_st my_charset_utf8mb4_lithuanian_uca_ci= { 236,0,0, /* number */ MY_CS_UTF8MB4_UCA_FLAGS,/* state */ - MY_UTF8MB4, /* csname */ + charset_name_utf8mb4, /* csname */ MY_UTF8MB4 "_lithuanian_ci",/* name */ "", /* comment */ lithuanian, /* tailoring */ @@ -36300,7 +36299,7 @@ struct charset_info_st my_charset_utf8mb4_slovak_uca_ci= { 237,0,0, /* number */ MY_CS_UTF8MB4_UCA_FLAGS,/* state */ - MY_UTF8MB4, /* csname */ + charset_name_utf8mb4, /* csname */ MY_UTF8MB4 "_slovak_ci", /* name */ "", /* comment */ slovak, /* tailoring */ @@ -36332,7 +36331,7 @@ struct charset_info_st my_charset_utf8mb4_spanish2_uca_ci= { 238,0,0, /* number */ MY_CS_UTF8MB4_UCA_FLAGS,/* state */ - MY_UTF8MB4, /* csname */ + charset_name_utf8mb4, /* csname */ MY_UTF8MB4 "_spanish2_ci", /* name */ "", /* comment */ spanish2, /* tailoring */ @@ -36364,7 +36363,7 @@ struct charset_info_st my_charset_utf8mb4_roman_uca_ci= { 239,0,0, /* number */ MY_CS_UTF8MB4_UCA_FLAGS,/* state */ - MY_UTF8MB4, /* csname */ + charset_name_utf8mb4, /* csname */ MY_UTF8MB4 "_roman_ci", /* name */ "", /* comment */ roman, /* tailoring */ @@ -36396,7 +36395,7 @@ struct charset_info_st my_charset_utf8mb4_persian_uca_ci= { 240,0,0, /* number */ MY_CS_UTF8MB4_UCA_FLAGS,/* state */ - MY_UTF8MB4, /* csname */ + charset_name_utf8mb4, /* csname */ MY_UTF8MB4 "_persian_ci", /* name */ "", /* comment */ persian, /* tailoring */ @@ -36428,7 +36427,7 @@ struct charset_info_st my_charset_utf8mb4_esperanto_uca_ci= { 241,0,0, /* number */ MY_CS_UTF8MB4_UCA_FLAGS,/* state */ - MY_UTF8MB4, /* csname */ + charset_name_utf8mb4, /* csname */ MY_UTF8MB4 "_esperanto_ci",/* name */ "", /* comment */ esperanto, /* tailoring */ @@ -36460,7 +36459,7 @@ struct charset_info_st my_charset_utf8mb4_hungarian_uca_ci= { 242,0,0, /* number */ MY_CS_UTF8MB4_UCA_FLAGS,/* state */ - MY_UTF8MB4, /* csname */ + charset_name_utf8mb4, /* csname */ MY_UTF8MB4 "_hungarian_ci",/* name */ "", /* comment */ hungarian, /* tailoring */ @@ -36492,7 +36491,7 @@ struct charset_info_st my_charset_utf8mb4_sinhala_uca_ci= { 243,0,0, /* number */ MY_CS_UTF8MB4_UCA_FLAGS,/* state */ - MY_UTF8MB4, /* csname */ + charset_name_utf8mb4, /* csname */ MY_UTF8MB4 "_sinhala_ci",/* name */ "", /* comment */ sinhala, /* tailoring */ @@ -36524,7 +36523,7 @@ struct charset_info_st my_charset_utf8mb4_german2_uca_ci= { 244,0,0, /* number */ MY_CS_UTF8MB4_UCA_FLAGS,/* state */ - MY_UTF8MB4, /* csname */ + charset_name_utf8mb4, /* csname */ MY_UTF8MB4 "_german2_ci",/* name */ "", /* comment */ german2, /* tailoring */ @@ -36556,7 +36555,7 @@ struct charset_info_st my_charset_utf8mb4_croatian_mysql561_uca_ci= { 245,0,0, /* number */ MY_CS_UTF8MB4_UCA_FLAGS,/* state */ - MY_UTF8MB4, /* csname */ + charset_name_utf8mb4, /* csname */ MY_UTF8MB4 "_croatian_mysql561_ci",/* name */ "", /* comment */ croatian_mysql561, /* tailoring */ @@ -36589,7 +36588,7 @@ struct charset_info_st my_charset_utf8mb4_croatian_uca_ci= { MY_PAGE2_COLLATION_ID_UTF8MB4,0,0, /* number */ MY_CS_UTF8MB4_UCA_FLAGS,/* state */ - MY_UTF8MB4, /* csname */ + charset_name_utf8mb4, /* csname */ MY_UTF8MB4 "_croatian_ci",/* name */ "", /* comment */ croatian_mariadb, /* tailoring */ @@ -36622,7 +36621,7 @@ struct charset_info_st my_charset_utf8mb4_myanmar_uca_ci= { MY_PAGE2_COLLATION_ID_UTF8MB4+1,0,0, /* number */ MY_CS_UTF8MB4_UCA_FLAGS,/* state */ - MY_UTF8MB4, /* csname */ + charset_name_utf8mb4, /* csname */ MY_UTF8MB4 "_myanmar_ci",/* name */ "", /* comment */ myanmar, /* tailoring */ @@ -36654,7 +36653,7 @@ struct charset_info_st my_charset_utf8mb4_thai_520_w2= { MY_PAGE2_COLLATION_ID_UTF8MB4+2,0,0, /* number */ MY_CS_UTF8MB4_UCA_FLAGS,/* flags */ - MY_UTF8MB4, /* csname */ + charset_name_utf8mb4, /* csname */ MY_UTF8MB4 "_thai_520_w2", /* name */ "", /* comment */ "[strength 2]", /* tailoring */ @@ -36686,7 +36685,7 @@ struct charset_info_st my_charset_utf8mb4_unicode_520_ci= { 246,0,0, /* number */ MY_CS_UTF8MB4_UCA_FLAGS,/* flags */ - MY_UTF8MB4, /* csname */ + charset_name_utf8mb4, /* csname */ MY_UTF8MB4 "_unicode_520_ci",/* name */ "", /* comment */ "", /* tailoring */ @@ -36719,7 +36718,7 @@ struct charset_info_st my_charset_utf8mb4_vietnamese_ci= { 247,0,0, /* number */ MY_CS_UTF8MB4_UCA_FLAGS,/* state */ - MY_UTF8MB4, /* csname */ + charset_name_utf8mb4, /* csname */ MY_UTF8MB4 "_vietnamese_ci",/* name */ "", /* comment */ vietnamese, /* tailoring */ @@ -36752,7 +36751,7 @@ struct charset_info_st my_charset_utf8mb4_unicode_nopad_ci= { MY_NOPAD_ID(224),0,0, /* number */ MY_CS_UTF8MB4_UCA_NOPAD_FLAGS, /* state */ - MY_UTF8MB4, /* csname */ + charset_name_utf8mb4, /* csname */ MY_UTF8MB4 "_unicode_nopad_ci", /* name */ "", /* comment */ "", /* tailoring */ @@ -36785,7 +36784,7 @@ struct charset_info_st my_charset_utf8mb4_unicode_520_nopad_ci= { MY_NOPAD_ID(246),0,0, /* number */ MY_CS_UTF8MB4_UCA_NOPAD_FLAGS, /* flags */ - MY_UTF8MB4, /* csname */ + charset_name_utf8mb4, /* csname */ MY_UTF8MB4 "_unicode_520_nopad_ci", /* name */ "", /* comment */ "", /* tailoring */ @@ -36828,7 +36827,6 @@ struct charset_info_st my_charset_utf8mb4_unicode_520_nopad_ci= #define MY_UCA_COLL_INIT my_coll_init_uca #include "ctype-uca.ic" - extern MY_CHARSET_HANDLER my_charset_utf32_handler; #define MY_CS_UTF32_UCA_FLAGS (MY_CS_COMMON_UCA_FLAGS|MY_CS_NONASCII) @@ -36838,7 +36836,7 @@ struct charset_info_st my_charset_utf32_unicode_ci= { 160,0,0, /* number */ MY_CS_UTF32_UCA_FLAGS,/* state */ - "utf32", /* csname */ + charset_name_utf32, /* csname */ "utf32_unicode_ci", /* name */ "", /* comment */ "", /* tailoring */ @@ -36871,7 +36869,7 @@ struct charset_info_st my_charset_utf32_icelandic_uca_ci= { 161,0,0, /* number */ MY_CS_UTF32_UCA_FLAGS,/* state */ - "utf32", /* csname */ + charset_name_utf32, /* csname */ "utf32_icelandic_ci",/* name */ "", /* comment */ icelandic, /* tailoring */ @@ -36903,7 +36901,7 @@ struct charset_info_st my_charset_utf32_latvian_uca_ci= { 162,0,0, /* number */ MY_CS_UTF32_UCA_FLAGS,/* state */ - "utf32", /* csname */ + charset_name_utf32, /* csname */ "utf32_latvian_ci", /* name */ "", /* comment */ latvian, /* tailoring */ @@ -36935,7 +36933,7 @@ struct charset_info_st my_charset_utf32_romanian_uca_ci= { 163,0,0, /* number */ MY_CS_UTF32_UCA_FLAGS,/* state */ - "utf32", /* csname */ + charset_name_utf32, /* csname */ "utf32_romanian_ci", /* name */ "", /* comment */ romanian, /* tailoring */ @@ -36967,7 +36965,7 @@ struct charset_info_st my_charset_utf32_slovenian_uca_ci= { 164,0,0, /* number */ MY_CS_UTF32_UCA_FLAGS,/* state */ - "utf32", /* csname */ + charset_name_utf32, /* csname */ "utf32_slovenian_ci",/* name */ "", /* comment */ slovenian, /* tailoring */ @@ -36999,7 +36997,7 @@ struct charset_info_st my_charset_utf32_polish_uca_ci= { 165,0,0, /* number */ MY_CS_UTF32_UCA_FLAGS,/* state */ - "utf32", /* csname */ + charset_name_utf32, /* csname */ "utf32_polish_ci", /* name */ "", /* comment */ polish, /* tailoring */ @@ -37031,7 +37029,7 @@ struct charset_info_st my_charset_utf32_estonian_uca_ci= { 166,0,0, /* number */ MY_CS_UTF32_UCA_FLAGS,/* state */ - "utf32", /* csname */ + charset_name_utf32, /* csname */ "utf32_estonian_ci", /* name */ "", /* comment */ estonian, /* tailoring */ @@ -37063,7 +37061,7 @@ struct charset_info_st my_charset_utf32_spanish_uca_ci= { 167,0,0, /* number */ MY_CS_UTF32_UCA_FLAGS,/* state */ - "utf32", /* csname */ + charset_name_utf32, /* csname */ "utf32_spanish_ci", /* name */ "", /* comment */ spanish, /* tailoring */ @@ -37095,7 +37093,7 @@ struct charset_info_st my_charset_utf32_swedish_uca_ci= { 168,0,0, /* number */ MY_CS_UTF32_UCA_FLAGS,/* state */ - "utf32", /* csname */ + charset_name_utf32, /* csname */ "utf32_swedish_ci", /* name */ "", /* comment */ swedish, /* tailoring */ @@ -37127,7 +37125,7 @@ struct charset_info_st my_charset_utf32_turkish_uca_ci= { 169,0,0, /* number */ MY_CS_UTF32_UCA_FLAGS,/* state */ - "utf32", /* csname */ + charset_name_utf32, /* csname */ "utf32_turkish_ci", /* name */ "", /* comment */ turkish, /* tailoring */ @@ -37159,7 +37157,7 @@ struct charset_info_st my_charset_utf32_czech_uca_ci= { 170,0,0, /* number */ MY_CS_UTF32_UCA_FLAGS,/* state */ - "utf32", /* csname */ + charset_name_utf32, /* csname */ "utf32_czech_ci", /* name */ "", /* comment */ czech, /* tailoring */ @@ -37192,7 +37190,7 @@ struct charset_info_st my_charset_utf32_danish_uca_ci= { 171,0,0, /* number */ MY_CS_UTF32_UCA_FLAGS,/* state */ - "utf32", /* csname */ + charset_name_utf32, /* csname */ "utf32_danish_ci", /* name */ "", /* comment */ danish, /* tailoring */ @@ -37224,7 +37222,7 @@ struct charset_info_st my_charset_utf32_lithuanian_uca_ci= { 172,0,0, /* number */ MY_CS_UTF32_UCA_FLAGS,/* state */ - "utf32", /* csname */ + charset_name_utf32, /* csname */ "utf32_lithuanian_ci",/* name */ "", /* comment */ lithuanian, /* tailoring */ @@ -37256,7 +37254,7 @@ struct charset_info_st my_charset_utf32_slovak_uca_ci= { 173,0,0, /* number */ MY_CS_UTF32_UCA_FLAGS,/* state */ - "utf32", /* csname */ + charset_name_utf32, /* csname */ "utf32_slovak_ci", /* name */ "", /* comment */ slovak, /* tailoring */ @@ -37288,7 +37286,7 @@ struct charset_info_st my_charset_utf32_spanish2_uca_ci= { 174,0,0, /* number */ MY_CS_UTF32_UCA_FLAGS,/* state */ - "utf32", /* csname */ + charset_name_utf32, /* csname */ "utf32_spanish2_ci", /* name */ "", /* comment */ spanish2, /* tailoring */ @@ -37320,7 +37318,7 @@ struct charset_info_st my_charset_utf32_roman_uca_ci= { 175,0,0, /* number */ MY_CS_UTF32_UCA_FLAGS,/* state */ - "utf32", /* csname */ + charset_name_utf32, /* csname */ "utf32_roman_ci", /* name */ "", /* comment */ roman, /* tailoring */ @@ -37352,7 +37350,7 @@ struct charset_info_st my_charset_utf32_persian_uca_ci= { 176,0,0, /* number */ MY_CS_UTF32_UCA_FLAGS,/* state */ - "utf32", /* csname */ + charset_name_utf32, /* csname */ "utf32_persian_ci", /* name */ "", /* comment */ persian, /* tailoring */ @@ -37384,7 +37382,7 @@ struct charset_info_st my_charset_utf32_esperanto_uca_ci= { 177,0,0, /* number */ MY_CS_UTF32_UCA_FLAGS,/* state */ - "utf32", /* csname */ + charset_name_utf32, /* csname */ "utf32_esperanto_ci",/* name */ "", /* comment */ esperanto, /* tailoring */ @@ -37416,7 +37414,7 @@ struct charset_info_st my_charset_utf32_hungarian_uca_ci= { 178,0,0, /* number */ MY_CS_UTF32_UCA_FLAGS,/* state */ - "utf32", /* csname */ + charset_name_utf32, /* csname */ "utf32_hungarian_ci",/* name */ "", /* comment */ hungarian, /* tailoring */ @@ -37448,7 +37446,7 @@ struct charset_info_st my_charset_utf32_sinhala_uca_ci= { 179,0,0, /* number */ MY_CS_UTF32_UCA_FLAGS,/* state */ - "utf32", /* csname */ + charset_name_utf32, /* csname */ "utf32_sinhala_ci", /* name */ "", /* comment */ sinhala, /* tailoring */ @@ -37480,7 +37478,7 @@ struct charset_info_st my_charset_utf32_german2_uca_ci= { 180,0,0, /* number */ MY_CS_UTF32_UCA_FLAGS,/* state */ - "utf32", /* csname */ + charset_name_utf32, /* csname */ "utf32_german2_ci", /* name */ "", /* comment */ german2, /* tailoring */ @@ -37512,7 +37510,7 @@ struct charset_info_st my_charset_utf32_croatian_mysql561_uca_ci= { 181,0,0, /* number */ MY_CS_UTF32_UCA_FLAGS,/* state */ - "utf32", /* csname */ + charset_name_utf32, /* csname */ "utf32_croatian_mysql561_ci", /* name */ "", /* comment */ croatian_mysql561, /* tailoring */ @@ -37544,7 +37542,7 @@ struct charset_info_st my_charset_utf32_croatian_uca_ci= { MY_PAGE2_COLLATION_ID_UTF32,0,0, /* number */ MY_CS_UTF32_UCA_FLAGS,/* state */ - "utf32", /* csname */ + charset_name_utf32, /* csname */ "utf32_croatian_ci", /* name */ "", /* comment */ croatian_mariadb, /* tailoring */ @@ -37577,7 +37575,7 @@ struct charset_info_st my_charset_utf32_myanmar_uca_ci= { MY_PAGE2_COLLATION_ID_UTF32+1,0,0, /* number */ MY_CS_UTF32_UCA_FLAGS,/* state */ - "utf32", /* csname */ + charset_name_utf32, /* csname */ "utf32_myanmar_ci", /* name */ "", /* comment */ myanmar, /* tailoring */ @@ -37610,7 +37608,7 @@ struct charset_info_st my_charset_utf32_thai_520_w2= { MY_PAGE2_COLLATION_ID_UTF32+2,0,0, /* number */ MY_CS_UTF32_UCA_FLAGS,/* state */ - "utf32", /* csname */ + charset_name_utf32, /* csname */ "utf32_thai_520_w2",/* name */ "", /* comment */ "[strength 2]", /* tailoring */ @@ -37643,7 +37641,7 @@ struct charset_info_st my_charset_utf32_unicode_520_ci= { 182,0,0, /* number */ MY_CS_UTF32_UCA_FLAGS,/* stat e */ - "utf32", /* csname */ + charset_name_utf32, /* csname */ "utf32_unicode_520_ci",/* name */ "", /* comment */ "", /* tailoring */ @@ -37676,7 +37674,7 @@ struct charset_info_st my_charset_utf32_vietnamese_ci= { 183,0,0, /* number */ MY_CS_UTF32_UCA_FLAGS,/* state */ - "utf32", /* csname */ + charset_name_utf32, /* csname */ "utf32_vietnamese_ci",/* name */ "", /* comment */ vietnamese, /* tailoring */ @@ -37709,7 +37707,7 @@ struct charset_info_st my_charset_utf32_unicode_nopad_ci= { MY_NOPAD_ID(160),0,0, /* number */ MY_CS_UTF32_UCA_NOPAD_FLAGS, /* state */ - "utf32", /* csname */ + charset_name_utf32, /* csname */ "utf32_unicode_nopad_ci", /* name */ "", /* comment */ "", /* tailoring */ @@ -37742,7 +37740,7 @@ struct charset_info_st my_charset_utf32_unicode_520_nopad_ci= { MY_NOPAD_ID(182),0,0, /* number */ MY_CS_UTF32_UCA_NOPAD_FLAGS, /* state */ - "utf32", /* csname */ + charset_name_utf32, /* csname */ "utf32_unicode_520_nopad_ci",/* name */ "", /* comment */ "", /* tailoring */ @@ -37786,7 +37784,6 @@ struct charset_info_st my_charset_utf32_unicode_520_nopad_ci= #define MY_UCA_COLL_INIT my_coll_init_uca #include "ctype-uca.ic" - extern MY_CHARSET_HANDLER my_charset_utf16_handler; #define MY_CS_UTF16_UCA_FLAGS (MY_CS_COMMON_UCA_FLAGS|MY_CS_NONASCII) @@ -37796,7 +37793,7 @@ struct charset_info_st my_charset_utf16_unicode_ci= { 101,0,0, /* number */ MY_CS_UTF16_UCA_FLAGS,/* state */ - "utf16", /* csname */ + charset_name_utf16, /* csname */ "utf16_unicode_ci", /* name */ "", /* comment */ "", /* tailoring */ @@ -37829,7 +37826,7 @@ struct charset_info_st my_charset_utf16_icelandic_uca_ci= { 102,0,0, /* number */ MY_CS_UTF16_UCA_FLAGS,/* state */ - "utf16", /* csname */ + charset_name_utf16, /* csname */ "utf16_icelandic_ci",/* name */ "", /* comment */ icelandic, /* tailoring */ @@ -37861,7 +37858,7 @@ struct charset_info_st my_charset_utf16_latvian_uca_ci= { 103,0,0, /* number */ MY_CS_UTF16_UCA_FLAGS,/* state */ - "utf16", /* cs name */ + charset_name_utf16, /* cs name */ "utf16_latvian_ci", /* name */ "", /* comment */ latvian, /* tailoring */ @@ -37893,7 +37890,7 @@ struct charset_info_st my_charset_utf16_romanian_uca_ci= { 104,0,0, /* number */ MY_CS_UTF16_UCA_FLAGS,/* state */ - "utf16", /* cs name */ + charset_name_utf16, /* cs name */ "utf16_romanian_ci", /* name */ "", /* comment */ romanian, /* tailoring */ @@ -37925,7 +37922,7 @@ struct charset_info_st my_charset_utf16_slovenian_uca_ci= { 105,0,0, /* number */ MY_CS_UTF16_UCA_FLAGS,/* state */ - "utf16", /* cs name */ + charset_name_utf16, /* cs name */ "utf16_slovenian_ci",/* name */ "", /* comment */ slovenian, /* tailoring */ @@ -37957,7 +37954,7 @@ struct charset_info_st my_charset_utf16_polish_uca_ci= { 106,0,0, /* number */ MY_CS_UTF16_UCA_FLAGS,/* state */ - "utf16", /* cs name */ + charset_name_utf16, /* cs name */ "utf16_polish_ci", /* name */ "", /* comment */ polish, /* tailoring */ @@ -37989,7 +37986,7 @@ struct charset_info_st my_charset_utf16_estonian_uca_ci= { 107,0,0, /* number */ MY_CS_UTF16_UCA_FLAGS,/* state */ - "utf16", /* cs name */ + charset_name_utf16, /* cs name */ "utf16_estonian_ci", /* name */ "", /* comment */ estonian, /* tailoring */ @@ -38021,7 +38018,7 @@ struct charset_info_st my_charset_utf16_spanish_uca_ci= { 108,0,0, /* number */ MY_CS_UTF16_UCA_FLAGS,/* state */ - "utf16", /* cs name */ + charset_name_utf16, /* cs name */ "utf16_spanish_ci", /* name */ "", /* comment */ spanish, /* tailoring */ @@ -38053,7 +38050,7 @@ struct charset_info_st my_charset_utf16_swedish_uca_ci= { 109,0,0, /* number */ MY_CS_UTF16_UCA_FLAGS,/* state */ - "utf16", /* cs name */ + charset_name_utf16, /* cs name */ "utf16_swedish_ci", /* name */ "", /* comment */ swedish, /* tailoring */ @@ -38085,7 +38082,7 @@ struct charset_info_st my_charset_utf16_turkish_uca_ci= { 110,0,0, /* number */ MY_CS_UTF16_UCA_FLAGS,/* state */ - "utf16", /* cs name */ + charset_name_utf16, /* cs name */ "utf16_turkish_ci", /* name */ "", /* comment */ turkish, /* tailoring */ @@ -38117,7 +38114,7 @@ struct charset_info_st my_charset_utf16_czech_uca_ci= { 111,0,0, /* number */ MY_CS_UTF16_UCA_FLAGS,/* state */ - "utf16", /* cs name */ + charset_name_utf16, /* cs name */ "utf16_czech_ci", /* name */ "", /* comment */ czech, /* tailoring */ @@ -38150,7 +38147,7 @@ struct charset_info_st my_charset_utf16_danish_uca_ci= { 112,0,0, /* number */ MY_CS_UTF16_UCA_FLAGS,/* state */ - "utf16", /* cs name */ + charset_name_utf16, /* cs name */ "utf16_danish_ci", /* name */ "", /* comment */ danish, /* tailoring */ @@ -38182,7 +38179,7 @@ struct charset_info_st my_charset_utf16_lithuanian_uca_ci= { 113,0,0, /* number */ MY_CS_UTF16_UCA_FLAGS,/* state */ - "utf16", /* cs name */ + charset_name_utf16, /* cs name */ "utf16_lithuanian_ci",/* name */ "", /* comment */ lithuanian, /* tailoring */ @@ -38214,7 +38211,7 @@ struct charset_info_st my_charset_utf16_slovak_uca_ci= { 114,0,0, /* number */ MY_CS_UTF16_UCA_FLAGS,/* state */ - "utf16", /* cs name */ + charset_name_utf16, /* cs name */ "utf16_slovak_ci", /* name */ "", /* comment */ slovak, /* tailoring */ @@ -38246,7 +38243,7 @@ struct charset_info_st my_charset_utf16_spanish2_uca_ci= { 115,0,0, /* number */ MY_CS_UTF16_UCA_FLAGS,/* state */ - "utf16", /* cs name */ + charset_name_utf16, /* cs name */ "utf16_spanish2_ci",/* name */ "", /* comment */ spanish2, /* tailoring */ @@ -38278,7 +38275,7 @@ struct charset_info_st my_charset_utf16_roman_uca_ci= { 116,0,0, /* number */ MY_CS_UTF16_UCA_FLAGS,/* state */ - "utf16", /* cs name */ + charset_name_utf16, /* cs name */ "utf16_roman_ci", /* name */ "", /* comment */ roman, /* tailoring */ @@ -38310,7 +38307,7 @@ struct charset_info_st my_charset_utf16_persian_uca_ci= { 117,0,0, /* number */ MY_CS_UTF16_UCA_FLAGS,/* state */ - "utf16", /* cs name */ + charset_name_utf16, /* cs name */ "utf16_persian_ci", /* name */ "", /* comment */ persian, /* tailoring */ @@ -38342,7 +38339,7 @@ struct charset_info_st my_charset_utf16_esperanto_uca_ci= { 118,0,0, /* number */ MY_CS_UTF16_UCA_FLAGS,/* state */ - "utf16", /* cs name */ + charset_name_utf16, /* cs name */ "utf16_esperanto_ci",/* name */ "", /* comment */ esperanto, /* tailoring */ @@ -38374,7 +38371,7 @@ struct charset_info_st my_charset_utf16_hungarian_uca_ci= { 119,0,0, /* number */ MY_CS_UTF16_UCA_FLAGS,/* state */ - "utf16", /* cs name */ + charset_name_utf16, /* cs name */ "utf16_hungarian_ci",/* name */ "", /* comment */ hungarian, /* tailoring */ @@ -38406,7 +38403,7 @@ struct charset_info_st my_charset_utf16_sinhala_uca_ci= { 120,0,0, /* number */ MY_CS_UTF16_UCA_FLAGS,/* state */ - "utf16", /* cs name */ + charset_name_utf16, /* cs name */ "utf16_sinhala_ci",/* name */ "", /* comment */ sinhala, /* tailoring */ @@ -38438,7 +38435,7 @@ struct charset_info_st my_charset_utf16_german2_uca_ci= { 121,0,0, /* number */ MY_CS_UTF16_UCA_FLAGS,/* state */ - "utf16", /* cs name */ + charset_name_utf16, /* cs name */ "utf16_german2_ci",/* name */ "", /* comment */ german2, /* tailoring */ @@ -38471,7 +38468,7 @@ struct charset_info_st my_charset_utf16_croatian_mysql561_uca_ci= { 122,0,0, /* number */ MY_CS_UTF16_UCA_FLAGS,/* state */ - "utf16", /* cs name */ + charset_name_utf16, /* cs name */ "utf16_croatian_mysql561_ci",/* name */ "", /* comment */ croatian_mysql561, /* tailoring */ @@ -38504,7 +38501,7 @@ struct charset_info_st my_charset_utf16_croatian_uca_ci= { MY_PAGE2_COLLATION_ID_UTF16,0,0, /* number */ MY_CS_UTF16_UCA_FLAGS,/* state */ - "utf16", /* cs name */ + charset_name_utf16, /* cs name */ "utf16_croatian_ci",/* name */ "", /* comment */ croatian_mariadb, /* tailoring */ @@ -38537,7 +38534,7 @@ struct charset_info_st my_charset_utf16_myanmar_uca_ci= { MY_PAGE2_COLLATION_ID_UTF16+1,0,0, /* number */ MY_CS_UTF16_UCA_FLAGS,/* state */ - "utf16", /* cs name */ + charset_name_utf16, /* cs name */ "utf16_myanmar_ci",/* name */ "", /* comment */ myanmar, /* tailoring */ @@ -38570,7 +38567,7 @@ struct charset_info_st my_charset_utf16_thai_520_w2= { MY_PAGE2_COLLATION_ID_UTF16+2,0,0, /* number */ MY_CS_UTF16_UCA_FLAGS,/* state */ - "utf16", /* cs name */ + charset_name_utf16, /* cs name */ "utf16_thai_520_w2",/* name */ "", /* comment */ "[strength 2]", /* tailoring */ @@ -38603,7 +38600,7 @@ struct charset_info_st my_charset_utf16_unicode_520_ci= { 123,0,0, /* number */ MY_CS_UTF16_UCA_FLAGS,/* state */ - "utf16", /* csname */ + charset_name_utf16, /* csname */ "utf16_unicode_520_ci",/* name */ "", /* comment */ "", /* tailoring */ @@ -38636,7 +38633,7 @@ struct charset_info_st my_charset_utf16_vietnamese_ci= { 124,0,0, /* number */ MY_CS_UTF16_UCA_FLAGS,/* state */ - "utf16", /* cs name */ + charset_name_utf16, /* cs name */ "utf16_vietnamese_ci",/* name */ "", /* comment */ vietnamese, /* tailoring */ @@ -38669,7 +38666,7 @@ struct charset_info_st my_charset_utf16_unicode_nopad_ci= { MY_NOPAD_ID(101),0,0, /* number */ MY_CS_UTF16_UCA_NOPAD_FLAGS, /* state */ - "utf16", /* csname */ + charset_name_utf16, /* csname */ "utf16_unicode_nopad_ci", /* name */ "", /* comment */ "", /* tailoring */ @@ -38702,7 +38699,7 @@ struct charset_info_st my_charset_utf16_unicode_520_nopad_ci= { MY_NOPAD_ID(123),0,0, /* number */ MY_CS_UTF16_UCA_NOPAD_FLAGS, /* state */ - "utf16", /* csname */ + charset_name_utf16, /* csname */ "utf16_unicode_520_nopad_ci",/* name */ "", /* comment */ "", /* tailoring */ diff --git a/strings/ctype-ucs2.c b/strings/ctype-ucs2.c index d764849c01e..c72fc9b6d00 100644 --- a/strings/ctype-ucs2.c +++ b/strings/ctype-ucs2.c @@ -35,7 +35,6 @@ #define HAVE_CHARSET_mb2_or_mb4 #endif - #ifndef EILSEQ #define EILSEQ ENOENT #endif @@ -1278,6 +1277,7 @@ my_uni_utf16(CHARSET_INFO *cs __attribute__((unused)), #ifdef HAVE_CHARSET_utf16 +const char charset_name_utf16le[]= "utf16le"; static inline void my_tolower_utf16(MY_UNICASE_INFO *uni_plane, my_wc_t *wc) @@ -1599,7 +1599,7 @@ struct charset_info_st my_charset_utf16_general_ci= { 54,0,0, /* number */ MY_CS_COMPILED|MY_CS_PRIMARY|MY_CS_STRNXFRM|MY_CS_UNICODE|MY_CS_NONASCII, - "utf16", /* cs name */ + charset_name_utf16, /* cs name */ "utf16_general_ci", /* name */ "UTF-16 Unicode", /* comment */ NULL, /* tailoring */ @@ -1632,7 +1632,7 @@ struct charset_info_st my_charset_utf16_bin= { 55,0,0, /* number */ MY_CS_COMPILED|MY_CS_BINSORT|MY_CS_STRNXFRM|MY_CS_UNICODE|MY_CS_NONASCII, - "utf16", /* cs name */ + charset_name_utf16, /* cs name */ "utf16_bin", /* name */ "UTF-16 Unicode", /* comment */ NULL, /* tailoring */ @@ -1665,7 +1665,7 @@ struct charset_info_st my_charset_utf16_general_nopad_ci= { MY_NOPAD_ID(54),0,0, /* number */ MY_CS_COMPILED|MY_CS_STRNXFRM|MY_CS_UNICODE|MY_CS_NONASCII|MY_CS_NOPAD, - "utf16", /* cs name */ + charset_name_utf16, /* cs name */ "utf16_general_nopad_ci", /* name */ "UTF-16 Unicode", /* comment */ NULL, /* tailoring */ @@ -1699,7 +1699,7 @@ struct charset_info_st my_charset_utf16_nopad_bin= MY_NOPAD_ID(55),0,0, /* number */ MY_CS_COMPILED|MY_CS_BINSORT|MY_CS_STRNXFRM|MY_CS_UNICODE|MY_CS_NONASCII| MY_CS_NOPAD, - "utf16", /* cs name */ + charset_name_utf16, /* cs name */ "utf16_nopad_bin", /* name */ "UTF-16 Unicode", /* comment */ NULL, /* tailoring */ @@ -1940,7 +1940,7 @@ struct charset_info_st my_charset_utf16le_general_ci= { 56,0,0, /* number */ MY_CS_COMPILED|MY_CS_PRIMARY|MY_CS_STRNXFRM|MY_CS_UNICODE|MY_CS_NONASCII, - "utf16le", /* cs name */ + charset_name_utf16le, /* cs name */ "utf16le_general_ci",/* name */ "UTF-16LE Unicode", /* comment */ NULL, /* tailoring */ @@ -1973,7 +1973,7 @@ struct charset_info_st my_charset_utf16le_bin= { 62,0,0, /* number */ MY_CS_COMPILED|MY_CS_BINSORT|MY_CS_STRNXFRM|MY_CS_UNICODE|MY_CS_NONASCII, - "utf16le", /* cs name */ + charset_name_utf16le, /* cs name */ "utf16le_bin", /* name */ "UTF-16LE Unicode", /* comment */ NULL, /* tailoring */ @@ -2006,7 +2006,7 @@ struct charset_info_st my_charset_utf16le_general_nopad_ci= { MY_NOPAD_ID(56),0,0, /* number */ MY_CS_COMPILED|MY_CS_STRNXFRM|MY_CS_UNICODE|MY_CS_NONASCII|MY_CS_NOPAD, - "utf16le", /* cs name */ + charset_name_utf16le, /* cs name */ "utf16le_general_nopad_ci",/* name */ "UTF-16LE Unicode", /* comment */ NULL, /* tailoring */ @@ -2040,7 +2040,7 @@ struct charset_info_st my_charset_utf16le_nopad_bin= MY_NOPAD_ID(62),0,0, /* number */ MY_CS_COMPILED|MY_CS_BINSORT|MY_CS_STRNXFRM|MY_CS_UNICODE|MY_CS_NONASCII| MY_CS_NOPAD, - "utf16le", /* cs name */ + charset_name_utf16le, /* cs name */ "utf16le_nopad_bin", /* name */ "UTF-16LE Unicode", /* comment */ NULL, /* tailoring */ @@ -2763,7 +2763,7 @@ struct charset_info_st my_charset_utf32_general_ci= { 60,0,0, /* number */ MY_CS_COMPILED|MY_CS_PRIMARY|MY_CS_STRNXFRM|MY_CS_UNICODE|MY_CS_NONASCII, - "utf32", /* cs name */ + charset_name_utf32, /* cs name */ "utf32_general_ci", /* name */ "UTF-32 Unicode", /* comment */ NULL, /* tailoring */ @@ -2796,7 +2796,7 @@ struct charset_info_st my_charset_utf32_bin= { 61,0,0, /* number */ MY_CS_COMPILED|MY_CS_BINSORT|MY_CS_STRNXFRM|MY_CS_UNICODE|MY_CS_NONASCII, - "utf32", /* cs name */ + charset_name_utf32, /* cs name */ "utf32_bin", /* name */ "UTF-32 Unicode", /* comment */ NULL, /* tailoring */ @@ -2829,7 +2829,7 @@ struct charset_info_st my_charset_utf32_general_nopad_ci= { MY_NOPAD_ID(60),0,0, /* number */ MY_CS_COMPILED|MY_CS_STRNXFRM|MY_CS_UNICODE|MY_CS_NONASCII|MY_CS_NOPAD, - "utf32", /* cs name */ + charset_name_utf32, /* cs name */ "utf32_general_nopad_ci", /* name */ "UTF-32 Unicode", /* comment */ NULL, /* tailoring */ @@ -2863,7 +2863,7 @@ struct charset_info_st my_charset_utf32_nopad_bin= MY_NOPAD_ID(61),0,0, /* number */ MY_CS_COMPILED|MY_CS_BINSORT|MY_CS_STRNXFRM|MY_CS_UNICODE|MY_CS_NONASCII| MY_CS_NOPAD, - "utf32", /* cs name */ + charset_name_utf32, /* cs name */ "utf32_nopad_bin", /* name */ "UTF-32 Unicode", /* comment */ NULL, /* tailoring */ @@ -3354,7 +3354,7 @@ struct charset_info_st my_charset_ucs2_general_ci= { 35,0,0, /* number */ MY_CS_COMPILED|MY_CS_PRIMARY|MY_CS_STRNXFRM|MY_CS_UNICODE|MY_CS_NONASCII, - "ucs2", /* cs name */ + charset_name_ucs2, /* cs name */ "ucs2_general_ci", /* name */ "", /* comment */ NULL, /* tailoring */ @@ -3387,7 +3387,7 @@ struct charset_info_st my_charset_ucs2_general_mysql500_ci= { 159, 0, 0, /* number */ MY_CS_COMPILED|MY_CS_STRNXFRM|MY_CS_UNICODE|MY_CS_NONASCII, /* state */ - "ucs2", /* cs name */ + charset_name_ucs2, /* cs name */ "ucs2_general_mysql500_ci", /* name */ "", /* comment */ NULL, /* tailoring */ @@ -3420,7 +3420,7 @@ struct charset_info_st my_charset_ucs2_bin= { 90,0,0, /* number */ MY_CS_COMPILED|MY_CS_BINSORT|MY_CS_UNICODE|MY_CS_NONASCII, - "ucs2", /* cs name */ + charset_name_ucs2, /* cs name */ "ucs2_bin", /* name */ "", /* comment */ NULL, /* tailoring */ @@ -3453,7 +3453,7 @@ struct charset_info_st my_charset_ucs2_general_nopad_ci= { MY_NOPAD_ID(35),0,0, /* number */ MY_CS_COMPILED|MY_CS_STRNXFRM|MY_CS_UNICODE|MY_CS_NONASCII|MY_CS_NOPAD, - "ucs2", /* cs name */ + charset_name_ucs2, /* cs name */ "ucs2_general_nopad_ci", /* name */ "", /* comment */ NULL, /* tailoring */ @@ -3486,7 +3486,7 @@ struct charset_info_st my_charset_ucs2_nopad_bin= { MY_NOPAD_ID(90),0,0, /* number */ MY_CS_COMPILED|MY_CS_BINSORT|MY_CS_UNICODE|MY_CS_NONASCII|MY_CS_NOPAD, - "ucs2", /* cs name */ + charset_name_ucs2, /* cs name */ "ucs2_nopad_bin", /* name */ "", /* comment */ NULL, /* tailoring */ diff --git a/strings/ctype-ujis.c b/strings/ctype-ujis.c index 9ec3b578549..b90b3ef3a6a 100644 --- a/strings/ctype-ujis.c +++ b/strings/ctype-ujis.c @@ -32,6 +32,7 @@ #ifdef HAVE_CHARSET_ujis +const char charset_name_ujis[]= "ujis"; static const uchar ctype_ujis[257] = { @@ -67337,7 +67338,7 @@ struct charset_info_st my_charset_ujis_japanese_ci= { 12,0,0, /* number */ MY_CS_COMPILED|MY_CS_PRIMARY, /* state */ - "ujis", /* cs name */ + charset_name_ujis, /* cs name */ "ujis_japanese_ci", /* name */ "", /* comment */ NULL, /* tailoring */ @@ -67370,7 +67371,7 @@ struct charset_info_st my_charset_ujis_bin= { 91,0,0, /* number */ MY_CS_COMPILED|MY_CS_BINSORT, /* state */ - "ujis", /* cs name */ + charset_name_ujis, /* cs name */ "ujis_bin", /* name */ "", /* comment */ NULL, /* tailoring */ @@ -67403,7 +67404,7 @@ struct charset_info_st my_charset_ujis_japanese_nopad_ci= { MY_NOPAD_ID(12),0,0,/* number */ MY_CS_COMPILED|MY_CS_NOPAD, /* state */ - "ujis", /* cs name */ + charset_name_ujis, /* cs name */ "ujis_japanese_nopad_ci", /* name */ "", /* comment */ NULL, /* tailoring */ @@ -67436,7 +67437,7 @@ struct charset_info_st my_charset_ujis_nopad_bin= { MY_NOPAD_ID(91),0,0,/* number */ MY_CS_COMPILED|MY_CS_BINSORT|MY_CS_NOPAD, /* state */ - "ujis", /* cs name */ + charset_name_ujis, /* cs name */ "ujis_nopad_bin", /* name */ "", /* comment */ NULL, /* tailoring */ diff --git a/strings/ctype-utf8.c b/strings/ctype-utf8.c index 7434f968383..cdf89aa03ff 100644 --- a/strings/ctype-utf8.c +++ b/strings/ctype-utf8.c @@ -5473,7 +5473,7 @@ struct charset_info_st my_charset_utf8mb3_general_ci= { 33,0,0, /* number */ MY_CS_COMPILED|MY_CS_PRIMARY|MY_CS_STRNXFRM|MY_CS_UNICODE, /* state */ - MY_UTF8MB3, /* cs name */ + charset_name_utf8, /* cs name */ MY_UTF8MB3 "_general_ci", /* name */ "", /* comment */ NULL, /* tailoring */ @@ -5506,7 +5506,7 @@ struct charset_info_st my_charset_utf8mb3_general_mysql500_ci= { 223,0,0, /* number */ MY_CS_COMPILED|MY_CS_STRNXFRM|MY_CS_UNICODE, /* state */ - MY_UTF8MB3, /* cs name */ + charset_name_utf8, /* cs name */ MY_UTF8MB3 "_general_mysql500_ci", /* name */ "", /* comment */ NULL, /* tailoring */ @@ -5539,7 +5539,7 @@ struct charset_info_st my_charset_utf8mb3_bin= { 83,0,0, /* number */ MY_CS_COMPILED|MY_CS_STRNXFRM|MY_CS_BINSORT|MY_CS_UNICODE, /* state */ - MY_UTF8MB3, /* cs name */ + charset_name_utf8, /* cs name */ MY_UTF8MB3 "_bin", /* name */ "", /* comment */ NULL, /* tailoring */ @@ -5572,7 +5572,7 @@ struct charset_info_st my_charset_utf8mb3_general_nopad_ci= { MY_NOPAD_ID(33),0,0, /* number */ MY_CS_COMPILED|MY_CS_STRNXFRM|MY_CS_UNICODE|MY_CS_NOPAD, /* state */ - MY_UTF8MB3, /* cs name */ + charset_name_utf8, /* cs name */ MY_UTF8MB3 "_general_nopad_ci", /* name */ "", /* comment */ NULL, /* tailoring */ @@ -5605,7 +5605,7 @@ struct charset_info_st my_charset_utf8mb3_nopad_bin= { MY_NOPAD_ID(83),0,0,/* number */ MY_CS_COMPILED|MY_CS_STRNXFRM|MY_CS_BINSORT|MY_CS_UNICODE|MY_CS_NOPAD, - MY_UTF8MB3, /* cs name */ + charset_name_utf8, /* cs name */ MY_UTF8MB3 "_nopad_bin", /* name */ "", /* comment */ NULL, /* tailoring */ @@ -5767,7 +5767,7 @@ struct charset_info_st my_charset_utf8mb3_general_cs= { 254,0,0, /* number */ MY_CS_COMPILED|MY_CS_UNICODE, /* state */ - MY_UTF8MB3, /* cs name */ + charset_name_utf8, /* cs name */ MY_UTF8MB3 "_general_cs", /* name */ "", /* comment */ NULL, /* tailoring */ @@ -7809,7 +7809,7 @@ struct charset_info_st my_charset_utf8mb4_general_ci= { 45,0,0, /* number */ MY_CS_COMPILED|MY_CS_PRIMARY|MY_CS_STRNXFRM|MY_CS_UNICODE|MY_CS_UNICODE_SUPPLEMENT, /* state */ - MY_UTF8MB4, /* cs name */ + charset_name_utf8mb4, /* cs name */ MY_UTF8MB4_GENERAL_CI,/* name */ "UTF-8 Unicode", /* comment */ NULL, /* tailoring */ @@ -7843,7 +7843,7 @@ struct charset_info_st my_charset_utf8mb4_bin= 46,0,0, /* number */ MY_CS_COMPILED|MY_CS_BINSORT|MY_CS_STRNXFRM|MY_CS_UNICODE| MY_CS_UNICODE_SUPPLEMENT, /* state */ - MY_UTF8MB4, /* cs name */ + charset_name_utf8mb4, /* cs name */ MY_UTF8MB4_BIN, /* name */ "UTF-8 Unicode", /* comment */ NULL, /* tailoring */ @@ -7877,7 +7877,7 @@ struct charset_info_st my_charset_utf8mb4_general_nopad_ci= MY_NOPAD_ID(45),0,0,/* number */ MY_CS_COMPILED|MY_CS_STRNXFRM|MY_CS_UNICODE|MY_CS_UNICODE_SUPPLEMENT| MY_CS_NOPAD, /* state */ - MY_UTF8MB4, /* cs name */ + charset_name_utf8mb4, /* cs name */ MY_UTF8MB4_GENERAL_NOPAD_CI,/* name */ "UTF-8 Unicode", /* comment */ NULL, /* tailoring */ @@ -7911,7 +7911,7 @@ struct charset_info_st my_charset_utf8mb4_nopad_bin= MY_NOPAD_ID(46),0,0, /* number */ MY_CS_COMPILED|MY_CS_BINSORT|MY_CS_STRNXFRM|MY_CS_UNICODE| MY_CS_UNICODE_SUPPLEMENT|MY_CS_NOPAD, /* state */ - MY_UTF8MB4, /* cs name */ + charset_name_utf8mb4, /* cs name */ MY_UTF8MB4_NOPAD_BIN, /* name */ "UTF-8 Unicode", /* comment */ NULL, /* tailoring */ diff --git a/strings/ctype-win1250ch.c b/strings/ctype-win1250ch.c index f33a83294d6..643c7a2a583 100644 --- a/strings/ctype-win1250ch.c +++ b/strings/ctype-win1250ch.c @@ -52,6 +52,7 @@ #ifdef HAVE_CHARSET_cp1250 +const char charset_name_cp1250[]= "cp1250"; static const uint16 tab_cp1250_uni[256]={ 0,0x0001,0x0002,0x0003,0x0004,0x0005,0x0006,0x0007, @@ -690,7 +691,7 @@ struct charset_info_st my_charset_cp1250_czech_ci = 34,0,0, /* number */ MY_CS_COMPILED|MY_CS_STRNXFRM|MY_CS_CSSORT| MY_CS_STRNXFRM_BAD_NWEIGHTS|MY_CS_NON1TO1, /* state */ - "cp1250", /* cs name */ + charset_name_cp1250, /* cs name */ "cp1250_czech_cs", /* name */ "", /* comment */ NULL, /* tailoring */ diff --git a/strings/ctype.c b/strings/ctype.c index 4df9b9c2f09..c9977824176 100644 --- a/strings/ctype.c +++ b/strings/ctype.c @@ -36,6 +36,12 @@ */ +const char charset_name_latin2[]= "latin2"; +const char charset_name_utf8[]= "utf8"; +const char charset_name_utf16[]= "utf16"; +const char charset_name_utf32[]= "utf32"; +const char charset_name_ucs2[]= "ucs2"; +const char charset_name_utf8mb4[]= "utf8mb4"; /* Avoid using my_snprintf diff --git a/strings/strings_def.h b/strings/strings_def.h index d4f51bcd0a5..111942a9a1a 100644 --- a/strings/strings_def.h +++ b/strings/strings_def.h @@ -130,4 +130,13 @@ int my_wc_to_printable_generic(CHARSET_INFO *cs, my_wc_t wc, int my_wc_to_printable_8bit(CHARSET_INFO *cs, my_wc_t wc, uchar *s, uchar *e); +/* Some common character set names */ +extern const char charset_name_latin2[]; +extern const char charset_name_utf8[]; +extern const char charset_name_utf16[]; +extern const char charset_name_utf32[]; +extern const char charset_name_ucs2[]; +extern const char charset_name_ucs2[]; +extern const char charset_name_utf8mb4[]; + #endif /*STRINGS_DEF_INCLUDED */