From a206658b985fe5e18fb5692fdb3698dad5aca70a Mon Sep 17 00:00:00 2001 From: Monty Date: Sat, 22 Aug 2020 02:08:59 +0300 Subject: [PATCH] Change CHARSET_INFO character set and collaction names to LEX_CSTRING This change removed 68 explict strlen() calls from the code. The following renames was done to ensure we don't use the old names when merging code from earlier releases, as using the new variables for print function could result in crashes: - charset->csname renamed to charset->cs_name - charset->name renamed to charset->coll_name Almost everything where mechanical changes except: - Changed to use the new Protocol::store(LEX_CSTRING..) when possible - Changed to use field->store(LEX_CSTRING*, CHARSET_INFO*) when possible - Changed to use String->append(LEX_CSTRING&) when possible Other things: - There where compiler issues with ensuring that all character set names points to the same string: gcc doesn't allow one to use integer constants when defining global structures (constant char * pointers works fine). To get around this, I declared defines for each character set name length. --- client/mariadb-conv.cc | 6 +- client/mysql.cc | 23 +- client/mysqldump.c | 10 +- client/mysqltest.cc | 4 +- include/m_ctype.h | 5 +- include/my_sys.h | 2 +- libmysqld/libmysql.c | 6 +- mysys/charset-def.c | 2 +- mysys/charset.c | 94 +-- mysys/mf_iocache.c | 2 +- plugin/qc_info/qc_info.cc | 8 +- plugin/user_variables/user_variables.cc | 3 +- sql-common/client.c | 2 +- sql/event_db_repository.cc | 20 +- sql/events.cc | 9 +- sql/field.cc | 4 +- sql/handler.cc | 4 +- sql/item.cc | 25 +- sql/item.h | 4 +- sql/item_strfunc.cc | 20 +- sql/item_timefunc.cc | 2 +- sql/item_xmlfunc.cc | 2 +- sql/json_table.cc | 2 +- sql/log_event_client.cc | 7 +- sql/log_event_server.cc | 4 +- sql/mysqld.cc | 8 +- sql/protocol.h | 5 - sql/set_var.cc | 2 +- sql/slave.cc | 14 +- sql/sp.cc | 23 +- sql/sp_head.cc | 9 +- sql/sql_class.cc | 7 +- sql/sql_connect.cc | 2 +- sql/sql_db.cc | 4 +- sql/sql_load.cc | 2 +- sql/sql_parse.cc | 5 +- sql/sql_show.cc | 119 ++-- sql/sql_string.h | 4 +- sql/sql_table.cc | 4 +- sql/sql_trigger.cc | 17 +- sql/sql_type.cc | 32 +- sql/sql_view.cc | 7 +- sql/sql_yacc.yy | 10 +- sql/sys_vars.cc | 20 +- sql/table.cc | 9 +- sql/wsrep_sst.cc | 8 +- storage/connect/ha_connect.cc | 7 +- storage/connect/tabutil.cpp | 2 +- storage/federated/ha_federated.cc | 2 +- storage/federatedx/ha_federatedx.cc | 4 +- storage/mroonga/lib/mrn_encoding.cpp | 46 +- storage/mroonga/lib/mrn_field_normalizer.cpp | 18 +- storage/mroonga/udf/mrn_udf_snippet.cpp | 2 +- storage/rocksdb/rdb_datadic.cc | 2 +- storage/spider/spd_db_conn.cc | 10 +- storage/spider/spd_db_mysql.cc | 20 +- storage/spider/spd_table.cc | 8 +- strings/ctype-big5.c | 17 +- strings/ctype-bin.c | 5 +- strings/ctype-cp932.c | 17 +- strings/ctype-czech.c | 4 +- strings/ctype-euc_kr.c | 17 +- strings/ctype-eucjpms.c | 18 +- strings/ctype-extra.c | 434 +++++++------- strings/ctype-gb2312.c | 17 +- strings/ctype-gbk.c | 17 +- strings/ctype-latin1.c | 21 +- strings/ctype-sjis.c | 17 +- strings/ctype-tis620.c | 17 +- strings/ctype-uca.c | 584 +++++++++---------- strings/ctype-ucs2.c | 69 +-- strings/ctype-ujis.c | 17 +- strings/ctype-utf8.c | 40 +- strings/ctype-win1250ch.c | 5 +- strings/ctype.c | 7 +- strings/strings_def.h | 7 +- unittest/mysys/ma_dyncol-t.c | 2 +- unittest/strings/strings-t.c | 7 +- 78 files changed, 1019 insertions(+), 1022 deletions(-) diff --git a/client/mariadb-conv.cc b/client/mariadb-conv.cc index 1abbd135e26..27430ff5fd4 100644 --- a/client/mariadb-conv.cc +++ b/client/mariadb-conv.cc @@ -344,7 +344,7 @@ private: fflush(stdout); fprintf(stderr, "Illegal %s byte sequence at position %d\n", - m_fromcs->csname, + m_fromcs->cs_name.str, (uint) (well_formed_error_pos() - from)); } else if (cannot_convert_error_pos()) @@ -352,7 +352,7 @@ private: fflush(stdout); fprintf(stderr, "Conversion from %s to %s failed at position %d\n", - m_fromcs->csname, m_tocs->csname, + m_fromcs->cs_name.str, m_tocs->cs_name.str, (uint) (cannot_convert_error_pos() - from)); } } @@ -453,7 +453,7 @@ int main(int argc, char *argv[]) charset_info_to->mbminlen > 1) { fprintf(stderr, "--delimiter cannot be used with %s to %s conversion\n", - charset_info_from->csname, charset_info_to->csname); + charset_info_from->cs_name.str, charset_info_to->cs_name.str); return 1; } if (conv.set_delimiter_unescape(opt.m_delimiter)) diff --git a/client/mysql.cc b/client/mysql.cc index 131b3036df8..2bb3f2309d6 100644 --- a/client/mysql.cc +++ b/client/mysql.cc @@ -3246,8 +3246,8 @@ com_charset(String *buffer __attribute__((unused)), char *line) if (new_cs) { charset_info= new_cs; - mysql_set_character_set(&mysql, charset_info->csname); - default_charset= (char *)charset_info->csname; + mysql_set_character_set(&mysql, charset_info->cs_name.str); + default_charset= (char *)charset_info->cs_name.str; put_info("Charset changed", INFO_INFO); } else put_info("Charset is not found", INFO_INFO); @@ -4736,6 +4736,8 @@ static int sql_real_connect(char *host,char *database,char *user,char *password, uint silent) { + const char *charset_name; + if (connected) { connected= 0; @@ -4783,13 +4785,17 @@ sql_real_connect(char *host,char *database,char *user,char *password, return -1; // Retryable } - if (!(charset_info= get_charset_by_name(mysql.charset->name, MYF(MY_UTF8_IS_UTF8MB3)))) + charset_name= IF_EMBEDDED(mysql.charset->coll_name.str, + mysql.charset->name); + charset_info= get_charset_by_name(charset_name, MYF(MY_UTF8_IS_UTF8MB3)); + if (!charset_info) { - put_info("Unknown default character set", INFO_ERROR); + char buff[128]; + my_snprintf(buff, sizeof(buff)-1, + "Unknown default character set %s", charset_name); + put_info(buff, INFO_ERROR); return 1; } - - connected=1; #ifndef EMBEDDED_LIBRARY mysql_options(&mysql, MYSQL_OPT_RECONNECT, &debug_info_flag); @@ -4928,8 +4934,9 @@ com_status(String *buffer __attribute__((unused)), else { /* Probably pre-4.1 server */ - tee_fprintf(stdout, "Client characterset:\t%s\n", charset_info->csname); - tee_fprintf(stdout, "Server characterset:\t%s\n", mysql.charset->csname); + tee_fprintf(stdout, "Client characterset:\t%s\n", charset_info->cs_name.str); + tee_fprintf(stdout, "Server characterset:\t%s\n", + mysql_character_set_name(&mysql)); } #ifndef EMBEDDED_LIBRARY diff --git a/client/mysqldump.c b/client/mysqldump.c index 4fa15096777..7fda95239e6 100644 --- a/client/mysqldump.c +++ b/client/mysqldump.c @@ -1647,8 +1647,8 @@ static int switch_db_collation(FILE *sql_file, fprintf(sql_file, "ALTER DATABASE %s CHARACTER SET %s COLLATE %s %s\n", (const char *) quoted_db_name, - (const char *) db_cl->csname, - (const char *) db_cl->name, + (const char *) db_cl->cs_name.str, + (const char *) db_cl->coll_name.str, (const char *) delimiter); *db_cl_altered= 1; @@ -1678,8 +1678,8 @@ static int restore_db_collation(FILE *sql_file, fprintf(sql_file, "ALTER DATABASE %s CHARACTER SET %s COLLATE %s %s\n", (const char *) quoted_db_name, - (const char *) db_cl->csname, - (const char *) db_cl->name, + (const char *) db_cl->cs_name.str, + (const char *) db_cl->coll_name.str, (const char *) delimiter); return 0; @@ -4120,7 +4120,7 @@ static void dump_table(const char *table, const char *db, const uchar *hash_key, dynstr_append_checked(&query_string, " /*!50138 CHARACTER SET "); dynstr_append_checked(&query_string, default_charset == mysql_universal_client_charset ? - my_charset_bin.name : /* backward compatibility */ + my_charset_bin.coll_name.str : /* backward compatibility */ default_charset); dynstr_append_checked(&query_string, " */"); diff --git a/client/mysqltest.cc b/client/mysqltest.cc index f9061ab24cc..1d905dfe84d 100644 --- a/client/mysqltest.cc +++ b/client/mysqltest.cc @@ -6010,7 +6010,7 @@ void do_connect(struct st_command *command) if (opt_compress || con_compress) mysql_options(con_slot->mysql, MYSQL_OPT_COMPRESS, NullS); mysql_options(con_slot->mysql, MYSQL_SET_CHARSET_NAME, - csname?csname: charset_info->csname); + csname ? csname : charset_info->cs_name.str); if (opt_charsets_dir) mysql_options(con_slot->mysql, MYSQL_SET_CHARSET_DIR, opt_charsets_dir); @@ -9259,7 +9259,7 @@ int main(int argc, char **argv) if (opt_compress) mysql_options(con->mysql,MYSQL_OPT_COMPRESS,NullS); mysql_options(con->mysql, MYSQL_SET_CHARSET_NAME, - charset_info->csname); + charset_info->cs_name.str); if (opt_charsets_dir) mysql_options(con->mysql, MYSQL_SET_CHARSET_DIR, opt_charsets_dir); diff --git a/include/m_ctype.h b/include/m_ctype.h index 9dea95bfd9d..279e8a74ddc 100644 --- a/include/m_ctype.h +++ b/include/m_ctype.h @@ -22,6 +22,7 @@ #define _m_ctype_h #include +#include enum loglevel { ERROR_LEVEL= 0, @@ -569,8 +570,8 @@ struct charset_info_st uint primary_number; uint binary_number; uint state; - const char *csname; - const char *name; + LEX_CSTRING cs_name; + LEX_CSTRING coll_name; const char *comment; const char *tailoring; const uchar *m_ctype; diff --git a/include/my_sys.h b/include/my_sys.h index e381edfb9b5..acaf2f0972f 100644 --- a/include/my_sys.h +++ b/include/my_sys.h @@ -1052,7 +1052,7 @@ extern void free_charsets(void); extern char *get_charsets_dir(char *buf); static inline my_bool my_charset_same(CHARSET_INFO *cs1, CHARSET_INFO *cs2) { - return (cs1->csname == cs2->csname); + return (cs1->cs_name.str == cs2->cs_name.str); } extern my_bool init_compiled_charsets(myf flags); extern void add_compiled_collation(struct charset_info_st *cs); diff --git a/libmysqld/libmysql.c b/libmysqld/libmysql.c index dd723f0af10..2c954cea390 100644 --- a/libmysqld/libmysql.c +++ b/libmysqld/libmysql.c @@ -1114,15 +1114,15 @@ ulong STDCALL mysql_thread_id(MYSQL *mysql) const char * STDCALL mysql_character_set_name(MYSQL *mysql) { - return mysql->charset->csname; + return mysql->charset->cs_name.str; } void STDCALL mysql_get_character_set_info(MYSQL *mysql, MY_CHARSET_INFO *csinfo) { csinfo->number = mysql->charset->number; csinfo->state = mysql->charset->state; - csinfo->csname = mysql->charset->csname; - csinfo->name = mysql->charset->name; + csinfo->csname = mysql->charset->cs_name.str; + csinfo->name = mysql->charset->coll_name.str; csinfo->comment = mysql->charset->comment; csinfo->mbminlen = mysql->charset->mbminlen; csinfo->mbmaxlen = mysql->charset->mbmaxlen; diff --git a/mysys/charset-def.c b/mysys/charset-def.c index 259b7af9a60..737a1c88a47 100644 --- a/mysys/charset-def.c +++ b/mysys/charset-def.c @@ -468,7 +468,7 @@ my_bool init_compiled_charsets(myf flags __attribute__((unused))) #endif /* HAVE_CHARSET_utf32 */ /* Copy compiled charsets */ - for (cs=compiled_charsets; cs->name; cs++) + for (cs=compiled_charsets; cs->coll_name.str; cs++) add_compiled_extra_collation((struct charset_info_st *) cs); return FALSE; diff --git a/mysys/charset.c b/mysys/charset.c index 403faf5626f..19cad76fdf4 100644 --- a/mysys/charset.c +++ b/mysys/charset.c @@ -50,8 +50,8 @@ get_collation_number_internal(const char *name) cs < all_charsets + array_elements(all_charsets); cs++) { - if ( cs[0] && cs[0]->name && - !my_strcasecmp(&my_charset_latin1, cs[0]->name, name)) + if (cs[0] && cs[0]->coll_name.str && + !my_strcasecmp(&my_charset_latin1, cs[0]->coll_name.str, name)) return cs[0]->number; } return 0; @@ -151,13 +151,23 @@ static int cs_copy_data(struct charset_info_st *to, CHARSET_INFO *from) to->number= from->number ? from->number : to->number; /* Don't replace csname if already set */ - if (from->csname && !to->csname) - if (!(to->csname= my_once_strdup(from->csname,MYF(MY_WME)))) + if (from->cs_name.str && !to->cs_name.str) + { + if (!(to->cs_name.str= my_once_memdup(from->cs_name.str, + from->cs_name.length + 1, + MYF(MY_WME)))) goto err; + to->cs_name.length= from->cs_name.length; + } - if (from->name) - if (!(to->name= my_once_strdup(from->name,MYF(MY_WME)))) + if (from->coll_name.str) + { + if (!(to->coll_name.str= my_once_memdup(from->coll_name.str, + from->coll_name.length + 1, + MYF(MY_WME)))) goto err; + to->coll_name.length= from->coll_name.length; + } if (from->comment) if (!(to->comment= my_once_strdup(from->comment,MYF(MY_WME)))) @@ -255,7 +265,7 @@ inherit_collation_data(struct charset_info_st *cs, CHARSET_INFO *refcs) static my_bool simple_cs_is_full(CHARSET_INFO *cs) { - return cs->number && cs->csname && cs->name && + return cs->number && cs->cs_name.str && cs->coll_name.str && simple_8bit_charset_data_is_full(cs) && (simple_8bit_collation_data_is_full(cs) || cs->tailoring); } @@ -308,8 +318,9 @@ copy_uca_collation(struct charset_info_st *to, CHARSET_INFO *from, static int add_collation(struct charset_info_st *cs) { - if (cs->name && (cs->number || - (cs->number=get_collation_number_internal(cs->name))) && + if (cs->coll_name.str && + (cs->number || + (cs->number=get_collation_number_internal(cs->coll_name.str))) && cs->number < array_elements(all_charsets)) { struct charset_info_st *newcs; @@ -323,10 +334,10 @@ static int add_collation(struct charset_info_st *cs) else { /* Don't allow change of csname */ - if (newcs->csname && strcmp(newcs->csname, cs->csname)) + if (newcs->cs_name.str && strcmp(newcs->cs_name.str, cs->cs_name.str)) { my_error(EE_DUPLICATE_CHARSET, MYF(ME_WARNING), - cs->number, cs->csname, newcs->csname); + cs->number, cs->cs_name.str, newcs->cs_name.str); /* Continue parsing rest of Index.xml. We got an warning in the log so the user can fix the wrong character set definition. @@ -351,7 +362,7 @@ static int add_collation(struct charset_info_st *cs) newcs->caseup_multiply= newcs->casedn_multiply= 1; newcs->levels_for_order= 1; - if (!strcmp(cs->csname,"ucs2") ) + if (!strcmp(cs->cs_name.str,"ucs2") ) { #if defined(HAVE_CHARSET_ucs2) && defined(HAVE_UCA_COLLATIONS) copy_uca_collation(newcs, newcs->state & MY_CS_NOPAD ? @@ -361,7 +372,8 @@ static int add_collation(struct charset_info_st *cs) newcs->state|= MY_CS_AVAILABLE | MY_CS_LOADED | MY_CS_NONASCII; #endif } - else if (!strcmp(cs->csname, "utf8") || !strcmp(cs->csname, "utf8mb3")) + else if (!strcmp(cs->cs_name.str, "utf8") || + !strcmp(cs->cs_name.str, "utf8mb3")) { #if defined (HAVE_CHARSET_utf8mb3) && defined(HAVE_UCA_COLLATIONS) copy_uca_collation(newcs, newcs->state & MY_CS_NOPAD ? @@ -373,7 +385,7 @@ static int add_collation(struct charset_info_st *cs) return MY_XML_ERROR; #endif } - else if (!strcmp(cs->csname, "utf8mb4")) + else if (!strcmp(cs->cs_name.str, "utf8mb4")) { #if defined (HAVE_CHARSET_utf8mb4) && defined(HAVE_UCA_COLLATIONS) copy_uca_collation(newcs, newcs->state & MY_CS_NOPAD ? @@ -384,7 +396,7 @@ static int add_collation(struct charset_info_st *cs) newcs->state|= MY_CS_AVAILABLE | MY_CS_LOADED; #endif } - else if (!strcmp(cs->csname, "utf16")) + else if (!strcmp(cs->cs_name.str, "utf16")) { #if defined (HAVE_CHARSET_utf16) && defined(HAVE_UCA_COLLATIONS) copy_uca_collation(newcs, newcs->state & MY_CS_NOPAD ? @@ -394,7 +406,7 @@ static int add_collation(struct charset_info_st *cs) newcs->state|= MY_CS_AVAILABLE | MY_CS_LOADED | MY_CS_NONASCII; #endif } - else if (!strcmp(cs->csname, "utf32")) + else if (!strcmp(cs->cs_name.str, "utf32")) { #if defined (HAVE_CHARSET_utf32) && defined(HAVE_UCA_COLLATIONS) copy_uca_collation(newcs, newcs->state & MY_CS_NOPAD ? @@ -432,17 +444,28 @@ 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 && ! newcs->csname) - if (!(newcs->csname= my_once_strdup(cs->csname,MYF(MY_WME)))) + if (cs->cs_name.str && ! newcs->cs_name.str) + { + if (!(newcs->cs_name.str= my_once_memdup(cs->cs_name.str, + cs->cs_name.length+1, + MYF(MY_WME)))) return MY_XML_ERROR; - if (cs->name) - if (!(newcs->name= my_once_strdup(cs->name,MYF(MY_WME)))) + newcs->cs_name.length= cs->cs_name.length; + } + if (cs->coll_name.str) + { + if (!(newcs->coll_name.str= my_once_memdup(cs->coll_name.str, + cs->coll_name.length+1, + MYF(MY_WME)))) return MY_XML_ERROR; + newcs->coll_name.length= cs->coll_name.length; + } } cs->number= 0; cs->primary_number= 0; cs->binary_number= 0; - cs->name= NULL; + cs->coll_name.str= 0; + cs->coll_name.length= 0; cs->state= 0; cs->sort_order= NULL; cs->tailoring= NULL; @@ -584,10 +607,11 @@ void add_compiled_collation(struct charset_info_st *cs) { #ifndef DBUG_OFF CHARSET_INFO *org= (CHARSET_INFO*) my_hash_search(&charset_name_hash, - (uchar*) cs->csname, - strlen(cs->csname)); + (uchar*) cs->cs_name.str, + cs->cs_name.length); DBUG_ASSERT(org); - DBUG_ASSERT(org->csname == cs->csname); + DBUG_ASSERT(org->cs_name.str == cs->cs_name.str); + DBUG_ASSERT(org->cs_name.length == strlen(cs->cs_name.str)); #endif } } @@ -610,9 +634,9 @@ void add_compiled_extra_collation(struct charset_info_st *cs) 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; + (uchar*) cs->cs_name.str, + cs->cs_name.length); + cs->cs_name= org->cs_name; } } @@ -672,8 +696,8 @@ static uchar *get_charset_key(const uchar *object, my_bool not_used __attribute__((unused))) { CHARSET_INFO *cs= (CHARSET_INFO*) object; - *size= strlen(cs->csname); - return (uchar*) cs->csname; + *size= cs->cs_name.length; + return (uchar*) cs->cs_name.str; } static void init_available_charsets(void) @@ -756,8 +780,8 @@ get_charset_number_internal(const char *charset_name, uint cs_flags) cs < all_charsets + array_elements(all_charsets); cs++) { - if ( cs[0] && cs[0]->csname && (cs[0]->state & cs_flags) && - !my_strcasecmp(&my_charset_latin1, cs[0]->csname, charset_name)) + if ( cs[0] && cs[0]->cs_name.str && (cs[0]->state & cs_flags) && + !my_strcasecmp(&my_charset_latin1, cs[0]->cs_name.str, charset_name)) return cs[0]->number; } return 0; @@ -787,8 +811,8 @@ const char *get_charset_name(uint charset_number) { CHARSET_INFO *cs= all_charsets[charset_number]; - if (cs && (cs->number == charset_number) && cs->name) - return (char*) cs->name; + if (cs && (cs->number == charset_number) && cs->coll_name.str) + return cs->coll_name.str; } return "?"; /* this mimics find_type() */ @@ -823,7 +847,7 @@ static CHARSET_INFO *find_collation_data_inheritance_source(CHARSET_INFO *cs, my static CHARSET_INFO *find_charset_data_inheritance_source(CHARSET_INFO *cs) { - uint refid= get_charset_number_internal(cs->csname, MY_CS_PRIMARY); + uint refid= get_charset_number_internal(cs->cs_name.str, MY_CS_PRIMARY); return inheritance_source_by_id(cs, refid); } @@ -853,7 +877,7 @@ get_internal_charset(MY_CHARSET_LOADER *loader, uint cs_number, myf flags) if (!(cs->state & (MY_CS_COMPILED|MY_CS_LOADED))) /* if CS is not in memory */ { MY_CHARSET_LOADER loader; - strxmov(get_charsets_dir(buf), cs->csname, ".xml", NullS); + strxmov(get_charsets_dir(buf), cs->cs_name.str, ".xml", NullS); my_charset_loader_init_mysys(&loader); my_read_charset_file(&loader, buf, flags); } diff --git a/mysys/mf_iocache.c b/mysys/mf_iocache.c index 2d6031fa8cd..061e81f1ba3 100644 --- a/mysys/mf_iocache.c +++ b/mysys/mf_iocache.c @@ -153,7 +153,7 @@ init_functions(IO_CACHE* info) int init_io_cache_ext(IO_CACHE *info, File file, size_t cachesize, enum cache_type type, my_off_t seek_offset, pbool use_async_io, myf cache_myflags, - PSI_file_key file_key) + PSI_file_key file_key __attribute__((unused))) { size_t min_cache; my_off_t pos; diff --git a/plugin/qc_info/qc_info.cc b/plugin/qc_info/qc_info.cc index 41b3c7b4991..baaa3519261 100644 --- a/plugin/qc_info/qc_info.cc +++ b/plugin/qc_info/qc_info.cc @@ -183,23 +183,21 @@ static int qc_info_fill_table(THD *thd, TABLE_LIST *tables, cs_client= get_charset(flags.character_set_client_num, MYF(MY_WME)); if (likely(cs_client)) table->field[COLUMN_CHARACTER_SET_CLIENT]-> - store(cs_client->csname, strlen(cs_client->csname), scs); + store(&cs_client->cs_name, scs); else table->field[COLUMN_CHARACTER_SET_CLIENT]-> store(STRING_WITH_LEN(unknown), scs); cs_result= get_charset(flags.character_set_results_num, MYF(MY_WME)); if (likely(cs_result)) - table->field[COLUMN_CHARACTER_SET_RESULT]-> - store(cs_result->csname, strlen(cs_result->csname), scs); + table->field[COLUMN_CHARACTER_SET_RESULT]->store(&cs_result->cs_name, scs); else table->field[COLUMN_CHARACTER_SET_RESULT]-> store(STRING_WITH_LEN(unknown), scs); collation= get_charset(flags.collation_connection_num, MYF(MY_WME)); if (likely(collation)) - table->field[COLUMN_COLLATION]-> - store(collation->name, strlen(collation->name), scs); + table->field[COLUMN_COLLATION]-> store(&collation->coll_name, scs); else table->field[COLUMN_COLLATION]-> store(STRING_WITH_LEN(unknown), scs); diff --git a/plugin/user_variables/user_variables.cc b/plugin/user_variables/user_variables.cc index f820e4ad890..fe87e17f4ee 100644 --- a/plugin/user_variables/user_variables.cc +++ b/plugin/user_variables/user_variables.cc @@ -86,8 +86,7 @@ static int user_variables_fill(THD *thd, TABLE_LIST *tables, COND *cond) if (var->charset()) { - field[3]->store(var->charset()->csname, strlen(var->charset()->csname), - system_charset_info); + field[3]->store(&var->charset()->cs_name, system_charset_info); field[3]->set_notnull(); } else diff --git a/sql-common/client.c b/sql-common/client.c index 34e8f7f755e..a551258aa34 100644 --- a/sql-common/client.c +++ b/sql-common/client.c @@ -3219,7 +3219,7 @@ my_bool mysql_reconnect(MYSQL *mysql) strmov(mysql->net.sqlstate, tmp_mysql.net.sqlstate); DBUG_RETURN(1); } - if (mysql_set_character_set(&tmp_mysql, mysql->charset->csname)) + if (mysql_set_character_set(&tmp_mysql, mysql->charset->cs_name.str)) { DBUG_PRINT("error", ("mysql_set_character_set() failed")); bzero((char*) &tmp_mysql.options,sizeof(tmp_mysql.options)); diff --git a/sql/event_db_repository.cc b/sql/event_db_repository.cc index 8366f24b5f8..18cba99f92b 100644 --- a/sql/event_db_repository.cc +++ b/sql/event_db_repository.cc @@ -341,31 +341,27 @@ mysql_event_fill_row(THD *thd, } fields[ET_FIELD_CHARACTER_SET_CLIENT]->set_notnull(); - rs|= fields[ET_FIELD_CHARACTER_SET_CLIENT]->store( - thd->variables.character_set_client->csname, - strlen(thd->variables.character_set_client->csname), - system_charset_info); + rs|= fields[ET_FIELD_CHARACTER_SET_CLIENT]-> + store(&thd->variables.character_set_client->cs_name, + system_charset_info); fields[ET_FIELD_COLLATION_CONNECTION]->set_notnull(); - rs|= fields[ET_FIELD_COLLATION_CONNECTION]->store( - thd->variables.collation_connection->name, - strlen(thd->variables.collation_connection->name), - system_charset_info); + rs|= fields[ET_FIELD_COLLATION_CONNECTION]-> + store(&thd->variables.collation_connection->coll_name, + system_charset_info); { CHARSET_INFO *db_cl= get_default_db_collation(thd, et->dbname.str); fields[ET_FIELD_DB_COLLATION]->set_notnull(); - rs|= fields[ET_FIELD_DB_COLLATION]->store(db_cl->name, - strlen(db_cl->name), + rs|= fields[ET_FIELD_DB_COLLATION]->store(&db_cl->coll_name, system_charset_info); } if (et->body_changed) { fields[ET_FIELD_BODY_UTF8]->set_notnull(); - rs|= fields[ET_FIELD_BODY_UTF8]->store(sp->m_body_utf8.str, - sp->m_body_utf8.length, + rs|= fields[ET_FIELD_BODY_UTF8]->store(&sp->m_body_utf8, system_charset_info); } diff --git a/sql/events.cc b/sql/events.cc index 9f0aef885df..213f634fde0 100644 --- a/sql/events.cc +++ b/sql/events.cc @@ -740,14 +740,11 @@ send_show_create_event(THD *thd, Event_timed *et, Protocol *protocol) protocol->store(tz_name->ptr(), tz_name->length(), system_charset_info); protocol->store(show_str.ptr(), show_str.length(), et->creation_ctx->get_client_cs()); - protocol->store(et->creation_ctx->get_client_cs()->csname, - strlen(et->creation_ctx->get_client_cs()->csname), + protocol->store(&et->creation_ctx->get_client_cs()->cs_name, system_charset_info); - protocol->store(et->creation_ctx->get_connection_cl()->name, - strlen(et->creation_ctx->get_connection_cl()->name), + protocol->store(&et->creation_ctx->get_connection_cl()->coll_name, system_charset_info); - protocol->store(et->creation_ctx->get_db_cl()->name, - strlen(et->creation_ctx->get_db_cl()->name), + protocol->store(&et->creation_ctx->get_db_cl()->coll_name, system_charset_info); if (protocol->write()) diff --git a/sql/field.cc b/sql/field.cc index 5958fab57b8..eaa7dc7bf05 100644 --- a/sql/field.cc +++ b/sql/field.cc @@ -7600,7 +7600,7 @@ void Field_string::sql_rpl_type(String *res) const res->alloced_length(), "char(%u octets) character set %s", field_length, - charset()->csname); + charset()->cs_name.str); res->length(length); } else @@ -8049,7 +8049,7 @@ void Field_varstring::sql_rpl_type(String *res) const res->alloced_length(), "varchar(%u octets) character set %s", field_length, - charset()->csname); + charset()->cs_name.str); res->length(length); } else diff --git a/sql/handler.cc b/sql/handler.cc index e36fbcccd76..2a2213af1cc 100644 --- a/sql/handler.cc +++ b/sql/handler.cc @@ -7708,8 +7708,8 @@ bool HA_CREATE_INFO::check_conflicting_charset_declarations(CHARSET_INFO *cs) { my_error(ER_CONFLICTING_DECLARATIONS, MYF(0), "CHARACTER SET ", default_table_charset ? - default_table_charset->csname : "DEFAULT", - "CHARACTER SET ", cs ? cs->csname : "DEFAULT"); + default_table_charset->cs_name.str : "DEFAULT", + "CHARACTER SET ", cs ? cs->cs_name.str : "DEFAULT"); return true; } return false; diff --git a/sql/item.cc b/sql/item.cc index d90747bb12c..40583fd4359 100644 --- a/sql/item.cc +++ b/sql/item.cc @@ -2463,7 +2463,7 @@ bool DTCollation::aggregate(const DTCollation &dt, uint flags) set(dt); return 0; } - CHARSET_INFO *bin= get_charset_by_csname(collation->csname, + CHARSET_INFO *bin= get_charset_by_csname(collation->cs_name.str, MY_CS_BINSORT,MYF(utf8_flag)); set(bin, DERIVATION_NONE); } @@ -2477,8 +2477,8 @@ static void my_coll_agg_error(DTCollation &c1, DTCollation &c2, const char *fname) { my_error(ER_CANT_AGGREGATE_2COLLATIONS,MYF(0), - c1.collation->name,c1.derivation_name(), - c2.collation->name,c2.derivation_name(), + c1.collation->coll_name.str, c1.derivation_name(), + c2.collation->coll_name.str, c2.derivation_name(), fname); } @@ -2488,10 +2488,10 @@ void my_coll_agg_error(DTCollation &c1, DTCollation &c2, DTCollation &c3, const char *fname) { my_error(ER_CANT_AGGREGATE_3COLLATIONS,MYF(0), - c1.collation->name,c1.derivation_name(), - c2.collation->name,c2.derivation_name(), - c3.collation->name,c3.derivation_name(), - fname); + c1.collation->coll_name.str, c1.derivation_name(), + c2.collation->coll_name.str, c2.derivation_name(), + c3.collation->coll_name.str, c3.derivation_name(), + fname); } @@ -3799,8 +3799,7 @@ void Item_string::print(String *str, enum_query_type query_type) if (print_introducer) { str->append('_'); - str->append(collation.collation->csname, - strlen(collation.collation->csname)); + str->append(collation.collation->cs_name); } str->append('\''); @@ -6381,7 +6380,7 @@ String *Item::check_well_formed_result(String *str, bool send_error) if (send_error) { my_error(ER_INVALID_CHARACTER_STRING, MYF(0), - cs->csname, hexbuf); + cs->cs_name.str, hexbuf); return 0; } if (thd->is_strict_mode()) @@ -6395,7 +6394,7 @@ String *Item::check_well_formed_result(String *str, bool send_error) } push_warning_printf(thd, Sql_condition::WARN_LEVEL_WARN, ER_INVALID_CHARACTER_STRING, - ER_THD(thd, ER_INVALID_CHARACTER_STRING), cs->csname, + ER_THD(thd, ER_INVALID_CHARACTER_STRING), cs->cs_name.str, hexbuf); } return str; @@ -6420,7 +6419,7 @@ String_copier_for_item::copy_with_warn(CHARSET_INFO *dstcs, String *dst, ER_INVALID_CHARACTER_STRING, ER_THD(m_thd, ER_INVALID_CHARACTER_STRING), srccs == &my_charset_bin ? - dstcs->csname : srccs->csname, + dstcs->cs_name.str : srccs->cs_name.str, err.ptr()); return false; } @@ -6433,7 +6432,7 @@ String_copier_for_item::copy_with_warn(CHARSET_INFO *dstcs, String *dst, push_warning_printf(m_thd, Sql_condition::WARN_LEVEL_WARN, ER_CANNOT_CONVERT_CHARACTER, ER_THD(m_thd, ER_CANNOT_CONVERT_CHARACTER), - srccs->csname, buf, dstcs->csname); + srccs->cs_name.str, buf, dstcs->cs_name.str); return false; } return false; diff --git a/sql/item.h b/sql/item.h index db8398936fd..b5e3c14be43 100644 --- a/sql/item.h +++ b/sql/item.h @@ -5349,9 +5349,9 @@ public: tmp.derivation == DERIVATION_NONE) { my_error(ER_CANT_AGGREGATE_2COLLATIONS,MYF(0), - (*a)->collation.collation->name, + (*a)->collation.collation->coll_name.str, (*a)->collation.derivation_name(), - (*b)->collation.collation->name, + (*b)->collation.collation->coll_name.str, (*b)->collation.derivation_name(), func_name()); return true; diff --git a/sql/item_strfunc.cc b/sql/item_strfunc.cc index 5575c23859b..ec43ae81710 100644 --- a/sql/item_strfunc.cc +++ b/sql/item_strfunc.cc @@ -2940,8 +2940,7 @@ void Item_func_char::print(String *str, enum_query_type query_type) if (collation.collation != &my_charset_bin) { str->append(STRING_WITH_LEN(" using ")); - str->append(collation.collation->csname, - strlen(collation.collation->csname)); + str->append(collation.collation->cs_name); } str->append(')'); } @@ -3534,8 +3533,7 @@ void Item_func_conv_charset::print(String *str, enum_query_type query_type) str->append(STRING_WITH_LEN("convert(")); args[0]->print(str, query_type); str->append(STRING_WITH_LEN(" using ")); - str->append(collation.collation->csname, - strlen(collation.collation->csname)); + str->append(collation.collation->cs_name); str->append(')'); } @@ -3554,7 +3552,8 @@ bool Item_func_set_collation::fix_length_and_dec() if (!my_charset_same(args[0]->collation.collation, m_set_collation)) { my_error(ER_COLLATION_CHARSET_MISMATCH, MYF(0), - m_set_collation->name, args[0]->collation.collation->csname); + m_set_collation->coll_name.str, + args[0]->collation.collation->cs_name.str); return TRUE; } collation.set(m_set_collation, DERIVATION_EXPLICIT, @@ -3575,7 +3574,7 @@ void Item_func_set_collation::print(String *str, enum_query_type query_type) { args[0]->print_parenthesised(str, query_type, precedence()); str->append(STRING_WITH_LEN(" collate ")); - str->append(m_set_collation->name, strlen(m_set_collation->name)); + str->append(m_set_collation->coll_name); } String *Item_func_charset::val_str(String *str) @@ -3585,7 +3584,7 @@ String *Item_func_charset::val_str(String *str) CHARSET_INFO *cs= args[0]->charset_for_protocol(); null_value= 0; - str->copy(cs->csname, (uint) strlen(cs->csname), + str->copy(cs->cs_name.str, cs->cs_name.length, &my_charset_latin1, collation.collation, &dummy_errors); return str; } @@ -3597,8 +3596,8 @@ String *Item_func_collation::val_str(String *str) CHARSET_INFO *cs= args[0]->charset_for_protocol(); null_value= 0; - str->copy(cs->name, (uint) strlen(cs->name), - &my_charset_latin1, collation.collation, &dummy_errors); + str->copy(cs->coll_name.str, cs->coll_name.length, &my_charset_latin1, + collation.collation, &dummy_errors); return str; } @@ -4633,8 +4632,7 @@ void Item_func_dyncol_create::print_arguments(String *str, if (defs[i].cs) { str->append(STRING_WITH_LEN(" charset ")); - const char *cs= defs[i].cs->csname; - str->append(cs, strlen(cs)); + str->append(defs[i].cs->cs_name); str->append(' '); } break; diff --git a/sql/item_timefunc.cc b/sql/item_timefunc.cc index cd46992701b..8f382c0686d 100644 --- a/sql/item_timefunc.cc +++ b/sql/item_timefunc.cc @@ -2287,7 +2287,7 @@ void Item_char_typecast::print(String *str, enum_query_type query_type) if (cast_cs) { str->append(STRING_WITH_LEN(" charset ")); - str->append(cast_cs->csname, strlen(cast_cs->csname)); + str->append(cast_cs->cs_name); } str->append(')'); } diff --git a/sql/item_xmlfunc.cc b/sql/item_xmlfunc.cc index 0f5cc1c1250..2f4d34afc6d 100644 --- a/sql/item_xmlfunc.cc +++ b/sql/item_xmlfunc.cc @@ -2792,7 +2792,7 @@ bool Item_xml_str_func::fix_fields(THD *thd, Item **ref) /* UCS2 is not supported */ my_printf_error(ER_UNKNOWN_ERROR, "Character set '%s' is not supported by XPATH", - MYF(0), collation.collation->csname); + MYF(0), collation.collation->cs_name.str); return true; } diff --git a/sql/json_table.cc b/sql/json_table.cc index bbcc73028d9..aebc52b0832 100644 --- a/sql/json_table.cc +++ b/sql/json_table.cc @@ -914,7 +914,7 @@ int Json_table_column::print(THD *thd, Field **f, String *str) if (str->append(column_type) || ((*f)->has_charset() && m_explicit_cs && (str->append(STRING_WITH_LEN(" CHARSET ")) || - str->append(m_explicit_cs->csname, strlen(m_explicit_cs->csname)))) || + str->append(&m_explicit_cs->cs_name))) || str->append(m_column_type == PATH ? &path : &exists_path) || print_path(str, &m_path)) return 1; diff --git a/sql/log_event_client.cc b/sql/log_event_client.cc index 9d53611260b..3db66e4201f 100644 --- a/sql/log_event_client.cc +++ b/sql/log_event_client.cc @@ -1951,7 +1951,7 @@ bool Query_log_event::print_query_header(IO_CACHE* file, { /* for mysql client */ if (my_b_printf(file, "/*!\\C %s */%s\n", - cs_info->csname, print_event_info->delimiter)) + cs_info->cs_name.str, print_event_info->delimiter)) goto err; } if (my_b_printf(file,"SET " @@ -2502,7 +2502,7 @@ bool User_var_log_event::print(FILE* file, PRINT_EVENT_INFO* print_event_info) } else error= my_b_printf(&cache, ":=_%s %s COLLATE `%s`%s\n", - cs->csname, hex_str, cs->name, + cs->cs_name.str, hex_str, cs->coll_name.str, print_event_info->delimiter); my_free(hex_str); if (unlikely(error)) @@ -3563,7 +3563,8 @@ void Table_map_log_event::print_columns(IO_CACHE *file, // Print column character set, except in text columns with binary collation if (cs != NULL && (is_enum_or_set_type(real_type) || cs->number != my_charset_bin.number)) - my_b_printf(file, " CHARSET %s COLLATE %s", cs->csname, cs->name); + my_b_printf(file, " CHARSET %s COLLATE %s", cs->cs_name.str, + cs->coll_name.str); if (i != m_colcnt - 1) my_b_printf(file, ",\n# "); } my_b_printf(file, ")"); diff --git a/sql/log_event_server.cc b/sql/log_event_server.cc index 6ed79fa6b48..4c86acb909a 100644 --- a/sql/log_event_server.cc +++ b/sql/log_event_server.cc @@ -4215,7 +4215,7 @@ void User_var_log_event::pack_info(Protocol* protocol) char *beg, *end; if (user_var_append_name_part(protocol->thd, &buf, name, name_len) || buf.append('_') || - buf.append(cs->csname, strlen(cs->csname)) || + buf.append(cs->cs_name) || buf.append(' ')) return; old_len= buf.length(); @@ -4226,7 +4226,7 @@ void User_var_log_event::pack_info(Protocol* protocol) end= str_to_hex(beg, val, val_len); buf.length(old_len + (end - beg)); if (buf.append(STRING_WITH_LEN(" COLLATE ")) || - buf.append(cs->name, strlen(cs->name))) + buf.append(cs->coll_name)) return; } protocol->store(buf.ptr(), buf.length(), &my_charset_bin); diff --git a/sql/mysqld.cc b/sql/mysqld.cc index 0c3e67fe0d6..f154c655de2 100644 --- a/sql/mysqld.cc +++ b/sql/mysqld.cc @@ -4148,7 +4148,7 @@ static int init_common_variables() { sql_print_error(ER_DEFAULT(ER_COLLATION_CHARSET_MISMATCH), default_collation_name, - default_charset_info->csname); + default_charset_info->cs_name.str); return 1; } default_charset_info= default_collation; @@ -4166,8 +4166,8 @@ static int init_common_variables() { sql_print_warning("'%s' can not be used as client character set. " "'%s' will be used as default client character set.", - default_charset_info->csname, - my_charset_latin1.csname); + default_charset_info->cs_name.str, + my_charset_latin1.cs_name.str); global_system_variables.collation_connection= &my_charset_latin1; global_system_variables.character_set_results= &my_charset_latin1; global_system_variables.character_set_client= &my_charset_latin1; @@ -7512,7 +7512,7 @@ static void usage(void) MYF(utf8_flag | MY_WME)))) exit(1); if (!default_collation_name) - default_collation_name= (char*) default_charset_info->name; + default_collation_name= (char*) default_charset_info->coll_name.str; print_version(); puts(ORACLE_WELCOME_COPYRIGHT_NOTICE("2000")); puts("Starts the MariaDB database server.\n"); diff --git a/sql/protocol.h b/sql/protocol.h index bb9de2215f2..1beb1175a11 100644 --- a/sql/protocol.h +++ b/sql/protocol.h @@ -99,11 +99,6 @@ public: bool send_result_set_row(List *row_items); bool store(I_List *str_list); - /* This will be deleted in future commit */ - bool store(const char *from, CHARSET_INFO *cs) - { - return store_string_or_null(from, cs); - } bool store_string_or_null(const char *from, CHARSET_INFO *cs); bool store_warning(const char *from, size_t length); String *storage_packet() { return packet; } diff --git a/sql/set_var.cc b/sql/set_var.cc index f2b20686514..8e2e8b12a06 100644 --- a/sql/set_var.cc +++ b/sql/set_var.cc @@ -1033,7 +1033,7 @@ int set_var_collation_client::check(THD *thd) if (!is_supported_parser_charset(character_set_client)) { my_error(ER_WRONG_VALUE_FOR_VAR, MYF(0), "character_set_client", - character_set_client->csname); + character_set_client->cs_name.str); return 1; } return 0; diff --git a/sql/slave.cc b/sql/slave.cc index 9eba7148637..09aa1f97936 100644 --- a/sql/slave.cc +++ b/sql/slave.cc @@ -2030,7 +2030,8 @@ maybe it is a *VERY OLD MASTER*."); (master_res= mysql_store_result(mysql)) && (master_row= mysql_fetch_row(master_res))) { - if (strcmp(master_row[0], global_system_variables.collation_server->name)) + if (strcmp(master_row[0], + global_system_variables.collation_server->coll_name.str)) { errmsg= "The slave I/O thread stops because master and slave have \ different values for the COLLATION_SERVER global variable. The values must \ @@ -7205,16 +7206,16 @@ static int connect_to_master(THD* thd, MYSQL* mysql, Master_info* mi, charset, then set client charset to 'latin1' (default client charset). */ if (is_supported_parser_charset(default_charset_info)) - mysql_options(mysql, MYSQL_SET_CHARSET_NAME, default_charset_info->csname); + mysql_options(mysql, MYSQL_SET_CHARSET_NAME, default_charset_info->cs_name.str); else { sql_print_information("'%s' can not be used as client character set. " "'%s' will be used as default client character set " "while connecting to master.", - default_charset_info->csname, - default_client_charset_info->csname); + default_charset_info->cs_name.str, + default_client_charset_info->cs_name.str); mysql_options(mysql, MYSQL_SET_CHARSET_NAME, - default_client_charset_info->csname); + default_client_charset_info->cs_name.str); } /* This one is not strictly needed but we have it here for completeness */ @@ -7361,7 +7362,8 @@ MYSQL *rpl_connect_master(MYSQL *mysql) } #endif - mysql_options(mysql, MYSQL_SET_CHARSET_NAME, default_charset_info->csname); + mysql_options(mysql, MYSQL_SET_CHARSET_NAME, + default_charset_info->cs_name.str); /* This one is not strictly needed but we have it here for completeness */ mysql_options(mysql, MYSQL_SET_CHARSET_DIR, (char *) charsets_dir); diff --git a/sql/sp.cc b/sql/sp.cc index c821ebe6480..12fb7e79cde 100644 --- a/sql/sp.cc +++ b/sql/sp.cc @@ -1075,14 +1075,12 @@ sp_returns_type(THD *thd, String &result, const sp_head *sp) if (field->has_charset()) { - const char *name= field->charset()->csname; result.append(STRING_WITH_LEN(" CHARSET ")); - result.append(name, strlen(name)); + result.append(field->charset()->cs_name); if (!(field->charset()->state & MY_CS_PRIMARY)) { - name= field->charset()->name; result.append(STRING_WITH_LEN(" COLLATE ")); - result.append(name, strlen(name)); + result.append(field->charset()->coll_name); } } @@ -1428,22 +1426,19 @@ Sp_handler::sp_create_routine(THD *thd, const sp_head *sp) const table->field[MYSQL_PROC_FIELD_CHARACTER_SET_CLIENT]->set_notnull(); store_failed= store_failed || - table->field[MYSQL_PROC_FIELD_CHARACTER_SET_CLIENT]->store( - thd->charset()->csname, - strlen(thd->charset()->csname), - system_charset_info); + table->field[MYSQL_PROC_FIELD_CHARACTER_SET_CLIENT]-> + store(&thd->charset()->cs_name, system_charset_info); table->field[MYSQL_PROC_FIELD_COLLATION_CONNECTION]->set_notnull(); store_failed= store_failed || - table->field[MYSQL_PROC_FIELD_COLLATION_CONNECTION]->store( - thd->variables.collation_connection->name, - strlen(thd->variables.collation_connection->name), - system_charset_info); + table->field[MYSQL_PROC_FIELD_COLLATION_CONNECTION]-> + store(&thd->variables.collation_connection->coll_name, + system_charset_info); table->field[MYSQL_PROC_FIELD_DB_COLLATION]->set_notnull(); store_failed= store_failed || - table->field[MYSQL_PROC_FIELD_DB_COLLATION]->store( - db_cs->name, strlen(db_cs->name), system_charset_info); + table->field[MYSQL_PROC_FIELD_DB_COLLATION]-> + store(&db_cs->coll_name, system_charset_info); table->field[MYSQL_PROC_FIELD_BODY_UTF8]->set_notnull(); store_failed= store_failed || diff --git a/sql/sp_head.cc b/sql/sp_head.cc index d897a6b2f66..0812d61ced8 100644 --- a/sql/sp_head.cc +++ b/sql/sp_head.cc @@ -3110,9 +3110,12 @@ sp_head::show_create_routine(THD *thd, const Sp_handler *sph) protocol->store_null(); - protocol->store(m_creation_ctx->get_client_cs()->csname, system_charset_info); - protocol->store(m_creation_ctx->get_connection_cl()->name, system_charset_info); - protocol->store(m_creation_ctx->get_db_cl()->name, system_charset_info); + protocol->store(&m_creation_ctx->get_client_cs()->cs_name, + system_charset_info); + protocol->store(&m_creation_ctx->get_connection_cl()->coll_name, + system_charset_info); + protocol->store(&m_creation_ctx->get_db_cl()->coll_name, + system_charset_info); err_status= protocol->write(); diff --git a/sql/sql_class.cc b/sql/sql_class.cc index fd528c749e5..ff927447c79 100644 --- a/sql/sql_class.cc +++ b/sql/sql_class.cc @@ -2344,7 +2344,7 @@ bool THD::convert_string(LEX_STRING *to, CHARSET_INFO *to_cs, { my_error(ER_BAD_DATA, MYF(0), ErrConvString(from, from_length, from_cs).ptr(), - to_cs->csname); + to_cs->cs_name.str); DBUG_RETURN(true); } DBUG_RETURN(false); @@ -2396,7 +2396,8 @@ public: if (most_important_error_pos()) { ErrConvString err(src, src_length, &my_charset_bin); - my_error(ER_INVALID_CHARACTER_STRING, MYF(0), srccs->csname, err.ptr()); + my_error(ER_INVALID_CHARACTER_STRING, MYF(0), srccs->cs_name.str, + err.ptr()); return true; } return false; @@ -2464,7 +2465,7 @@ bool THD::check_string_for_wellformedness(const char *str, if (wlen < length) { ErrConvString err(str, length, &my_charset_bin); - my_error(ER_INVALID_CHARACTER_STRING, MYF(0), cs->csname, err.ptr()); + my_error(ER_INVALID_CHARACTER_STRING, MYF(0), cs->cs_name.str, err.ptr()); return true; } return false; diff --git a/sql/sql_connect.cc b/sql/sql_connect.cc index e0119e50eaa..1da8c42d96e 100644 --- a/sql/sql_connect.cc +++ b/sql/sql_connect.cc @@ -798,7 +798,7 @@ bool thd_init_client_charset(THD *thd, uint cs_number) { /* Disallow non-supported parser character sets: UCS2, UTF16, UTF32 */ my_error(ER_WRONG_VALUE_FOR_VAR, MYF(0), "character_set_client", - cs->csname); + cs->cs_name.str); return true; } thd->org_charset= cs; diff --git a/sql/sql_db.cc b/sql/sql_db.cc index be90ee88a50..da232526cd1 100644 --- a/sql/sql_db.cc +++ b/sql/sql_db.cc @@ -506,9 +506,9 @@ static bool write_db_opt(THD *thd, const char *path, { ulong length; length= (ulong) (strxnmov(buf, sizeof(buf)-1, "default-character-set=", - create->default_table_charset->csname, + create->default_table_charset->cs_name.str, "\ndefault-collation=", - create->default_table_charset->name, + create->default_table_charset->coll_name.str, "\n", NullS) - buf); if (create->schema_comment) diff --git a/sql/sql_load.cc b/sql/sql_load.cc index b901548bf23..865318e3f05 100644 --- a/sql/sql_load.cc +++ b/sql/sql_load.cc @@ -867,7 +867,7 @@ static bool write_execute_load_query_log_event(THD *thd, const sql_exchange* ex, */ qualify_db= db_arg; } - lle.print_query(thd, FALSE, (const char *) ex->cs?ex->cs->csname:NULL, + lle.print_query(thd, FALSE, (const char*) ex->cs ? ex->cs->cs_name.str : NULL, &query_str, &fname_start, &fname_end, qualify_db); /* diff --git a/sql/sql_parse.cc b/sql/sql_parse.cc index 8691a4e3436..7511f77d9c3 100644 --- a/sql/sql_parse.cc +++ b/sql/sql_parse.cc @@ -10444,7 +10444,8 @@ merge_charset_and_collation(CHARSET_INFO *cs, CHARSET_INFO *cl) { if (!my_charset_same(cs, cl)) { - my_error(ER_COLLATION_CHARSET_MISMATCH, MYF(0), cl->name, cs->csname); + my_error(ER_COLLATION_CHARSET_MISMATCH, MYF(0), cl->coll_name.str, + cs->cs_name.str); return NULL; } return cl; @@ -10456,7 +10457,7 @@ merge_charset_and_collation(CHARSET_INFO *cs, CHARSET_INFO *cl) */ CHARSET_INFO *find_bin_collation(CHARSET_INFO *cs) { - const char *csname= cs->csname; + const char *csname= cs->cs_name.str; THD *thd= current_thd; myf utf8_flag= thd->get_utf8_flag(); diff --git a/sql/sql_show.cc b/sql/sql_show.cc index 8951ef82aa5..bd73220310f 100644 --- a/sql/sql_show.cc +++ b/sql/sql_show.cc @@ -1333,11 +1333,11 @@ mysqld_show_create(THD *thd, TABLE_LIST *table_list) buffer.set_charset(table_list->view_creation_ctx->get_client_cs()); protocol->store(&buffer); - protocol->store(table_list->view_creation_ctx->get_client_cs()->csname, + protocol->store(&table_list->view_creation_ctx->get_client_cs()->cs_name, system_charset_info); - protocol->store(table_list->view_creation_ctx->get_connection_cl()->name, - system_charset_info); + protocol->store(&table_list->view_creation_ctx->get_connection_cl()-> + coll_name, system_charset_info); } else protocol->store(&buffer); @@ -1440,13 +1440,11 @@ bool mysqld_show_create_db(THD *thd, LEX_CSTRING *dbname, { buffer.append(STRING_WITH_LEN(" /*!40100")); buffer.append(STRING_WITH_LEN(" DEFAULT CHARACTER SET ")); - buffer.append(create.default_table_charset->csname, - strlen(create.default_table_charset->csname)); + buffer.append(create.default_table_charset->cs_name); if (!(create.default_table_charset->state & MY_CS_PRIMARY)) { buffer.append(STRING_WITH_LEN(" COLLATE ")); - buffer.append(create.default_table_charset->name, - strlen(create.default_table_charset->name)); + buffer.append(create.default_table_charset->coll_name); } buffer.append(STRING_WITH_LEN(" */")); } @@ -1902,13 +1900,11 @@ static void add_table_options(THD *thd, TABLE *table, (create_info_arg->used_fields & HA_CREATE_USED_DEFAULT_CHARSET)) { packet->append(STRING_WITH_LEN(" DEFAULT CHARSET=")); - packet->append(share->table_charset->csname, - strlen(share->table_charset->csname)); + packet->append(share->table_charset->cs_name); if (!(share->table_charset->state & MY_CS_PRIMARY)) { packet->append(STRING_WITH_LEN(" COLLATE=")); - packet->append(table->s->table_charset->name, - strlen(table->s->table_charset->name)); + packet->append(table->s->table_charset->coll_name); } } } @@ -2190,8 +2186,7 @@ int show_create_table_ex(THD *thd, TABLE_LIST *table_list, if (field->charset() != share->table_charset) { packet->append(STRING_WITH_LEN(" CHARACTER SET ")); - packet->append(field->charset()->csname, - strlen(field->charset()->csname)); + packet->append(field->charset()->cs_name); } /* For string types dump collation name only if @@ -2205,7 +2200,7 @@ int show_create_table_ex(THD *thd, TABLE_LIST *table_list, field->charset() != field->vcol_info->expr->collation.collation)) { packet->append(STRING_WITH_LEN(" COLLATE ")); - packet->append(field->charset()->name, strlen(field->charset()->name)); + packet->append(field->charset()->coll_name); } } @@ -5309,9 +5304,9 @@ bool store_schema_schemata(THD* thd, TABLE *table, LEX_CSTRING *db_name, { restore_record(table, s->default_values); table->field[0]->store(STRING_WITH_LEN("def"), system_charset_info); - table->field[1]->store(db_name->str, db_name->length, system_charset_info); - table->field[2]->store(cs->csname, strlen(cs->csname), system_charset_info); - table->field[3]->store(cs->name, strlen(cs->name), system_charset_info); + table->field[1]->store(db_name, system_charset_info); + table->field[2]->store(&cs->cs_name, system_charset_info); + table->field[3]->store(&cs->coll_name, system_charset_info); if (schema_comment) table->field[5]->store(schema_comment->str, schema_comment->length, system_charset_info); @@ -5598,13 +5593,15 @@ static int get_schema_tables_record(THD *thd, TABLE_LIST *tables, if (str.length()) table->field[19]->store(str.ptr()+1, str.length()-1, cs); - tmp_buff= (share->table_charset ? - share->table_charset->name : "default"); - - table->field[17]->store(tmp_buff, strlen(tmp_buff), cs); + LEX_CSTRING tmp_str; + if (share->table_charset) + tmp_str= share->table_charset->coll_name; + else + tmp_str= { STRING_WITH_LEN("default") }; + table->field[17]->store(&tmp_str, cs); if (share->comment.str) - table->field[20]->store(share->comment.str, share->comment.length, cs); + table->field[20]->store(&share->comment, cs); /* Collect table info from the storage engine */ @@ -5825,12 +5822,10 @@ static void store_column_type(TABLE *table, Field *field, CHARSET_INFO *cs, if (field->has_charset()) { /* CHARACTER_SET_NAME column*/ - tmp_buff= field->charset()->csname; - table->field[offset + 6]->store(tmp_buff, strlen(tmp_buff), cs); + table->field[offset + 6]->store(&field->charset()->cs_name, cs); table->field[offset + 6]->set_notnull(); /* COLLATION_NAME column */ - tmp_buff= field->charset()->name; - table->field[offset + 7]->store(tmp_buff, strlen(tmp_buff), cs); + table->field[offset + 7]->store(&field->charset()->coll_name, cs); table->field[offset + 7]->set_notnull(); } } @@ -6117,12 +6112,12 @@ int fill_schema_charsets(THD *thd, TABLE_LIST *tables, COND *cond) (tmp_cs->state & MY_CS_AVAILABLE) && !(tmp_cs->state & MY_CS_HIDDEN) && !(wild && wild[0] && - wild_case_compare(scs, tmp_cs->csname,wild))) + wild_case_compare(scs, tmp_cs->cs_name.str,wild))) { const char *comment; restore_record(table, s->default_values); - table->field[0]->store(tmp_cs->csname, strlen(tmp_cs->csname), scs); - table->field[1]->store(tmp_cs->name, strlen(tmp_cs->name), scs); + table->field[0]->store(&tmp_cs->cs_name, scs); + table->field[1]->store(&tmp_cs->coll_name, scs); comment= tmp_cs->comment ? tmp_cs->comment : ""; table->field[2]->store(comment, strlen(comment), scs); table->field[3]->store((longlong) tmp_cs->mbmaxlen, TRUE); @@ -6234,12 +6229,13 @@ int fill_schema_collation(THD *thd, TABLE_LIST *tables, COND *cond) !my_charset_same(tmp_cs, tmp_cl)) continue; if (!(wild && wild[0] && - wild_case_compare(scs, tmp_cl->name,wild))) + wild_case_compare(scs, tmp_cl->coll_name.str, wild))) { const char *tmp_buff; restore_record(table, s->default_values); - table->field[0]->store(tmp_cl->name, strlen(tmp_cl->name), scs); - table->field[1]->store(tmp_cl->csname , strlen(tmp_cl->csname), scs); + table->field[0]->store(tmp_cl->coll_name.str, tmp_cl->coll_name.length, + scs); + table->field[1]->store(&tmp_cl->cs_name, scs); table->field[2]->store((longlong) tmp_cl->number, TRUE); tmp_buff= (tmp_cl->state & MY_CS_PRIMARY) ? "Yes" : ""; table->field[3]->store(tmp_buff, strlen(tmp_buff), scs); @@ -6279,8 +6275,8 @@ int fill_schema_coll_charset_app(THD *thd, TABLE_LIST *tables, COND *cond) !my_charset_same(tmp_cs,tmp_cl)) continue; restore_record(table, s->default_values); - table->field[0]->store(tmp_cl->name, strlen(tmp_cl->name), scs); - table->field[1]->store(tmp_cl->csname , strlen(tmp_cl->csname), scs); + table->field[0]->store(&tmp_cl->coll_name, scs); + table->field[1]->store(&tmp_cl->cs_name, scs); if (schema_table_store_record(thd, table)) return 1; } @@ -6883,15 +6879,10 @@ static int get_schema_views_record(THD *thd, TABLE_LIST *tables, else table->field[7]->store(STRING_WITH_LEN("INVOKER"), cs); - table->field[8]->store(tables->view_creation_ctx->get_client_cs()->csname, - strlen(tables->view_creation_ctx-> - get_client_cs()->csname), cs); - - table->field[9]->store(tables->view_creation_ctx-> - get_connection_cl()->name, - strlen(tables->view_creation_ctx-> - get_connection_cl()->name), cs); - + table->field[8]->store(&tables->view_creation_ctx->get_client_cs()->cs_name, + cs); + table->field[9]->store(&tables->view_creation_ctx-> + get_connection_cl()->coll_name, cs); table->field[10]->store(view_algorithm(tables), cs); if (schema_table_store_record(thd, table)) @@ -7094,12 +7085,9 @@ static bool store_trigger(THD *thd, Trigger *trigger, sql_mode_string_representation(thd, trigger->sql_mode, &sql_mode_rep); table->field[17]->store(sql_mode_rep.str, sql_mode_rep.length, cs); table->field[18]->store(definer_buffer.str, definer_buffer.length, cs); - table->field[19]->store(trigger->client_cs_name.str, - trigger->client_cs_name.length, cs); - table->field[20]->store(trigger->connection_cl_name.str, - trigger->connection_cl_name.length, cs); - table->field[21]->store(trigger->db_cl_name.str, - trigger->db_cl_name.length, cs); + table->field[19]->store(&trigger->client_cs_name, cs); + table->field[20]->store(&trigger->connection_cl_name, cs); + table->field[21]->store(&trigger->db_cl_name, cs); return schema_table_store_record(thd, table); } @@ -7786,22 +7774,15 @@ copy_event_to_schema_table(THD *thd, TABLE *sch_table, TABLE *event_table) store(et.comment.str, et.comment.length, scs); sch_table->field[ISE_CLIENT_CS]->set_notnull(); - sch_table->field[ISE_CLIENT_CS]->store( - et.creation_ctx->get_client_cs()->csname, - strlen(et.creation_ctx->get_client_cs()->csname), - scs); - + sch_table->field[ISE_CLIENT_CS]->store(&et.creation_ctx->get_client_cs()-> + cs_name, scs); sch_table->field[ISE_CONNECTION_CL]->set_notnull(); - sch_table->field[ISE_CONNECTION_CL]->store( - et.creation_ctx->get_connection_cl()->name, - strlen(et.creation_ctx->get_connection_cl()->name), - scs); - + sch_table->field[ISE_CONNECTION_CL]->store(&et.creation_ctx-> + get_connection_cl()->coll_name, + scs); sch_table->field[ISE_DB_CL]->set_notnull(); - sch_table->field[ISE_DB_CL]->store( - et.creation_ctx->get_db_cl()->name, - strlen(et.creation_ctx->get_db_cl()->name), - scs); + sch_table->field[ISE_DB_CL]->store(&et.creation_ctx->get_db_cl()->coll_name, + scs); if (schema_table_store_record(thd, sch_table)) DBUG_RETURN(1); @@ -9841,17 +9822,11 @@ static bool show_create_trigger_impl(THD *thd, Trigger *trigger) trg_sql_original_stmt.length, trg_client_cs); - p->store(trigger->client_cs_name.str, - trigger->client_cs_name.length, - system_charset_info); + p->store(&trigger->client_cs_name, system_charset_info); - p->store(trigger->connection_cl_name.str, - trigger->connection_cl_name.length, - system_charset_info); + p->store(&trigger->connection_cl_name, system_charset_info); - p->store(trigger->db_cl_name.str, - trigger->db_cl_name.length, - system_charset_info); + p->store(&trigger->db_cl_name, system_charset_info); if (trigger->create_time) { diff --git a/sql/sql_string.h b/sql/sql_string.h index a4f6c8592d2..809e8cb8275 100644 --- a/sql/sql_string.h +++ b/sql/sql_string.h @@ -183,7 +183,7 @@ public: } bool same_encoding(const Charset &other) const { - return !strcmp(m_charset->csname, other.m_charset->csname); + return my_charset_same(m_charset, other.m_charset); } /* Collation name without the character set name. @@ -936,7 +936,7 @@ public: { return append('_') || - append(str->charset()->csname, strlen(str->charset()->csname)) || + append(str->charset()->cs_name) || append(STRING_WITH_LEN(" 0x")) || append_hex(str->ptr(), (uint32) str->length()); } diff --git a/sql/sql_table.cc b/sql/sql_table.cc index 9b9a6653793..03ac4678b44 100644 --- a/sql/sql_table.cc +++ b/sql/sql_table.cc @@ -4658,13 +4658,13 @@ bool validate_comment_length(THD *thd, LEX_CSTRING *comment, size_t max_len, if (thd->is_strict_mode()) { my_error(ER_INVALID_CHARACTER_STRING, MYF(0), - system_charset_info->csname, comment->str); + system_charset_info->cs_name.str, comment->str); DBUG_RETURN(true); } push_warning_printf(thd, Sql_condition::WARN_LEVEL_WARN, ER_INVALID_CHARACTER_STRING, ER_THD(thd, ER_INVALID_CHARACTER_STRING), - system_charset_info->csname, comment->str); + system_charset_info->cs_name.str, comment->str); comment->length= tmp_len; DBUG_RETURN(false); } diff --git a/sql/sql_trigger.cc b/sql/sql_trigger.cc index 6f1a21ab791..e78e4f1d90c 100644 --- a/sql/sql_trigger.cc +++ b/sql/sql_trigger.cc @@ -937,11 +937,9 @@ bool Table_triggers_list::create_trigger(THD *thd, TABLE_LIST *tables, - connection collation contains pair {character set, collation}; - database collation contains pair {character set, collation}; */ - lex_string_set(&trigger->client_cs_name, thd->charset()->csname); - lex_string_set(&trigger->connection_cl_name, - thd->variables.collation_connection->name); - lex_string_set(&trigger->db_cl_name, - get_default_db_collation(thd, tables->db.str)->name); + trigger->client_cs_name= thd->charset()->cs_name; + trigger->connection_cl_name= thd->variables.collation_connection->coll_name; + trigger->db_cl_name= get_default_db_collation(thd, tables->db.str)->coll_name; /* Add trigger in it's correct place */ add_trigger(lex->trg_chistics.event, @@ -1505,12 +1503,9 @@ bool Table_triggers_list::check_n_load(THD *thd, const LEX_CSTRING *db, lex.raw_trg_on_table_name_begin); /* Copy pointers to character sets to make trigger easier to use */ - lex_string_set(&trigger->client_cs_name, - creation_ctx->get_client_cs()->csname); - lex_string_set(&trigger->connection_cl_name, - creation_ctx->get_connection_cl()->name); - lex_string_set(&trigger->db_cl_name, - creation_ctx->get_db_cl()->name); + trigger->client_cs_name= creation_ctx->get_client_cs()->cs_name; + trigger->connection_cl_name= creation_ctx->get_connection_cl()->coll_name; + trigger->db_cl_name= creation_ctx->get_db_cl()->coll_name; /* event can only be TRG_EVENT_MAX in case of fatal parse errors */ if (lex.trg_chistics.event != TRG_EVENT_MAX) diff --git a/sql/sql_type.cc b/sql/sql_type.cc index c5c34bac9f5..0700dcea9d4 100644 --- a/sql/sql_type.cc +++ b/sql/sql_type.cc @@ -6231,17 +6231,15 @@ String *Type_handler:: StringBuffer buf(result->charset()); CHARSET_INFO *cs= thd->variables.character_set_client; - const char *res_cs_name= result->charset()->csname; - const char *collation_name= item->collation.collation->name; buf.append('_'); - buf.append(res_cs_name, strlen(res_cs_name)); + buf.append(result->charset()->cs_name); if (cs->escape_with_backslash_is_dangerous) buf.append(' '); append_query_string(cs, &buf, result->ptr(), result->length(), thd->variables.sql_mode & MODE_NO_BACKSLASH_ESCAPES); buf.append(STRING_WITH_LEN(" COLLATE '")); - buf.append(collation_name, strlen(collation_name)); + buf.append(item->collation.collation->coll_name); buf.append('\''); str->copy(buf); @@ -9382,33 +9380,27 @@ LEX_CSTRING Charset::collation_specific_name() const for character sets and collations, so a collation name not necessarily starts with the character set name. */ - LEX_CSTRING retval; - size_t csname_length= strlen(m_charset->csname); - if (strncmp(m_charset->name, m_charset->csname, csname_length)) - { - retval.str= NULL; - retval.length= 0; - return retval; - } - const char *ptr= m_charset->name + csname_length; - retval.str= ptr; - retval.length= strlen(ptr); - return retval; + size_t cs_name_length= m_charset->cs_name.length; + if (strncmp(m_charset->coll_name.str, m_charset->cs_name.str, + cs_name_length)) + return {NULL, 0}; + const char *ptr= m_charset->coll_name.str + cs_name_length; + return {ptr, m_charset->coll_name.length - cs_name_length }; } bool Charset::encoding_allows_reinterpret_as(const CHARSET_INFO *cs) const { - if (!strcmp(m_charset->csname, cs->csname)) + if (my_charset_same(m_charset, cs)) return true; - if (!strcmp(m_charset->csname, MY_UTF8MB3) && - !strcmp(cs->csname, MY_UTF8MB4)) + if (!strcmp(m_charset->cs_name.str, MY_UTF8MB3) && + !strcmp(cs->cs_name.str, MY_UTF8MB4)) return true; /* - Originally we allowed here instat ALTER for ASCII-to-LATIN1 + Originally we allowed here instant ALTER for ASCII-to-LATIN1 and UCS2-to-UTF16, but this was wrong: - MariaDB's ascii is not a subset for 8-bit character sets like latin1, because it allows storing bytes 0x80..0xFF as diff --git a/sql/sql_view.cc b/sql/sql_view.cc index fffe37a8054..139fc0f5e85 100644 --- a/sql/sql_view.cc +++ b/sql/sql_view.cc @@ -1094,11 +1094,10 @@ loop_out: frm-file. */ - lex_string_set(&view->view_client_cs_name, - view->view_creation_ctx->get_client_cs()->csname); + view->view_client_cs_name= view->view_creation_ctx->get_client_cs()->cs_name; - lex_string_set(&view->view_connection_cl_name, - view->view_creation_ctx->get_connection_cl()->name); + view->view_connection_cl_name= + view->view_creation_ctx->get_connection_cl()->coll_name; if (!thd->make_lex_string(&view->view_body_utf8, is_query.ptr(), is_query.length())) diff --git a/sql/sql_yacc.yy b/sql/sql_yacc.yy index d819767a6ca..f589bbf5b99 100644 --- a/sql/sql_yacc.yy +++ b/sql/sql_yacc.yy @@ -202,7 +202,7 @@ void _CONCAT_UNDERSCORED(turn_parser_debug_on,yyparse)() { \ if (unlikely(Lex->charset && !my_charset_same(Lex->charset,X))) \ my_yyabort_error((ER_COLLATION_CHARSET_MISMATCH, MYF(0), \ - X->name,Lex->charset->csname)); \ + X->coll_name.str,Lex->charset->cs_name.str)); \ Lex->charset= X; \ } \ } while(0) @@ -6581,7 +6581,7 @@ attribute: { if (unlikely(Lex->charset && !my_charset_same(Lex->charset,$2))) my_yyabort_error((ER_COLLATION_CHARSET_MISMATCH, MYF(0), - $2->name,Lex->charset->csname)); + $2->coll_name.str, Lex->charset->cs_name.str)); Lex->last_field->charset= $2; } | serial_attribute @@ -6799,7 +6799,7 @@ binary: { if (!my_charset_same(Lex->charset, $1)) my_yyabort_error((ER_COLLATION_CHARSET_MISMATCH, MYF(0), - Lex->charset->name, $1->csname)); + Lex->charset->coll_name.str, $1->cs_name.str)); } | collate { } ; @@ -7882,7 +7882,7 @@ alter_list_item: $5= $5 ? $5 : $4; if (unlikely(!my_charset_same($4,$5))) my_yyabort_error((ER_COLLATION_CHARSET_MISMATCH, MYF(0), - $5->name, $4->csname)); + $5->coll_name.str, $4->cs_name.str)); if (unlikely(Lex->create_info.add_alter_list_item_convert_to_charset($5))) MYSQL_YYABORT; Lex->alter_info.flags|= ALTER_CONVERT_TO; @@ -16757,7 +16757,7 @@ option_value_no_option_type: if (unlikely(!my_charset_same(cs2, cs3))) { my_error(ER_COLLATION_CHARSET_MISMATCH, MYF(0), - cs3->name, cs2->csname); + cs3->coll_name.str, cs2->cs_name.str); MYSQL_YYABORT; } set_var_collation_client *var; diff --git a/sql/sys_vars.cc b/sql/sys_vars.cc index 358f0078381..73fefeead50 100644 --- a/sql/sys_vars.cc +++ b/sql/sys_vars.cc @@ -789,12 +789,12 @@ static Sys_var_struct Sys_character_set_system( "character_set_system", "The character set used by the server " "for storing identifiers", READ_ONLY GLOBAL_VAR(system_charset_info), NO_CMD_LINE, - offsetof(CHARSET_INFO, csname), DEFAULT(0)); + offsetof(CHARSET_INFO, cs_name.str), DEFAULT(0)); static Sys_var_struct Sys_character_set_server( "character_set_server", "The default character set", SESSION_VAR(collation_server), NO_CMD_LINE, - offsetof(CHARSET_INFO, csname), DEFAULT(&default_charset_info), + offsetof(CHARSET_INFO, cs_name.str), DEFAULT(&default_charset_info), NO_MUTEX_GUARD, IN_BINLOG, ON_CHECK(check_charset_not_null)); static bool check_charset_db(sys_var *self, THD *thd, set_var *var) @@ -809,7 +809,7 @@ static Sys_var_struct Sys_character_set_database( "character_set_database", "The character set used by the default database", SESSION_VAR(collation_database), NO_CMD_LINE, - offsetof(CHARSET_INFO, csname), DEFAULT(&default_charset_info), + offsetof(CHARSET_INFO, cs_name.str), DEFAULT(&default_charset_info), NO_MUTEX_GUARD, IN_BINLOG, ON_CHECK(check_charset_db)); static bool check_cs_client(sys_var *self, THD *thd, set_var *var) @@ -833,7 +833,7 @@ static Sys_var_struct Sys_character_set_client( "character_set_client", "The character set for statements " "that arrive from the client", NO_SET_STMT SESSION_VAR(character_set_client), NO_CMD_LINE, - offsetof(CHARSET_INFO, csname), DEFAULT(&default_charset_info), + offsetof(CHARSET_INFO, cs_name.str), DEFAULT(&default_charset_info), NO_MUTEX_GUARD, IN_BINLOG, ON_CHECK(check_cs_client), ON_UPDATE(fix_thd_charset)); // for check changing @@ -844,7 +844,7 @@ static Sys_var_struct Sys_character_set_connection( "literals that do not have a character set introducer and for " "number-to-string conversion", NO_SET_STMT SESSION_VAR(collation_connection), NO_CMD_LINE, - offsetof(CHARSET_INFO, csname), DEFAULT(&default_charset_info), + offsetof(CHARSET_INFO, cs_name.str), DEFAULT(&default_charset_info), NO_MUTEX_GUARD, IN_BINLOG, ON_CHECK(check_charset_not_null), ON_UPDATE(fix_thd_charset)); // for check changing @@ -854,7 +854,7 @@ static Sys_var_struct Sys_character_set_results( "character_set_results", "The character set used for returning " "query results to the client", SESSION_VAR(character_set_results), NO_CMD_LINE, - offsetof(CHARSET_INFO, csname), DEFAULT(&default_charset_info), + offsetof(CHARSET_INFO, cs_name.str), DEFAULT(&default_charset_info), NO_MUTEX_GUARD, NOT_IN_BINLOG, ON_CHECK(check_charset)); // for check changing export sys_var *Sys_character_set_results_ptr= &Sys_character_set_results; @@ -862,7 +862,7 @@ export sys_var *Sys_character_set_results_ptr= &Sys_character_set_results; static Sys_var_struct Sys_character_set_filesystem( "character_set_filesystem", "The filesystem character set", NO_SET_STMT SESSION_VAR(character_set_filesystem), NO_CMD_LINE, - offsetof(CHARSET_INFO, csname), DEFAULT(&character_set_filesystem), + offsetof(CHARSET_INFO, cs_name.str), DEFAULT(&character_set_filesystem), NO_MUTEX_GUARD, NOT_IN_BINLOG, ON_CHECK(check_charset_not_null), ON_UPDATE(fix_thd_charset)); @@ -908,7 +908,7 @@ static Sys_var_struct Sys_collation_connection( "collation_connection", "The collation of the connection " "character set", NO_SET_STMT SESSION_VAR(collation_connection), NO_CMD_LINE, - offsetof(CHARSET_INFO, name), DEFAULT(&default_charset_info), + offsetof(CHARSET_INFO, coll_name.str), DEFAULT(&default_charset_info), NO_MUTEX_GUARD, IN_BINLOG, ON_CHECK(check_collation_not_null), ON_UPDATE(fix_thd_charset)); @@ -924,13 +924,13 @@ static Sys_var_struct Sys_collation_database( "collation_database", "The collation of the database " "character set", SESSION_VAR(collation_database), NO_CMD_LINE, - offsetof(CHARSET_INFO, name), DEFAULT(&default_charset_info), + offsetof(CHARSET_INFO, coll_name.str), DEFAULT(&default_charset_info), NO_MUTEX_GUARD, IN_BINLOG, ON_CHECK(check_collation_db)); static Sys_var_struct Sys_collation_server( "collation_server", "The server default collation", SESSION_VAR(collation_server), NO_CMD_LINE, - offsetof(CHARSET_INFO, name), DEFAULT(&default_charset_info), + offsetof(CHARSET_INFO, coll_name.str), DEFAULT(&default_charset_info), NO_MUTEX_GUARD, IN_BINLOG, ON_CHECK(check_collation_not_null)); static Sys_var_uint Sys_column_compression_threshold( diff --git a/sql/table.cc b/sql/table.cc index fcbba0b0212..f907ae04f52 100644 --- a/sql/table.cc +++ b/sql/table.cc @@ -2580,8 +2580,9 @@ int TABLE_SHARE::init_from_binary_frm_image(THD *thd, bool write, { // 3.23 or 4.0 string myf utf8_flag= thd->get_utf8_flag(); - if (!(attr.charset= get_charset_by_csname(share->table_charset->csname, - MY_CS_BINSORT, + if (!(attr.charset= get_charset_by_csname(share->table_charset-> + cs_name.str, + MY_CS_BINSORT, MYF(utf8_flag)))) attr.charset= &my_charset_bin; } @@ -5187,7 +5188,7 @@ Table_check_intact::check(TABLE *table, const TABLE_FIELD_DEF *table_def) error= TRUE; } else if (field_def->cset.str && - strcmp(field->charset()->csname, field_def->cset.str)) + strcmp(field->charset()->cs_name.str, field_def->cset.str)) { report_error(0, "Incorrect definition of table %s.%s: " "expected the type of column '%s' at position %d " @@ -5195,7 +5196,7 @@ Table_check_intact::check(TABLE *table, const TABLE_FIELD_DEF *table_def) "character set '%s'.", table->s->db.str, table->alias.c_ptr(), field_def->name.str, i, field_def->cset.str, - field->charset()->csname); + field->charset()->cs_name.str); error= TRUE; } } diff --git a/sql/wsrep_sst.cc b/sql/wsrep_sst.cc index f6bc0e7c63f..1cce8259d5c 100644 --- a/sql/wsrep_sst.cc +++ b/sql/wsrep_sst.cc @@ -1526,10 +1526,10 @@ static int sst_flush_tables(THD* thd) if (!is_supported_parser_charset(current_charset)) { /* Do not use non-supported parser character sets */ - WSREP_WARN("Current client character set is non-supported parser character set: %s", current_charset->csname); + WSREP_WARN("Current client character set is non-supported parser character set: %s", current_charset->cs_name.str); thd->variables.character_set_client= &my_charset_latin1; WSREP_WARN("For SST temporally setting character set to : %s", - my_charset_latin1.csname); + my_charset_latin1.cs_name.str); } if (run_sql_command(thd, "FLUSH TABLES WITH READ LOCK")) @@ -1628,10 +1628,10 @@ static void sst_disallow_writes (THD* thd, bool yes) if (!is_supported_parser_charset(current_charset)) { /* Do not use non-supported parser character sets */ - WSREP_WARN("Current client character set is non-supported parser character set: %s", current_charset->csname); + WSREP_WARN("Current client character set is non-supported parser character set: %s", current_charset->cs_name.str); thd->variables.character_set_client= &my_charset_latin1; WSREP_WARN("For SST temporally setting character set to : %s", - my_charset_latin1.csname); + my_charset_latin1.cs_name.str); } snprintf (query_str, query_max, "SET GLOBAL innodb_disallow_writes=%d", diff --git a/storage/connect/ha_connect.cc b/storage/connect/ha_connect.cc index e263d7eeb55..b47e1c97061 100644 --- a/storage/connect/ha_connect.cc +++ b/storage/connect/ha_connect.cc @@ -1443,7 +1443,7 @@ PCSZ ha_connect::GetStringOption(PCSZ opname, PCSZ sdef) : table->s->table_charset; if (chif) - opval= (char*)chif->csname; + opval= (char*)chif->cs_name.str; } else opval= GetStringTableOption(xp->g, options, opname, NULL); @@ -1607,7 +1607,7 @@ void *ha_connect::GetColumnOption(PGLOBAL g, void *field, PCOLINFO pcf) // Now get column information pcf->Name= (char*)fp->field_name.str; - chset = (char*)fp->charset()->name; + chset= (char*)fp->charset()->coll_name.str; if (fop && fop->special) { pcf->Fieldfmt= (char*)fop->special; @@ -5591,8 +5591,7 @@ static int init_table_share(THD* thd, if (create_info->default_table_charset) { oom|= sql->append(' '); oom|= sql->append(STRING_WITH_LEN("CHARSET=")); - oom|= sql->append(create_info->default_table_charset->csname, - strlen(create_info->default_table_charset->csname)); + oom|= sql->append(create_info->default_table_charset->cs_name); if (oom) return HA_ERR_OUT_OF_MEM; diff --git a/storage/connect/tabutil.cpp b/storage/connect/tabutil.cpp index 705f567f464..728ed9e305b 100644 --- a/storage/connect/tabutil.cpp +++ b/storage/connect/tabutil.cpp @@ -285,7 +285,7 @@ PQRYRES TabColumns(PGLOBAL g, THD *thd, const char *db, crp->Kdata->SetValue((fmt) ? fmt : (char*) "", i); crp = crp->Next; // New (charset) - fld = (char *)fp->charset()->name; + fld = (char *)fp->charset()->coll_name.str; crp->Kdata->SetValue(fld, i); // Add this item diff --git a/storage/federated/ha_federated.cc b/storage/federated/ha_federated.cc index 88222f79df8..758b335e13a 100644 --- a/storage/federated/ha_federated.cc +++ b/storage/federated/ha_federated.cc @@ -3143,7 +3143,7 @@ int ha_federated::real_connect() */ /* this sets the csname like 'set names utf8' */ mysql_options(mysql,MYSQL_SET_CHARSET_NAME, - this->table->s->table_charset->csname); + this->table->s->table_charset->cs_name.str); sql_query.length(0); if (!mysql_real_connect(mysql, diff --git a/storage/federatedx/ha_federatedx.cc b/storage/federatedx/ha_federatedx.cc index 75856a76c3a..bea741fa7b2 100644 --- a/storage/federatedx/ha_federatedx.cc +++ b/storage/federatedx/ha_federatedx.cc @@ -1523,7 +1523,7 @@ static void fill_server(MEM_ROOT *mem_root, FEDERATEDX_SERVER *server, server->password= NULL; if (table_charset) - server->csname= strdup_root(mem_root, table_charset->csname); + server->csname= strdup_root(mem_root, table_charset->cs_name.str); DBUG_VOID_RETURN; } @@ -3648,7 +3648,7 @@ int ha_federatedx::discover_assisted(handlerton *hton, THD* thd, return HA_WRONG_CREATE_OPTION; mysql_init(&mysql); - mysql_options(&mysql, MYSQL_SET_CHARSET_NAME, cs->csname); + mysql_options(&mysql, MYSQL_SET_CHARSET_NAME, cs->cs_name.str); mysql_options(&mysql, MYSQL_OPT_USE_THREAD_SPECIFIC_MEMORY, (char*)&my_true); if (!mysql_real_connect(&mysql, tmp_share.hostname, tmp_share.username, diff --git a/storage/mroonga/lib/mrn_encoding.cpp b/storage/mroonga/lib/mrn_encoding.cpp index f3220e675ea..369c985a302 100644 --- a/storage/mroonga/lib/mrn_encoding.cpp +++ b/storage/mroonga/lib/mrn_encoding.cpp @@ -42,50 +42,50 @@ namespace mrn { { if (!cs[0]) continue; - if (!strcmp(cs[0]->csname, "utf8mb3")) + if (!strcmp(cs[0]->cs_name.str, "utf8mb3")) { DBUG_PRINT("info", ("mroonga: %s is %s [%p]", - cs[0]->name, cs[0]->csname, cs[0]->cset)); + cs[0]->coll_name.str, cs[0]->cs_name.str, cs[0]->cset)); if (!mrn_charset_utf8) mrn_charset_utf8 = cs[0]; else if (mrn_charset_utf8->cset != cs[0]->cset) DBUG_ASSERT(0); continue; } - if (!strcmp(cs[0]->csname, "utf8mb4")) + if (!strcmp(cs[0]->cs_name.str, "utf8mb4")) { DBUG_PRINT("info", ("mroonga: %s is %s [%p]", - cs[0]->name, cs[0]->csname, cs[0]->cset)); + cs[0]->coll_name.str, cs[0]->cs_name.str, cs[0]->cset)); if (!mrn_charset_utf8mb4) mrn_charset_utf8mb4 = cs[0]; else if (mrn_charset_utf8mb4->cset != cs[0]->cset) DBUG_ASSERT(0); continue; } - if (!strcmp(cs[0]->csname, "binary")) + if (!strcmp(cs[0]->cs_name.str, "binary")) { DBUG_PRINT("info", ("mroonga: %s is %s [%p]", - cs[0]->name, cs[0]->csname, cs[0]->cset)); + cs[0]->coll_name.str, cs[0]->cs_name.str, cs[0]->cset)); if (!mrn_charset_binary) mrn_charset_binary = cs[0]; else if (mrn_charset_binary->cset != cs[0]->cset) DBUG_ASSERT(0); continue; } - if (!strcmp(cs[0]->csname, "ascii")) + if (!strcmp(cs[0]->cs_name.str, "ascii")) { DBUG_PRINT("info", ("mroonga: %s is %s [%p]", - cs[0]->name, cs[0]->csname, cs[0]->cset)); + cs[0]->coll_name.str, cs[0]->cs_name.str, cs[0]->cset)); if (!mrn_charset_ascii) mrn_charset_ascii = cs[0]; else if (mrn_charset_ascii->cset != cs[0]->cset) DBUG_ASSERT(0); continue; } - if (!strcmp(cs[0]->csname, "latin1")) + if (!strcmp(cs[0]->cs_name.str, "latin1")) { DBUG_PRINT("info", ("mroonga: %s is %s [%p]", - cs[0]->name, cs[0]->csname, cs[0]->cset)); + cs[0]->coll_name.str, cs[0]->cs_name.str, cs[0]->cset)); if (!mrn_charset_latin1_1) mrn_charset_latin1_1 = cs[0]; else if (mrn_charset_latin1_1->cset != cs[0]->cset) @@ -97,50 +97,50 @@ namespace mrn { } continue; } - if (!strcmp(cs[0]->csname, "cp932")) + if (!strcmp(cs[0]->cs_name.str, "cp932")) { DBUG_PRINT("info", ("mroonga: %s is %s [%p]", - cs[0]->name, cs[0]->csname, cs[0]->cset)); + cs[0]->coll_name.str, cs[0]->cs_name.str, cs[0]->cset)); if (!mrn_charset_cp932) mrn_charset_cp932 = cs[0]; else if (mrn_charset_cp932->cset != cs[0]->cset) DBUG_ASSERT(0); continue; } - if (!strcmp(cs[0]->csname, "sjis")) + if (!strcmp(cs[0]->cs_name.str, "sjis")) { DBUG_PRINT("info", ("mroonga: %s is %s [%p]", - cs[0]->name, cs[0]->csname, cs[0]->cset)); + cs[0]->coll_name.str, cs[0]->cs_name.str, cs[0]->cset)); if (!mrn_charset_sjis) mrn_charset_sjis = cs[0]; else if (mrn_charset_sjis->cset != cs[0]->cset) DBUG_ASSERT(0); continue; } - if (!strcmp(cs[0]->csname, "eucjpms")) + if (!strcmp(cs[0]->cs_name.str, "eucjpms")) { DBUG_PRINT("info", ("mroonga: %s is %s [%p]", - cs[0]->name, cs[0]->csname, cs[0]->cset)); + cs[0]->coll_name.str, cs[0]->cs_name.str, cs[0]->cset)); if (!mrn_charset_eucjpms) mrn_charset_eucjpms = cs[0]; else if (mrn_charset_eucjpms->cset != cs[0]->cset) DBUG_ASSERT(0); continue; } - if (!strcmp(cs[0]->csname, "ujis")) + if (!strcmp(cs[0]->cs_name.str, "ujis")) { DBUG_PRINT("info", ("mroonga: %s is %s [%p]", - cs[0]->name, cs[0]->csname, cs[0]->cset)); + cs[0]->coll_name.str, cs[0]->cs_name.str, cs[0]->cset)); if (!mrn_charset_ujis) mrn_charset_ujis = cs[0]; else if (mrn_charset_ujis->cset != cs[0]->cset) DBUG_ASSERT(0); continue; } - if (!strcmp(cs[0]->csname, "koi8r")) + if (!strcmp(cs[0]->cs_name.str, "koi8r")) { DBUG_PRINT("info", ("mroonga: %s is %s [%p]", - cs[0]->name, cs[0]->csname, cs[0]->cset)); + cs[0]->coll_name.str, cs[0]->cs_name.str, cs[0]->cset)); if (!mrn_charset_koi8r) mrn_charset_koi8r = cs[0]; else if (mrn_charset_koi8r->cset != cs[0]->cset) @@ -148,7 +148,7 @@ namespace mrn { continue; } DBUG_PRINT("info", ("mroonga: %s[%s][%p] is not supported", - cs[0]->name, cs[0]->csname, cs[0]->cset)); + cs[0]->coll_name.str, cs[0]->cs_name.str, cs[0]->cset)); } DBUG_VOID_RETURN; } @@ -161,8 +161,8 @@ namespace mrn { const char *name = ""; const char *csname = ""; if (charset) { - name = charset->name; - csname = charset->csname; + name = charset->coll_name.str; + csname = charset->cs_name.str; } error = ER_MRN_CHARSET_NOT_SUPPORT_NUM; my_printf_error(error, diff --git a/storage/mroonga/lib/mrn_field_normalizer.cpp b/storage/mroonga/lib/mrn_field_normalizer.cpp index 49219eae21d..d7a81f749fc 100644 --- a/storage/mroonga/lib/mrn_field_normalizer.cpp +++ b/storage/mroonga/lib/mrn_field_normalizer.cpp @@ -39,9 +39,9 @@ namespace mrn { DBUG_PRINT("info", ("mroonga: result_type = %u", field_->result_type())); DBUG_PRINT("info", - ("mroonga: charset->name = %s", field_->charset()->name)); + ("mroonga: charset->name = %s", field_->charset()->coll_name.str)); DBUG_PRINT("info", - ("mroonga: charset->csname = %s", field_->charset()->csname)); + ("mroonga: charset->csname = %s", field_->charset()->cs_name.str)); DBUG_PRINT("info", ("mroonga: charset->state = %u", field_->charset()->state)); bool need_normalize_p; @@ -108,14 +108,14 @@ namespace mrn { const CHARSET_INFO *charset_info = field_->charset(); const char *normalizer_name = NULL; const char *default_normalizer_name = "NormalizerAuto"; - if ((strcmp(charset_info->name, "utf8mb3_general_ci") == 0) || - (strcmp(charset_info->name, "utf8mb4_general_ci") == 0)) { + if ((strcmp(charset_info->coll_name.str, "utf8mb3_general_ci") == 0) || + (strcmp(charset_info->coll_name.str, "utf8mb4_general_ci") == 0)) { normalizer_name = "NormalizerMySQLGeneralCI"; - } else if ((strcmp(charset_info->name, "utf8mb3_unicode_ci") == 0) || - (strcmp(charset_info->name, "utf8mb4_unicode_ci") == 0)) { + } else if ((strcmp(charset_info->coll_name.str, "utf8mb3_unicode_ci") == 0) || + (strcmp(charset_info->coll_name.str, "utf8mb4_unicode_ci") == 0)) { normalizer_name = "NormalizerMySQLUnicodeCI"; - } else if ((strcmp(charset_info->name, "utf8mb3_unicode_520_ci") == 0) || - (strcmp(charset_info->name, "utf8mb4_unicode_520_ci") == 0)) { + } else if ((strcmp(charset_info->coll_name.str, "utf8mb3_unicode_520_ci") == 0) || + (strcmp(charset_info->coll_name.str, "utf8mb4_unicode_520_ci") == 0)) { normalizer_name = "NormalizerMySQLUnicode520CI"; } @@ -129,7 +129,7 @@ namespace mrn { "Install groonga-normalizer-mysql normalizer. " "%s is used as fallback.", normalizer_name, - charset_info->name, + charset_info->coll_name.str, default_normalizer_name); push_warning(thread_, MRN_SEVERITY_WARNING, HA_ERR_UNSUPPORTED, error_message); diff --git a/storage/mroonga/udf/mrn_udf_snippet.cpp b/storage/mroonga/udf/mrn_udf_snippet.cpp index cf9cc209603..90d3721e7e0 100644 --- a/storage/mroonga/udf/mrn_udf_snippet.cpp +++ b/storage/mroonga/udf/mrn_udf_snippet.cpp @@ -82,7 +82,7 @@ static my_bool mrn_snippet_prepare(st_mrn_snip_info *snip_info, UDF_ARGS *args, } if (!mrn::encoding::set_raw(ctx, cs)) { snprintf(message, MYSQL_ERRMSG_SIZE, - "Unsupported charset: <%s>", cs->name); + "Unsupported charset: <%s>", cs->coll_name.str); goto error; } diff --git a/storage/rocksdb/rdb_datadic.cc b/storage/rocksdb/rdb_datadic.cc index 6c61cbfb728..f52d3cee048 100644 --- a/storage/rocksdb/rdb_datadic.cc +++ b/storage/rocksdb/rdb_datadic.cc @@ -3417,7 +3417,7 @@ bool Rdb_field_packing::setup(const Rdb_key_def *const key_descr, sql_print_warning( "RocksDB: you're trying to create an index " "with a multi-level collation %s", - cs->name); + cs->cs_name.str); // NO_LINT_DEBUG sql_print_warning( "MyRocks will handle this collation internally " diff --git a/storage/spider/spd_db_conn.cc b/storage/spider/spd_db_conn.cc index ea7714f2002..2a7e799e97d 100644 --- a/storage/spider/spd_db_conn.cc +++ b/storage/spider/spd_db_conn.cc @@ -929,7 +929,7 @@ int spider_db_set_names_internal( ) { if ( spider_db_before_query(conn, need_mon) || - conn->db_conn->set_character_set(share->access_charset->csname) + conn->db_conn->set_character_set(share->access_charset->cs_name.str) ) { DBUG_RETURN(spider_db_errorno(conn)); } @@ -2730,8 +2730,8 @@ int spider_db_append_charset_name_before_string( spider_string *str, CHARSET_INFO *cs ) { - const char *csname = cs->csname; - uint csname_length = strlen(csname); + const char *csname = cs->cs_name.str; + uint csname_length = cs->cs_name.length; DBUG_ENTER("spider_db_append_charset_name_before_string"); if (str->reserve(SPIDER_SQL_UNDERSCORE_LEN + csname_length)) { @@ -3089,7 +3089,7 @@ int spider_db_fetch_row( Time_zone *saved_time_zone = thd->variables.time_zone; DBUG_ENTER("spider_db_fetch_row"); DBUG_PRINT("info", ("spider field_name %s", SPIDER_field_name_str(field))); - DBUG_PRINT("info", ("spider fieldcharset %s", field->charset()->csname)); + DBUG_PRINT("info", ("spider fieldcharset %s", field->charset()->cs_name.str)); thd->variables.time_zone = UTC; @@ -11305,7 +11305,7 @@ int spider_db_udf_direct_sql_set_names( if ( ( spider_db_before_query(conn, &need_mon) || - conn->db_conn->set_character_set(trx->udf_access_charset->csname) + conn->db_conn->set_character_set(trx->udf_access_charset->cs_name.str) ) && (error_num = spider_db_errorno(conn)) ) { diff --git a/storage/spider/spd_db_mysql.cc b/storage/spider/spd_db_mysql.cc index 5b257444bfc..7bc3a310c5f 100644 --- a/storage/spider/spd_db_mysql.cc +++ b/storage/spider/spd_db_mysql.cc @@ -6890,11 +6890,11 @@ int spider_db_mbase_util::open_item_func( (Item_func_conv_charset *)item_func; CHARSET_INFO *conv_charset = item_func_conv_charset->SPIDER_Item_func_conv_charset_conv_charset; - uint cset_length = strlen(conv_charset->csname); + uint cset_length = conv_charset->cs_name.length; if (str->reserve(SPIDER_SQL_USING_LEN + cset_length)) DBUG_RETURN(HA_ERR_OUT_OF_MEM); str->q_append(SPIDER_SQL_USING_STR, SPIDER_SQL_USING_LEN); - str->q_append(conv_charset->csname, cset_length); + str->q_append(conv_charset->cs_name.str, cset_length); } } } @@ -7036,8 +7036,8 @@ int spider_db_mbase_util::append_escaped_util( ) { DBUG_ENTER("spider_db_mbase_util::append_escaped_util"); DBUG_PRINT("info",("spider this=%p", this)); - DBUG_PRINT("info",("spider from=%s", from->charset()->csname)); - DBUG_PRINT("info",("spider to=%s", to->charset()->csname)); + DBUG_PRINT("info",("spider from=%s", from->charset()->cs_name.str)); + DBUG_PRINT("info",("spider to=%s", to->charset()->cs_name.str)); to->append_escape_string(from->ptr(), from->length()); DBUG_RETURN(0); } @@ -9051,11 +9051,11 @@ int spider_mbase_handler::append_key_column_types( if (field->has_charset()) { CHARSET_INFO *cs = field->charset(); - uint coll_length = strlen(cs->name); + uint coll_length = cs->coll_name.length; if (str->reserve(SPIDER_SQL_COLLATE_LEN + coll_length)) DBUG_RETURN(HA_ERR_OUT_OF_MEM); str->q_append(SPIDER_SQL_COLLATE_STR, SPIDER_SQL_COLLATE_LEN); - str->q_append(cs->name, coll_length); + str->q_append(cs->coll_name.str, coll_length); } if (str->reserve(SPIDER_SQL_COMMA_LEN)) @@ -9304,8 +9304,8 @@ int spider_mbase_handler::append_create_tmp_bka_table( THD *thd = spider->wide_handler->trx->thd; char *bka_engine = spider_param_bka_engine(thd, share->bka_engine); uint bka_engine_length = strlen(bka_engine), - cset_length = strlen(table_charset->csname), - coll_length = strlen(table_charset->name); + cset_length = table_charset->cs_name.length, + coll_length = table_charset->coll_name.length; DBUG_ENTER("spider_mbase_handler::append_create_tmp_bka_table"); if (str->reserve(SPIDER_SQL_CREATE_TMP_LEN + tmp_table_name_length + SPIDER_SQL_OPEN_PAREN_LEN + SPIDER_SQL_ID_LEN + SPIDER_SQL_ID_TYPE_LEN + @@ -9327,9 +9327,9 @@ int spider_mbase_handler::append_create_tmp_bka_table( str->q_append(SPIDER_SQL_ENGINE_STR, SPIDER_SQL_ENGINE_LEN); str->q_append(bka_engine, bka_engine_length); str->q_append(SPIDER_SQL_DEF_CHARSET_STR, SPIDER_SQL_DEF_CHARSET_LEN); - str->q_append(table_charset->csname, cset_length); + str->q_append(table_charset->cs_name.str, cset_length); str->q_append(SPIDER_SQL_COLLATE_STR, SPIDER_SQL_COLLATE_LEN); - str->q_append(table_charset->name, coll_length); + str->q_append(table_charset->coll_name.str, coll_length); str->q_append(SPIDER_SQL_SEMICOLON_STR, SPIDER_SQL_SEMICOLON_LEN); DBUG_RETURN(0); } diff --git a/storage/spider/spd_table.cc b/storage/spider/spd_table.cc index 4d1258d2963..a4b16bcb81a 100644 --- a/storage/spider/spd_table.cc +++ b/storage/spider/spd_table.cc @@ -10050,8 +10050,8 @@ int spider_discover_table_structure( } else { table_charset = system_charset_info; } - uint csnamelen = strlen(table_charset->csname); - uint collatelen = strlen(table_charset->name); + uint csnamelen = table_charset->cs_name.length; + uint collatelen = table_charset->coll_name.length; if (str.reserve(SPIDER_SQL_CLOSE_PAREN_LEN + SPIDER_SQL_DEFAULT_CHARSET_LEN + csnamelen + SPIDER_SQL_COLLATE_LEN + collatelen + SPIDER_SQL_CONNECTION_LEN + SPIDER_SQL_VALUE_QUOTE_LEN + @@ -10061,9 +10061,9 @@ int spider_discover_table_structure( } str.q_append(SPIDER_SQL_CLOSE_PAREN_STR, SPIDER_SQL_CLOSE_PAREN_LEN); str.q_append(SPIDER_SQL_DEFAULT_CHARSET_STR, SPIDER_SQL_DEFAULT_CHARSET_LEN); - str.q_append(table_charset->csname, csnamelen); + str.q_append(table_charset->cs_name.str, csnamelen); str.q_append(SPIDER_SQL_COLLATE_STR, SPIDER_SQL_COLLATE_LEN); - str.q_append(table_charset->name, collatelen); + str.q_append(table_charset->coll_name.str, collatelen); str.q_append(SPIDER_SQL_COMMENT_STR, SPIDER_SQL_COMMENT_LEN); str.q_append(SPIDER_SQL_VALUE_QUOTE_STR, SPIDER_SQL_VALUE_QUOTE_LEN); str.append_escape_string(share->comment.str, share->comment.length); diff --git a/strings/ctype-big5.c b/strings/ctype-big5.c index f5dd92f736e..73e3d8ea306 100644 --- a/strings/ctype-big5.c +++ b/strings/ctype-big5.c @@ -33,6 +33,7 @@ #ifdef HAVE_CHARSET_big5 const char charset_name_big5[]= "big5"; +#define charset_name_big5_length (sizeof(charset_name_big5) -1) /* Support for Chinese(BIG5) characters, by jou@nematic.ieo.nctu.edu.tw @@ -6809,8 +6810,8 @@ struct charset_info_st my_charset_big5_chinese_ci= { 1,0,0, /* number */ MY_CS_COMPILED|MY_CS_PRIMARY|MY_CS_STRNXFRM, /* state */ - charset_name_big5, /* cs name */ - "big5_chinese_ci", /* name */ + { charset_name_big5, charset_name_big5_length }, /* cs name */ + { STRING_WITH_LEN("big5_chinese_ci") }, /* name */ "", /* comment */ NULL, /* tailoring */ ctype_big5, @@ -6842,8 +6843,8 @@ struct charset_info_st my_charset_big5_bin= { 84,0,0, /* number */ MY_CS_COMPILED|MY_CS_BINSORT, /* state */ - charset_name_big5, /* cs name */ - "big5_bin", /* name */ + { charset_name_big5, charset_name_big5_length }, /* cs name */ + { STRING_WITH_LEN("big5_bin") }, /* name */ "", /* comment */ NULL, /* tailoring */ ctype_big5, @@ -6875,8 +6876,8 @@ 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 */ - charset_name_big5, /* cs name */ - "big5_chinese_nopad_ci", /* name */ + { charset_name_big5, charset_name_big5_length }, /* cs name */ + { STRING_WITH_LEN("big5_chinese_nopad_ci") }, /* name */ "", /* comment */ NULL, /* tailoring */ ctype_big5, @@ -6908,8 +6909,8 @@ 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 */ - charset_name_big5, /* cs name */ - "big5_nopad_bin", /* name */ + { charset_name_big5, charset_name_big5_length }, /* cs name */ + { STRING_WITH_LEN("big5_nopad_bin") }, /* name */ "", /* comment */ NULL, /* tailoring */ ctype_big5, diff --git a/strings/ctype-bin.c b/strings/ctype-bin.c index c11be2e5926..2902c2edda1 100644 --- a/strings/ctype-bin.c +++ b/strings/ctype-bin.c @@ -24,6 +24,7 @@ #include const char charset_name_binary[]= "binary"; +#define charset_name_binary_length (sizeof(charset_name_binary)-1) static const uchar ctype_bin[]= { @@ -570,8 +571,8 @@ struct charset_info_st my_charset_bin = { 63,0,0, /* number */ MY_CS_COMPILED|MY_CS_BINSORT|MY_CS_PRIMARY|MY_CS_NOPAD,/* state */ - charset_name_binary, /* cs name */ - "binary", /* name */ + { charset_name_binary, charset_name_binary_length}, /* cs name */ + { STRING_WITH_LEN("binary")}, /* name */ "", /* comment */ NULL, /* tailoring */ ctype_bin, /* ctype */ diff --git a/strings/ctype-cp932.c b/strings/ctype-cp932.c index 28fea965bf3..859fd029744 100644 --- a/strings/ctype-cp932.c +++ b/strings/ctype-cp932.c @@ -23,6 +23,7 @@ #ifdef HAVE_CHARSET_cp932 const char charset_name_cp932[]= "cp932"; +#define charset_name_cp932_length (sizeof(charset_name_cp932)-1) /* * This comment is parsed by configure to create ctype.c, @@ -34765,8 +34766,8 @@ struct charset_info_st my_charset_cp932_japanese_ci= { 95,0,0, /* number */ MY_CS_COMPILED|MY_CS_PRIMARY|MY_CS_STRNXFRM, /* state */ - charset_name_cp932, /* cs name */ - "cp932_japanese_ci", /* name */ + { charset_name_cp932, charset_name_cp932_length }, /* cs name */ + { STRING_WITH_LEN("cp932_japanese_ci") }, /* name */ "", /* comment */ NULL, /* tailoring */ ctype_cp932, @@ -34797,8 +34798,8 @@ struct charset_info_st my_charset_cp932_bin= { 96,0,0, /* number */ MY_CS_COMPILED|MY_CS_BINSORT, /* state */ - charset_name_cp932, /* cs name */ - "cp932_bin", /* name */ + { charset_name_cp932, charset_name_cp932_length }, /* cs name */ + { STRING_WITH_LEN("cp932_bin") }, /* name */ "", /* comment */ NULL, /* tailoring */ ctype_cp932, @@ -34830,8 +34831,8 @@ 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 */ - charset_name_cp932, /* cs name */ - "cp932_japanese_nopad_ci",/* name */ + { charset_name_cp932, charset_name_cp932_length }, /* cs name */ + { STRING_WITH_LEN("cp932_japanese_nopad_ci") },/* name */ "", /* comment */ NULL, /* tailoring */ ctype_cp932, @@ -34862,8 +34863,8 @@ 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 */ - charset_name_cp932, /* cs name */ - "cp932_nopad_bin", /* name */ + { charset_name_cp932, charset_name_cp932_length }, /* cs name */ + { STRING_WITH_LEN("cp932_nopad_bin") }, /* name */ "", /* comment */ NULL, /* tailoring */ ctype_cp932, diff --git a/strings/ctype-czech.c b/strings/ctype-czech.c index b80fe1ae8ed..40baae67dd3 100644 --- a/strings/ctype-czech.c +++ b/strings/ctype-czech.c @@ -625,8 +625,8 @@ 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 */ - charset_name_latin2, /* cs name */ - "latin2_czech_cs", /* name */ + { charset_name_latin2, charset_name_latin2_length}, /* cs_name */ + { STRING_WITH_LEN("latin2_czech_cs")}, /* col_name */ "", /* comment */ NULL, /* tailoring */ ctype_czech, diff --git a/strings/ctype-euc_kr.c b/strings/ctype-euc_kr.c index 61c64dbcc18..e152862c0ef 100644 --- a/strings/ctype-euc_kr.c +++ b/strings/ctype-euc_kr.c @@ -32,6 +32,7 @@ #ifdef HAVE_CHARSET_euckr const char charset_name_euckr[]= "euckr"; +#define charset_name_euckr_length sizeof(charset_name_euckr)-1 static const uchar ctype_euc_kr[257] = { @@ -10055,8 +10056,8 @@ struct charset_info_st my_charset_euckr_korean_ci= { 19,0,0, /* number */ MY_CS_COMPILED|MY_CS_PRIMARY, /* state */ - charset_name_euckr, /* cs name */ - "euckr_korean_ci", /* name */ + { charset_name_euckr, charset_name_euckr_length }, /* cs name */ + { STRING_WITH_LEN("euckr_korean_ci") }, /* name */ "", /* comment */ NULL, /* tailoring */ ctype_euc_kr, @@ -10088,8 +10089,8 @@ struct charset_info_st my_charset_euckr_bin= { 85,0,0, /* number */ MY_CS_COMPILED|MY_CS_BINSORT, /* state */ - charset_name_euckr, /* cs name */ - "euckr_bin", /* name */ + { charset_name_euckr, charset_name_euckr_length }, /* cs name */ + { STRING_WITH_LEN("euckr_bin") }, /* name */ "", /* comment */ NULL, /* tailoring */ ctype_euc_kr, @@ -10121,8 +10122,8 @@ struct charset_info_st my_charset_euckr_korean_nopad_ci= { MY_NOPAD_ID(19),0,0,/* number */ MY_CS_COMPILED|MY_CS_NOPAD, /* state */ - charset_name_euckr, /* cs name */ - "euckr_korean_nopad_ci", /* name */ + { charset_name_euckr, charset_name_euckr_length }, /* cs name */ + { STRING_WITH_LEN("euckr_korean_nopad_ci") }, /* name */ "", /* comment */ NULL, /* tailoring */ ctype_euc_kr, @@ -10154,8 +10155,8 @@ 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 */ - charset_name_euckr, /* cs name */ - "euckr_nopad_bin", /* name */ + { charset_name_euckr, charset_name_euckr_length }, /* cs name */ + { STRING_WITH_LEN("euckr_nopad_bin") }, /* name */ "", /* comment */ NULL, /* tailoring */ ctype_euc_kr, diff --git a/strings/ctype-eucjpms.c b/strings/ctype-eucjpms.c index 2c24bc5ffda..4c365b4ff6a 100644 --- a/strings/ctype-eucjpms.c +++ b/strings/ctype-eucjpms.c @@ -34,7 +34,7 @@ ctype-ujis.c file. #ifdef HAVE_CHARSET_eucjpms const char charset_name_eucjpms[]= "eucjpms"; - +#define charset_name_eucjpms_length (sizeof(charset_name_eucjpms) - 1) static const uchar ctype_eucjpms[257] = { @@ -67595,8 +67595,8 @@ struct charset_info_st my_charset_eucjpms_japanese_ci= { 97,0,0, /* number */ MY_CS_COMPILED|MY_CS_PRIMARY, /* state */ - charset_name_eucjpms, /* cs name */ - "eucjpms_japanese_ci", /* name */ + { charset_name_eucjpms, charset_name_eucjpms_length }, /* csname */ + { STRING_WITH_LEN("eucjpms_japanese_ci") }, /* name */ "", /* comment */ NULL, /* tailoring */ ctype_eucjpms, @@ -67628,8 +67628,8 @@ struct charset_info_st my_charset_eucjpms_bin= { 98,0,0, /* number */ MY_CS_COMPILED|MY_CS_BINSORT, /* state */ - charset_name_eucjpms, /* cs name */ - "eucjpms_bin", /* name */ + { charset_name_eucjpms, charset_name_eucjpms_length }, /* csname */ + { STRING_WITH_LEN("eucjpms_bin") }, /* name */ "", /* comment */ NULL, /* tailoring */ ctype_eucjpms, @@ -67661,8 +67661,8 @@ struct charset_info_st my_charset_eucjpms_japanese_nopad_ci= { MY_NOPAD_ID(97),0,0, /* number */ MY_CS_COMPILED|MY_CS_NOPAD,/* state */ - charset_name_eucjpms, /* cs name */ - "eucjpms_japanese_nopad_ci", /* name */ + { charset_name_eucjpms, charset_name_eucjpms_length }, /* csname */ + { STRING_WITH_LEN("eucjpms_japanese_nopad_ci") }, /* name */ "", /* comment */ NULL, /* tailoring */ ctype_eucjpms, @@ -67694,8 +67694,8 @@ 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 */ - charset_name_eucjpms, /* cs name */ - "eucjpms_nopad_bin", /* name */ + { charset_name_eucjpms, charset_name_eucjpms_length }, /* csname */ + { STRING_WITH_LEN("eucjpms_nopad_bin") }, /* name */ "", /* comment */ NULL, /* tailoring */ ctype_eucjpms, diff --git a/strings/ctype-extra.c b/strings/ctype-extra.c index 6e241cae933..e6787b1130b 100644 --- a/strings/ctype-extra.c +++ b/strings/ctype-extra.c @@ -3678,8 +3678,8 @@ struct charset_info_st compiled_charsets[] = { { 3,0,0, MY_CS_COMPILED|MY_CS_PRIMARY, - "dec8", /* cset name */ - "dec8_swedish_ci", /* coll name */ + { STRING_WITH_LEN("dec8") }, /* cset name */ + { STRING_WITH_LEN("dec8_swedish_ci") }, /* coll name */ "", /* comment */ NULL, /* tailoring */ ctype_dec8_swedish_ci, /* ctype */ @@ -3711,8 +3711,8 @@ struct charset_info_st compiled_charsets[] = { { 4,0,0, MY_CS_COMPILED|MY_CS_PRIMARY, - "cp850", /* cset name */ - "cp850_general_ci", /* coll name */ + { STRING_WITH_LEN("cp850") }, /* cset name */ + { STRING_WITH_LEN("cp850_general_ci") }, /* coll name */ "", /* comment */ NULL, /* tailoring */ ctype_cp850_general_ci, /* ctype */ @@ -3744,9 +3744,9 @@ struct charset_info_st compiled_charsets[] = { { 5,0,0, MY_CS_COMPILED, - "latin1", /* cset name */ - "latin1_german1_ci", /* coll name */ - "", /* comment */ + { STRING_WITH_LEN("latin1") }, /* cset name */ + { STRING_WITH_LEN("latin1_german1_ci") }, /* coll name */ + "", /* comment */ NULL, /* tailoring */ ctype_latin1_german1_ci, /* ctype */ to_lower_latin1_german1_ci, /* to_lower */ @@ -3777,8 +3777,8 @@ struct charset_info_st compiled_charsets[] = { { 6,0,0, MY_CS_COMPILED|MY_CS_PRIMARY, - "hp8", /* cset name */ - "hp8_english_ci", /* coll name */ + { STRING_WITH_LEN("hp8") }, /* cset name */ + { STRING_WITH_LEN("hp8_english_ci") }, /* coll name */ "", /* comment */ NULL, /* tailoring */ ctype_hp8_english_ci, /* ctype */ @@ -3810,8 +3810,8 @@ struct charset_info_st compiled_charsets[] = { { 7,0,0, MY_CS_COMPILED|MY_CS_PRIMARY, - "koi8r", /* cset name */ - "koi8r_general_ci", /* coll name */ + { STRING_WITH_LEN("koi8r") }, /* cset name */ + { STRING_WITH_LEN("koi8r_general_ci") }, /* coll name */ "", /* comment */ NULL, /* tailoring */ ctype_koi8r_general_ci, /* ctype */ @@ -3843,8 +3843,8 @@ struct charset_info_st compiled_charsets[] = { { 9,0,0, MY_CS_COMPILED|MY_CS_PRIMARY, - "latin2", /* cset name */ - "latin2_general_ci", /* coll name */ + { STRING_WITH_LEN("latin2") }, /* cset name */ + { STRING_WITH_LEN("latin2_general_ci")}, /* coll name */ "", /* comment */ NULL, /* tailoring */ ctype_latin2_general_ci, /* ctype */ @@ -3876,8 +3876,8 @@ struct charset_info_st compiled_charsets[] = { { 10,0,0, MY_CS_COMPILED|MY_CS_PRIMARY|MY_CS_NONASCII, - "swe7", /* cset name */ - "swe7_swedish_ci", /* coll name */ + { STRING_WITH_LEN("swe7") }, /* cset name */ + { STRING_WITH_LEN("swe7_swedish_ci") }, /* coll name */ "", /* comment */ NULL, /* tailoring */ ctype_swe7_swedish_ci, /* ctype */ @@ -3909,8 +3909,8 @@ struct charset_info_st compiled_charsets[] = { { 11,0,0, MY_CS_COMPILED|MY_CS_PRIMARY|MY_CS_PUREASCII, - "ascii", /* cset name */ - "ascii_general_ci", /* coll name */ + { STRING_WITH_LEN("ascii") }, /* cset name */ + { STRING_WITH_LEN("ascii_general_ci") }, /* coll name */ "", /* comment */ NULL, /* tailoring */ ctype_ascii_general_ci, /* ctype */ @@ -3942,8 +3942,8 @@ struct charset_info_st compiled_charsets[] = { { 14,0,0, MY_CS_COMPILED, - "cp1251", /* cset name */ - "cp1251_bulgarian_ci", /* coll name */ + { STRING_WITH_LEN("cp1251") }, /* cset name */ + { STRING_WITH_LEN("cp1251_bulgarian_ci") }, /* coll name */ "", /* comment */ NULL, /* tailoring */ ctype_cp1251_general_ci, /* ctype */ @@ -3975,8 +3975,8 @@ struct charset_info_st compiled_charsets[] = { { 15,0,0, MY_CS_COMPILED, - "latin1", /* cset name */ - "latin1_danish_ci", /* coll name */ + { STRING_WITH_LEN("latin1") }, /* cset name */ + { STRING_WITH_LEN("latin1_danish_ci") }, /* coll name */ "", /* comment */ NULL, /* tailoring */ ctype_latin1_danish_ci, /* ctype */ @@ -4008,8 +4008,8 @@ struct charset_info_st compiled_charsets[] = { { 16,0,0, MY_CS_COMPILED|MY_CS_PRIMARY, - "hebrew", /* cset name */ - "hebrew_general_ci", /* coll name */ + { STRING_WITH_LEN("hebrew") }, /* cset name */ + { STRING_WITH_LEN("hebrew_general_ci") }, /* coll name */ "", /* comment */ NULL, /* tailoring */ ctype_hebrew_general_ci, /* ctype */ @@ -4041,8 +4041,8 @@ struct charset_info_st compiled_charsets[] = { { 20,0,0, MY_CS_COMPILED|MY_CS_CSSORT, - "latin7", /* cset name */ - "latin7_estonian_cs", /* coll name */ + { STRING_WITH_LEN("latin7") }, /* cset name */ + { STRING_WITH_LEN("latin7_estonian_cs") }, /* coll name */ "", /* comment */ NULL, /* tailoring */ ctype_latin7_general_ci, /* ctype */ @@ -4074,8 +4074,8 @@ struct charset_info_st compiled_charsets[] = { { 21,0,0, MY_CS_COMPILED, - "latin2", /* cset name */ - "latin2_hungarian_ci", /* coll name */ + { STRING_WITH_LEN("latin2") }, /* cset name */ + { STRING_WITH_LEN("latin2_hungarian_ci") }, /* coll name */ "", /* comment */ NULL, /* tailoring */ ctype_latin2_general_ci, /* ctype */ @@ -4107,8 +4107,8 @@ struct charset_info_st compiled_charsets[] = { { 22,0,0, MY_CS_COMPILED|MY_CS_PRIMARY, - "koi8u", /* cset name */ - "koi8u_general_ci", /* coll name */ + { STRING_WITH_LEN("koi8u") }, /* cset name */ + { STRING_WITH_LEN("koi8u_general_ci") }, /* coll name */ "", /* comment */ NULL, /* tailoring */ ctype_koi8u_general_ci, /* ctype */ @@ -4140,8 +4140,8 @@ struct charset_info_st compiled_charsets[] = { { 23,0,0, MY_CS_COMPILED, - "cp1251", /* cset name */ - "cp1251_ukrainian_ci", /* coll name */ + { STRING_WITH_LEN("cp1251") }, /* cset name */ + { STRING_WITH_LEN("cp1251_ukrainian_ci") }, /* coll name */ "", /* comment */ NULL, /* tailoring */ ctype_cp1251_general_ci, /* ctype */ @@ -4173,8 +4173,8 @@ struct charset_info_st compiled_charsets[] = { { 25,0,0, MY_CS_COMPILED|MY_CS_PRIMARY, - "greek", /* cset name */ - "greek_general_ci", /* coll name */ + { STRING_WITH_LEN("greek") }, /* cset name */ + { STRING_WITH_LEN("greek_general_ci") }, /* coll name */ "", /* comment */ NULL, /* tailoring */ ctype_greek_general_ci, /* ctype */ @@ -4206,8 +4206,8 @@ struct charset_info_st compiled_charsets[] = { { 26,0,0, MY_CS_COMPILED|MY_CS_PRIMARY, - "cp1250", /* cset name */ - "cp1250_general_ci", /* coll name */ + { STRING_WITH_LEN("cp1250") }, /* cset name */ + { STRING_WITH_LEN("cp1250_general_ci") }, /* coll name */ "", /* comment */ NULL, /* tailoring */ ctype_cp1250_general_ci, /* ctype */ @@ -4239,8 +4239,8 @@ struct charset_info_st compiled_charsets[] = { { 27,0,0, MY_CS_COMPILED, - "latin2", /* cset name */ - "latin2_croatian_ci", /* coll name */ + { STRING_WITH_LEN("latin2") }, /* cset name */ + { STRING_WITH_LEN("latin2_croatian_ci") }, /* coll name */ "", /* comment */ NULL, /* tailoring */ ctype_latin2_general_ci, /* ctype */ @@ -4272,8 +4272,8 @@ struct charset_info_st compiled_charsets[] = { { 29,0,0, MY_CS_COMPILED, - "cp1257", /* cset name */ - "cp1257_lithuanian_ci", /* coll name */ + { STRING_WITH_LEN("cp1257") }, /* cset name */ + { STRING_WITH_LEN("cp1257_lithuanian_ci") }, /* coll name */ "", /* comment */ NULL, /* tailoring */ ctype_cp1257_general_ci, /* ctype */ @@ -4305,8 +4305,8 @@ struct charset_info_st compiled_charsets[] = { { 30,0,0, MY_CS_COMPILED|MY_CS_PRIMARY, - "latin5", /* cset name */ - "latin5_turkish_ci", /* coll name */ + { STRING_WITH_LEN("latin5") }, /* cset name */ + { STRING_WITH_LEN("latin5_turkish_ci") }, /* coll name */ "", /* comment */ NULL, /* tailoring */ ctype_latin5_turkish_ci, /* ctype */ @@ -4338,8 +4338,8 @@ struct charset_info_st compiled_charsets[] = { { 32,0,0, MY_CS_COMPILED|MY_CS_PRIMARY, - "armscii8", /* cset name */ - "armscii8_general_ci", /* coll name */ + { STRING_WITH_LEN("armscii8") }, /* cset name */ + { STRING_WITH_LEN("armscii8_general_ci") }, /* coll name */ "", /* comment */ NULL, /* tailoring */ ctype_armscii8_general_ci, /* ctype */ @@ -4371,8 +4371,8 @@ struct charset_info_st compiled_charsets[] = { { 36,0,0, MY_CS_COMPILED|MY_CS_PRIMARY, - "cp866", /* cset name */ - "cp866_general_ci", /* coll name */ + { STRING_WITH_LEN("cp866") }, /* cset name */ + { STRING_WITH_LEN("cp866_general_ci") }, /* coll name */ "", /* comment */ NULL, /* tailoring */ ctype_cp866_general_ci, /* ctype */ @@ -4404,8 +4404,8 @@ struct charset_info_st compiled_charsets[] = { { 37,0,0, MY_CS_COMPILED|MY_CS_PRIMARY, - "keybcs2", /* cset name */ - "keybcs2_general_ci", /* coll name */ + { STRING_WITH_LEN("keybcs2") }, /* cset name */ + { STRING_WITH_LEN("keybcs2_general_ci") }, /* coll name */ "", /* comment */ NULL, /* tailoring */ ctype_keybcs2_general_ci, /* ctype */ @@ -4437,8 +4437,8 @@ struct charset_info_st compiled_charsets[] = { { 38,0,0, MY_CS_COMPILED|MY_CS_PRIMARY, - "macce", /* cset name */ - "macce_general_ci", /* coll name */ + { STRING_WITH_LEN("macce") }, /* cset name */ + { STRING_WITH_LEN("macce_general_ci") }, /* coll name */ "", /* comment */ NULL, /* tailoring */ ctype_macce_general_ci, /* ctype */ @@ -4470,8 +4470,8 @@ struct charset_info_st compiled_charsets[] = { { 39,0,0, MY_CS_COMPILED|MY_CS_PRIMARY, - "macroman", /* cset name */ - "macroman_general_ci", /* coll name */ + { STRING_WITH_LEN("macroman") }, /* cset name */ + { STRING_WITH_LEN("macroman_general_ci") }, /* coll name */ "", /* comment */ NULL, /* tailoring */ ctype_macroman_general_ci, /* ctype */ @@ -4503,8 +4503,8 @@ struct charset_info_st compiled_charsets[] = { { 40,0,0, MY_CS_COMPILED|MY_CS_PRIMARY, - "cp852", /* cset name */ - "cp852_general_ci", /* coll name */ + { STRING_WITH_LEN("cp852") }, /* cset name */ + { STRING_WITH_LEN("cp852_general_ci") }, /* coll name */ "", /* comment */ NULL, /* tailoring */ ctype_cp852_general_ci, /* ctype */ @@ -4536,8 +4536,8 @@ struct charset_info_st compiled_charsets[] = { { 41,0,0, MY_CS_COMPILED|MY_CS_PRIMARY, - "latin7", /* cset name */ - "latin7_general_ci", /* coll name */ + { STRING_WITH_LEN("latin7") }, /* cset name */ + { STRING_WITH_LEN("latin7_general_ci") }, /* coll name */ "", /* comment */ NULL, /* tailoring */ ctype_latin7_general_ci, /* ctype */ @@ -4569,8 +4569,8 @@ struct charset_info_st compiled_charsets[] = { { 42,0,0, MY_CS_COMPILED|MY_CS_CSSORT, - "latin7", /* cset name */ - "latin7_general_cs", /* coll name */ + { STRING_WITH_LEN("latin7") }, /* cset name */ + { STRING_WITH_LEN("latin7_general_cs") }, /* coll name */ "", /* comment */ NULL, /* tailoring */ ctype_latin7_general_ci, /* ctype */ @@ -4602,8 +4602,8 @@ struct charset_info_st compiled_charsets[] = { { 43,0,0, MY_CS_COMPILED|MY_CS_BINSORT, - "macce", /* cset name */ - "macce_bin", /* coll name */ + { STRING_WITH_LEN("macce") }, /* cset name */ + { STRING_WITH_LEN("macce_bin") }, /* coll name */ "", /* comment */ NULL, /* tailoring */ ctype_macce_general_ci, /* ctype */ @@ -4635,8 +4635,8 @@ struct charset_info_st compiled_charsets[] = { { 44,0,0, MY_CS_COMPILED, - "cp1250", /* cset name */ - "cp1250_croatian_ci", /* coll name */ + { STRING_WITH_LEN("cp1250") }, /* cset name */ + { STRING_WITH_LEN("cp1250_croatian_ci") }, /* coll name */ "", /* comment */ NULL, /* tailoring */ ctype_cp1250_general_ci, /* ctype */ @@ -4668,8 +4668,8 @@ struct charset_info_st compiled_charsets[] = { { 48,0,0, MY_CS_COMPILED, - "latin1", /* cset name */ - "latin1_general_ci", /* coll name */ + { STRING_WITH_LEN("latin1") }, /* cset name */ + { STRING_WITH_LEN("latin1_general_ci") }, /* coll name */ "", /* comment */ NULL, /* tailoring */ ctype_latin1_general_ci, /* ctype */ @@ -4701,8 +4701,8 @@ struct charset_info_st compiled_charsets[] = { { 49,0,0, MY_CS_COMPILED|MY_CS_CSSORT, - "latin1", /* cset name */ - "latin1_general_cs", /* coll name */ + { STRING_WITH_LEN("latin1") }, /* cset name */ + { STRING_WITH_LEN("latin1_general_cs") }, /* coll name */ "", /* comment */ NULL, /* tailoring */ ctype_latin1_general_cs, /* ctype */ @@ -4734,8 +4734,8 @@ struct charset_info_st compiled_charsets[] = { { 50,0,0, MY_CS_COMPILED|MY_CS_BINSORT, - "cp1251", /* cset name */ - "cp1251_bin", /* coll name */ + { STRING_WITH_LEN("cp1251") }, /* cset name */ + { STRING_WITH_LEN("cp1251_bin") }, /* coll name */ "", /* comment */ NULL, /* tailoring */ ctype_cp1251_general_ci, /* ctype */ @@ -4767,8 +4767,8 @@ struct charset_info_st compiled_charsets[] = { { 51,0,0, MY_CS_COMPILED|MY_CS_PRIMARY, - "cp1251", /* cset name */ - "cp1251_general_ci", /* coll name */ + { STRING_WITH_LEN("cp1251") }, /* cset name */ + { STRING_WITH_LEN("cp1251_general_ci") }, /* coll name */ "", /* comment */ NULL, /* tailoring */ ctype_cp1251_general_ci, /* ctype */ @@ -4800,8 +4800,8 @@ struct charset_info_st compiled_charsets[] = { { 52,0,0, MY_CS_COMPILED|MY_CS_CSSORT, - "cp1251", /* cset name */ - "cp1251_general_cs", /* coll name */ + { STRING_WITH_LEN("cp1251") }, /* cset name */ + { STRING_WITH_LEN("cp1251_general_cs") }, /* coll name */ "", /* comment */ NULL, /* tailoring */ ctype_cp1251_general_ci, /* ctype */ @@ -4833,8 +4833,8 @@ struct charset_info_st compiled_charsets[] = { { 53,0,0, MY_CS_COMPILED|MY_CS_BINSORT, - "macroman", /* cset name */ - "macroman_bin", /* coll name */ + { STRING_WITH_LEN("macroman") }, /* cset name */ + { STRING_WITH_LEN("macroman_bin") }, /* coll name */ "", /* comment */ NULL, /* tailoring */ ctype_macroman_general_ci, /* ctype */ @@ -4866,8 +4866,8 @@ struct charset_info_st compiled_charsets[] = { { 57,0,0, MY_CS_COMPILED|MY_CS_PRIMARY, - "cp1256", /* cset name */ - "cp1256_general_ci", /* coll name */ + { STRING_WITH_LEN("cp1256") }, /* cset name */ + { STRING_WITH_LEN("cp1256_general_ci") }, /* coll name */ "", /* comment */ NULL, /* tailoring */ ctype_cp1256_general_ci, /* ctype */ @@ -4899,8 +4899,8 @@ struct charset_info_st compiled_charsets[] = { { 58,0,0, MY_CS_COMPILED|MY_CS_BINSORT, - "cp1257", /* cset name */ - "cp1257_bin", /* coll name */ + { STRING_WITH_LEN("cp1257") }, /* cset name */ + { STRING_WITH_LEN("cp1257_bin") }, /* coll name */ "", /* comment */ NULL, /* tailoring */ ctype_cp1257_general_ci, /* ctype */ @@ -4932,8 +4932,8 @@ struct charset_info_st compiled_charsets[] = { { 59,0,0, MY_CS_COMPILED|MY_CS_PRIMARY, - "cp1257", /* cset name */ - "cp1257_general_ci", /* coll name */ + { STRING_WITH_LEN("cp1257") }, /* cset name */ + { STRING_WITH_LEN("cp1257_general_ci") }, /* coll name */ "", /* comment */ NULL, /* tailoring */ ctype_cp1257_general_ci, /* ctype */ @@ -4965,8 +4965,8 @@ struct charset_info_st compiled_charsets[] = { { 64,0,0, MY_CS_COMPILED|MY_CS_BINSORT, - "armscii8", /* cset name */ - "armscii8_bin", /* coll name */ + { STRING_WITH_LEN("armscii8") }, /* cset name */ + { STRING_WITH_LEN("armscii8_bin") }, /* coll name */ "", /* comment */ NULL, /* tailoring */ ctype_armscii8_general_ci, /* ctype */ @@ -4998,8 +4998,8 @@ struct charset_info_st compiled_charsets[] = { { 65,0,0, MY_CS_COMPILED|MY_CS_BINSORT|MY_CS_PUREASCII, - "ascii", /* cset name */ - "ascii_bin", /* coll name */ + { STRING_WITH_LEN("ascii") }, /* cset name */ + { STRING_WITH_LEN("ascii_bin") }, /* coll name */ "", /* comment */ NULL, /* tailoring */ ctype_ascii_general_ci, /* ctype */ @@ -5031,8 +5031,8 @@ struct charset_info_st compiled_charsets[] = { { 66,0,0, MY_CS_COMPILED|MY_CS_BINSORT, - "cp1250", /* cset name */ - "cp1250_bin", /* coll name */ + { STRING_WITH_LEN("cp1250") }, /* cset name */ + { STRING_WITH_LEN("cp1250_bin") }, /* coll name */ "", /* comment */ NULL, /* tailoring */ ctype_cp1250_general_ci, /* ctype */ @@ -5064,8 +5064,8 @@ struct charset_info_st compiled_charsets[] = { { 67,0,0, MY_CS_COMPILED|MY_CS_BINSORT, - "cp1256", /* cset name */ - "cp1256_bin", /* coll name */ + { STRING_WITH_LEN("cp1256") }, /* cset name */ + { STRING_WITH_LEN("cp1256_bin") }, /* coll name */ "", /* comment */ NULL, /* tailoring */ ctype_cp1256_general_ci, /* ctype */ @@ -5097,8 +5097,8 @@ struct charset_info_st compiled_charsets[] = { { 68,0,0, MY_CS_COMPILED|MY_CS_BINSORT, - "cp866", /* cset name */ - "cp866_bin", /* coll name */ + { STRING_WITH_LEN("cp866") }, /* cset name */ + { STRING_WITH_LEN("cp866_bin") }, /* coll name */ "", /* comment */ NULL, /* tailoring */ ctype_cp866_general_ci, /* ctype */ @@ -5130,8 +5130,8 @@ struct charset_info_st compiled_charsets[] = { { 69,0,0, MY_CS_COMPILED|MY_CS_BINSORT, - "dec8", /* cset name */ - "dec8_bin", /* coll name */ + { STRING_WITH_LEN("dec8") }, /* cset name */ + { STRING_WITH_LEN("dec8_bin") }, /* coll name */ "", /* comment */ NULL, /* tailoring */ ctype_dec8_swedish_ci, /* ctype */ @@ -5163,8 +5163,8 @@ struct charset_info_st compiled_charsets[] = { { 70,0,0, MY_CS_COMPILED|MY_CS_BINSORT, - "greek", /* cset name */ - "greek_bin", /* coll name */ + { STRING_WITH_LEN("greek") }, /* cset name */ + { STRING_WITH_LEN("greek_bin") }, /* coll name */ "", /* comment */ NULL, /* tailoring */ ctype_greek_general_ci, /* ctype */ @@ -5196,8 +5196,8 @@ struct charset_info_st compiled_charsets[] = { { 71,0,0, MY_CS_COMPILED|MY_CS_BINSORT, - "hebrew", /* cset name */ - "hebrew_bin", /* coll name */ + { STRING_WITH_LEN("hebrew") }, /* cset name */ + { STRING_WITH_LEN("hebrew_bin") }, /* coll name */ "", /* comment */ NULL, /* tailoring */ ctype_hebrew_general_ci, /* ctype */ @@ -5229,8 +5229,8 @@ struct charset_info_st compiled_charsets[] = { { 72,0,0, MY_CS_COMPILED|MY_CS_BINSORT, - "hp8", /* cset name */ - "hp8_bin", /* coll name */ + { STRING_WITH_LEN("hp8") }, /* cset name */ + { STRING_WITH_LEN("hp8_bin") }, /* coll name */ "", /* comment */ NULL, /* tailoring */ ctype_hp8_english_ci, /* ctype */ @@ -5262,8 +5262,8 @@ struct charset_info_st compiled_charsets[] = { { 73,0,0, MY_CS_COMPILED|MY_CS_BINSORT, - "keybcs2", /* cset name */ - "keybcs2_bin", /* coll name */ + { STRING_WITH_LEN("keybcs2") }, /* cset name */ + { STRING_WITH_LEN("keybcs2_bin") }, /* coll name */ "", /* comment */ NULL, /* tailoring */ ctype_keybcs2_general_ci, /* ctype */ @@ -5295,8 +5295,8 @@ struct charset_info_st compiled_charsets[] = { { 74,0,0, MY_CS_COMPILED|MY_CS_BINSORT, - "koi8r", /* cset name */ - "koi8r_bin", /* coll name */ + { STRING_WITH_LEN("koi8r") }, /* cset name */ + { STRING_WITH_LEN("koi8r_bin") }, /* coll name */ "", /* comment */ NULL, /* tailoring */ ctype_koi8r_general_ci, /* ctype */ @@ -5328,8 +5328,8 @@ struct charset_info_st compiled_charsets[] = { { 75,0,0, MY_CS_COMPILED|MY_CS_BINSORT, - "koi8u", /* cset name */ - "koi8u_bin", /* coll name */ + { STRING_WITH_LEN("koi8u") }, /* cset name */ + { STRING_WITH_LEN("koi8u_bin") }, /* coll name */ "", /* comment */ NULL, /* tailoring */ ctype_koi8u_general_ci, /* ctype */ @@ -5361,8 +5361,8 @@ struct charset_info_st compiled_charsets[] = { { 77,0,0, MY_CS_COMPILED|MY_CS_BINSORT, - "latin2", /* cset name */ - "latin2_bin", /* coll name */ + { STRING_WITH_LEN("latin2") }, /* cset name */ + { STRING_WITH_LEN("latin2_bin") }, /* coll name */ "", /* comment */ NULL, /* tailoring */ ctype_latin2_general_ci, /* ctype */ @@ -5394,8 +5394,8 @@ struct charset_info_st compiled_charsets[] = { { 78,0,0, MY_CS_COMPILED|MY_CS_BINSORT, - "latin5", /* cset name */ - "latin5_bin", /* coll name */ + { STRING_WITH_LEN("latin5") }, /* cset name */ + { STRING_WITH_LEN("latin5_bin") }, /* coll name */ "", /* comment */ NULL, /* tailoring */ ctype_latin5_turkish_ci, /* ctype */ @@ -5427,8 +5427,8 @@ struct charset_info_st compiled_charsets[] = { { 79,0,0, MY_CS_COMPILED|MY_CS_BINSORT, - "latin7", /* cset name */ - "latin7_bin", /* coll name */ + { STRING_WITH_LEN("latin7") }, /* cset name */ + { STRING_WITH_LEN("latin7_bin") }, /* coll name */ "", /* comment */ NULL, /* tailoring */ ctype_latin7_general_ci, /* ctype */ @@ -5460,8 +5460,8 @@ struct charset_info_st compiled_charsets[] = { { 80,0,0, MY_CS_COMPILED|MY_CS_BINSORT, - "cp850", /* cset name */ - "cp850_bin", /* coll name */ + { STRING_WITH_LEN("cp850") }, /* cset name */ + { STRING_WITH_LEN("cp850_bin") }, /* coll name */ "", /* comment */ NULL, /* tailoring */ ctype_cp850_general_ci, /* ctype */ @@ -5493,8 +5493,8 @@ struct charset_info_st compiled_charsets[] = { { 81,0,0, MY_CS_COMPILED|MY_CS_BINSORT, - "cp852", /* cset name */ - "cp852_bin", /* coll name */ + { STRING_WITH_LEN("cp852") }, /* cset name */ + { STRING_WITH_LEN("cp852_bin") }, /* coll name */ "", /* comment */ NULL, /* tailoring */ ctype_cp852_general_ci, /* ctype */ @@ -5526,8 +5526,8 @@ struct charset_info_st compiled_charsets[] = { { 82,0,0, MY_CS_COMPILED|MY_CS_BINSORT|MY_CS_NONASCII, - "swe7", /* cset name */ - "swe7_bin", /* coll name */ + { STRING_WITH_LEN("swe7") }, /* cset name */ + { STRING_WITH_LEN("swe7_bin") }, /* coll name */ "", /* comment */ NULL, /* tailoring */ ctype_swe7_swedish_ci, /* ctype */ @@ -5559,8 +5559,8 @@ struct charset_info_st compiled_charsets[] = { { 92,0,0, MY_CS_COMPILED|MY_CS_PRIMARY, - "geostd8", /* cset name */ - "geostd8_general_ci", /* coll name */ + { STRING_WITH_LEN("geostd8") }, /* cset name */ + { STRING_WITH_LEN("geostd8_general_ci") }, /* coll name */ "", /* comment */ NULL, /* tailoring */ ctype_geostd8_general_ci, /* ctype */ @@ -5592,8 +5592,8 @@ struct charset_info_st compiled_charsets[] = { { 93,0,0, MY_CS_COMPILED|MY_CS_BINSORT, - "geostd8", /* cset name */ - "geostd8_bin", /* coll name */ + { STRING_WITH_LEN("geostd8") }, /* cset name */ + { STRING_WITH_LEN("geostd8_bin") }, /* coll name */ "", /* comment */ NULL, /* tailoring */ ctype_geostd8_general_ci, /* ctype */ @@ -5625,8 +5625,8 @@ struct charset_info_st compiled_charsets[] = { { 94,0,0, MY_CS_COMPILED, - "latin1", /* cset name */ - "latin1_spanish_ci", /* coll name */ + { STRING_WITH_LEN("latin1") }, /* cset name */ + { STRING_WITH_LEN("latin1_spanish_ci") }, /* coll name */ "", /* comment */ NULL, /* tailoring */ ctype_latin1_spanish_ci, /* ctype */ @@ -5658,8 +5658,8 @@ struct charset_info_st compiled_charsets[] = { { 99,0,0, MY_CS_COMPILED, - "cp1250", /* cset name */ - "cp1250_polish_ci", /* coll name */ + { STRING_WITH_LEN("cp1250") }, /* cset name */ + { STRING_WITH_LEN("cp1250_polish_ci") }, /* coll name */ "", /* comment */ NULL, /* tailoring */ ctype_cp1250_general_ci, /* ctype */ @@ -5691,8 +5691,8 @@ struct charset_info_st compiled_charsets[] = { { 1027,0,0, MY_CS_COMPILED|MY_CS_NOPAD, - "dec8", /* cset name */ - "dec8_swedish_nopad_ci", /* coll name */ + { STRING_WITH_LEN("dec8") }, /* cset name */ + { STRING_WITH_LEN("dec8_swedish_nopad_ci") }, /* coll name */ "", /* comment */ "[import dec8_swedish_ci]", /* tailoring */ ctype_dec8_swedish_ci, /* ctype */ @@ -5724,8 +5724,8 @@ struct charset_info_st compiled_charsets[] = { { 1028,0,0, MY_CS_COMPILED|MY_CS_NOPAD, - "cp850", /* cset name */ - "cp850_general_nopad_ci", /* coll name */ + { STRING_WITH_LEN("cp850") }, /* cset name */ + { STRING_WITH_LEN("cp850_general_nopad_ci") }, /* coll name */ "", /* comment */ "[import cp850_general_ci]", /* tailoring */ ctype_cp850_general_ci, /* ctype */ @@ -5757,8 +5757,8 @@ struct charset_info_st compiled_charsets[] = { { 1030,0,0, MY_CS_COMPILED|MY_CS_NOPAD, - "hp8", /* cset name */ - "hp8_english_nopad_ci", /* coll name */ + { STRING_WITH_LEN("hp8") }, /* cset name */ + { STRING_WITH_LEN("hp8_english_nopad_ci") }, /* coll name */ "", /* comment */ "[import hp8_english_ci]", /* tailoring */ ctype_hp8_english_ci, /* ctype */ @@ -5790,8 +5790,8 @@ struct charset_info_st compiled_charsets[] = { { 1031,0,0, MY_CS_COMPILED|MY_CS_NOPAD, - "koi8r", /* cset name */ - "koi8r_general_nopad_ci", /* coll name */ + { STRING_WITH_LEN("koi8r") }, /* cset name */ + { STRING_WITH_LEN("koi8r_general_nopad_ci") }, /* coll name */ "", /* comment */ "[import koi8r_general_ci]", /* tailoring */ ctype_koi8r_general_ci, /* ctype */ @@ -5823,8 +5823,8 @@ struct charset_info_st compiled_charsets[] = { { 1033,0,0, MY_CS_COMPILED|MY_CS_NOPAD, - "latin2", /* cset name */ - "latin2_general_nopad_ci", /* coll name */ + { STRING_WITH_LEN("latin2") }, /* cset name */ + { STRING_WITH_LEN("latin2_general_nopad_ci") }, /* coll name */ "", /* comment */ "[import latin2_general_ci]", /* tailoring */ ctype_latin2_general_ci, /* ctype */ @@ -5856,8 +5856,8 @@ struct charset_info_st compiled_charsets[] = { { 1034,0,0, MY_CS_COMPILED|MY_CS_NONASCII|MY_CS_NOPAD, - "swe7", /* cset name */ - "swe7_swedish_nopad_ci", /* coll name */ + { STRING_WITH_LEN("swe7") }, /* cset name */ + { STRING_WITH_LEN("swe7_swedish_nopad_ci") }, /* coll name */ "", /* comment */ "[import swe7_swedish_ci]", /* tailoring */ ctype_swe7_swedish_ci, /* ctype */ @@ -5889,8 +5889,8 @@ struct charset_info_st compiled_charsets[] = { { 1035,0,0, MY_CS_COMPILED|MY_CS_PUREASCII|MY_CS_NOPAD, - "ascii", /* cset name */ - "ascii_general_nopad_ci", /* coll name */ + { STRING_WITH_LEN("ascii") }, /* cset name */ + { STRING_WITH_LEN("ascii_general_nopad_ci") }, /* coll name */ "", /* comment */ "[import ascii_general_ci]", /* tailoring */ ctype_ascii_general_ci, /* ctype */ @@ -5922,8 +5922,8 @@ struct charset_info_st compiled_charsets[] = { { 1040,0,0, MY_CS_COMPILED|MY_CS_NOPAD, - "hebrew", /* cset name */ - "hebrew_general_nopad_ci", /* coll name */ + { STRING_WITH_LEN("hebrew") }, /* cset name */ + { STRING_WITH_LEN("hebrew_general_nopad_ci") }, /* coll name */ "", /* comment */ "[import hebrew_general_ci]", /* tailoring */ ctype_hebrew_general_ci, /* ctype */ @@ -5955,8 +5955,8 @@ struct charset_info_st compiled_charsets[] = { { 1046,0,0, MY_CS_COMPILED|MY_CS_NOPAD, - "koi8u", /* cset name */ - "koi8u_general_nopad_ci", /* coll name */ + { STRING_WITH_LEN("koi8u") }, /* cset name */ + { STRING_WITH_LEN("koi8u_general_nopad_ci") }, /* coll name */ "", /* comment */ "[import koi8u_general_ci]", /* tailoring */ ctype_koi8u_general_ci, /* ctype */ @@ -5988,8 +5988,8 @@ struct charset_info_st compiled_charsets[] = { { 1049,0,0, MY_CS_COMPILED|MY_CS_NOPAD, - "greek", /* cset name */ - "greek_general_nopad_ci", /* coll name */ + { STRING_WITH_LEN("greek") }, /* cset name */ + { STRING_WITH_LEN("greek_general_nopad_ci") }, /* coll name */ "", /* comment */ "[import greek_general_ci]", /* tailoring */ ctype_greek_general_ci, /* ctype */ @@ -6021,8 +6021,8 @@ struct charset_info_st compiled_charsets[] = { { 1050,0,0, MY_CS_COMPILED|MY_CS_NOPAD, - "cp1250", /* cset name */ - "cp1250_general_nopad_ci", /* coll name */ + { STRING_WITH_LEN("cp1250") }, /* cset name */ + { STRING_WITH_LEN("cp1250_general_nopad_ci") }, /* coll name */ "", /* comment */ "[import cp1250_general_ci]", /* tailoring */ ctype_cp1250_general_ci, /* ctype */ @@ -6054,8 +6054,8 @@ struct charset_info_st compiled_charsets[] = { { 1054,0,0, MY_CS_COMPILED|MY_CS_NOPAD, - "latin5", /* cset name */ - "latin5_turkish_nopad_ci", /* coll name */ + { STRING_WITH_LEN("latin5") }, /* cset name */ + { STRING_WITH_LEN("latin5_turkish_nopad_ci") }, /* coll name */ "", /* comment */ "[import latin5_turkish_ci]", /* tailoring */ ctype_latin5_turkish_ci, /* ctype */ @@ -6087,8 +6087,8 @@ struct charset_info_st compiled_charsets[] = { { 1056,0,0, MY_CS_COMPILED|MY_CS_NOPAD, - "armscii8", /* cset name */ - "armscii8_general_nopad_ci", /* coll name */ + { STRING_WITH_LEN("armscii8") }, /* cset name */ + { STRING_WITH_LEN("armscii8_general_nopad_ci") }, /* coll name */ "", /* comment */ "[import armscii8_general_ci]", /* tailoring */ ctype_armscii8_general_ci, /* ctype */ @@ -6120,8 +6120,8 @@ struct charset_info_st compiled_charsets[] = { { 1060,0,0, MY_CS_COMPILED|MY_CS_NOPAD, - "cp866", /* cset name */ - "cp866_general_nopad_ci", /* coll name */ + { STRING_WITH_LEN("cp866") }, /* cset name */ + { STRING_WITH_LEN("cp866_general_nopad_ci") }, /* coll name */ "", /* comment */ "[import cp866_general_ci]", /* tailoring */ ctype_cp866_general_ci, /* ctype */ @@ -6153,8 +6153,8 @@ struct charset_info_st compiled_charsets[] = { { 1061,0,0, MY_CS_COMPILED|MY_CS_NOPAD, - "keybcs2", /* cset name */ - "keybcs2_general_nopad_ci", /* coll name */ + { STRING_WITH_LEN("keybcs2") }, /* cset name */ + { STRING_WITH_LEN("keybcs2_general_nopad_ci") }, /* coll name */ "", /* comment */ "[import keybcs2_general_ci]", /* tailoring */ ctype_keybcs2_general_ci, /* ctype */ @@ -6186,8 +6186,8 @@ struct charset_info_st compiled_charsets[] = { { 1062,0,0, MY_CS_COMPILED|MY_CS_NOPAD, - "macce", /* cset name */ - "macce_general_nopad_ci", /* coll name */ + { STRING_WITH_LEN("macce") }, /* cset name */ + { STRING_WITH_LEN("macce_general_nopad_ci") }, /* coll name */ "", /* comment */ "[import macce_general_ci]", /* tailoring */ ctype_macce_general_ci, /* ctype */ @@ -6219,8 +6219,8 @@ struct charset_info_st compiled_charsets[] = { { 1063,0,0, MY_CS_COMPILED|MY_CS_NOPAD, - "macroman", /* cset name */ - "macroman_general_nopad_ci", /* coll name */ + { STRING_WITH_LEN("macroman") }, /* cset name */ + { STRING_WITH_LEN("macroman_general_nopad_ci") }, /* coll name */ "", /* comment */ "[import macroman_general_ci]", /* tailoring */ ctype_macroman_general_ci, /* ctype */ @@ -6252,8 +6252,8 @@ struct charset_info_st compiled_charsets[] = { { 1064,0,0, MY_CS_COMPILED|MY_CS_NOPAD, - "cp852", /* cset name */ - "cp852_general_nopad_ci", /* coll name */ + { STRING_WITH_LEN("cp852") }, /* cset name */ + { STRING_WITH_LEN("cp852_general_nopad_ci") }, /* coll name */ "", /* comment */ "[import cp852_general_ci]", /* tailoring */ ctype_cp852_general_ci, /* ctype */ @@ -6285,8 +6285,8 @@ struct charset_info_st compiled_charsets[] = { { 1065,0,0, MY_CS_COMPILED|MY_CS_NOPAD, - "latin7", /* cset name */ - "latin7_general_nopad_ci", /* coll name */ + { STRING_WITH_LEN("latin7") }, /* cset name */ + { STRING_WITH_LEN("latin7_general_nopad_ci") }, /* coll name */ "", /* comment */ "[import latin7_general_ci]", /* tailoring */ ctype_latin7_general_ci, /* ctype */ @@ -6318,8 +6318,8 @@ struct charset_info_st compiled_charsets[] = { { 1067,0,0, MY_CS_COMPILED|MY_CS_BINSORT|MY_CS_NOPAD, - "macce", /* cset name */ - "macce_nopad_bin", /* coll name */ + { STRING_WITH_LEN("macce") }, /* cset name */ + { STRING_WITH_LEN("macce_nopad_bin") }, /* coll name */ "", /* comment */ NULL, /* tailoring */ ctype_macce_general_ci, /* ctype */ @@ -6351,8 +6351,8 @@ struct charset_info_st compiled_charsets[] = { { 1074,0,0, MY_CS_COMPILED|MY_CS_BINSORT|MY_CS_NOPAD, - "cp1251", /* cset name */ - "cp1251_nopad_bin", /* coll name */ + { STRING_WITH_LEN("cp1251") }, /* cset name */ + { STRING_WITH_LEN("cp1251_nopad_bin") }, /* coll name */ "", /* comment */ NULL, /* tailoring */ ctype_cp1251_general_ci, /* ctype */ @@ -6384,8 +6384,8 @@ struct charset_info_st compiled_charsets[] = { { 1075,0,0, MY_CS_COMPILED|MY_CS_NOPAD, - "cp1251", /* cset name */ - "cp1251_general_nopad_ci", /* coll name */ + { STRING_WITH_LEN("cp1251") }, /* cset name */ + { STRING_WITH_LEN("cp1251_general_nopad_ci") }, /* coll name */ "", /* comment */ "[import cp1251_general_ci]", /* tailoring */ ctype_cp1251_general_ci, /* ctype */ @@ -6417,8 +6417,8 @@ struct charset_info_st compiled_charsets[] = { { 1077,0,0, MY_CS_COMPILED|MY_CS_BINSORT|MY_CS_NOPAD, - "macroman", /* cset name */ - "macroman_nopad_bin", /* coll name */ + { STRING_WITH_LEN("macroman") }, /* cset name */ + { STRING_WITH_LEN("macroman_nopad_bin") }, /* coll name */ "", /* comment */ NULL, /* tailoring */ ctype_macroman_general_ci, /* ctype */ @@ -6450,8 +6450,8 @@ struct charset_info_st compiled_charsets[] = { { 1081,0,0, MY_CS_COMPILED|MY_CS_NOPAD, - "cp1256", /* cset name */ - "cp1256_general_nopad_ci", /* coll name */ + { STRING_WITH_LEN("cp1256") }, /* cset name */ + { STRING_WITH_LEN("cp1256_general_nopad_ci") }, /* coll name */ "", /* comment */ "[import cp1256_general_ci]", /* tailoring */ ctype_cp1256_general_ci, /* ctype */ @@ -6483,8 +6483,8 @@ struct charset_info_st compiled_charsets[] = { { 1082,0,0, MY_CS_COMPILED|MY_CS_BINSORT|MY_CS_NOPAD, - "cp1257", /* cset name */ - "cp1257_nopad_bin", /* coll name */ + { STRING_WITH_LEN("cp1257") }, /* cset name */ + { STRING_WITH_LEN("cp1257_nopad_bin") }, /* coll name */ "", /* comment */ NULL, /* tailoring */ ctype_cp1257_general_ci, /* ctype */ @@ -6516,8 +6516,8 @@ struct charset_info_st compiled_charsets[] = { { 1083,0,0, MY_CS_COMPILED|MY_CS_NOPAD, - "cp1257", /* cset name */ - "cp1257_general_nopad_ci", /* coll name */ + { STRING_WITH_LEN("cp1257") }, /* cset name */ + { STRING_WITH_LEN("cp1257_general_nopad_ci") }, /* coll name */ "", /* comment */ "[import cp1257_general_ci]", /* tailoring */ ctype_cp1257_general_ci, /* ctype */ @@ -6549,8 +6549,8 @@ struct charset_info_st compiled_charsets[] = { { 1088,0,0, MY_CS_COMPILED|MY_CS_BINSORT|MY_CS_NOPAD, - "armscii8", /* cset name */ - "armscii8_nopad_bin", /* coll name */ + { STRING_WITH_LEN("armscii8") }, /* cset name */ + { STRING_WITH_LEN("armscii8_nopad_bin") }, /* coll name */ "", /* comment */ NULL, /* tailoring */ ctype_armscii8_general_ci, /* ctype */ @@ -6582,8 +6582,8 @@ struct charset_info_st compiled_charsets[] = { { 1089,0,0, MY_CS_COMPILED|MY_CS_BINSORT|MY_CS_PUREASCII|MY_CS_NOPAD, - "ascii", /* cset name */ - "ascii_nopad_bin", /* coll name */ + { STRING_WITH_LEN("ascii") }, /* cset name */ + { STRING_WITH_LEN("ascii_nopad_bin") }, /* coll name */ "", /* comment */ NULL, /* tailoring */ ctype_ascii_general_ci, /* ctype */ @@ -6615,8 +6615,8 @@ struct charset_info_st compiled_charsets[] = { { 1090,0,0, MY_CS_COMPILED|MY_CS_BINSORT|MY_CS_NOPAD, - "cp1250", /* cset name */ - "cp1250_nopad_bin", /* coll name */ + { STRING_WITH_LEN("cp1250") }, /* cset name */ + { STRING_WITH_LEN("cp1250_nopad_bin") }, /* coll name */ "", /* comment */ NULL, /* tailoring */ ctype_cp1250_general_ci, /* ctype */ @@ -6648,8 +6648,8 @@ struct charset_info_st compiled_charsets[] = { { 1091,0,0, MY_CS_COMPILED|MY_CS_BINSORT|MY_CS_NOPAD, - "cp1256", /* cset name */ - "cp1256_nopad_bin", /* coll name */ + { STRING_WITH_LEN("cp1256") }, /* cset name */ + { STRING_WITH_LEN("cp1256_nopad_bin") }, /* coll name */ "", /* comment */ NULL, /* tailoring */ ctype_cp1256_general_ci, /* ctype */ @@ -6681,8 +6681,8 @@ struct charset_info_st compiled_charsets[] = { { 1092,0,0, MY_CS_COMPILED|MY_CS_BINSORT|MY_CS_NOPAD, - "cp866", /* cset name */ - "cp866_nopad_bin", /* coll name */ + { STRING_WITH_LEN("cp866") }, /* cset name */ + { STRING_WITH_LEN("cp866_nopad_bin") }, /* coll name */ "", /* comment */ NULL, /* tailoring */ ctype_cp866_general_ci, /* ctype */ @@ -6714,8 +6714,8 @@ struct charset_info_st compiled_charsets[] = { { 1093,0,0, MY_CS_COMPILED|MY_CS_BINSORT|MY_CS_NOPAD, - "dec8", /* cset name */ - "dec8_nopad_bin", /* coll name */ + { STRING_WITH_LEN("dec8") }, /* cset name */ + { STRING_WITH_LEN("dec8_nopad_bin") }, /* coll name */ "", /* comment */ NULL, /* tailoring */ ctype_dec8_swedish_ci, /* ctype */ @@ -6747,8 +6747,8 @@ struct charset_info_st compiled_charsets[] = { { 1094,0,0, MY_CS_COMPILED|MY_CS_BINSORT|MY_CS_NOPAD, - "greek", /* cset name */ - "greek_nopad_bin", /* coll name */ + { STRING_WITH_LEN("greek") }, /* cset name */ + { STRING_WITH_LEN("greek_nopad_bin") }, /* coll name */ "", /* comment */ NULL, /* tailoring */ ctype_greek_general_ci, /* ctype */ @@ -6780,8 +6780,8 @@ struct charset_info_st compiled_charsets[] = { { 1095,0,0, MY_CS_COMPILED|MY_CS_BINSORT|MY_CS_NOPAD, - "hebrew", /* cset name */ - "hebrew_nopad_bin", /* coll name */ + { STRING_WITH_LEN("hebrew") }, /* cset name */ + { STRING_WITH_LEN("hebrew_nopad_bin") }, /* coll name */ "", /* comment */ NULL, /* tailoring */ ctype_hebrew_general_ci, /* ctype */ @@ -6813,8 +6813,8 @@ struct charset_info_st compiled_charsets[] = { { 1096,0,0, MY_CS_COMPILED|MY_CS_BINSORT|MY_CS_NOPAD, - "hp8", /* cset name */ - "hp8_nopad_bin", /* coll name */ + { STRING_WITH_LEN("hp8") }, /* cset name */ + { STRING_WITH_LEN("hp8_nopad_bin") }, /* coll name */ "", /* comment */ NULL, /* tailoring */ ctype_hp8_english_ci, /* ctype */ @@ -6846,8 +6846,8 @@ struct charset_info_st compiled_charsets[] = { { 1097,0,0, MY_CS_COMPILED|MY_CS_BINSORT|MY_CS_NOPAD, - "keybcs2", /* cset name */ - "keybcs2_nopad_bin", /* coll name */ + { STRING_WITH_LEN("keybcs2") }, /* cset name */ + { STRING_WITH_LEN("keybcs2_nopad_bin") }, /* coll name */ "", /* comment */ NULL, /* tailoring */ ctype_keybcs2_general_ci, /* ctype */ @@ -6879,8 +6879,8 @@ struct charset_info_st compiled_charsets[] = { { 1098,0,0, MY_CS_COMPILED|MY_CS_BINSORT|MY_CS_NOPAD, - "koi8r", /* cset name */ - "koi8r_nopad_bin", /* coll name */ + { STRING_WITH_LEN("koi8r") }, /* cset name */ + { STRING_WITH_LEN("koi8r_nopad_bin") }, /* coll name */ "", /* comment */ NULL, /* tailoring */ ctype_koi8r_general_ci, /* ctype */ @@ -6912,8 +6912,8 @@ struct charset_info_st compiled_charsets[] = { { 1099,0,0, MY_CS_COMPILED|MY_CS_BINSORT|MY_CS_NOPAD, - "koi8u", /* cset name */ - "koi8u_nopad_bin", /* coll name */ + { STRING_WITH_LEN("koi8u") }, /* cset name */ + { STRING_WITH_LEN("koi8u_nopad_bin") }, /* coll name */ "", /* comment */ NULL, /* tailoring */ ctype_koi8u_general_ci, /* ctype */ @@ -6945,8 +6945,8 @@ struct charset_info_st compiled_charsets[] = { { 1101,0,0, MY_CS_COMPILED|MY_CS_BINSORT|MY_CS_NOPAD, - "latin2", /* cset name */ - "latin2_nopad_bin", /* coll name */ + { STRING_WITH_LEN("latin2") }, /* cset name */ + { STRING_WITH_LEN("latin2_nopad_bin") }, /* coll name */ "", /* comment */ NULL, /* tailoring */ ctype_latin2_general_ci, /* ctype */ @@ -6978,8 +6978,8 @@ struct charset_info_st compiled_charsets[] = { { 1102,0,0, MY_CS_COMPILED|MY_CS_BINSORT|MY_CS_NOPAD, - "latin5", /* cset name */ - "latin5_nopad_bin", /* coll name */ + { STRING_WITH_LEN("latin5") }, /* cset name */ + { STRING_WITH_LEN("latin5_nopad_bin") }, /* coll name */ "", /* comment */ NULL, /* tailoring */ ctype_latin5_turkish_ci, /* ctype */ @@ -7011,8 +7011,8 @@ struct charset_info_st compiled_charsets[] = { { 1103,0,0, MY_CS_COMPILED|MY_CS_BINSORT|MY_CS_NOPAD, - "latin7", /* cset name */ - "latin7_nopad_bin", /* coll name */ + { STRING_WITH_LEN("latin7") }, /* cset name */ + { STRING_WITH_LEN("latin7_nopad_bin") }, /* coll name */ "", /* comment */ NULL, /* tailoring */ ctype_latin7_general_ci, /* ctype */ @@ -7044,8 +7044,8 @@ struct charset_info_st compiled_charsets[] = { { 1104,0,0, MY_CS_COMPILED|MY_CS_BINSORT|MY_CS_NOPAD, - "cp850", /* cset name */ - "cp850_nopad_bin", /* coll name */ + { STRING_WITH_LEN("cp850") }, /* cset name */ + { STRING_WITH_LEN("cp850_nopad_bin") }, /* coll name */ "", /* comment */ NULL, /* tailoring */ ctype_cp850_general_ci, /* ctype */ @@ -7077,8 +7077,8 @@ struct charset_info_st compiled_charsets[] = { { 1105,0,0, MY_CS_COMPILED|MY_CS_BINSORT|MY_CS_NOPAD, - "cp852", /* cset name */ - "cp852_nopad_bin", /* coll name */ + { STRING_WITH_LEN("cp852") }, /* cset name */ + { STRING_WITH_LEN("cp852_nopad_bin") }, /* coll name */ "", /* comment */ NULL, /* tailoring */ ctype_cp852_general_ci, /* ctype */ @@ -7110,8 +7110,8 @@ struct charset_info_st compiled_charsets[] = { { 1106,0,0, MY_CS_COMPILED|MY_CS_BINSORT|MY_CS_NONASCII|MY_CS_NOPAD, - "swe7", /* cset name */ - "swe7_nopad_bin", /* coll name */ + { STRING_WITH_LEN("swe7") }, /* cset name */ + { STRING_WITH_LEN("swe7_nopad_bin") }, /* coll name */ "", /* comment */ NULL, /* tailoring */ ctype_swe7_swedish_ci, /* ctype */ @@ -7143,8 +7143,8 @@ struct charset_info_st compiled_charsets[] = { { 1116,0,0, MY_CS_COMPILED|MY_CS_NOPAD, - "geostd8", /* cset name */ - "geostd8_general_nopad_ci", /* coll name */ + { STRING_WITH_LEN("geostd8") }, /* cset name */ + { STRING_WITH_LEN("geostd8_general_nopad_ci") }, /* coll name */ "", /* comment */ "[import geostd8_general_ci]", /* tailoring */ ctype_geostd8_general_ci, /* ctype */ @@ -7176,8 +7176,8 @@ struct charset_info_st compiled_charsets[] = { { 1117,0,0, MY_CS_COMPILED|MY_CS_BINSORT|MY_CS_NOPAD, - "geostd8", /* cset name */ - "geostd8_nopad_bin", /* coll name */ + { STRING_WITH_LEN("geostd8") }, /* cset name */ + { STRING_WITH_LEN("geostd8_nopad_bin") }, /* coll name */ "", /* comment */ NULL, /* tailoring */ ctype_geostd8_general_ci, /* ctype */ @@ -7208,8 +7208,8 @@ struct charset_info_st compiled_charsets[] = { { 0,0,0, MY_CS_COMPILED, - NULL, /* cset name */ - NULL, /* coll name */ + {NULL,0}, /* cset name */ + {NULL,0}, /* coll name */ NULL, /* comment */ NULL, /* tailoging */ NULL, /* ctype */ diff --git a/strings/ctype-gb2312.c b/strings/ctype-gb2312.c index 91ee2504b65..56709b06bf7 100644 --- a/strings/ctype-gb2312.c +++ b/strings/ctype-gb2312.c @@ -30,6 +30,7 @@ #ifdef HAVE_CHARSET_gb2312 const char charset_name_gb2312[]= "gb2312"; +#define charset_name_gb2312_length sizeof(charset_name_gb2312)-1 static const uchar ctype_gb2312[257] = { @@ -6461,8 +6462,8 @@ struct charset_info_st my_charset_gb2312_chinese_ci= { 24,0,0, /* number */ MY_CS_COMPILED|MY_CS_PRIMARY, /* state */ - charset_name_gb2312, /* cs name */ - "gb2312_chinese_ci",/* name */ + { charset_name_gb2312, charset_name_gb2312_length}, /* cs name */ + { STRING_WITH_LEN("gb2312_chinese_ci") }, /* name */ "", /* comment */ NULL, /* tailoring */ ctype_gb2312, @@ -6494,8 +6495,8 @@ struct charset_info_st my_charset_gb2312_bin= { 86,0,0, /* number */ MY_CS_COMPILED|MY_CS_BINSORT, /* state */ - charset_name_gb2312, /* cs name */ - "gb2312_bin", /* name */ + { charset_name_gb2312, charset_name_gb2312_length}, /* cs name */ + { STRING_WITH_LEN("gb2312_bin") }, /* col name */ "", /* comment */ NULL, /* tailoring */ ctype_gb2312, @@ -6527,8 +6528,8 @@ struct charset_info_st my_charset_gb2312_chinese_nopad_ci= { MY_NOPAD_ID(24),0,0,/* number */ MY_CS_COMPILED|MY_CS_NOPAD, /* state */ - charset_name_gb2312, /* cs name */ - "gb2312_chinese_nopad_ci",/* name */ + { charset_name_gb2312, charset_name_gb2312_length}, /* cs name */ + { STRING_WITH_LEN("gb2312_chinese_nopad_ci") }, /* name */ "", /* comment */ NULL, /* tailoring */ ctype_gb2312, @@ -6560,8 +6561,8 @@ 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 */ - charset_name_gb2312, /* cs name */ - "gb2312_nopad_bin", /* name */ + { charset_name_gb2312, charset_name_gb2312_length}, /* cs name */ + { STRING_WITH_LEN("gb2312_nopad_bin") }, /* name */ "", /* comment */ NULL, /* tailoring */ ctype_gb2312, diff --git a/strings/ctype-gbk.c b/strings/ctype-gbk.c index 041fe318eed..95f59a18d99 100644 --- a/strings/ctype-gbk.c +++ b/strings/ctype-gbk.c @@ -32,6 +32,7 @@ #ifdef HAVE_CHARSET_gbk const char charset_name_gbk[]= "gbk"; +#define charset_name_gbk_length (sizeof(charset_name_gbk) -1) /* Support for Chinese(GBK) characters, by hewei@mail.ied.ac.cn */ @@ -10742,8 +10743,8 @@ struct charset_info_st my_charset_gbk_chinese_ci= { 28,0,0, /* number */ MY_CS_COMPILED|MY_CS_PRIMARY|MY_CS_STRNXFRM, /* state */ - charset_name_gbk, /* cs name */ - "gbk_chinese_ci", /* name */ + { charset_name_gbk, charset_name_gbk_length }, /* cs name */ + { STRING_WITH_LEN("gbk_chinese_ci") }, /* name */ "", /* comment */ NULL, /* tailoring */ ctype_gbk, @@ -10774,8 +10775,8 @@ struct charset_info_st my_charset_gbk_bin= { 87,0,0, /* number */ MY_CS_COMPILED|MY_CS_BINSORT, /* state */ - charset_name_gbk, /* cs name */ - "gbk_bin", /* name */ + { charset_name_gbk, charset_name_gbk_length }, /* cs name */ + { STRING_WITH_LEN("gbk_bin") }, /* name */ "", /* comment */ NULL, /* tailoring */ ctype_gbk, @@ -10807,8 +10808,8 @@ 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 */ - charset_name_gbk, /* cs name */ - "gbk_chinese_nopad_ci",/* name */ + { charset_name_gbk, charset_name_gbk_length }, /* cs name */ + { STRING_WITH_LEN("gbk_chinese_nopad_ci") },/* name */ "", /* comment */ NULL, /* tailoring */ ctype_gbk, @@ -10839,8 +10840,8 @@ 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 */ - charset_name_gbk, /* cs name */ - "gbk_nopad_bin", /* name */ + { charset_name_gbk, charset_name_gbk_length }, /* cs name */ + { STRING_WITH_LEN("gbk_nopad_bin") }, /* name */ "", /* comment */ NULL, /* tailoring */ ctype_gbk, diff --git a/strings/ctype-latin1.c b/strings/ctype-latin1.c index 4753ca737a6..2a0983ee16f 100644 --- a/strings/ctype-latin1.c +++ b/strings/ctype-latin1.c @@ -19,6 +19,7 @@ #include const char charset_name_latin1[]= "latin1"; +#define charset_name_latin1_length sizeof(charset_name_latin1)-1 static const uchar ctype_latin1[] = { 0, @@ -433,8 +434,8 @@ struct charset_info_st my_charset_latin1= { 8,0,0, /* number */ MY_CS_COMPILED | MY_CS_PRIMARY, /* state */ - charset_name_latin1, /* cs name */ - "latin1_swedish_ci", /* name */ + { charset_name_latin1, charset_name_latin1_length }, /* cs_name */ + { STRING_WITH_LEN("latin1_swedish_ci") }, /* name */ "", /* comment */ NULL, /* tailoring */ ctype_latin1, @@ -466,8 +467,8 @@ struct charset_info_st my_charset_latin1_nopad= { MY_NOPAD_ID(8),0,0, /* number */ MY_CS_COMPILED | MY_CS_NOPAD, /* state */ - charset_name_latin1, /* cs name */ - "latin1_swedish_nopad_ci", /* name */ + { charset_name_latin1, charset_name_latin1_length }, /* cs_name */ + { STRING_WITH_LEN("latin1_swedish_nopad_ci") }, /* name */ "", /* comment */ NULL, /* tailoring */ ctype_latin1, @@ -744,8 +745,8 @@ struct charset_info_st my_charset_latin1_german2_ci= { 31,0,0, /* number */ MY_CS_COMPILED|MY_CS_STRNXFRM|MY_CS_NON1TO1, /* state */ - charset_name_latin1, /* cs name */ - "latin1_german2_ci", /* name */ + { charset_name_latin1, charset_name_latin1_length}, /* cs_name */ + { STRING_WITH_LEN("latin1_german2_ci") }, /* name */ "", /* comment */ NULL, /* tailoring */ ctype_latin1, @@ -777,8 +778,8 @@ struct charset_info_st my_charset_latin1_bin= { 47,0,0, /* number */ MY_CS_COMPILED|MY_CS_BINSORT, /* state */ - charset_name_latin1, /* cs name */ - "latin1_bin", /* name */ + { charset_name_latin1, charset_name_latin1_length}, /* cs_name */ + { STRING_WITH_LEN("latin1_bin") }, /* name */ "", /* comment */ NULL, /* tailoring */ ctype_latin1, @@ -810,8 +811,8 @@ 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 */ - charset_name_latin1, /* cs name */ - "latin1_nopad_bin", /* name */ + { charset_name_latin1, charset_name_latin1_length}, /* cs_name */ + { STRING_WITH_LEN("latin1_nopad_bin") }, /* name */ "", /* comment */ NULL, /* tailoring */ ctype_latin1, diff --git a/strings/ctype-sjis.c b/strings/ctype-sjis.c index 57458ca3a48..b6b212f2c0d 100644 --- a/strings/ctype-sjis.c +++ b/strings/ctype-sjis.c @@ -23,6 +23,7 @@ #ifdef HAVE_CHARSET_sjis const char charset_name_sjis[]= "sjis"; +#define charset_name_sjis_length (sizeof(charset_name_sjis)-1) /* * This comment is parsed by configure to create ctype.c, @@ -34153,8 +34154,8 @@ 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 */ - charset_name_sjis, /* cs name */ - "sjis_japanese_ci", /* name */ + { charset_name_sjis, charset_name_sjis_length }, /* cs name */ + { STRING_WITH_LEN("sjis_japanese_ci") }, /* name */ "", /* comment */ NULL, /* tailoring */ ctype_sjis, @@ -34185,8 +34186,8 @@ struct charset_info_st my_charset_sjis_bin= { 88,0,0, /* number */ MY_CS_COMPILED|MY_CS_BINSORT|MY_CS_NONASCII, /* state */ - charset_name_sjis, /* cs name */ - "sjis_bin", /* name */ + { charset_name_sjis, charset_name_sjis_length }, /* cs name */ + { STRING_WITH_LEN("sjis_bin") }, /* name */ "", /* comment */ NULL, /* tailoring */ ctype_sjis, @@ -34218,8 +34219,8 @@ 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 */ - charset_name_sjis, /* cs name */ - "sjis_japanese_nopad_ci", /* name */ + { charset_name_sjis, charset_name_sjis_length }, /* cs name */ + { STRING_WITH_LEN("sjis_japanese_nopad_ci") }, /* name */ "", /* comment */ NULL, /* tailoring */ ctype_sjis, @@ -34250,8 +34251,8 @@ 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 */ - charset_name_sjis, /* cs name */ - "sjis_nopad_bin", /* name */ + { charset_name_sjis, charset_name_sjis_length }, /* cs name */ + { STRING_WITH_LEN("sjis_nopad_bin") }, /* name */ "", /* comment */ NULL, /* tailoring */ ctype_sjis, diff --git a/strings/ctype-tis620.c b/strings/ctype-tis620.c index 1a5dd6dbfde..849f4897231 100644 --- a/strings/ctype-tis620.c +++ b/strings/ctype-tis620.c @@ -41,6 +41,7 @@ #ifdef HAVE_CHARSET_tis620 const char charset_name_tis620[]= "tis620"; +#define charset_name_tis620_length sizeof(charset_name_tis620)-1 #define M L_MIDDLE #define U L_UPPER @@ -918,8 +919,8 @@ 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 */ - charset_name_tis620, /* cs name */ - "tis620_thai_ci", /* name */ + { charset_name_tis620, charset_name_tis620_length }, /* cs name */ + { STRING_WITH_LEN("tis620_thai_ci") }, /* name */ "", /* comment */ NULL, /* tailoring */ ctype_tis620, @@ -950,8 +951,8 @@ struct charset_info_st my_charset_tis620_bin= { 89,0,0, /* number */ MY_CS_COMPILED|MY_CS_BINSORT, /* state */ - charset_name_tis620, /* cs name */ - "tis620_bin", /* name */ + { charset_name_tis620, charset_name_tis620_length }, /* cs name */ + { STRING_WITH_LEN("tis620_bin") }, /* name */ "", /* comment */ NULL, /* tailoring */ ctype_tis620, @@ -983,8 +984,8 @@ 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 */ - charset_name_tis620, /* cs name */ - "tis620_thai_nopad_ci",/* name */ + { charset_name_tis620, charset_name_tis620_length }, /* cs name */ + { STRING_WITH_LEN("tis620_thai_nopad_ci") }, /* name */ "", /* comment */ NULL, /* tailoring */ ctype_tis620, @@ -1016,8 +1017,8 @@ 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 */ - charset_name_tis620, /* cs name */ - "tis620_nopad_bin", /* name */ + { charset_name_tis620, charset_name_tis620_length }, /* cs name */ + { STRING_WITH_LEN("tis620_nopad_bin") }, /* name */ "", /* comment */ NULL, /* tailoring */ ctype_tis620, diff --git a/strings/ctype-uca.c b/strings/ctype-uca.c index 6f687c4f3fc..2bcc16bb734 100644 --- a/strings/ctype-uca.c +++ b/strings/ctype-uca.c @@ -33630,7 +33630,7 @@ init_weight_level(MY_CHARSET_LOADER *loader, MY_COLL_RULES *rules, sizeof(uint16 *)))) return TRUE; - /* Copy pages lengths and page pointers from the default UCA weights */ + /* Copy pages lengths and page pointers from the default UCA weights */ memcpy(dst->lengths, src->lengths, npages); memcpy(dst->weights, src->weights, npages * sizeof(uint16 *)); @@ -33849,7 +33849,7 @@ create_tailoring(struct charset_info_st *cs, { my_snprintf(loader->error, sizeof(loader->error) - 1, "%s: no level #%d data for this Unicode version.", - cs->name, i + 1); + cs->coll_name.str, i + 1); goto ex; } if ((rc= init_weight_level(loader, &rules, @@ -33894,8 +33894,8 @@ struct charset_info_st my_charset_ucs2_unicode_ci= { 128,0,0, /* number */ MY_CS_UCS2_UCA_FLAGS,/* state */ - charset_name_ucs2, /* cs name */ - "ucs2_unicode_ci", /* name */ + { charset_name_ucs2, charset_name_ucs2_length }, /* cs name */ + { STRING_WITH_LEN("ucs2_unicode_ci") }, /* name */ "", /* comment */ "", /* tailoring */ NULL, /* ctype */ @@ -33926,8 +33926,8 @@ struct charset_info_st my_charset_ucs2_icelandic_uca_ci= { 129,0,0, /* number */ MY_CS_UCS2_UCA_FLAGS,/* state */ - charset_name_ucs2, /* cs name */ - "ucs2_icelandic_ci",/* name */ + { charset_name_ucs2, charset_name_ucs2_length }, /* cs name */ + { STRING_WITH_LEN("ucs2_icelandic_ci") }, /* name */ "", /* comment */ icelandic, /* tailoring */ NULL, /* ctype */ @@ -33958,8 +33958,8 @@ struct charset_info_st my_charset_ucs2_latvian_uca_ci= { 130,0,0, /* number */ MY_CS_UCS2_UCA_FLAGS,/* state */ - charset_name_ucs2, /* cs name */ - "ucs2_latvian_ci", /* name */ + { charset_name_ucs2, charset_name_ucs2_length }, /* cs name */ + { STRING_WITH_LEN("ucs2_latvian_ci") }, /* name */ "", /* comment */ latvian, /* tailoring */ NULL, /* ctype */ @@ -33990,8 +33990,8 @@ struct charset_info_st my_charset_ucs2_romanian_uca_ci= { 131,0,0, /* number */ MY_CS_UCS2_UCA_FLAGS,/* state */ - charset_name_ucs2, /* cs name */ - "ucs2_romanian_ci", /* name */ + { charset_name_ucs2, charset_name_ucs2_length }, /* cs name */ + { STRING_WITH_LEN("ucs2_romanian_ci") }, /* name */ "", /* comment */ romanian, /* tailoring */ NULL, /* ctype */ @@ -34022,8 +34022,8 @@ struct charset_info_st my_charset_ucs2_slovenian_uca_ci= { 132,0,0, /* number */ MY_CS_UCS2_UCA_FLAGS,/* state */ - charset_name_ucs2, /* cs name */ - "ucs2_slovenian_ci",/* name */ + { charset_name_ucs2, charset_name_ucs2_length }, /* cs name */ + { STRING_WITH_LEN("ucs2_slovenian_ci") },/* name */ "", /* comment */ slovenian, /* tailoring */ NULL, /* ctype */ @@ -34054,8 +34054,8 @@ struct charset_info_st my_charset_ucs2_polish_uca_ci= { 133,0,0, /* number */ MY_CS_UCS2_UCA_FLAGS,/* state */ - charset_name_ucs2, /* cs name */ - "ucs2_polish_ci", /* name */ + { charset_name_ucs2, charset_name_ucs2_length }, /* cs name */ + { STRING_WITH_LEN("ucs2_polish_ci") }, /* name */ "", /* comment */ polish, /* tailoring */ NULL, /* ctype */ @@ -34086,8 +34086,8 @@ struct charset_info_st my_charset_ucs2_estonian_uca_ci= { 134,0,0, /* number */ MY_CS_UCS2_UCA_FLAGS,/* state */ - charset_name_ucs2, /* cs name */ - "ucs2_estonian_ci", /* name */ + { charset_name_ucs2, charset_name_ucs2_length }, /* cs name */ + { STRING_WITH_LEN("ucs2_estonian_ci") }, /* name */ "", /* comment */ estonian, /* tailoring */ NULL, /* ctype */ @@ -34118,8 +34118,8 @@ struct charset_info_st my_charset_ucs2_spanish_uca_ci= { 135,0,0, /* number */ MY_CS_UCS2_UCA_FLAGS,/* state */ - charset_name_ucs2, /* cs name */ - "ucs2_spanish_ci", /* name */ + { charset_name_ucs2, charset_name_ucs2_length }, /* cs name */ + { STRING_WITH_LEN("ucs2_spanish_ci") }, /* name */ "", /* comment */ spanish, /* tailoring */ NULL, /* ctype */ @@ -34150,8 +34150,8 @@ struct charset_info_st my_charset_ucs2_swedish_uca_ci= { 136,0,0, /* number */ MY_CS_UCS2_UCA_FLAGS,/* state */ - charset_name_ucs2, /* cs name */ - "ucs2_swedish_ci", /* name */ + { charset_name_ucs2, charset_name_ucs2_length }, /* cs name */ + { STRING_WITH_LEN("ucs2_swedish_ci") }, /* name */ "", /* comment */ swedish, /* tailoring */ NULL, /* ctype */ @@ -34182,8 +34182,8 @@ struct charset_info_st my_charset_ucs2_turkish_uca_ci= { 137,0,0, /* number */ MY_CS_UCS2_UCA_FLAGS,/* state */ - charset_name_ucs2, /* cs name */ - "ucs2_turkish_ci", /* name */ + { charset_name_ucs2, charset_name_ucs2_length }, /* cs name */ + { STRING_WITH_LEN("ucs2_turkish_ci") }, /* name */ "", /* comment */ turkish, /* tailoring */ NULL, /* ctype */ @@ -34214,8 +34214,8 @@ struct charset_info_st my_charset_ucs2_czech_uca_ci= { 138,0,0, /* number */ MY_CS_UCS2_UCA_FLAGS,/* state */ - charset_name_ucs2, /* cs name */ - "ucs2_czech_ci", /* name */ + { charset_name_ucs2, charset_name_ucs2_length }, /* cs name */ + { STRING_WITH_LEN("ucs2_czech_ci") }, /* name */ "", /* comment */ czech, /* tailoring */ NULL, /* ctype */ @@ -34247,8 +34247,8 @@ struct charset_info_st my_charset_ucs2_danish_uca_ci= { 139,0,0, /* number */ MY_CS_UCS2_UCA_FLAGS,/* state */ - charset_name_ucs2, /* cs name */ - "ucs2_danish_ci", /* name */ + { charset_name_ucs2, charset_name_ucs2_length }, /* cs name */ + { STRING_WITH_LEN("ucs2_danish_ci") }, /* name */ "", /* comment */ danish, /* tailoring */ NULL, /* ctype */ @@ -34279,8 +34279,8 @@ struct charset_info_st my_charset_ucs2_lithuanian_uca_ci= { 140,0,0, /* number */ MY_CS_UCS2_UCA_FLAGS,/* state */ - charset_name_ucs2, /* cs name */ - "ucs2_lithuanian_ci",/* name */ + { charset_name_ucs2, charset_name_ucs2_length }, /* cs name */ + { STRING_WITH_LEN("ucs2_lithuanian_ci") },/* name */ "", /* comment */ lithuanian, /* tailoring */ NULL, /* ctype */ @@ -34311,8 +34311,8 @@ struct charset_info_st my_charset_ucs2_slovak_uca_ci= { 141,0,0, /* number */ MY_CS_UCS2_UCA_FLAGS,/* state */ - charset_name_ucs2, /* cs name */ - "ucs2_slovak_ci", /* name */ + { charset_name_ucs2, charset_name_ucs2_length }, /* cs name */ + { STRING_WITH_LEN("ucs2_slovak_ci") }, /* name */ "", /* comment */ slovak, /* tailoring */ NULL, /* ctype */ @@ -34343,8 +34343,8 @@ struct charset_info_st my_charset_ucs2_spanish2_uca_ci= { 142,0,0, /* number */ MY_CS_UCS2_UCA_FLAGS,/* state */ - charset_name_ucs2, /* cs name */ - "ucs2_spanish2_ci", /* name */ + { charset_name_ucs2, charset_name_ucs2_length }, /* cs name */ + { STRING_WITH_LEN("ucs2_spanish2_ci") }, /* name */ "", /* comment */ spanish2, /* tailoring */ NULL, /* ctype */ @@ -34376,8 +34376,8 @@ struct charset_info_st my_charset_ucs2_roman_uca_ci= { 143,0,0, /* number */ MY_CS_UCS2_UCA_FLAGS,/* state */ - charset_name_ucs2, /* cs name */ - "ucs2_roman_ci", /* name */ + { charset_name_ucs2, charset_name_ucs2_length }, /* cs name */ + { STRING_WITH_LEN("ucs2_roman_ci") }, /* name */ "", /* comment */ roman, /* tailoring */ NULL, /* ctype */ @@ -34409,8 +34409,8 @@ struct charset_info_st my_charset_ucs2_persian_uca_ci= { 144,0,0, /* number */ MY_CS_UCS2_UCA_FLAGS,/* state */ - charset_name_ucs2, /* cs name */ - "ucs2_persian_ci", /* name */ + { charset_name_ucs2, charset_name_ucs2_length }, /* cs name */ + { STRING_WITH_LEN("ucs2_persian_ci") }, /* name */ "", /* comment */ persian, /* tailoring */ NULL, /* ctype */ @@ -34442,8 +34442,8 @@ struct charset_info_st my_charset_ucs2_esperanto_uca_ci= { 145,0,0, /* number */ MY_CS_UCS2_UCA_FLAGS,/* state */ - charset_name_ucs2, /* cs name */ - "ucs2_esperanto_ci",/* name */ + { charset_name_ucs2, charset_name_ucs2_length }, /* cs name */ + { STRING_WITH_LEN("ucs2_esperanto_ci") },/* name */ "", /* comment */ esperanto, /* tailoring */ NULL, /* ctype */ @@ -34475,8 +34475,8 @@ struct charset_info_st my_charset_ucs2_hungarian_uca_ci= { 146,0,0, /* number */ MY_CS_UCS2_UCA_FLAGS,/* state */ - charset_name_ucs2, /* cs name */ - "ucs2_hungarian_ci",/* name */ + { charset_name_ucs2, charset_name_ucs2_length }, /* cs name */ + { STRING_WITH_LEN("ucs2_hungarian_ci") },/* name */ "", /* comment */ hungarian, /* tailoring */ NULL, /* ctype */ @@ -34507,8 +34507,8 @@ struct charset_info_st my_charset_ucs2_sinhala_uca_ci= { 147,0,0, /* number */ MY_CS_UCS2_UCA_FLAGS,/* state */ - charset_name_ucs2, /* csname */ - "ucs2_sinhala_ci", /* name */ + { charset_name_ucs2, charset_name_ucs2_length }, /* cs name */ + { STRING_WITH_LEN("ucs2_sinhala_ci") }, /* name */ "", /* comment */ sinhala, /* tailoring */ NULL, /* ctype */ @@ -34541,8 +34541,8 @@ struct charset_info_st my_charset_ucs2_german2_uca_ci= { 148,0,0, /* number */ MY_CS_UCS2_UCA_FLAGS,/* state */ - charset_name_ucs2, /* csname */ - "ucs2_german2_ci", /* name */ + { charset_name_ucs2, charset_name_ucs2_length }, /* cs name */ + { STRING_WITH_LEN("ucs2_german2_ci") }, /* name */ "", /* comment */ german2, /* tailoring */ NULL, /* ctype */ @@ -34573,8 +34573,8 @@ struct charset_info_st my_charset_ucs2_croatian_mysql561_uca_ci= { 149,0,0, /* number */ MY_CS_UCS2_UCA_FLAGS,/* state */ - charset_name_ucs2, /* cs name */ - "ucs2_croatian_mysql561_ci",/* name */ + { charset_name_ucs2, charset_name_ucs2_length }, /* cs name */ + { STRING_WITH_LEN("ucs2_croatian_mysql561_ci") },/* name */ "", /* comment */ croatian_mysql561, /* tailoring */ NULL, /* ctype */ @@ -34606,8 +34606,8 @@ struct charset_info_st my_charset_ucs2_croatian_uca_ci= { MY_PAGE2_COLLATION_ID_UCS2,0,0, /* number */ MY_CS_UCS2_UCA_FLAGS,/* state */ - charset_name_ucs2, /* cs name */ - "ucs2_croatian_ci", /* name */ + { charset_name_ucs2, charset_name_ucs2_length }, /* cs name */ + { STRING_WITH_LEN("ucs2_croatian_ci") }, /* name */ "", /* comment */ croatian_mariadb, /* tailoring */ NULL, /* ctype */ @@ -34639,8 +34639,8 @@ 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 */ - charset_name_ucs2, /* cs name */ - "ucs2_myanmar_ci", /* name */ + { charset_name_ucs2, charset_name_ucs2_length }, /* cs name */ + { STRING_WITH_LEN("ucs2_myanmar_ci") }, /* name */ "", /* comment */ myanmar, /* tailoring */ NULL, /* ctype */ @@ -34672,8 +34672,8 @@ 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 */ - charset_name_ucs2, /* csname */ - "ucs2_thai_520_w2", /* name */ + { charset_name_ucs2, charset_name_ucs2_length }, /* cs name */ + { STRING_WITH_LEN("ucs2_thai_520_w2") }, /* name */ "", /* comment */ "[strength 2]", /* tailoring */ NULL, /* ctype */ @@ -34704,8 +34704,8 @@ struct charset_info_st my_charset_ucs2_unicode_520_ci= { 150,0,0, /* number */ MY_CS_UCS2_UCA_FLAGS,/* state */ - charset_name_ucs2, /* cs name */ - "ucs2_unicode_520_ci",/* name */ + { charset_name_ucs2, charset_name_ucs2_length }, /* cs name */ + { STRING_WITH_LEN("ucs2_unicode_520_ci") },/* name */ "", /* comment */ "", /* tailoring */ NULL, /* ctype */ @@ -34737,8 +34737,8 @@ struct charset_info_st my_charset_ucs2_vietnamese_ci= { 151,0,0, /* number */ MY_CS_UCS2_UCA_FLAGS,/* state */ - charset_name_ucs2, /* csname */ - "ucs2_vietnamese_ci",/* name */ + { charset_name_ucs2, charset_name_ucs2_length }, /* cs name */ + { STRING_WITH_LEN("ucs2_vietnamese_ci") },/* name */ "", /* comment */ vietnamese, /* tailoring */ NULL, /* ctype */ @@ -34770,8 +34770,8 @@ struct charset_info_st my_charset_ucs2_unicode_nopad_ci= { MY_NOPAD_ID(128),0,0, /* number */ MY_CS_UCS2_UCA_NOPAD_FLAGS,/* state */ - charset_name_ucs2, /* cs name */ - "ucs2_unicode_nopad_ci", /* name */ + { charset_name_ucs2, charset_name_ucs2_length }, /* cs name */ + { STRING_WITH_LEN("ucs2_unicode_nopad_ci") }, /* name */ "", /* comment */ "", /* tailoring */ NULL, /* ctype */ @@ -34803,8 +34803,8 @@ 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 */ - charset_name_ucs2, /* cs name */ - "ucs2_unicode_520_nopad_ci",/* name */ + { charset_name_ucs2, charset_name_ucs2_length }, /* cs name */ + { STRING_WITH_LEN("ucs2_unicode_520_nopad_ci") },/* name */ "", /* comment */ "", /* tailoring */ NULL, /* ctype */ @@ -34905,8 +34905,8 @@ struct charset_info_st my_charset_utf8mb3_unicode_ci= { 192,0,0, /* number */ MY_CS_UTF8MB3_UCA_FLAGS,/* flags */ - charset_name_utf8mb3, /* cs name */ - MY_UTF8MB3 "_unicode_ci", /* name */ + { charset_name_utf8mb3, charset_name_utf8mb3_length }, /* cs name */ + { STRING_WITH_LEN(MY_UTF8MB3 "_unicode_ci") }, /* name */ "", /* comment */ "", /* tailoring */ ctype_utf8mb3, /* ctype */ @@ -34938,8 +34938,8 @@ struct charset_info_st my_charset_utf8mb3_icelandic_uca_ci= { 193,0,0, /* number */ MY_CS_UTF8MB3_UCA_FLAGS,/* flags */ - charset_name_utf8mb3, /* cs name */ - MY_UTF8MB3 "_icelandic_ci",/* name */ + { charset_name_utf8mb3, charset_name_utf8mb3_length }, /* cs name */ + { STRING_WITH_LEN(MY_UTF8MB3 "_icelandic_ci") },/* name */ "", /* comment */ icelandic, /* tailoring */ ctype_utf8mb3, /* ctype */ @@ -34970,8 +34970,8 @@ struct charset_info_st my_charset_utf8mb3_latvian_uca_ci= { 194,0,0, /* number */ MY_CS_UTF8MB3_UCA_FLAGS,/* flags */ - charset_name_utf8mb3, /* cs name */ - MY_UTF8MB3 "_latvian_ci",/* name */ + { charset_name_utf8mb3, charset_name_utf8mb3_length }, /* cs name */ + { STRING_WITH_LEN(MY_UTF8MB3 "_latvian_ci") },/* name */ "", /* comment */ latvian, /* tailoring */ ctype_utf8mb3, /* ctype */ @@ -35002,8 +35002,8 @@ struct charset_info_st my_charset_utf8mb3_romanian_uca_ci= { 195,0,0, /* number */ MY_CS_UTF8MB3_UCA_FLAGS,/* flags */ - charset_name_utf8mb3, /* cs name */ - MY_UTF8MB3 "_romanian_ci", /* name */ + { charset_name_utf8mb3, charset_name_utf8mb3_length }, /* cs name */ + { STRING_WITH_LEN(MY_UTF8MB3 "_romanian_ci") }, /* name */ "", /* comment */ romanian, /* tailoring */ ctype_utf8mb3, /* ctype */ @@ -35034,8 +35034,8 @@ struct charset_info_st my_charset_utf8mb3_slovenian_uca_ci= { 196,0,0, /* number */ MY_CS_UTF8MB3_UCA_FLAGS,/* flags */ - charset_name_utf8mb3, /* cs name */ - MY_UTF8MB3 "_slovenian_ci",/* name */ + { charset_name_utf8mb3, charset_name_utf8mb3_length }, /* cs name */ + { STRING_WITH_LEN(MY_UTF8MB3 "_slovenian_ci") },/* name */ "", /* comment */ slovenian, /* tailoring */ ctype_utf8mb3, /* ctype */ @@ -35066,8 +35066,8 @@ struct charset_info_st my_charset_utf8mb3_polish_uca_ci= { 197,0,0, /* number */ MY_CS_UTF8MB3_UCA_FLAGS,/* flags */ - charset_name_utf8mb3, /* cs name */ - MY_UTF8MB3 "_polish_ci",/* name */ + { charset_name_utf8mb3, charset_name_utf8mb3_length }, /* cs name */ + { STRING_WITH_LEN(MY_UTF8MB3 "_polish_ci") }, /* name */ "", /* comment */ polish, /* tailoring */ ctype_utf8mb3, /* ctype */ @@ -35098,8 +35098,8 @@ struct charset_info_st my_charset_utf8mb3_estonian_uca_ci= { 198,0,0, /* number */ MY_CS_UTF8MB3_UCA_FLAGS,/* flags */ - charset_name_utf8mb3, /* cs name */ - MY_UTF8MB3 "_estonian_ci",/* name */ + { charset_name_utf8mb3, charset_name_utf8mb3_length }, /* cs name */ + { STRING_WITH_LEN(MY_UTF8MB3 "_estonian_ci") },/* name */ "", /* comment */ estonian, /* tailoring */ ctype_utf8mb3, /* ctype */ @@ -35130,8 +35130,8 @@ struct charset_info_st my_charset_utf8mb3_spanish_uca_ci= { 199,0,0, /* number */ MY_CS_UTF8MB3_UCA_FLAGS,/* flags */ - charset_name_utf8mb3, /* cs name */ - MY_UTF8MB3 "_spanish_ci", /* name */ + { charset_name_utf8mb3, charset_name_utf8mb3_length }, /* cs name */ + { STRING_WITH_LEN(MY_UTF8MB3 "_spanish_ci") }, /* name */ "", /* comment */ spanish, /* tailoring */ ctype_utf8mb3, /* ctype */ @@ -35162,8 +35162,8 @@ struct charset_info_st my_charset_utf8mb3_swedish_uca_ci= { 200,0,0, /* number */ MY_CS_UTF8MB3_UCA_FLAGS,/* flags */ - charset_name_utf8mb3, /* cs name */ - MY_UTF8MB3 "_swedish_ci", /* name */ + { charset_name_utf8mb3, charset_name_utf8mb3_length }, /* cs name */ + { STRING_WITH_LEN(MY_UTF8MB3 "_swedish_ci") }, /* name */ "", /* comment */ swedish, /* tailoring */ ctype_utf8mb3, /* ctype */ @@ -35194,8 +35194,8 @@ struct charset_info_st my_charset_utf8mb3_turkish_uca_ci= { 201,0,0, /* number */ MY_CS_UTF8MB3_UCA_FLAGS,/* flags */ - charset_name_utf8mb3, /* cs name */ - MY_UTF8MB3 "_turkish_ci", /* name */ + { charset_name_utf8mb3, charset_name_utf8mb3_length }, /* cs name */ + { STRING_WITH_LEN(MY_UTF8MB3 "_turkish_ci") }, /* name */ "", /* comment */ turkish, /* tailoring */ ctype_utf8mb3, /* ctype */ @@ -35226,8 +35226,8 @@ struct charset_info_st my_charset_utf8mb3_czech_uca_ci= { 202,0,0, /* number */ MY_CS_UTF8MB3_UCA_FLAGS,/* flags */ - charset_name_utf8mb3, /* cs name */ - MY_UTF8MB3 "_czech_ci", /* name */ + { charset_name_utf8mb3, charset_name_utf8mb3_length }, /* cs name */ + { STRING_WITH_LEN(MY_UTF8MB3 "_czech_ci") }, /* name */ "", /* comment */ czech, /* tailoring */ ctype_utf8mb3, /* ctype */ @@ -35259,8 +35259,8 @@ struct charset_info_st my_charset_utf8mb3_danish_uca_ci= { 203,0,0, /* number */ MY_CS_UTF8MB3_UCA_FLAGS,/* flags */ - charset_name_utf8mb3, /* cs name */ - MY_UTF8MB3 "_danish_ci", /* name */ + { charset_name_utf8mb3, charset_name_utf8mb3_length }, /* cs name */ + { STRING_WITH_LEN(MY_UTF8MB3 "_danish_ci") }, /* name */ "", /* comment */ danish, /* tailoring */ ctype_utf8mb3, /* ctype */ @@ -35291,8 +35291,8 @@ struct charset_info_st my_charset_utf8mb3_lithuanian_uca_ci= { 204,0,0, /* number */ MY_CS_UTF8MB3_UCA_FLAGS,/* flags */ - charset_name_utf8mb3, /* cs name */ - MY_UTF8MB3 "_lithuanian_ci",/* name */ + { charset_name_utf8mb3, charset_name_utf8mb3_length }, /* cs name */ + { STRING_WITH_LEN(MY_UTF8MB3 "_lithuanian_ci") },/* name */ "", /* comment */ lithuanian, /* tailoring */ ctype_utf8mb3, /* ctype */ @@ -35323,8 +35323,8 @@ struct charset_info_st my_charset_utf8mb3_slovak_uca_ci= { 205,0,0, /* number */ MY_CS_UTF8MB3_UCA_FLAGS,/* flags */ - charset_name_utf8mb3, /* cs name */ - MY_UTF8MB3 "_slovak_ci",/* name */ + { charset_name_utf8mb3, charset_name_utf8mb3_length }, /* cs name */ + { STRING_WITH_LEN(MY_UTF8MB3 "_slovak_ci") },/* name */ "", /* comment */ slovak, /* tailoring */ ctype_utf8mb3, /* ctype */ @@ -35355,8 +35355,8 @@ struct charset_info_st my_charset_utf8mb3_spanish2_uca_ci= { 206,0,0, /* number */ MY_CS_UTF8MB3_UCA_FLAGS,/* flags */ - charset_name_utf8mb3, /* cs name */ - MY_UTF8MB3 "_spanish2_ci",/* name */ + { charset_name_utf8mb3, charset_name_utf8mb3_length }, /* cs name */ + { STRING_WITH_LEN(MY_UTF8MB3 "_spanish2_ci") },/* name */ "", /* comment */ spanish2, /* tailoring */ ctype_utf8mb3, /* ctype */ @@ -35387,8 +35387,8 @@ struct charset_info_st my_charset_utf8mb3_roman_uca_ci= { 207,0,0, /* number */ MY_CS_UTF8MB3_UCA_FLAGS,/* flags */ - charset_name_utf8mb3, /* cs name */ - MY_UTF8MB3 "_roman_ci",/* name */ + { charset_name_utf8mb3, charset_name_utf8mb3_length }, /* cs name */ + { STRING_WITH_LEN(MY_UTF8MB3 "_roman_ci") },/* name */ "", /* comment */ roman, /* tailoring */ ctype_utf8mb3, /* ctype */ @@ -35419,8 +35419,8 @@ struct charset_info_st my_charset_utf8mb3_persian_uca_ci= { 208,0,0, /* number */ MY_CS_UTF8MB3_UCA_FLAGS,/* flags */ - charset_name_utf8mb3, /* cs name */ - MY_UTF8MB3 "_persian_ci",/* name */ + { charset_name_utf8mb3, charset_name_utf8mb3_length }, /* cs name */ + { STRING_WITH_LEN(MY_UTF8MB3 "_persian_ci") },/* name */ "", /* comment */ persian, /* tailoring */ ctype_utf8mb3, /* ctype */ @@ -35451,8 +35451,8 @@ struct charset_info_st my_charset_utf8mb3_esperanto_uca_ci= { 209,0,0, /* number */ MY_CS_UTF8MB3_UCA_FLAGS,/* flags */ - charset_name_utf8mb3, /* cs name */ - MY_UTF8MB3 "_esperanto_ci",/* name */ + { charset_name_utf8mb3, charset_name_utf8mb3_length }, /* cs name */ + { STRING_WITH_LEN(MY_UTF8MB3 "_esperanto_ci") },/* name */ "", /* comment */ esperanto, /* tailoring */ ctype_utf8mb3, /* ctype */ @@ -35483,8 +35483,8 @@ struct charset_info_st my_charset_utf8mb3_hungarian_uca_ci= { 210,0,0, /* number */ MY_CS_UTF8MB3_UCA_FLAGS,/* flags */ - charset_name_utf8mb3, /* cs name */ - MY_UTF8MB3 "_hungarian_ci",/* name */ + { charset_name_utf8mb3, charset_name_utf8mb3_length }, /* cs name */ + { STRING_WITH_LEN(MY_UTF8MB3 "_hungarian_ci") },/* name */ "", /* comment */ hungarian, /* tailoring */ ctype_utf8mb3, /* ctype */ @@ -35515,8 +35515,8 @@ struct charset_info_st my_charset_utf8mb3_sinhala_uca_ci= { 211,0,0, /* number */ MY_CS_UTF8MB3_UCA_FLAGS,/* flags */ - charset_name_utf8mb3, /* cs name */ - MY_UTF8MB3 "_sinhala_ci", /* name */ + { charset_name_utf8mb3, charset_name_utf8mb3_length }, /* cs name */ + { STRING_WITH_LEN(MY_UTF8MB3 "_sinhala_ci") }, /* name */ "", /* comment */ sinhala, /* tailoring */ ctype_utf8mb3, /* ctype */ @@ -35548,8 +35548,8 @@ struct charset_info_st my_charset_utf8mb3_german2_uca_ci= { 212,0,0, /* number */ MY_CS_UTF8MB3_UCA_FLAGS,/* flags */ - charset_name_utf8mb3, /* cs name */ - MY_UTF8MB3 "_german2_ci",/* name */ + { charset_name_utf8mb3, charset_name_utf8mb3_length }, /* cs name */ + { STRING_WITH_LEN(MY_UTF8MB3 "_german2_ci") },/* name */ "", /* comment */ german2, /* tailoring */ ctype_utf8mb3, /* ctype */ @@ -35580,8 +35580,8 @@ struct charset_info_st my_charset_utf8mb3_croatian_mysql561_uca_ci= { 213,0,0, /* number */ MY_CS_UTF8MB3_UCA_FLAGS,/* flags */ - charset_name_utf8mb3, /* cs name */ - MY_UTF8MB3 "_croatian_mysql561_ci",/* name */ + { charset_name_utf8mb3, charset_name_utf8mb3_length }, /* cs name */ + { STRING_WITH_LEN(MY_UTF8MB3 "_croatian_mysql561_ci") },/* name */ "", /* comment */ croatian_mysql561, /* tailoring */ ctype_utf8mb3, /* ctype */ @@ -35613,8 +35613,8 @@ struct charset_info_st my_charset_utf8mb3_croatian_uca_ci= { MY_PAGE2_COLLATION_ID_UTF8,0,0, /* number */ MY_CS_UTF8MB3_UCA_FLAGS,/* flags */ - charset_name_utf8mb3, /* cs name */ - MY_UTF8MB3 "_croatian_ci",/* name */ + { charset_name_utf8mb3, charset_name_utf8mb3_length }, /* cs name */ + { STRING_WITH_LEN(MY_UTF8MB3 "_croatian_ci") }, /* name */ "", /* comment */ croatian_mariadb, /* tailoring */ ctype_utf8mb3, /* ctype */ @@ -35646,8 +35646,8 @@ 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 */ - charset_name_utf8mb3, /* cs name */ - MY_UTF8MB3 "_myanmar_ci",/* name */ + { charset_name_utf8mb3, charset_name_utf8mb3_length }, /* cs name */ + { STRING_WITH_LEN(MY_UTF8MB3 "_myanmar_ci") },/* name */ "", /* comment */ myanmar, /* tailoring */ ctype_utf8mb3, /* ctype */ @@ -35679,8 +35679,8 @@ struct charset_info_st my_charset_utf8mb3_unicode_520_ci= { 214,0,0, /* number */ MY_CS_UTF8MB3_UCA_FLAGS,/* flags */ - charset_name_utf8mb3, /* csname */ - MY_UTF8MB3 "_unicode_520_ci",/* name */ + { charset_name_utf8mb3, charset_name_utf8mb3_length }, /* csname */ + { STRING_WITH_LEN(MY_UTF8MB3 "_unicode_520_ci") }, /* name */ "", /* comment */ "", /* tailoring */ ctype_utf8mb3, /* ctype */ @@ -35711,8 +35711,8 @@ 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 */ - charset_name_utf8mb3, /* csname */ - MY_UTF8MB3 "_thai_520_w2",/* name */ + { charset_name_utf8mb3, charset_name_utf8mb3_length }, /* cs name */ + { STRING_WITH_LEN(MY_UTF8MB3 "_thai_520_w2") },/* name */ "", /* comment */ "[strength 2]", /* tailoring */ ctype_utf8mb3, /* ctype */ @@ -35743,8 +35743,8 @@ struct charset_info_st my_charset_utf8mb3_vietnamese_ci= { 215,0,0, /* number */ MY_CS_UTF8MB3_UCA_FLAGS,/* flags */ - charset_name_utf8mb3, /* cs name */ - MY_UTF8MB3 "_vietnamese_ci",/* name */ + { charset_name_utf8mb3, charset_name_utf8mb3_length }, /* cs name */ + { STRING_WITH_LEN(MY_UTF8MB3 "_vietnamese_ci") },/* name */ "", /* comment */ vietnamese, /* tailoring */ ctype_utf8mb3, /* ctype */ @@ -35776,8 +35776,8 @@ struct charset_info_st my_charset_utf8mb3_unicode_nopad_ci= { MY_NOPAD_ID(192),0,0, /* number */ MY_CS_UTF8MB3_UCA_NOPAD_FLAGS, /* flags */ - charset_name_utf8mb3, /* cs name */ - MY_UTF8MB3 "_unicode_nopad_ci",/* name */ + { charset_name_utf8mb3, charset_name_utf8mb3_length }, /* cs name */ + { STRING_WITH_LEN(MY_UTF8MB3 "_unicode_nopad_ci") },/* name */ "", /* comment */ "", /* tailoring */ ctype_utf8mb3, /* ctype */ @@ -35809,8 +35809,8 @@ 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 */ - charset_name_utf8mb3, /* csname */ - MY_UTF8MB3 "_unicode_520_nopad_ci", /* name */ + { charset_name_utf8mb3, charset_name_utf8mb3_length }, /* cs name */ + { STRING_WITH_LEN(MY_UTF8MB3 "_unicode_520_nopad_ci") }, /* name */ "", /* comment */ "", /* tailoring */ ctype_utf8mb3, /* ctype */ @@ -35884,8 +35884,8 @@ struct charset_info_st my_charset_utf8mb4_unicode_ci= { 224,0,0, /* number */ MY_CS_UTF8MB4_UCA_FLAGS,/* state */ - charset_name_utf8mb4, /* csname */ - MY_UTF8MB4 "_unicode_ci",/* name */ + { charset_name_utf8mb4, charset_name_utf8mb4_length }, /* csname */ + { STRING_WITH_LEN(MY_UTF8MB4 "_unicode_ci") },/* name */ "", /* comment */ "", /* tailoring */ ctype_utf8mb3, /* ctype */ @@ -35917,8 +35917,8 @@ struct charset_info_st my_charset_utf8mb4_icelandic_uca_ci= { 225,0,0, /* number */ MY_CS_UTF8MB4_UCA_FLAGS,/* state */ - charset_name_utf8mb4, /* csname */ - MY_UTF8MB4 "_icelandic_ci",/* name */ + { charset_name_utf8mb4, charset_name_utf8mb4_length }, /* csname */ + { STRING_WITH_LEN(MY_UTF8MB4 "_icelandic_ci") },/* name */ "", /* comment */ icelandic, /* tailoring */ ctype_utf8mb3, /* ctype */ @@ -35949,8 +35949,8 @@ struct charset_info_st my_charset_utf8mb4_latvian_uca_ci= { 226,0,0, /* number */ MY_CS_UTF8MB4_UCA_FLAGS,/* state */ - charset_name_utf8mb4, /* csname */ - MY_UTF8MB4 "_latvian_ci", /* name */ + { charset_name_utf8mb4, charset_name_utf8mb4_length }, /* csname */ + { STRING_WITH_LEN(MY_UTF8MB4 "_latvian_ci") }, /* name */ "", /* comment */ latvian, /* tailoring */ ctype_utf8mb3, /* ctype */ @@ -35981,8 +35981,8 @@ struct charset_info_st my_charset_utf8mb4_romanian_uca_ci= { 227,0,0, /* number */ MY_CS_UTF8MB4_UCA_FLAGS,/* state */ - charset_name_utf8mb4, /* csname */ - MY_UTF8MB4 "_romanian_ci", /* name */ + { charset_name_utf8mb4, charset_name_utf8mb4_length }, /* csname */ + { STRING_WITH_LEN(MY_UTF8MB4 "_romanian_ci") }, /* name */ "", /* comment */ romanian, /* tailoring */ ctype_utf8mb3, /* ctype */ @@ -36013,8 +36013,8 @@ struct charset_info_st my_charset_utf8mb4_slovenian_uca_ci= { 228,0,0, /* number */ MY_CS_UTF8MB4_UCA_FLAGS,/* state */ - charset_name_utf8mb4, /* csname */ - MY_UTF8MB4 "_slovenian_ci",/* name */ + { charset_name_utf8mb4, charset_name_utf8mb4_length }, /* csname */ + { STRING_WITH_LEN(MY_UTF8MB4 "_slovenian_ci") },/* name */ "", /* comment */ slovenian, /* tailoring */ ctype_utf8mb3, /* ctype */ @@ -36045,8 +36045,8 @@ struct charset_info_st my_charset_utf8mb4_polish_uca_ci= { 229,0,0, /* number */ MY_CS_UTF8MB4_UCA_FLAGS,/* state */ - charset_name_utf8mb4, /* csname */ - MY_UTF8MB4 "_polish_ci", /* name */ + { charset_name_utf8mb4, charset_name_utf8mb4_length }, /* csname */ + { STRING_WITH_LEN(MY_UTF8MB4 "_polish_ci") }, /* name */ "", /* comment */ polish, /* tailoring */ ctype_utf8mb3, /* ctype */ @@ -36077,8 +36077,8 @@ struct charset_info_st my_charset_utf8mb4_estonian_uca_ci= { 230,0,0, /* number */ MY_CS_UTF8MB4_UCA_FLAGS,/* state */ - charset_name_utf8mb4, /* csname */ - MY_UTF8MB4 "_estonian_ci", /* name */ + { charset_name_utf8mb4, charset_name_utf8mb4_length }, /* csname */ + { STRING_WITH_LEN(MY_UTF8MB4 "_estonian_ci") }, /* name */ "", /* comment */ estonian, /* tailoring */ ctype_utf8mb3, /* ctype */ @@ -36109,8 +36109,8 @@ struct charset_info_st my_charset_utf8mb4_spanish_uca_ci= { 231,0,0, /* number */ MY_CS_UTF8MB4_UCA_FLAGS,/* state */ - charset_name_utf8mb4, /* csname */ - MY_UTF8MB4 "_spanish_ci", /* name */ + { charset_name_utf8mb4, charset_name_utf8mb4_length }, /* csname */ + { STRING_WITH_LEN(MY_UTF8MB4 "_spanish_ci") }, /* name */ "", /* comment */ spanish, /* tailoring */ ctype_utf8mb3, /* ctype */ @@ -36141,8 +36141,8 @@ struct charset_info_st my_charset_utf8mb4_swedish_uca_ci= { 232,0,0, /* number */ MY_CS_UTF8MB4_UCA_FLAGS,/* state */ - charset_name_utf8mb4, /* csname */ - MY_UTF8MB4 "_swedish_ci", /* name */ + { charset_name_utf8mb4, charset_name_utf8mb4_length }, /* csname */ + { STRING_WITH_LEN(MY_UTF8MB4 "_swedish_ci") }, /* name */ "", /* comment */ swedish, /* tailoring */ ctype_utf8mb3, /* ctype */ @@ -36173,8 +36173,8 @@ struct charset_info_st my_charset_utf8mb4_turkish_uca_ci= { 233,0,0, /* number */ MY_CS_UTF8MB4_UCA_FLAGS,/* state */ - charset_name_utf8mb4, /* csname */ - MY_UTF8MB4 "_turkish_ci", /* name */ + { charset_name_utf8mb4, charset_name_utf8mb4_length }, /* csname */ + { STRING_WITH_LEN(MY_UTF8MB4 "_turkish_ci") }, /* name */ "", /* comment */ turkish, /* tailoring */ ctype_utf8mb3, /* ctype */ @@ -36205,8 +36205,8 @@ struct charset_info_st my_charset_utf8mb4_czech_uca_ci= { 234,0,0, /* number */ MY_CS_UTF8MB4_UCA_FLAGS,/* state */ - charset_name_utf8mb4, /* csname */ - MY_UTF8MB4 "_czech_ci", /* name */ + { charset_name_utf8mb4, charset_name_utf8mb4_length }, /* csname */ + { STRING_WITH_LEN(MY_UTF8MB4 "_czech_ci") }, /* name */ "", /* comment */ czech, /* tailoring */ ctype_utf8mb3, /* ctype */ @@ -36238,8 +36238,8 @@ struct charset_info_st my_charset_utf8mb4_danish_uca_ci= { 235,0,0, /* number */ MY_CS_UTF8MB4_UCA_FLAGS,/* state */ - charset_name_utf8mb4, /* csname */ - MY_UTF8MB4 "_danish_ci", /* name */ + { charset_name_utf8mb4, charset_name_utf8mb4_length }, /* csname */ + { STRING_WITH_LEN(MY_UTF8MB4 "_danish_ci") }, /* name */ "", /* comment */ danish, /* tailoring */ ctype_utf8mb3, /* ctype */ @@ -36270,8 +36270,8 @@ struct charset_info_st my_charset_utf8mb4_lithuanian_uca_ci= { 236,0,0, /* number */ MY_CS_UTF8MB4_UCA_FLAGS,/* state */ - charset_name_utf8mb4, /* csname */ - MY_UTF8MB4 "_lithuanian_ci",/* name */ + { charset_name_utf8mb4, charset_name_utf8mb4_length }, /* csname */ + { STRING_WITH_LEN(MY_UTF8MB4 "_lithuanian_ci") },/* name */ "", /* comment */ lithuanian, /* tailoring */ ctype_utf8mb3, /* ctype */ @@ -36302,8 +36302,8 @@ struct charset_info_st my_charset_utf8mb4_slovak_uca_ci= { 237,0,0, /* number */ MY_CS_UTF8MB4_UCA_FLAGS,/* state */ - charset_name_utf8mb4, /* csname */ - MY_UTF8MB4 "_slovak_ci", /* name */ + { charset_name_utf8mb4, charset_name_utf8mb4_length }, /* csname */ + { STRING_WITH_LEN(MY_UTF8MB4 "_slovak_ci") }, /* name */ "", /* comment */ slovak, /* tailoring */ ctype_utf8mb3, /* ctype */ @@ -36334,8 +36334,8 @@ struct charset_info_st my_charset_utf8mb4_spanish2_uca_ci= { 238,0,0, /* number */ MY_CS_UTF8MB4_UCA_FLAGS,/* state */ - charset_name_utf8mb4, /* csname */ - MY_UTF8MB4 "_spanish2_ci", /* name */ + { charset_name_utf8mb4, charset_name_utf8mb4_length }, /* csname */ + { STRING_WITH_LEN(MY_UTF8MB4 "_spanish2_ci") }, /* name */ "", /* comment */ spanish2, /* tailoring */ ctype_utf8mb3, /* ctype */ @@ -36366,8 +36366,8 @@ struct charset_info_st my_charset_utf8mb4_roman_uca_ci= { 239,0,0, /* number */ MY_CS_UTF8MB4_UCA_FLAGS,/* state */ - charset_name_utf8mb4, /* csname */ - MY_UTF8MB4 "_roman_ci", /* name */ + { charset_name_utf8mb4, charset_name_utf8mb4_length }, /* csname */ + { STRING_WITH_LEN(MY_UTF8MB4 "_roman_ci") }, /* name */ "", /* comment */ roman, /* tailoring */ ctype_utf8mb3, /* ctype */ @@ -36398,8 +36398,8 @@ struct charset_info_st my_charset_utf8mb4_persian_uca_ci= { 240,0,0, /* number */ MY_CS_UTF8MB4_UCA_FLAGS,/* state */ - charset_name_utf8mb4, /* csname */ - MY_UTF8MB4 "_persian_ci", /* name */ + { charset_name_utf8mb4, charset_name_utf8mb4_length }, /* csname */ + { STRING_WITH_LEN(MY_UTF8MB4 "_persian_ci") }, /* name */ "", /* comment */ persian, /* tailoring */ ctype_utf8mb3, /* ctype */ @@ -36430,8 +36430,8 @@ struct charset_info_st my_charset_utf8mb4_esperanto_uca_ci= { 241,0,0, /* number */ MY_CS_UTF8MB4_UCA_FLAGS,/* state */ - charset_name_utf8mb4, /* csname */ - MY_UTF8MB4 "_esperanto_ci",/* name */ + { charset_name_utf8mb4, charset_name_utf8mb4_length }, /* csname */ + { STRING_WITH_LEN(MY_UTF8MB4 "_esperanto_ci") },/* name */ "", /* comment */ esperanto, /* tailoring */ ctype_utf8mb3, /* ctype */ @@ -36462,8 +36462,8 @@ struct charset_info_st my_charset_utf8mb4_hungarian_uca_ci= { 242,0,0, /* number */ MY_CS_UTF8MB4_UCA_FLAGS,/* state */ - charset_name_utf8mb4, /* csname */ - MY_UTF8MB4 "_hungarian_ci",/* name */ + { charset_name_utf8mb4, charset_name_utf8mb4_length }, /* csname */ + { STRING_WITH_LEN(MY_UTF8MB4 "_hungarian_ci") },/* name */ "", /* comment */ hungarian, /* tailoring */ ctype_utf8mb3, /* ctype */ @@ -36494,8 +36494,8 @@ struct charset_info_st my_charset_utf8mb4_sinhala_uca_ci= { 243,0,0, /* number */ MY_CS_UTF8MB4_UCA_FLAGS,/* state */ - charset_name_utf8mb4, /* csname */ - MY_UTF8MB4 "_sinhala_ci",/* name */ + { charset_name_utf8mb4, charset_name_utf8mb4_length }, /* csname */ + { STRING_WITH_LEN(MY_UTF8MB4 "_sinhala_ci") },/* name */ "", /* comment */ sinhala, /* tailoring */ ctype_utf8mb3, /* ctype */ @@ -36526,8 +36526,8 @@ struct charset_info_st my_charset_utf8mb4_german2_uca_ci= { 244,0,0, /* number */ MY_CS_UTF8MB4_UCA_FLAGS,/* state */ - charset_name_utf8mb4, /* csname */ - MY_UTF8MB4 "_german2_ci",/* name */ + { charset_name_utf8mb4, charset_name_utf8mb4_length }, /* csname */ + { STRING_WITH_LEN(MY_UTF8MB4 "_german2_ci") },/* name */ "", /* comment */ german2, /* tailoring */ ctype_utf8mb3, /* ctype */ @@ -36558,8 +36558,8 @@ struct charset_info_st my_charset_utf8mb4_croatian_mysql561_uca_ci= { 245,0,0, /* number */ MY_CS_UTF8MB4_UCA_FLAGS,/* state */ - charset_name_utf8mb4, /* csname */ - MY_UTF8MB4 "_croatian_mysql561_ci",/* name */ + { charset_name_utf8mb4, charset_name_utf8mb4_length }, /* csname */ + { STRING_WITH_LEN(MY_UTF8MB4 "_croatian_mysql561_ci") },/* name */ "", /* comment */ croatian_mysql561, /* tailoring */ ctype_utf8mb3, /* ctype */ @@ -36591,8 +36591,8 @@ struct charset_info_st my_charset_utf8mb4_croatian_uca_ci= { MY_PAGE2_COLLATION_ID_UTF8MB4,0,0, /* number */ MY_CS_UTF8MB4_UCA_FLAGS,/* state */ - charset_name_utf8mb4, /* csname */ - MY_UTF8MB4 "_croatian_ci",/* name */ + { charset_name_utf8mb4, charset_name_utf8mb4_length }, /* csname */ + { STRING_WITH_LEN(MY_UTF8MB4 "_croatian_ci") },/* name */ "", /* comment */ croatian_mariadb, /* tailoring */ ctype_utf8mb3, /* ctype */ @@ -36624,8 +36624,8 @@ 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 */ - charset_name_utf8mb4, /* csname */ - MY_UTF8MB4 "_myanmar_ci",/* name */ + { charset_name_utf8mb4, charset_name_utf8mb4_length }, /* csname */ + { STRING_WITH_LEN(MY_UTF8MB4 "_myanmar_ci") },/* name */ "", /* comment */ myanmar, /* tailoring */ ctype_utf8mb3, /* ctype */ @@ -36656,8 +36656,8 @@ 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 */ - charset_name_utf8mb4, /* csname */ - MY_UTF8MB4 "_thai_520_w2", /* name */ + { charset_name_utf8mb4, charset_name_utf8mb4_length }, /* csname */ + { STRING_WITH_LEN(MY_UTF8MB4 "_thai_520_w2") }, /* name */ "", /* comment */ "[strength 2]", /* tailoring */ ctype_utf8mb3, /* ctype */ @@ -36688,8 +36688,8 @@ struct charset_info_st my_charset_utf8mb4_unicode_520_ci= { 246,0,0, /* number */ MY_CS_UTF8MB4_UCA_FLAGS,/* flags */ - charset_name_utf8mb4, /* csname */ - MY_UTF8MB4 "_unicode_520_ci",/* name */ + { charset_name_utf8mb4, charset_name_utf8mb4_length }, /* csname */ + { STRING_WITH_LEN(MY_UTF8MB4 "_unicode_520_ci") },/* name */ "", /* comment */ "", /* tailoring */ ctype_utf8mb3, /* ctype */ @@ -36721,8 +36721,8 @@ struct charset_info_st my_charset_utf8mb4_vietnamese_ci= { 247,0,0, /* number */ MY_CS_UTF8MB4_UCA_FLAGS,/* state */ - charset_name_utf8mb4, /* csname */ - MY_UTF8MB4 "_vietnamese_ci",/* name */ + { charset_name_utf8mb4, charset_name_utf8mb4_length }, /* csname */ + { STRING_WITH_LEN(MY_UTF8MB4 "_vietnamese_ci") },/* name */ "", /* comment */ vietnamese, /* tailoring */ ctype_utf8mb3, /* ctype */ @@ -36754,8 +36754,8 @@ struct charset_info_st my_charset_utf8mb4_unicode_nopad_ci= { MY_NOPAD_ID(224),0,0, /* number */ MY_CS_UTF8MB4_UCA_NOPAD_FLAGS, /* state */ - charset_name_utf8mb4, /* csname */ - MY_UTF8MB4 "_unicode_nopad_ci", /* name */ + { charset_name_utf8mb4, charset_name_utf8mb4_length }, /* csname */ + { STRING_WITH_LEN(MY_UTF8MB4 "_unicode_nopad_ci") }, /* name */ "", /* comment */ "", /* tailoring */ ctype_utf8mb3, /* ctype */ @@ -36787,8 +36787,8 @@ 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 */ - charset_name_utf8mb4, /* csname */ - MY_UTF8MB4 "_unicode_520_nopad_ci", /* name */ + { charset_name_utf8mb4, charset_name_utf8mb4_length }, /* csname */ + { STRING_WITH_LEN(MY_UTF8MB4 "_unicode_520_nopad_ci") }, /* name */ "", /* comment */ "", /* tailoring */ ctype_utf8mb3, /* ctype */ @@ -36839,8 +36839,8 @@ struct charset_info_st my_charset_utf32_unicode_ci= { 160,0,0, /* number */ MY_CS_UTF32_UCA_FLAGS,/* state */ - charset_name_utf32, /* csname */ - "utf32_unicode_ci", /* name */ + { charset_name_utf32, charset_name_utf32_length }, /* csname */ + { STRING_WITH_LEN("utf32_unicode_ci") }, /* name */ "", /* comment */ "", /* tailoring */ NULL, /* ctype */ @@ -36872,8 +36872,8 @@ struct charset_info_st my_charset_utf32_icelandic_uca_ci= { 161,0,0, /* number */ MY_CS_UTF32_UCA_FLAGS,/* state */ - charset_name_utf32, /* csname */ - "utf32_icelandic_ci",/* name */ + { charset_name_utf32, charset_name_utf32_length }, /* csname */ + { STRING_WITH_LEN("utf32_icelandic_ci") },/* name */ "", /* comment */ icelandic, /* tailoring */ NULL, /* ctype */ @@ -36904,8 +36904,8 @@ struct charset_info_st my_charset_utf32_latvian_uca_ci= { 162,0,0, /* number */ MY_CS_UTF32_UCA_FLAGS,/* state */ - charset_name_utf32, /* csname */ - "utf32_latvian_ci", /* name */ + { charset_name_utf32, charset_name_utf32_length }, /* csname */ + { STRING_WITH_LEN("utf32_latvian_ci") }, /* name */ "", /* comment */ latvian, /* tailoring */ NULL, /* ctype */ @@ -36936,8 +36936,8 @@ struct charset_info_st my_charset_utf32_romanian_uca_ci= { 163,0,0, /* number */ MY_CS_UTF32_UCA_FLAGS,/* state */ - charset_name_utf32, /* csname */ - "utf32_romanian_ci", /* name */ + { charset_name_utf32, charset_name_utf32_length }, /* csname */ + { STRING_WITH_LEN("utf32_romanian_ci") }, /* name */ "", /* comment */ romanian, /* tailoring */ NULL, /* ctype */ @@ -36968,8 +36968,8 @@ struct charset_info_st my_charset_utf32_slovenian_uca_ci= { 164,0,0, /* number */ MY_CS_UTF32_UCA_FLAGS,/* state */ - charset_name_utf32, /* csname */ - "utf32_slovenian_ci",/* name */ + { charset_name_utf32, charset_name_utf32_length }, /* csname */ + { STRING_WITH_LEN("utf32_slovenian_ci") },/* name */ "", /* comment */ slovenian, /* tailoring */ NULL, /* ctype */ @@ -37000,8 +37000,8 @@ struct charset_info_st my_charset_utf32_polish_uca_ci= { 165,0,0, /* number */ MY_CS_UTF32_UCA_FLAGS,/* state */ - charset_name_utf32, /* csname */ - "utf32_polish_ci", /* name */ + { charset_name_utf32, charset_name_utf32_length }, /* csname */ + { STRING_WITH_LEN("utf32_polish_ci") }, /* name */ "", /* comment */ polish, /* tailoring */ NULL, /* ctype */ @@ -37032,8 +37032,8 @@ struct charset_info_st my_charset_utf32_estonian_uca_ci= { 166,0,0, /* number */ MY_CS_UTF32_UCA_FLAGS,/* state */ - charset_name_utf32, /* csname */ - "utf32_estonian_ci", /* name */ + { charset_name_utf32, charset_name_utf32_length }, /* csname */ + { STRING_WITH_LEN("utf32_estonian_ci") }, /* name */ "", /* comment */ estonian, /* tailoring */ NULL, /* ctype */ @@ -37064,8 +37064,8 @@ struct charset_info_st my_charset_utf32_spanish_uca_ci= { 167,0,0, /* number */ MY_CS_UTF32_UCA_FLAGS,/* state */ - charset_name_utf32, /* csname */ - "utf32_spanish_ci", /* name */ + { charset_name_utf32, charset_name_utf32_length }, /* csname */ + { STRING_WITH_LEN("utf32_spanish_ci") }, /* name */ "", /* comment */ spanish, /* tailoring */ NULL, /* ctype */ @@ -37096,8 +37096,8 @@ struct charset_info_st my_charset_utf32_swedish_uca_ci= { 168,0,0, /* number */ MY_CS_UTF32_UCA_FLAGS,/* state */ - charset_name_utf32, /* csname */ - "utf32_swedish_ci", /* name */ + { charset_name_utf32, charset_name_utf32_length }, /* csname */ + { STRING_WITH_LEN("utf32_swedish_ci") }, /* name */ "", /* comment */ swedish, /* tailoring */ NULL, /* ctype */ @@ -37128,8 +37128,8 @@ struct charset_info_st my_charset_utf32_turkish_uca_ci= { 169,0,0, /* number */ MY_CS_UTF32_UCA_FLAGS,/* state */ - charset_name_utf32, /* csname */ - "utf32_turkish_ci", /* name */ + { charset_name_utf32, charset_name_utf32_length }, /* csname */ + { STRING_WITH_LEN("utf32_turkish_ci") }, /* name */ "", /* comment */ turkish, /* tailoring */ NULL, /* ctype */ @@ -37160,8 +37160,8 @@ struct charset_info_st my_charset_utf32_czech_uca_ci= { 170,0,0, /* number */ MY_CS_UTF32_UCA_FLAGS,/* state */ - charset_name_utf32, /* csname */ - "utf32_czech_ci", /* name */ + { charset_name_utf32, charset_name_utf32_length }, /* csname */ + { STRING_WITH_LEN("utf32_czech_ci") }, /* name */ "", /* comment */ czech, /* tailoring */ NULL, /* ctype */ @@ -37193,8 +37193,8 @@ struct charset_info_st my_charset_utf32_danish_uca_ci= { 171,0,0, /* number */ MY_CS_UTF32_UCA_FLAGS,/* state */ - charset_name_utf32, /* csname */ - "utf32_danish_ci", /* name */ + { charset_name_utf32, charset_name_utf32_length }, /* csname */ + { STRING_WITH_LEN("utf32_danish_ci") }, /* name */ "", /* comment */ danish, /* tailoring */ NULL, /* ctype */ @@ -37225,8 +37225,8 @@ struct charset_info_st my_charset_utf32_lithuanian_uca_ci= { 172,0,0, /* number */ MY_CS_UTF32_UCA_FLAGS,/* state */ - charset_name_utf32, /* csname */ - "utf32_lithuanian_ci",/* name */ + { charset_name_utf32, charset_name_utf32_length }, /* csname */ + { STRING_WITH_LEN("utf32_lithuanian_ci") },/* name */ "", /* comment */ lithuanian, /* tailoring */ NULL, /* ctype */ @@ -37257,8 +37257,8 @@ struct charset_info_st my_charset_utf32_slovak_uca_ci= { 173,0,0, /* number */ MY_CS_UTF32_UCA_FLAGS,/* state */ - charset_name_utf32, /* csname */ - "utf32_slovak_ci", /* name */ + { charset_name_utf32, charset_name_utf32_length }, /* csname */ + { STRING_WITH_LEN("utf32_slovak_ci") }, /* name */ "", /* comment */ slovak, /* tailoring */ NULL, /* ctype */ @@ -37289,8 +37289,8 @@ struct charset_info_st my_charset_utf32_spanish2_uca_ci= { 174,0,0, /* number */ MY_CS_UTF32_UCA_FLAGS,/* state */ - charset_name_utf32, /* csname */ - "utf32_spanish2_ci", /* name */ + { charset_name_utf32, charset_name_utf32_length }, /* csname */ + { STRING_WITH_LEN("utf32_spanish2_ci") }, /* name */ "", /* comment */ spanish2, /* tailoring */ NULL, /* ctype */ @@ -37321,8 +37321,8 @@ struct charset_info_st my_charset_utf32_roman_uca_ci= { 175,0,0, /* number */ MY_CS_UTF32_UCA_FLAGS,/* state */ - charset_name_utf32, /* csname */ - "utf32_roman_ci", /* name */ + { charset_name_utf32, charset_name_utf32_length }, /* csname */ + { STRING_WITH_LEN("utf32_roman_ci") }, /* name */ "", /* comment */ roman, /* tailoring */ NULL, /* ctype */ @@ -37353,8 +37353,8 @@ struct charset_info_st my_charset_utf32_persian_uca_ci= { 176,0,0, /* number */ MY_CS_UTF32_UCA_FLAGS,/* state */ - charset_name_utf32, /* csname */ - "utf32_persian_ci", /* name */ + { charset_name_utf32, charset_name_utf32_length }, /* csname */ + { STRING_WITH_LEN("utf32_persian_ci") }, /* name */ "", /* comment */ persian, /* tailoring */ NULL, /* ctype */ @@ -37385,8 +37385,8 @@ struct charset_info_st my_charset_utf32_esperanto_uca_ci= { 177,0,0, /* number */ MY_CS_UTF32_UCA_FLAGS,/* state */ - charset_name_utf32, /* csname */ - "utf32_esperanto_ci",/* name */ + { charset_name_utf32, charset_name_utf32_length }, /* csname */ + { STRING_WITH_LEN("utf32_esperanto_ci") },/* name */ "", /* comment */ esperanto, /* tailoring */ NULL, /* ctype */ @@ -37417,8 +37417,8 @@ struct charset_info_st my_charset_utf32_hungarian_uca_ci= { 178,0,0, /* number */ MY_CS_UTF32_UCA_FLAGS,/* state */ - charset_name_utf32, /* csname */ - "utf32_hungarian_ci",/* name */ + { charset_name_utf32, charset_name_utf32_length }, /* csname */ + { STRING_WITH_LEN("utf32_hungarian_ci") },/* name */ "", /* comment */ hungarian, /* tailoring */ NULL, /* ctype */ @@ -37449,8 +37449,8 @@ struct charset_info_st my_charset_utf32_sinhala_uca_ci= { 179,0,0, /* number */ MY_CS_UTF32_UCA_FLAGS,/* state */ - charset_name_utf32, /* csname */ - "utf32_sinhala_ci", /* name */ + { charset_name_utf32, charset_name_utf32_length }, /* csname */ + { STRING_WITH_LEN("utf32_sinhala_ci") }, /* name */ "", /* comment */ sinhala, /* tailoring */ NULL, /* ctype */ @@ -37481,8 +37481,8 @@ struct charset_info_st my_charset_utf32_german2_uca_ci= { 180,0,0, /* number */ MY_CS_UTF32_UCA_FLAGS,/* state */ - charset_name_utf32, /* csname */ - "utf32_german2_ci", /* name */ + { charset_name_utf32, charset_name_utf32_length }, /* csname */ + { STRING_WITH_LEN("utf32_german2_ci") }, /* name */ "", /* comment */ german2, /* tailoring */ NULL, /* ctype */ @@ -37513,8 +37513,8 @@ struct charset_info_st my_charset_utf32_croatian_mysql561_uca_ci= { 181,0,0, /* number */ MY_CS_UTF32_UCA_FLAGS,/* state */ - charset_name_utf32, /* csname */ - "utf32_croatian_mysql561_ci", /* name */ + { charset_name_utf32, charset_name_utf32_length }, /* csname */ + { STRING_WITH_LEN("utf32_croatian_mysql561_ci") }, /* name */ "", /* comment */ croatian_mysql561, /* tailoring */ NULL, /* ctype */ @@ -37545,8 +37545,8 @@ struct charset_info_st my_charset_utf32_croatian_uca_ci= { MY_PAGE2_COLLATION_ID_UTF32,0,0, /* number */ MY_CS_UTF32_UCA_FLAGS,/* state */ - charset_name_utf32, /* csname */ - "utf32_croatian_ci", /* name */ + { charset_name_utf32, charset_name_utf32_length }, /* csname */ + { STRING_WITH_LEN("utf32_croatian_ci") }, /* name */ "", /* comment */ croatian_mariadb, /* tailoring */ NULL, /* ctype */ @@ -37578,8 +37578,8 @@ 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 */ - charset_name_utf32, /* csname */ - "utf32_myanmar_ci", /* name */ + { charset_name_utf32, charset_name_utf32_length }, /* csname */ + { STRING_WITH_LEN("utf32_myanmar_ci") }, /* name */ "", /* comment */ myanmar, /* tailoring */ NULL, /* ctype */ @@ -37611,8 +37611,8 @@ 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 */ - charset_name_utf32, /* csname */ - "utf32_thai_520_w2",/* name */ + { charset_name_utf32, charset_name_utf32_length }, /* csname */ + { STRING_WITH_LEN("utf32_thai_520_w2") },/* name */ "", /* comment */ "[strength 2]", /* tailoring */ NULL, /* ctype */ @@ -37644,8 +37644,8 @@ struct charset_info_st my_charset_utf32_unicode_520_ci= { 182,0,0, /* number */ MY_CS_UTF32_UCA_FLAGS,/* stat e */ - charset_name_utf32, /* csname */ - "utf32_unicode_520_ci",/* name */ + { charset_name_utf32, charset_name_utf32_length }, /* csname */ + { STRING_WITH_LEN("utf32_unicode_520_ci") },/* name */ "", /* comment */ "", /* tailoring */ NULL, /* ctype */ @@ -37677,8 +37677,8 @@ struct charset_info_st my_charset_utf32_vietnamese_ci= { 183,0,0, /* number */ MY_CS_UTF32_UCA_FLAGS,/* state */ - charset_name_utf32, /* csname */ - "utf32_vietnamese_ci",/* name */ + { charset_name_utf32, charset_name_utf32_length }, /* csname */ + { STRING_WITH_LEN("utf32_vietnamese_ci") },/* name */ "", /* comment */ vietnamese, /* tailoring */ NULL, /* ctype */ @@ -37710,8 +37710,8 @@ struct charset_info_st my_charset_utf32_unicode_nopad_ci= { MY_NOPAD_ID(160),0,0, /* number */ MY_CS_UTF32_UCA_NOPAD_FLAGS, /* state */ - charset_name_utf32, /* csname */ - "utf32_unicode_nopad_ci", /* name */ + { charset_name_utf32, charset_name_utf32_length }, /* csname */ + { STRING_WITH_LEN("utf32_unicode_nopad_ci") }, /* name */ "", /* comment */ "", /* tailoring */ NULL, /* ctype */ @@ -37743,8 +37743,8 @@ 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 */ - charset_name_utf32, /* csname */ - "utf32_unicode_520_nopad_ci",/* name */ + { charset_name_utf32, charset_name_utf32_length }, /* csname */ + { STRING_WITH_LEN("utf32_unicode_520_nopad_ci") },/* name */ "", /* comment */ "", /* tailoring */ NULL, /* ctype */ @@ -37796,8 +37796,8 @@ struct charset_info_st my_charset_utf16_unicode_ci= { 101,0,0, /* number */ MY_CS_UTF16_UCA_FLAGS,/* state */ - charset_name_utf16, /* csname */ - "utf16_unicode_ci", /* name */ + { charset_name_utf16, charset_name_utf16_length }, /* csname */ + { STRING_WITH_LEN("utf16_unicode_ci") }, /* name */ "", /* comment */ "", /* tailoring */ NULL, /* ctype */ @@ -37829,8 +37829,8 @@ struct charset_info_st my_charset_utf16_icelandic_uca_ci= { 102,0,0, /* number */ MY_CS_UTF16_UCA_FLAGS,/* state */ - charset_name_utf16, /* csname */ - "utf16_icelandic_ci",/* name */ + { charset_name_utf16, charset_name_utf16_length }, /* csname */ + { STRING_WITH_LEN("utf16_icelandic_ci") },/* name */ "", /* comment */ icelandic, /* tailoring */ NULL, /* ctype */ @@ -37861,8 +37861,8 @@ struct charset_info_st my_charset_utf16_latvian_uca_ci= { 103,0,0, /* number */ MY_CS_UTF16_UCA_FLAGS,/* state */ - charset_name_utf16, /* cs name */ - "utf16_latvian_ci", /* name */ + { charset_name_utf16, charset_name_utf16_length }, /* csname */ + { STRING_WITH_LEN("utf16_latvian_ci") }, /* name */ "", /* comment */ latvian, /* tailoring */ NULL, /* ctype */ @@ -37893,8 +37893,8 @@ struct charset_info_st my_charset_utf16_romanian_uca_ci= { 104,0,0, /* number */ MY_CS_UTF16_UCA_FLAGS,/* state */ - charset_name_utf16, /* cs name */ - "utf16_romanian_ci", /* name */ + { charset_name_utf16, charset_name_utf16_length }, /* csname */ + { STRING_WITH_LEN("utf16_romanian_ci") }, /* name */ "", /* comment */ romanian, /* tailoring */ NULL, /* ctype */ @@ -37925,8 +37925,8 @@ struct charset_info_st my_charset_utf16_slovenian_uca_ci= { 105,0,0, /* number */ MY_CS_UTF16_UCA_FLAGS,/* state */ - charset_name_utf16, /* cs name */ - "utf16_slovenian_ci",/* name */ + { charset_name_utf16, charset_name_utf16_length }, /* csname */ + { STRING_WITH_LEN("utf16_slovenian_ci") },/* name */ "", /* comment */ slovenian, /* tailoring */ NULL, /* ctype */ @@ -37957,8 +37957,8 @@ struct charset_info_st my_charset_utf16_polish_uca_ci= { 106,0,0, /* number */ MY_CS_UTF16_UCA_FLAGS,/* state */ - charset_name_utf16, /* cs name */ - "utf16_polish_ci", /* name */ + { charset_name_utf16, charset_name_utf16_length }, /* csname */ + { STRING_WITH_LEN("utf16_polish_ci") }, /* name */ "", /* comment */ polish, /* tailoring */ NULL, /* ctype */ @@ -37989,8 +37989,8 @@ struct charset_info_st my_charset_utf16_estonian_uca_ci= { 107,0,0, /* number */ MY_CS_UTF16_UCA_FLAGS,/* state */ - charset_name_utf16, /* cs name */ - "utf16_estonian_ci", /* name */ + { charset_name_utf16, charset_name_utf16_length }, /* csname */ + { STRING_WITH_LEN("utf16_estonian_ci") }, /* name */ "", /* comment */ estonian, /* tailoring */ NULL, /* ctype */ @@ -38021,8 +38021,8 @@ struct charset_info_st my_charset_utf16_spanish_uca_ci= { 108,0,0, /* number */ MY_CS_UTF16_UCA_FLAGS,/* state */ - charset_name_utf16, /* cs name */ - "utf16_spanish_ci", /* name */ + { charset_name_utf16, charset_name_utf16_length }, /* csname */ + { STRING_WITH_LEN("utf16_spanish_ci") }, /* name */ "", /* comment */ spanish, /* tailoring */ NULL, /* ctype */ @@ -38053,8 +38053,8 @@ struct charset_info_st my_charset_utf16_swedish_uca_ci= { 109,0,0, /* number */ MY_CS_UTF16_UCA_FLAGS,/* state */ - charset_name_utf16, /* cs name */ - "utf16_swedish_ci", /* name */ + { charset_name_utf16, charset_name_utf16_length }, /* csname */ + { STRING_WITH_LEN("utf16_swedish_ci") }, /* name */ "", /* comment */ swedish, /* tailoring */ NULL, /* ctype */ @@ -38085,8 +38085,8 @@ struct charset_info_st my_charset_utf16_turkish_uca_ci= { 110,0,0, /* number */ MY_CS_UTF16_UCA_FLAGS,/* state */ - charset_name_utf16, /* cs name */ - "utf16_turkish_ci", /* name */ + { charset_name_utf16, charset_name_utf16_length }, /* csname */ + { STRING_WITH_LEN("utf16_turkish_ci") }, /* name */ "", /* comment */ turkish, /* tailoring */ NULL, /* ctype */ @@ -38117,8 +38117,8 @@ struct charset_info_st my_charset_utf16_czech_uca_ci= { 111,0,0, /* number */ MY_CS_UTF16_UCA_FLAGS,/* state */ - charset_name_utf16, /* cs name */ - "utf16_czech_ci", /* name */ + { charset_name_utf16, charset_name_utf16_length }, /* csname */ + { STRING_WITH_LEN("utf16_czech_ci") }, /* name */ "", /* comment */ czech, /* tailoring */ NULL, /* ctype */ @@ -38150,8 +38150,8 @@ struct charset_info_st my_charset_utf16_danish_uca_ci= { 112,0,0, /* number */ MY_CS_UTF16_UCA_FLAGS,/* state */ - charset_name_utf16, /* cs name */ - "utf16_danish_ci", /* name */ + { charset_name_utf16, charset_name_utf16_length }, /* csname */ + { STRING_WITH_LEN("utf16_danish_ci") }, /* name */ "", /* comment */ danish, /* tailoring */ NULL, /* ctype */ @@ -38182,8 +38182,8 @@ struct charset_info_st my_charset_utf16_lithuanian_uca_ci= { 113,0,0, /* number */ MY_CS_UTF16_UCA_FLAGS,/* state */ - charset_name_utf16, /* cs name */ - "utf16_lithuanian_ci",/* name */ + { charset_name_utf16, charset_name_utf16_length }, /* csname */ + { STRING_WITH_LEN("utf16_lithuanian_ci") },/* name */ "", /* comment */ lithuanian, /* tailoring */ NULL, /* ctype */ @@ -38214,8 +38214,8 @@ struct charset_info_st my_charset_utf16_slovak_uca_ci= { 114,0,0, /* number */ MY_CS_UTF16_UCA_FLAGS,/* state */ - charset_name_utf16, /* cs name */ - "utf16_slovak_ci", /* name */ + { charset_name_utf16, charset_name_utf16_length }, /* csname */ + { STRING_WITH_LEN("utf16_slovak_ci") }, /* name */ "", /* comment */ slovak, /* tailoring */ NULL, /* ctype */ @@ -38246,8 +38246,8 @@ struct charset_info_st my_charset_utf16_spanish2_uca_ci= { 115,0,0, /* number */ MY_CS_UTF16_UCA_FLAGS,/* state */ - charset_name_utf16, /* cs name */ - "utf16_spanish2_ci",/* name */ + { charset_name_utf16, charset_name_utf16_length }, /* csname */ + { STRING_WITH_LEN("utf16_spanish2_ci") },/* name */ "", /* comment */ spanish2, /* tailoring */ NULL, /* ctype */ @@ -38278,8 +38278,8 @@ struct charset_info_st my_charset_utf16_roman_uca_ci= { 116,0,0, /* number */ MY_CS_UTF16_UCA_FLAGS,/* state */ - charset_name_utf16, /* cs name */ - "utf16_roman_ci", /* name */ + { charset_name_utf16, charset_name_utf16_length }, /* csname */ + { STRING_WITH_LEN("utf16_roman_ci") }, /* name */ "", /* comment */ roman, /* tailoring */ NULL, /* ctype */ @@ -38310,8 +38310,8 @@ struct charset_info_st my_charset_utf16_persian_uca_ci= { 117,0,0, /* number */ MY_CS_UTF16_UCA_FLAGS,/* state */ - charset_name_utf16, /* cs name */ - "utf16_persian_ci", /* name */ + { charset_name_utf16, charset_name_utf16_length }, /* csname */ + { STRING_WITH_LEN("utf16_persian_ci") }, /* name */ "", /* comment */ persian, /* tailoring */ NULL, /* ctype */ @@ -38342,8 +38342,8 @@ struct charset_info_st my_charset_utf16_esperanto_uca_ci= { 118,0,0, /* number */ MY_CS_UTF16_UCA_FLAGS,/* state */ - charset_name_utf16, /* cs name */ - "utf16_esperanto_ci",/* name */ + { charset_name_utf16, charset_name_utf16_length }, /* csname */ + { STRING_WITH_LEN("utf16_esperanto_ci") },/* name */ "", /* comment */ esperanto, /* tailoring */ NULL, /* ctype */ @@ -38374,8 +38374,8 @@ struct charset_info_st my_charset_utf16_hungarian_uca_ci= { 119,0,0, /* number */ MY_CS_UTF16_UCA_FLAGS,/* state */ - charset_name_utf16, /* cs name */ - "utf16_hungarian_ci",/* name */ + { charset_name_utf16, charset_name_utf16_length }, /* csname */ + { STRING_WITH_LEN("utf16_hungarian_ci") },/* name */ "", /* comment */ hungarian, /* tailoring */ NULL, /* ctype */ @@ -38406,8 +38406,8 @@ struct charset_info_st my_charset_utf16_sinhala_uca_ci= { 120,0,0, /* number */ MY_CS_UTF16_UCA_FLAGS,/* state */ - charset_name_utf16, /* cs name */ - "utf16_sinhala_ci",/* name */ + { charset_name_utf16, charset_name_utf16_length }, /* csname */ + { STRING_WITH_LEN("utf16_sinhala_ci") },/* name */ "", /* comment */ sinhala, /* tailoring */ NULL, /* ctype */ @@ -38438,8 +38438,8 @@ struct charset_info_st my_charset_utf16_german2_uca_ci= { 121,0,0, /* number */ MY_CS_UTF16_UCA_FLAGS,/* state */ - charset_name_utf16, /* cs name */ - "utf16_german2_ci",/* name */ + { charset_name_utf16, charset_name_utf16_length }, /* csname */ + { STRING_WITH_LEN("utf16_german2_ci") },/* name */ "", /* comment */ german2, /* tailoring */ NULL, /* ctype */ @@ -38471,8 +38471,8 @@ struct charset_info_st my_charset_utf16_croatian_mysql561_uca_ci= { 122,0,0, /* number */ MY_CS_UTF16_UCA_FLAGS,/* state */ - charset_name_utf16, /* cs name */ - "utf16_croatian_mysql561_ci",/* name */ + { charset_name_utf16, charset_name_utf16_length }, /* csname */ + { STRING_WITH_LEN("utf16_croatian_mysql561_ci") },/* name */ "", /* comment */ croatian_mysql561, /* tailoring */ NULL, /* ctype */ @@ -38504,8 +38504,8 @@ struct charset_info_st my_charset_utf16_croatian_uca_ci= { MY_PAGE2_COLLATION_ID_UTF16,0,0, /* number */ MY_CS_UTF16_UCA_FLAGS,/* state */ - charset_name_utf16, /* cs name */ - "utf16_croatian_ci",/* name */ + { charset_name_utf16, charset_name_utf16_length }, /* csname */ + { STRING_WITH_LEN("utf16_croatian_ci") },/* name */ "", /* comment */ croatian_mariadb, /* tailoring */ NULL, /* ctype */ @@ -38537,8 +38537,8 @@ 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 */ - charset_name_utf16, /* cs name */ - "utf16_myanmar_ci",/* name */ + { charset_name_utf16, charset_name_utf16_length }, /* csname */ + { STRING_WITH_LEN("utf16_myanmar_ci") },/* name */ "", /* comment */ myanmar, /* tailoring */ NULL, /* ctype */ @@ -38570,8 +38570,8 @@ 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 */ - charset_name_utf16, /* cs name */ - "utf16_thai_520_w2",/* name */ + { charset_name_utf16, charset_name_utf16_length }, /* csname */ + { STRING_WITH_LEN("utf16_thai_520_w2") },/* name */ "", /* comment */ "[strength 2]", /* tailoring */ NULL, /* ctype */ @@ -38603,8 +38603,8 @@ struct charset_info_st my_charset_utf16_unicode_520_ci= { 123,0,0, /* number */ MY_CS_UTF16_UCA_FLAGS,/* state */ - charset_name_utf16, /* csname */ - "utf16_unicode_520_ci",/* name */ + { charset_name_utf16, charset_name_utf16_length }, /* csname */ + { STRING_WITH_LEN("utf16_unicode_520_ci") },/* name */ "", /* comment */ "", /* tailoring */ NULL, /* ctype */ @@ -38636,8 +38636,8 @@ struct charset_info_st my_charset_utf16_vietnamese_ci= { 124,0,0, /* number */ MY_CS_UTF16_UCA_FLAGS,/* state */ - charset_name_utf16, /* cs name */ - "utf16_vietnamese_ci",/* name */ + { charset_name_utf16, charset_name_utf16_length }, /* csname */ + { STRING_WITH_LEN("utf16_vietnamese_ci") },/* name */ "", /* comment */ vietnamese, /* tailoring */ NULL, /* ctype */ @@ -38669,8 +38669,8 @@ struct charset_info_st my_charset_utf16_unicode_nopad_ci= { MY_NOPAD_ID(101),0,0, /* number */ MY_CS_UTF16_UCA_NOPAD_FLAGS, /* state */ - charset_name_utf16, /* csname */ - "utf16_unicode_nopad_ci", /* name */ + { charset_name_utf16, charset_name_utf16_length }, /* csname */ + { STRING_WITH_LEN("utf16_unicode_nopad_ci") }, /* name */ "", /* comment */ "", /* tailoring */ NULL, /* ctype */ @@ -38702,8 +38702,8 @@ 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 */ - charset_name_utf16, /* csname */ - "utf16_unicode_520_nopad_ci",/* name */ + { charset_name_utf16, charset_name_utf16_length }, /* csname */ + { STRING_WITH_LEN("utf16_unicode_520_nopad_ci") },/* name */ "", /* comment */ "", /* tailoring */ NULL, /* ctype */ diff --git a/strings/ctype-ucs2.c b/strings/ctype-ucs2.c index 166ec55b9b3..dbf0d86dc05 100644 --- a/strings/ctype-ucs2.c +++ b/strings/ctype-ucs2.c @@ -1281,6 +1281,7 @@ my_uni_utf16(CHARSET_INFO *cs __attribute__((unused)), #ifdef HAVE_CHARSET_utf16 const char charset_name_utf16le[]= "utf16le"; +#define charset_name_utf16le_length (sizeof(charset_name_utf16le)-1) static inline void my_tolower_utf16(MY_UNICASE_INFO *uni_plane, my_wc_t *wc) @@ -1602,8 +1603,8 @@ 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, - charset_name_utf16, /* cs name */ - "utf16_general_ci", /* name */ + { charset_name_utf16, charset_name_utf16_length }, /* cs name */ + { STRING_WITH_LEN("utf16_general_ci") }, /* name */ "UTF-16 Unicode", /* comment */ NULL, /* tailoring */ NULL, /* ctype */ @@ -1635,8 +1636,8 @@ 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, - charset_name_utf16, /* cs name */ - "utf16_bin", /* name */ + { charset_name_utf16, charset_name_utf16_length }, /* cs name */ + { STRING_WITH_LEN("utf16_bin") }, /* name */ "UTF-16 Unicode", /* comment */ NULL, /* tailoring */ NULL, /* ctype */ @@ -1668,8 +1669,8 @@ 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, - charset_name_utf16, /* cs name */ - "utf16_general_nopad_ci", /* name */ + { charset_name_utf16, charset_name_utf16_length }, /* cs name */ + { STRING_WITH_LEN("utf16_general_nopad_ci") }, /* name */ "UTF-16 Unicode", /* comment */ NULL, /* tailoring */ NULL, /* ctype */ @@ -1702,8 +1703,8 @@ 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, - charset_name_utf16, /* cs name */ - "utf16_nopad_bin", /* name */ + { charset_name_utf16, charset_name_utf16_length}, /* cs name */ + { STRING_WITH_LEN("utf16_nopad_bin") }, /* name */ "UTF-16 Unicode", /* comment */ NULL, /* tailoring */ NULL, /* ctype */ @@ -1943,8 +1944,8 @@ 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, - charset_name_utf16le, /* cs name */ - "utf16le_general_ci",/* name */ + { charset_name_utf16le, charset_name_utf16le_length }, + { STRING_WITH_LEN("utf16le_general_ci") },/* name */ "UTF-16LE Unicode", /* comment */ NULL, /* tailoring */ NULL, /* ctype */ @@ -1976,8 +1977,8 @@ 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, - charset_name_utf16le, /* cs name */ - "utf16le_bin", /* name */ + { charset_name_utf16le, charset_name_utf16le_length }, + { STRING_WITH_LEN("utf16le_bin") }, /* name */ "UTF-16LE Unicode", /* comment */ NULL, /* tailoring */ NULL, /* ctype */ @@ -2009,8 +2010,8 @@ 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, - charset_name_utf16le, /* cs name */ - "utf16le_general_nopad_ci",/* name */ + { charset_name_utf16le, charset_name_utf16le_length }, + { STRING_WITH_LEN("utf16le_general_nopad_ci") }, /* name */ "UTF-16LE Unicode", /* comment */ NULL, /* tailoring */ NULL, /* ctype */ @@ -2043,8 +2044,8 @@ 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, - charset_name_utf16le, /* cs name */ - "utf16le_nopad_bin", /* name */ + { charset_name_utf16le, charset_name_utf16le_length }, + { STRING_WITH_LEN("utf16le_nopad_bin") }, /* name */ "UTF-16LE Unicode", /* comment */ NULL, /* tailoring */ NULL, /* ctype */ @@ -2769,8 +2770,8 @@ 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, - charset_name_utf32, /* cs name */ - "utf32_general_ci", /* name */ + { charset_name_utf32, charset_name_utf32_length }, /* cs name */ + { STRING_WITH_LEN("utf32_general_ci") }, /* name */ "UTF-32 Unicode", /* comment */ NULL, /* tailoring */ NULL, /* ctype */ @@ -2802,8 +2803,8 @@ 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, - charset_name_utf32, /* cs name */ - "utf32_bin", /* name */ + { charset_name_utf32, charset_name_utf32_length }, /* cs name */ + { STRING_WITH_LEN("utf32_bin") }, /* name */ "UTF-32 Unicode", /* comment */ NULL, /* tailoring */ NULL, /* ctype */ @@ -2835,8 +2836,8 @@ 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, - charset_name_utf32, /* cs name */ - "utf32_general_nopad_ci", /* name */ + { charset_name_utf32, charset_name_utf32_length }, /* cs name */ + { STRING_WITH_LEN("utf32_general_nopad_ci") }, /* name */ "UTF-32 Unicode", /* comment */ NULL, /* tailoring */ NULL, /* ctype */ @@ -2869,8 +2870,8 @@ 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, - charset_name_utf32, /* cs name */ - "utf32_nopad_bin", /* name */ + { charset_name_utf32, charset_name_utf32_length }, /* cs name */ + { STRING_WITH_LEN("utf32_nopad_bin") }, /* name */ "UTF-32 Unicode", /* comment */ NULL, /* tailoring */ NULL, /* ctype */ @@ -3360,8 +3361,8 @@ 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, - charset_name_ucs2, /* cs name */ - "ucs2_general_ci", /* name */ + { charset_name_ucs2, charset_name_ucs2_length}, /* cs name */ + { STRING_WITH_LEN("ucs2_general_ci") }, /* name */ "", /* comment */ NULL, /* tailoring */ ctype_ucs2, /* ctype */ @@ -3393,8 +3394,8 @@ 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 */ - charset_name_ucs2, /* cs name */ - "ucs2_general_mysql500_ci", /* name */ + { charset_name_ucs2, charset_name_ucs2_length }, /* cs name */ + { STRING_WITH_LEN("ucs2_general_mysql500_ci") }, /* name */ "", /* comment */ NULL, /* tailoring */ ctype_ucs2, /* ctype */ @@ -3426,8 +3427,8 @@ struct charset_info_st my_charset_ucs2_bin= { 90,0,0, /* number */ MY_CS_COMPILED|MY_CS_BINSORT|MY_CS_UNICODE|MY_CS_NONASCII, - charset_name_ucs2, /* cs name */ - "ucs2_bin", /* name */ + { charset_name_ucs2, charset_name_ucs2_length }, /* cs name */ + { STRING_WITH_LEN("ucs2_bin") }, /* name */ "", /* comment */ NULL, /* tailoring */ ctype_ucs2, /* ctype */ @@ -3459,8 +3460,8 @@ 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, - charset_name_ucs2, /* cs name */ - "ucs2_general_nopad_ci", /* name */ + { charset_name_ucs2, charset_name_ucs2_length }, /* cs name */ + { STRING_WITH_LEN("ucs2_general_nopad_ci") }, /* name */ "", /* comment */ NULL, /* tailoring */ ctype_ucs2, /* ctype */ @@ -3492,8 +3493,8 @@ 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, - charset_name_ucs2, /* cs name */ - "ucs2_nopad_bin", /* name */ + { charset_name_ucs2, charset_name_ucs2_length }, /* cs name */ + { STRING_WITH_LEN("ucs2_nopad_bin") }, /* name */ "", /* comment */ NULL, /* tailoring */ ctype_ucs2, /* ctype */ diff --git a/strings/ctype-ujis.c b/strings/ctype-ujis.c index b90b3ef3a6a..fa5856ebc0d 100644 --- a/strings/ctype-ujis.c +++ b/strings/ctype-ujis.c @@ -33,6 +33,7 @@ #ifdef HAVE_CHARSET_ujis const char charset_name_ujis[]= "ujis"; +#define charset_name_ujis_length (sizeof(charset_name_ujis) - 1) static const uchar ctype_ujis[257] = { @@ -67338,8 +67339,8 @@ struct charset_info_st my_charset_ujis_japanese_ci= { 12,0,0, /* number */ MY_CS_COMPILED|MY_CS_PRIMARY, /* state */ - charset_name_ujis, /* cs name */ - "ujis_japanese_ci", /* name */ + { charset_name_ujis, charset_name_ujis_length }, /* csname */ + { STRING_WITH_LEN("ujis_japanese_ci") }, /* name */ "", /* comment */ NULL, /* tailoring */ ctype_ujis, @@ -67371,8 +67372,8 @@ struct charset_info_st my_charset_ujis_bin= { 91,0,0, /* number */ MY_CS_COMPILED|MY_CS_BINSORT, /* state */ - charset_name_ujis, /* cs name */ - "ujis_bin", /* name */ + { charset_name_ujis, charset_name_ujis_length }, /* csname */ + { STRING_WITH_LEN("ujis_bin") }, /* name */ "", /* comment */ NULL, /* tailoring */ ctype_ujis, @@ -67404,8 +67405,8 @@ struct charset_info_st my_charset_ujis_japanese_nopad_ci= { MY_NOPAD_ID(12),0,0,/* number */ MY_CS_COMPILED|MY_CS_NOPAD, /* state */ - charset_name_ujis, /* cs name */ - "ujis_japanese_nopad_ci", /* name */ + { charset_name_ujis, charset_name_ujis_length }, /* csname */ + { STRING_WITH_LEN("ujis_japanese_nopad_ci") }, /* name */ "", /* comment */ NULL, /* tailoring */ ctype_ujis, @@ -67437,8 +67438,8 @@ 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 */ - charset_name_ujis, /* cs name */ - "ujis_nopad_bin", /* name */ + { charset_name_ujis, charset_name_ujis_length }, /* csname */ + { STRING_WITH_LEN("ujis_nopad_bin") }, /* name */ "", /* comment */ NULL, /* tailoring */ ctype_ujis, diff --git a/strings/ctype-utf8.c b/strings/ctype-utf8.c index 2d0ac281699..ee50d53829e 100644 --- a/strings/ctype-utf8.c +++ b/strings/ctype-utf8.c @@ -5473,8 +5473,8 @@ 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 */ - charset_name_utf8mb3, /* cs name */ - MY_UTF8MB3 "_general_ci", /* name */ + { charset_name_utf8mb3, charset_name_utf8mb3_length }, /* cs name */ + { STRING_WITH_LEN(MY_UTF8MB3 "_general_ci") }, /* name */ "", /* comment */ NULL, /* tailoring */ ctype_utf8mb3, /* ctype */ @@ -5506,8 +5506,8 @@ struct charset_info_st my_charset_utf8mb3_general_mysql500_ci= { 223,0,0, /* number */ MY_CS_COMPILED|MY_CS_STRNXFRM|MY_CS_UNICODE, /* state */ - charset_name_utf8mb3, /* cs name */ - MY_UTF8MB3 "_general_mysql500_ci", /* name */ + { charset_name_utf8mb3, charset_name_utf8mb3_length }, /* cs name */ + { STRING_WITH_LEN(MY_UTF8MB3 "_general_mysql500_ci") }, /* name */ "", /* comment */ NULL, /* tailoring */ ctype_utf8mb3, /* ctype */ @@ -5539,8 +5539,8 @@ 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 */ - charset_name_utf8mb3, /* cs name */ - MY_UTF8MB3 "_bin", /* name */ + { charset_name_utf8mb3, charset_name_utf8mb3_length }, /* cs name */ + { STRING_WITH_LEN(MY_UTF8MB3 "_bin") }, /* name */ "", /* comment */ NULL, /* tailoring */ ctype_utf8mb3, /* ctype */ @@ -5572,8 +5572,8 @@ 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 */ - charset_name_utf8mb3, /* cs name */ - MY_UTF8MB3 "_general_nopad_ci", /* name */ + { charset_name_utf8mb3, charset_name_utf8mb3_length }, /* cs name */ + { STRING_WITH_LEN(MY_UTF8MB3 "_general_nopad_ci") }, /* name */ "", /* comment */ NULL, /* tailoring */ ctype_utf8mb3, /* ctype */ @@ -5605,8 +5605,8 @@ 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, - charset_name_utf8mb3, /* cs name */ - MY_UTF8MB3 "_nopad_bin", /* name */ + { charset_name_utf8mb3, charset_name_utf8mb3_length }, /* cs name */ + { STRING_WITH_LEN(MY_UTF8MB3 "_nopad_bin") }, /* name */ "", /* comment */ NULL, /* tailoring */ ctype_utf8mb3, /* ctype */ @@ -7120,8 +7120,8 @@ struct charset_info_st my_charset_filename= { 17,0,0, /* number */ MY_CS_COMPILED|MY_CS_PRIMARY|MY_CS_STRNXFRM|MY_CS_UNICODE|MY_CS_HIDDEN|MY_CS_NONASCII, - "filename", /* cs name */ - "filename", /* name */ + { STRING_WITH_LEN("filename") }, /* cs name */ + { STRING_WITH_LEN("filename") }, /* name */ "", /* comment */ NULL, /* tailoring */ ctype_utf8mb3, /* ctype */ @@ -7809,8 +7809,8 @@ 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 */ - charset_name_utf8mb4, /* cs name */ - MY_UTF8MB4_GENERAL_CI,/* name */ + { charset_name_utf8mb4, charset_name_utf8mb4_length}, /* cs name */ + { STRING_WITH_LEN(MY_UTF8MB4_GENERAL_CI) }, /* name */ "UTF-8 Unicode", /* comment */ NULL, /* tailoring */ ctype_utf8mb4, /* ctype */ @@ -7843,8 +7843,8 @@ 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 */ - charset_name_utf8mb4, /* cs name */ - MY_UTF8MB4_BIN, /* name */ + { charset_name_utf8mb4, charset_name_utf8mb4_length }, /* cs name */ + { STRING_WITH_LEN(MY_UTF8MB4_BIN) }, /* name */ "UTF-8 Unicode", /* comment */ NULL, /* tailoring */ ctype_utf8mb4, /* ctype */ @@ -7877,8 +7877,8 @@ 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 */ - charset_name_utf8mb4, /* cs name */ - MY_UTF8MB4_GENERAL_NOPAD_CI,/* name */ + { charset_name_utf8mb4, charset_name_utf8mb4_length }, /* cs name */ + { STRING_WITH_LEN(MY_UTF8MB4_GENERAL_NOPAD_CI) }, /* name */ "UTF-8 Unicode", /* comment */ NULL, /* tailoring */ ctype_utf8mb4, /* ctype */ @@ -7911,8 +7911,8 @@ 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 */ - charset_name_utf8mb4, /* cs name */ - MY_UTF8MB4_NOPAD_BIN, /* name */ + { charset_name_utf8mb4, charset_name_utf8mb4_length }, /* cs name */ + { STRING_WITH_LEN(MY_UTF8MB4_NOPAD_BIN) }, /* name */ "UTF-8 Unicode", /* comment */ NULL, /* tailoring */ ctype_utf8mb4, /* ctype */ diff --git a/strings/ctype-win1250ch.c b/strings/ctype-win1250ch.c index 643c7a2a583..a53a9768fde 100644 --- a/strings/ctype-win1250ch.c +++ b/strings/ctype-win1250ch.c @@ -53,6 +53,7 @@ #ifdef HAVE_CHARSET_cp1250 const char charset_name_cp1250[]= "cp1250"; +#define charset_name_cp1250_length (sizeof(charset_name_cp1250) -1) static const uint16 tab_cp1250_uni[256]={ 0,0x0001,0x0002,0x0003,0x0004,0x0005,0x0006,0x0007, @@ -691,8 +692,8 @@ 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 */ - charset_name_cp1250, /* cs name */ - "cp1250_czech_cs", /* name */ + { charset_name_cp1250, charset_name_cp1250_length }, /* cs name */ + { STRING_WITH_LEN("cp1250_czech_cs") }, /* name */ "", /* comment */ NULL, /* tailoring */ ctype_win1250ch, diff --git a/strings/ctype.c b/strings/ctype.c index e1bd66da7fa..1409f68a722 100644 --- a/strings/ctype.c +++ b/strings/ctype.c @@ -35,7 +35,6 @@ http://oss.software.ibm.com/icu/userguide/Collate_Customization.html */ - const char charset_name_latin2[]= "latin2"; const char charset_name_utf8mb3[]= "utf8mb3"; const char charset_name_utf16[]= "utf16"; @@ -609,10 +608,12 @@ static int cs_value(MY_XML_PARSER *st,const char *attr, size_t len) i->cs.primary_number= strtol(attr,(char**)NULL,10); break; case _CS_COLNAME: - i->cs.name=mstr(i->name,attr,len,MY_CS_NAME_SIZE-1); + i->cs.coll_name.str= mstr(i->name,attr,len,MY_CS_NAME_SIZE-1); + i->cs.coll_name.length= strlen(i->cs.coll_name.str); break; case _CS_CSNAME: - i->cs.csname=mstr(i->csname,attr,len,MY_CS_NAME_SIZE-1); + i->cs.cs_name.str= mstr(i->csname,attr,len,MY_CS_NAME_SIZE-1); + i->cs.cs_name.length= strlen(i->cs.cs_name.str); break; case _CS_CSDESCRIPT: i->cs.comment=mstr(i->comment,attr,len,MY_CS_CSDESCR_SIZE-1); diff --git a/strings/strings_def.h b/strings/strings_def.h index 952bf99ae86..3e5298bc4ec 100644 --- a/strings/strings_def.h +++ b/strings/strings_def.h @@ -132,11 +132,16 @@ int my_wc_to_printable_8bit(CHARSET_INFO *cs, my_wc_t wc, /* Some common character set names */ extern const char charset_name_latin2[]; +#define charset_name_latin2_length 6 extern const char charset_name_utf8mb3[]; +#define charset_name_utf8mb3_length 7 extern const char charset_name_utf16[]; +#define charset_name_utf16_length 5 extern const char charset_name_utf32[]; +#define charset_name_utf32_length 5 extern const char charset_name_ucs2[]; -extern const char charset_name_ucs2[]; +#define charset_name_ucs2_length 4 extern const char charset_name_utf8mb4[]; +#define charset_name_utf8mb4_length 7 #endif /*STRINGS_DEF_INCLUDED */ diff --git a/unittest/mysys/ma_dyncol-t.c b/unittest/mysys/ma_dyncol-t.c index d76f1b49f8f..6e2c9b4c87a 100644 --- a/unittest/mysys/ma_dyncol-t.c +++ b/unittest/mysys/ma_dyncol-t.c @@ -236,7 +236,7 @@ void test_value_single_string(const char *string, size_t len, err: ok(rc, "'%s' - '%s' %u %u-%s", string, res.x.string.value.str, (uint)res.x.string.value.length, - (uint)res.x.string.charset->number, res.x.string.charset->name); + (uint)res.x.string.charset->number, res.x.string.charset->coll_name.str); /* cleanup */ val.x.string.value.str= NULL; // we did not allocated it mariadb_dyncol_free(&str); diff --git a/unittest/strings/strings-t.c b/unittest/strings/strings-t.c index 768f0ba6b65..39e48a33627 100644 --- a/unittest/strings/strings-t.c +++ b/unittest/strings/strings-t.c @@ -31,7 +31,8 @@ test_like_range_for_charset(CHARSET_INFO *cs, const char *src, size_t src_len) my_ci_like_range(cs, src, src_len, '\\', '_', '%', sizeof(min_str), min_str, max_str, &min_len, &max_len); - diag("min_len=%d\tmax_len=%d\t%s", (int) min_len, (int) max_len, cs->name); + diag("min_len=%d\tmax_len=%d\t%s", (int) min_len, (int) max_len, + cs->coll_name.str); min_well_formed_len= my_well_formed_length(cs, min_str, min_str + min_len, 10000, &error); @@ -632,7 +633,7 @@ strcollsp(CHARSET_INFO *cs, const STRNNCOLL_PARAM *param) str2hex(ahex, sizeof(ahex), p->a, p->alen); str2hex(bhex, sizeof(bhex), p->b, p->blen); diag("%-20s %-10s %-10s %10d %10d%s", - cs->name, ahex, bhex, p->res, res, + cs->coll_name.str, ahex, bhex, p->res, res, eqres(res, p->res) ? "" : " FAILED"); if (!eqres(res, p->res)) { @@ -772,7 +773,7 @@ int main() if (test_like_range_for_charset(cs, "abc%", 4)) { ++failed; - diag("Failed for %s", cs->name); + diag("Failed for %s", cs->coll_name.str); } } ok(failed == 0, "Testing my_like_range_xxx() functions");