mirror of
				https://github.com/MariaDB/server.git
				synced 2025-11-03 14:33:32 +03:00 
			
		
		
		
	MDEV-7947 strcmp() takes 0.37% in OLTP RO
This patch ensures that all identical character sets shares the same cs->csname. This allows us to replace strcmp() in my_charset_same() with comparisons of pointers. This fixes a long standing performance issue that could cause as strcmp() for every item sent trough the protocol class to the end user. One consequence of this patch is that we don't allow one to add a character definition in the Index.xml file that changes the csname of an existing character set. This is by design as changing character set names of existing ones is extremely dangerous, especially as some storage engines just records character set numbers. As we now have a hash over character set's csname, we can in the future use that for faster access to a specific character set. This could be done by changing the hash to non unique and use the hash to find the next character set with same csname.
This commit is contained in:
		@@ -32,6 +32,8 @@
 | 
			
		||||
 | 
			
		||||
#ifdef HAVE_CHARSET_big5
 | 
			
		||||
 | 
			
		||||
const char charset_name_big5[]= "big5";
 | 
			
		||||
 | 
			
		||||
/* 
 | 
			
		||||
  Support for Chinese(BIG5) characters, by jou@nematic.ieo.nctu.edu.tw
 | 
			
		||||
  CP950 and HKSCS additional characters are also accepted.
 | 
			
		||||
@@ -6807,7 +6809,7 @@ struct charset_info_st my_charset_big5_chinese_ci=
 | 
			
		||||
{
 | 
			
		||||
    1,0,0, 		/* number     */
 | 
			
		||||
    MY_CS_COMPILED|MY_CS_PRIMARY|MY_CS_STRNXFRM,	/* state      */
 | 
			
		||||
    "big5",		/* cs name    */
 | 
			
		||||
    charset_name_big5, /* cs name    */
 | 
			
		||||
    "big5_chinese_ci",	/* name       */
 | 
			
		||||
    "",			/* comment    */
 | 
			
		||||
    NULL,		/* tailoring */
 | 
			
		||||
@@ -6840,7 +6842,7 @@ struct charset_info_st my_charset_big5_bin=
 | 
			
		||||
{
 | 
			
		||||
    84,0,0, 		/* number     */
 | 
			
		||||
    MY_CS_COMPILED|MY_CS_BINSORT,	/* state      */
 | 
			
		||||
    "big5",		/* cs name    */
 | 
			
		||||
    charset_name_big5,	/* cs name    */
 | 
			
		||||
    "big5_bin",		/* name       */
 | 
			
		||||
    "",			/* comment    */
 | 
			
		||||
    NULL,		/* tailoring */
 | 
			
		||||
@@ -6873,7 +6875,7 @@ struct charset_info_st my_charset_big5_chinese_nopad_ci=
 | 
			
		||||
{
 | 
			
		||||
    MY_NOPAD_ID(1),0,0,       /* number     */
 | 
			
		||||
    MY_CS_COMPILED|MY_CS_STRNXFRM|MY_CS_NOPAD, /* state */
 | 
			
		||||
    "big5",                   /* cs name    */
 | 
			
		||||
    charset_name_big5,        /* cs name    */
 | 
			
		||||
    "big5_chinese_nopad_ci",  /* name       */
 | 
			
		||||
    "",                       /* comment    */
 | 
			
		||||
    NULL,                     /* tailoring */
 | 
			
		||||
@@ -6906,7 +6908,7 @@ struct charset_info_st my_charset_big5_nopad_bin=
 | 
			
		||||
{
 | 
			
		||||
    MY_NOPAD_ID(84),0,0,      /* number     */
 | 
			
		||||
    MY_CS_COMPILED|MY_CS_BINSORT|MY_CS_NOPAD, /* state */
 | 
			
		||||
    "big5",                   /* cs name    */
 | 
			
		||||
    charset_name_big5,        /* cs name    */
 | 
			
		||||
    "big5_nopad_bin",         /* name       */
 | 
			
		||||
    "",                       /* comment    */
 | 
			
		||||
    NULL,                     /* tailoring */
 | 
			
		||||
 
 | 
			
		||||
@@ -23,6 +23,8 @@
 | 
			
		||||
#include "strings_def.h"
 | 
			
		||||
#include <m_ctype.h>
 | 
			
		||||
 | 
			
		||||
const char charset_name_binary[]= "binary";
 | 
			
		||||
 | 
			
		||||
static const uchar ctype_bin[]=
 | 
			
		||||
{
 | 
			
		||||
  0,
 | 
			
		||||
@@ -568,7 +570,7 @@ struct charset_info_st my_charset_bin =
 | 
			
		||||
{
 | 
			
		||||
    63,0,0,			/* number        */
 | 
			
		||||
    MY_CS_COMPILED|MY_CS_BINSORT|MY_CS_PRIMARY|MY_CS_NOPAD,/* state */
 | 
			
		||||
    "binary",			/* cs name    */
 | 
			
		||||
    charset_name_binary,	/* cs name    */
 | 
			
		||||
    "binary",			/* name          */
 | 
			
		||||
    "",				/* comment       */
 | 
			
		||||
    NULL,			/* tailoring     */
 | 
			
		||||
 
 | 
			
		||||
@@ -22,6 +22,7 @@
 | 
			
		||||
 | 
			
		||||
#ifdef HAVE_CHARSET_cp932
 | 
			
		||||
 | 
			
		||||
const char charset_name_cp932[]= "cp932";
 | 
			
		||||
 | 
			
		||||
/*
 | 
			
		||||
 * This comment is parsed by configure to create ctype.c,
 | 
			
		||||
@@ -34764,8 +34765,8 @@ struct charset_info_st my_charset_cp932_japanese_ci=
 | 
			
		||||
{
 | 
			
		||||
    95,0,0,		/* number */
 | 
			
		||||
    MY_CS_COMPILED|MY_CS_PRIMARY|MY_CS_STRNXFRM,	/* state      */
 | 
			
		||||
    "cp932",		/* cs name    */
 | 
			
		||||
    "cp932_japanese_ci",	/* name */
 | 
			
		||||
    charset_name_cp932,  /* cs name    */
 | 
			
		||||
    "cp932_japanese_ci", /* name */
 | 
			
		||||
    "",			/* comment    */
 | 
			
		||||
    NULL,		/* tailoring */
 | 
			
		||||
    ctype_cp932,
 | 
			
		||||
@@ -34796,8 +34797,8 @@ struct charset_info_st my_charset_cp932_bin=
 | 
			
		||||
{
 | 
			
		||||
    96,0,0,		/* number */
 | 
			
		||||
    MY_CS_COMPILED|MY_CS_BINSORT,	/* state      */
 | 
			
		||||
    "cp932",		/* cs name    */
 | 
			
		||||
    "cp932_bin",		/* name */
 | 
			
		||||
    charset_name_cp932, /* cs name    */
 | 
			
		||||
    "cp932_bin",	/* name */
 | 
			
		||||
    "",			/* comment    */
 | 
			
		||||
    NULL,		/* tailoring */
 | 
			
		||||
    ctype_cp932,
 | 
			
		||||
@@ -34829,7 +34830,7 @@ struct charset_info_st my_charset_cp932_japanese_nopad_ci=
 | 
			
		||||
{
 | 
			
		||||
    MY_NOPAD_ID(95),0,0, /* number       */
 | 
			
		||||
    MY_CS_COMPILED|MY_CS_STRNXFRM|MY_CS_NOPAD, /* state */
 | 
			
		||||
    "cp932",             /* cs name      */
 | 
			
		||||
    charset_name_cp932, /* cs name      */
 | 
			
		||||
    "cp932_japanese_nopad_ci",/* name    */
 | 
			
		||||
    "",                  /* comment      */
 | 
			
		||||
    NULL,                /* tailoring    */
 | 
			
		||||
@@ -34861,7 +34862,7 @@ struct charset_info_st my_charset_cp932_nopad_bin=
 | 
			
		||||
{
 | 
			
		||||
    MY_NOPAD_ID(96),0,0, /* number        */
 | 
			
		||||
    MY_CS_COMPILED|MY_CS_BINSORT|MY_CS_NOPAD, /* state */
 | 
			
		||||
    "cp932",             /* cs name       */
 | 
			
		||||
    charset_name_cp932, /* cs name       */
 | 
			
		||||
    "cp932_nopad_bin",   /* name          */
 | 
			
		||||
    "",                  /* comment       */
 | 
			
		||||
    NULL,                /* tailoring     */
 | 
			
		||||
 
 | 
			
		||||
@@ -625,7 +625,7 @@ struct charset_info_st my_charset_latin2_czech_ci =
 | 
			
		||||
    2,0,0,                                      /* number    */
 | 
			
		||||
    MY_CS_COMPILED|MY_CS_STRNXFRM|MY_CS_CSSORT|
 | 
			
		||||
    MY_CS_STRNXFRM_BAD_NWEIGHTS|MY_CS_NON1TO1,  /* state     */
 | 
			
		||||
    "latin2",                                   /* cs name   */
 | 
			
		||||
    charset_name_latin2,                                   /* cs name   */
 | 
			
		||||
    "latin2_czech_cs",                          /* name      */
 | 
			
		||||
    "",                                         /* comment   */
 | 
			
		||||
    NULL,                                       /* tailoring */
 | 
			
		||||
 
 | 
			
		||||
@@ -31,6 +31,7 @@
 | 
			
		||||
 | 
			
		||||
#ifdef HAVE_CHARSET_euckr
 | 
			
		||||
 | 
			
		||||
const char charset_name_euckr[]= "euckr";
 | 
			
		||||
 | 
			
		||||
static const uchar ctype_euc_kr[257] =
 | 
			
		||||
{
 | 
			
		||||
@@ -10054,7 +10055,7 @@ struct charset_info_st my_charset_euckr_korean_ci=
 | 
			
		||||
{
 | 
			
		||||
    19,0,0,		/* number */
 | 
			
		||||
    MY_CS_COMPILED|MY_CS_PRIMARY,	/* state      */
 | 
			
		||||
    "euckr",		/* cs name    */
 | 
			
		||||
    charset_name_euckr,		/* cs name    */
 | 
			
		||||
    "euckr_korean_ci",	/* name */
 | 
			
		||||
    "",			/* comment    */
 | 
			
		||||
    NULL,		/* tailoring */
 | 
			
		||||
@@ -10087,7 +10088,7 @@ struct charset_info_st my_charset_euckr_bin=
 | 
			
		||||
{
 | 
			
		||||
    85,0,0,		/* number */
 | 
			
		||||
    MY_CS_COMPILED|MY_CS_BINSORT,	/* state      */
 | 
			
		||||
    "euckr",		/* cs name    */
 | 
			
		||||
    charset_name_euckr,		/* cs name    */
 | 
			
		||||
    "euckr_bin",	/* name */
 | 
			
		||||
    "",			/* comment    */
 | 
			
		||||
    NULL,		/* tailoring */
 | 
			
		||||
@@ -10120,7 +10121,7 @@ struct charset_info_st my_charset_euckr_korean_nopad_ci=
 | 
			
		||||
{
 | 
			
		||||
    MY_NOPAD_ID(19),0,0,/* number     */
 | 
			
		||||
    MY_CS_COMPILED|MY_CS_NOPAD, /* state */
 | 
			
		||||
    "euckr",            /* cs name    */
 | 
			
		||||
    charset_name_euckr,            /* cs name    */
 | 
			
		||||
    "euckr_korean_nopad_ci",  /* name */
 | 
			
		||||
    "",                 /* comment    */
 | 
			
		||||
    NULL,               /* tailoring  */
 | 
			
		||||
@@ -10153,7 +10154,7 @@ struct charset_info_st my_charset_euckr_nopad_bin=
 | 
			
		||||
{
 | 
			
		||||
    MY_NOPAD_ID(85),0,0,/* number        */
 | 
			
		||||
    MY_CS_COMPILED|MY_CS_BINSORT|MY_CS_NOPAD, /* state */
 | 
			
		||||
    "euckr",            /* cs name       */
 | 
			
		||||
    charset_name_euckr,            /* cs name       */
 | 
			
		||||
    "euckr_nopad_bin",  /* name          */
 | 
			
		||||
    "",                 /* comment       */
 | 
			
		||||
    NULL,               /* tailoring     */
 | 
			
		||||
 
 | 
			
		||||
@@ -33,6 +33,8 @@ ctype-ujis.c file.
 | 
			
		||||
 | 
			
		||||
#ifdef HAVE_CHARSET_eucjpms
 | 
			
		||||
 | 
			
		||||
const char charset_name_eucjpms[]= "eucjpms";
 | 
			
		||||
 | 
			
		||||
 | 
			
		||||
static const uchar ctype_eucjpms[257] =
 | 
			
		||||
{
 | 
			
		||||
@@ -67593,7 +67595,7 @@ struct charset_info_st my_charset_eucjpms_japanese_ci=
 | 
			
		||||
{
 | 
			
		||||
    97,0,0,		/* number       */
 | 
			
		||||
    MY_CS_COMPILED|MY_CS_PRIMARY,	/* state        */
 | 
			
		||||
    "eucjpms",		/* cs name    */
 | 
			
		||||
    charset_name_eucjpms,		/* cs name    */
 | 
			
		||||
    "eucjpms_japanese_ci",	/* name         */
 | 
			
		||||
    "",			/* comment      */
 | 
			
		||||
    NULL,		/* tailoring    */
 | 
			
		||||
@@ -67626,7 +67628,7 @@ struct charset_info_st my_charset_eucjpms_bin=
 | 
			
		||||
{
 | 
			
		||||
    98,0,0,		/* number       */
 | 
			
		||||
    MY_CS_COMPILED|MY_CS_BINSORT,	/* state        */
 | 
			
		||||
    "eucjpms",		/* cs name    */
 | 
			
		||||
    charset_name_eucjpms,		/* cs name    */
 | 
			
		||||
    "eucjpms_bin",		/* name         */
 | 
			
		||||
    "",			/* comment      */
 | 
			
		||||
    NULL,		/* tailoring    */
 | 
			
		||||
@@ -67659,7 +67661,7 @@ struct charset_info_st my_charset_eucjpms_japanese_nopad_ci=
 | 
			
		||||
{
 | 
			
		||||
    MY_NOPAD_ID(97),0,0, /* number           */
 | 
			
		||||
    MY_CS_COMPILED|MY_CS_NOPAD,/* state      */
 | 
			
		||||
    "eucjpms",           /* cs name          */
 | 
			
		||||
    charset_name_eucjpms,           /* cs name          */
 | 
			
		||||
    "eucjpms_japanese_nopad_ci", /* name     */
 | 
			
		||||
    "",                  /* comment          */
 | 
			
		||||
    NULL,                /* tailoring        */
 | 
			
		||||
@@ -67692,7 +67694,7 @@ struct charset_info_st my_charset_eucjpms_nopad_bin=
 | 
			
		||||
{
 | 
			
		||||
    MY_NOPAD_ID(98),0,0, /* number           */
 | 
			
		||||
    MY_CS_COMPILED|MY_CS_BINSORT|MY_CS_NOPAD, /* state */
 | 
			
		||||
    "eucjpms",           /* cs name          */
 | 
			
		||||
    charset_name_eucjpms,           /* cs name          */
 | 
			
		||||
    "eucjpms_nopad_bin", /* name             */
 | 
			
		||||
    "",                  /* comment          */
 | 
			
		||||
    NULL,                /* tailoring        */
 | 
			
		||||
 
 | 
			
		||||
@@ -29,6 +29,8 @@
 | 
			
		||||
 | 
			
		||||
#ifdef HAVE_CHARSET_gb2312
 | 
			
		||||
 | 
			
		||||
const char charset_name_gb2312[]= "gb2312";
 | 
			
		||||
 | 
			
		||||
static const uchar ctype_gb2312[257] =
 | 
			
		||||
{
 | 
			
		||||
  0,				/* For standard library */
 | 
			
		||||
@@ -6459,7 +6461,7 @@ struct charset_info_st my_charset_gb2312_chinese_ci=
 | 
			
		||||
{
 | 
			
		||||
    24,0,0,		/* number */
 | 
			
		||||
    MY_CS_COMPILED|MY_CS_PRIMARY,	/* state      */
 | 
			
		||||
    "gb2312",		/* cs name    */
 | 
			
		||||
    charset_name_gb2312,		/* cs name    */
 | 
			
		||||
    "gb2312_chinese_ci",/* name */
 | 
			
		||||
    "",			/* comment    */
 | 
			
		||||
    NULL,		/* tailoring */
 | 
			
		||||
@@ -6492,7 +6494,7 @@ struct charset_info_st my_charset_gb2312_bin=
 | 
			
		||||
{
 | 
			
		||||
    86,0,0,		/* number */
 | 
			
		||||
    MY_CS_COMPILED|MY_CS_BINSORT,	/* state      */
 | 
			
		||||
    "gb2312",		/* cs name    */
 | 
			
		||||
    charset_name_gb2312,		/* cs name    */
 | 
			
		||||
    "gb2312_bin",	/* name */
 | 
			
		||||
    "",			/* comment    */
 | 
			
		||||
    NULL,		/* tailoring */
 | 
			
		||||
@@ -6525,7 +6527,7 @@ struct charset_info_st my_charset_gb2312_chinese_nopad_ci=
 | 
			
		||||
{
 | 
			
		||||
    MY_NOPAD_ID(24),0,0,/* number           */
 | 
			
		||||
    MY_CS_COMPILED|MY_CS_NOPAD, /* state    */
 | 
			
		||||
    "gb2312",           /* cs name          */
 | 
			
		||||
    charset_name_gb2312,           /* cs name          */
 | 
			
		||||
    "gb2312_chinese_nopad_ci",/* name       */
 | 
			
		||||
    "",                 /* comment          */
 | 
			
		||||
    NULL,               /* tailoring        */
 | 
			
		||||
@@ -6558,7 +6560,7 @@ struct charset_info_st my_charset_gb2312_nopad_bin=
 | 
			
		||||
{
 | 
			
		||||
    MY_NOPAD_ID(86),0,0,/* number           */
 | 
			
		||||
    MY_CS_COMPILED|MY_CS_BINSORT|MY_CS_NOPAD, /* state */
 | 
			
		||||
    "gb2312",           /* cs name          */
 | 
			
		||||
    charset_name_gb2312,           /* cs name          */
 | 
			
		||||
    "gb2312_nopad_bin", /* name             */
 | 
			
		||||
    "",                 /* comment          */
 | 
			
		||||
    NULL,               /* tailoring        */
 | 
			
		||||
 
 | 
			
		||||
@@ -31,6 +31,7 @@
 | 
			
		||||
 | 
			
		||||
#ifdef HAVE_CHARSET_gbk
 | 
			
		||||
 | 
			
		||||
const char charset_name_gbk[]= "gbk";
 | 
			
		||||
 | 
			
		||||
/* Support for Chinese(GBK) characters, by hewei@mail.ied.ac.cn */
 | 
			
		||||
 | 
			
		||||
@@ -10741,7 +10742,7 @@ struct charset_info_st my_charset_gbk_chinese_ci=
 | 
			
		||||
{
 | 
			
		||||
    28,0,0,		/* number */
 | 
			
		||||
    MY_CS_COMPILED|MY_CS_PRIMARY|MY_CS_STRNXFRM,	/* state      */
 | 
			
		||||
    "gbk",		/* cs name    */
 | 
			
		||||
    charset_name_gbk,		/* cs name    */
 | 
			
		||||
    "gbk_chinese_ci",	/* name */
 | 
			
		||||
    "",			/* comment    */
 | 
			
		||||
    NULL,		/* tailoring */
 | 
			
		||||
@@ -10773,7 +10774,7 @@ struct charset_info_st my_charset_gbk_bin=
 | 
			
		||||
{
 | 
			
		||||
    87,0,0,		/* number */
 | 
			
		||||
    MY_CS_COMPILED|MY_CS_BINSORT,	/* state      */
 | 
			
		||||
    "gbk",		/* cs name    */
 | 
			
		||||
    charset_name_gbk,		/* cs name    */
 | 
			
		||||
    "gbk_bin",		/* name */
 | 
			
		||||
    "",			/* comment    */
 | 
			
		||||
    NULL,		/* tailoring */
 | 
			
		||||
@@ -10806,7 +10807,7 @@ struct charset_info_st my_charset_gbk_chinese_nopad_ci=
 | 
			
		||||
{
 | 
			
		||||
    MY_NOPAD_ID(28),0,0,/* number           */
 | 
			
		||||
    MY_CS_COMPILED|MY_CS_STRNXFRM|MY_CS_NOPAD, /* state */
 | 
			
		||||
    "gbk",              /* cs name          */
 | 
			
		||||
    charset_name_gbk,              /* cs name          */
 | 
			
		||||
    "gbk_chinese_nopad_ci",/* name          */
 | 
			
		||||
    "",                 /* comment          */
 | 
			
		||||
    NULL,               /* tailoring        */
 | 
			
		||||
@@ -10838,7 +10839,7 @@ struct charset_info_st my_charset_gbk_nopad_bin=
 | 
			
		||||
{
 | 
			
		||||
    MY_NOPAD_ID(87),0,0,/* number           */
 | 
			
		||||
    MY_CS_COMPILED|MY_CS_BINSORT|MY_CS_NOPAD, /* state */
 | 
			
		||||
    "gbk",              /* cs name          */
 | 
			
		||||
    charset_name_gbk,              /* cs name          */
 | 
			
		||||
    "gbk_nopad_bin",    /* name             */
 | 
			
		||||
    "",                 /* comment          */
 | 
			
		||||
    NULL,               /* tailoring        */
 | 
			
		||||
 
 | 
			
		||||
@@ -18,6 +18,8 @@
 | 
			
		||||
#include "strings_def.h"
 | 
			
		||||
#include <m_ctype.h>
 | 
			
		||||
 | 
			
		||||
const char charset_name_latin1[]= "latin1";
 | 
			
		||||
 | 
			
		||||
static const uchar ctype_latin1[] = {
 | 
			
		||||
    0,
 | 
			
		||||
   32, 32, 32, 32, 32, 32, 32, 32, 32, 40, 40, 40, 40, 40, 32, 32,
 | 
			
		||||
@@ -431,7 +433,7 @@ struct charset_info_st my_charset_latin1=
 | 
			
		||||
{
 | 
			
		||||
    8,0,0,				/* number    */
 | 
			
		||||
    MY_CS_COMPILED | MY_CS_PRIMARY,	/* state     */
 | 
			
		||||
    "latin1",				/* cs name    */
 | 
			
		||||
    charset_name_latin1,				/* cs name    */
 | 
			
		||||
    "latin1_swedish_ci",		/* name      */
 | 
			
		||||
    "",					/* comment   */
 | 
			
		||||
    NULL,				/* tailoring */
 | 
			
		||||
@@ -464,7 +466,7 @@ struct charset_info_st my_charset_latin1_nopad=
 | 
			
		||||
{
 | 
			
		||||
    MY_NOPAD_ID(8),0,0,           /* number           */
 | 
			
		||||
    MY_CS_COMPILED | MY_CS_NOPAD, /* state            */
 | 
			
		||||
    "latin1",                     /* cs name          */
 | 
			
		||||
    charset_name_latin1,                     /* cs name          */
 | 
			
		||||
    "latin1_swedish_nopad_ci",    /* name             */
 | 
			
		||||
    "",                           /* comment          */
 | 
			
		||||
    NULL,                         /* tailoring        */
 | 
			
		||||
@@ -742,7 +744,7 @@ struct charset_info_st my_charset_latin1_german2_ci=
 | 
			
		||||
{
 | 
			
		||||
  31,0,0,				/* number    */
 | 
			
		||||
  MY_CS_COMPILED|MY_CS_STRNXFRM|MY_CS_NON1TO1, /* state     */
 | 
			
		||||
  "latin1",				/* cs name    */
 | 
			
		||||
  charset_name_latin1,				/* cs name    */
 | 
			
		||||
  "latin1_german2_ci",			/* name      */
 | 
			
		||||
  "",					/* comment   */
 | 
			
		||||
  NULL,					/* tailoring */
 | 
			
		||||
@@ -775,7 +777,7 @@ struct charset_info_st my_charset_latin1_bin=
 | 
			
		||||
{
 | 
			
		||||
  47,0,0,				/* number    */
 | 
			
		||||
  MY_CS_COMPILED|MY_CS_BINSORT,		/* state     */
 | 
			
		||||
  "latin1",				/* cs name    */
 | 
			
		||||
  charset_name_latin1,				/* cs name    */
 | 
			
		||||
  "latin1_bin",				/* name      */
 | 
			
		||||
  "",					/* comment   */
 | 
			
		||||
  NULL,					/* tailoring */
 | 
			
		||||
@@ -808,7 +810,7 @@ struct charset_info_st my_charset_latin1_nopad_bin=
 | 
			
		||||
{
 | 
			
		||||
  MY_NOPAD_ID(47),0,0,                 /* number           */
 | 
			
		||||
  MY_CS_COMPILED|MY_CS_BINSORT|MY_CS_NOPAD,/* state        */
 | 
			
		||||
  "latin1",                            /* cs name          */
 | 
			
		||||
  charset_name_latin1,                            /* cs name          */
 | 
			
		||||
  "latin1_nopad_bin",                  /* name             */
 | 
			
		||||
  "",                                  /* comment          */
 | 
			
		||||
  NULL,                                /* tailoring        */
 | 
			
		||||
 
 | 
			
		||||
@@ -22,6 +22,7 @@
 | 
			
		||||
 | 
			
		||||
#ifdef HAVE_CHARSET_sjis
 | 
			
		||||
 | 
			
		||||
const char charset_name_sjis[]= "sjis";
 | 
			
		||||
 | 
			
		||||
/*
 | 
			
		||||
 * This comment is parsed by configure to create ctype.c,
 | 
			
		||||
@@ -34152,7 +34153,7 @@ struct charset_info_st my_charset_sjis_japanese_ci=
 | 
			
		||||
{
 | 
			
		||||
    13,0,0,		/* number */
 | 
			
		||||
    MY_CS_COMPILED|MY_CS_PRIMARY|MY_CS_STRNXFRM|MY_CS_NONASCII,	/* state */
 | 
			
		||||
    "sjis",		/* cs name    */
 | 
			
		||||
    charset_name_sjis,		/* cs name    */
 | 
			
		||||
    "sjis_japanese_ci",	/* name */
 | 
			
		||||
    "",			/* comment    */
 | 
			
		||||
    NULL,		/* tailoring */
 | 
			
		||||
@@ -34184,7 +34185,7 @@ struct charset_info_st my_charset_sjis_bin=
 | 
			
		||||
{
 | 
			
		||||
    88,0,0,		/* number */
 | 
			
		||||
    MY_CS_COMPILED|MY_CS_BINSORT|MY_CS_NONASCII, /* state  */
 | 
			
		||||
    "sjis",		/* cs name    */
 | 
			
		||||
    charset_name_sjis,		/* cs name    */
 | 
			
		||||
    "sjis_bin",		/* name */
 | 
			
		||||
    "",			/* comment    */
 | 
			
		||||
    NULL,		/* tailoring */
 | 
			
		||||
@@ -34217,7 +34218,7 @@ struct charset_info_st my_charset_sjis_japanese_nopad_ci=
 | 
			
		||||
{
 | 
			
		||||
    MY_NOPAD_ID(13),0,0, /* number           */
 | 
			
		||||
    MY_CS_COMPILED|MY_CS_STRNXFRM|MY_CS_NONASCII|MY_CS_NOPAD, /* state */
 | 
			
		||||
    "sjis",              /* cs name          */
 | 
			
		||||
    charset_name_sjis,              /* cs name          */
 | 
			
		||||
    "sjis_japanese_nopad_ci", /* name        */
 | 
			
		||||
    "",                  /* comment          */
 | 
			
		||||
    NULL,                /* tailoring        */
 | 
			
		||||
@@ -34249,7 +34250,7 @@ struct charset_info_st my_charset_sjis_nopad_bin=
 | 
			
		||||
{
 | 
			
		||||
    MY_NOPAD_ID(88),0,0, /* number           */
 | 
			
		||||
    MY_CS_COMPILED|MY_CS_BINSORT|MY_CS_NONASCII|MY_CS_NOPAD, /* state */
 | 
			
		||||
    "sjis",              /* cs name          */
 | 
			
		||||
    charset_name_sjis,              /* cs name          */
 | 
			
		||||
    "sjis_nopad_bin",    /* name             */
 | 
			
		||||
    "",                  /* comment          */
 | 
			
		||||
    NULL,                /* tailoring        */
 | 
			
		||||
 
 | 
			
		||||
@@ -40,6 +40,8 @@
 | 
			
		||||
 | 
			
		||||
#ifdef HAVE_CHARSET_tis620
 | 
			
		||||
 | 
			
		||||
const char charset_name_tis620[]= "tis620";
 | 
			
		||||
 | 
			
		||||
#define M  L_MIDDLE
 | 
			
		||||
#define U  L_UPPER
 | 
			
		||||
#define L  L_LOWER
 | 
			
		||||
@@ -914,7 +916,7 @@ struct charset_info_st my_charset_tis620_thai_ci=
 | 
			
		||||
{
 | 
			
		||||
    18,0,0,		/* number    */
 | 
			
		||||
    MY_CS_COMPILED|MY_CS_PRIMARY|MY_CS_STRNXFRM|MY_CS_NON1TO1, /* state     */
 | 
			
		||||
    "tis620",		/* cs name    */
 | 
			
		||||
    charset_name_tis620,		/* cs name    */
 | 
			
		||||
    "tis620_thai_ci",	/* name      */
 | 
			
		||||
    "",			/* comment   */
 | 
			
		||||
    NULL,		/* tailoring */
 | 
			
		||||
@@ -946,7 +948,7 @@ struct charset_info_st my_charset_tis620_bin=
 | 
			
		||||
{
 | 
			
		||||
    89,0,0,		/* number    */
 | 
			
		||||
    MY_CS_COMPILED|MY_CS_BINSORT,	/* state     */
 | 
			
		||||
    "tis620",		/* cs name    */
 | 
			
		||||
    charset_name_tis620,		/* cs name    */
 | 
			
		||||
    "tis620_bin",	/* name      */
 | 
			
		||||
    "",			/* comment   */
 | 
			
		||||
    NULL,		/* tailoring */
 | 
			
		||||
@@ -979,7 +981,7 @@ struct charset_info_st my_charset_tis620_thai_nopad_ci=
 | 
			
		||||
{
 | 
			
		||||
    MY_NOPAD_ID(18),0,0,   /* number           */
 | 
			
		||||
    MY_CS_COMPILED|MY_CS_STRNXFRM|MY_CS_NON1TO1|MY_CS_NOPAD, /* state */
 | 
			
		||||
    "tis620",              /* cs name          */
 | 
			
		||||
    charset_name_tis620,              /* cs name          */
 | 
			
		||||
    "tis620_thai_nopad_ci",/* name             */
 | 
			
		||||
    "",                    /* comment          */
 | 
			
		||||
    NULL,                  /* tailoring        */
 | 
			
		||||
@@ -1012,7 +1014,7 @@ struct charset_info_st my_charset_tis620_nopad_bin=
 | 
			
		||||
{
 | 
			
		||||
    MY_NOPAD_ID(89),0,0,   /* number           */
 | 
			
		||||
    MY_CS_COMPILED|MY_CS_BINSORT|MY_CS_NOPAD, /* state */
 | 
			
		||||
    "tis620",              /* cs name          */
 | 
			
		||||
    charset_name_tis620,              /* cs name          */
 | 
			
		||||
    "tis620_nopad_bin",    /* name             */
 | 
			
		||||
    "",                    /* comment          */
 | 
			
		||||
    NULL,                  /* tailoring        */
 | 
			
		||||
 
 | 
			
		||||
										
											
												File diff suppressed because it is too large
												Load Diff
											
										
									
								
							@@ -35,7 +35,6 @@
 | 
			
		||||
#define HAVE_CHARSET_mb2_or_mb4
 | 
			
		||||
#endif
 | 
			
		||||
 | 
			
		||||
 | 
			
		||||
#ifndef EILSEQ
 | 
			
		||||
#define EILSEQ ENOENT
 | 
			
		||||
#endif
 | 
			
		||||
@@ -1278,6 +1277,7 @@ my_uni_utf16(CHARSET_INFO *cs __attribute__((unused)),
 | 
			
		||||
 | 
			
		||||
#ifdef HAVE_CHARSET_utf16
 | 
			
		||||
 | 
			
		||||
const char charset_name_utf16le[]= "utf16le";
 | 
			
		||||
 | 
			
		||||
static inline void
 | 
			
		||||
my_tolower_utf16(MY_UNICASE_INFO *uni_plane, my_wc_t *wc)
 | 
			
		||||
@@ -1599,7 +1599,7 @@ struct charset_info_st my_charset_utf16_general_ci=
 | 
			
		||||
{
 | 
			
		||||
  54,0,0,              /* number       */
 | 
			
		||||
  MY_CS_COMPILED|MY_CS_PRIMARY|MY_CS_STRNXFRM|MY_CS_UNICODE|MY_CS_NONASCII,
 | 
			
		||||
  "utf16",             /* cs name    */
 | 
			
		||||
  charset_name_utf16,             /* cs name    */
 | 
			
		||||
  "utf16_general_ci",  /* name         */
 | 
			
		||||
  "UTF-16 Unicode",    /* comment      */
 | 
			
		||||
  NULL,                /* tailoring    */
 | 
			
		||||
@@ -1632,7 +1632,7 @@ struct charset_info_st my_charset_utf16_bin=
 | 
			
		||||
{
 | 
			
		||||
  55,0,0,              /* number       */
 | 
			
		||||
  MY_CS_COMPILED|MY_CS_BINSORT|MY_CS_STRNXFRM|MY_CS_UNICODE|MY_CS_NONASCII,
 | 
			
		||||
  "utf16",             /* cs name      */
 | 
			
		||||
  charset_name_utf16,             /* cs name      */
 | 
			
		||||
  "utf16_bin",         /* name         */
 | 
			
		||||
  "UTF-16 Unicode",    /* comment      */
 | 
			
		||||
  NULL,                /* tailoring    */
 | 
			
		||||
@@ -1665,7 +1665,7 @@ struct charset_info_st my_charset_utf16_general_nopad_ci=
 | 
			
		||||
{
 | 
			
		||||
  MY_NOPAD_ID(54),0,0, /* number           */
 | 
			
		||||
  MY_CS_COMPILED|MY_CS_STRNXFRM|MY_CS_UNICODE|MY_CS_NONASCII|MY_CS_NOPAD,
 | 
			
		||||
  "utf16",             /* cs name          */
 | 
			
		||||
  charset_name_utf16,             /* cs name          */
 | 
			
		||||
  "utf16_general_nopad_ci", /* name        */
 | 
			
		||||
  "UTF-16 Unicode",    /* comment          */
 | 
			
		||||
  NULL,                /* tailoring        */
 | 
			
		||||
@@ -1699,7 +1699,7 @@ struct charset_info_st my_charset_utf16_nopad_bin=
 | 
			
		||||
  MY_NOPAD_ID(55),0,0, /* number           */
 | 
			
		||||
  MY_CS_COMPILED|MY_CS_BINSORT|MY_CS_STRNXFRM|MY_CS_UNICODE|MY_CS_NONASCII|
 | 
			
		||||
  MY_CS_NOPAD,
 | 
			
		||||
  "utf16",             /* cs name          */
 | 
			
		||||
  charset_name_utf16,             /* cs name          */
 | 
			
		||||
  "utf16_nopad_bin",   /* name             */
 | 
			
		||||
  "UTF-16 Unicode",    /* comment          */
 | 
			
		||||
  NULL,                /* tailoring        */
 | 
			
		||||
@@ -1940,7 +1940,7 @@ struct charset_info_st my_charset_utf16le_general_ci=
 | 
			
		||||
{
 | 
			
		||||
  56,0,0,              /* number       */
 | 
			
		||||
  MY_CS_COMPILED|MY_CS_PRIMARY|MY_CS_STRNXFRM|MY_CS_UNICODE|MY_CS_NONASCII,
 | 
			
		||||
  "utf16le",           /* cs name    */
 | 
			
		||||
  charset_name_utf16le,           /* cs name    */
 | 
			
		||||
  "utf16le_general_ci",/* name         */
 | 
			
		||||
  "UTF-16LE Unicode",  /* comment      */
 | 
			
		||||
  NULL,                /* tailoring    */
 | 
			
		||||
@@ -1973,7 +1973,7 @@ struct charset_info_st my_charset_utf16le_bin=
 | 
			
		||||
{
 | 
			
		||||
  62,0,0,              /* number       */
 | 
			
		||||
  MY_CS_COMPILED|MY_CS_BINSORT|MY_CS_STRNXFRM|MY_CS_UNICODE|MY_CS_NONASCII,
 | 
			
		||||
  "utf16le",           /* cs name      */
 | 
			
		||||
  charset_name_utf16le,           /* cs name      */
 | 
			
		||||
  "utf16le_bin",       /* name         */
 | 
			
		||||
  "UTF-16LE Unicode",  /* comment      */
 | 
			
		||||
  NULL,                /* tailoring    */
 | 
			
		||||
@@ -2006,7 +2006,7 @@ struct charset_info_st my_charset_utf16le_general_nopad_ci=
 | 
			
		||||
{
 | 
			
		||||
  MY_NOPAD_ID(56),0,0, /* number           */
 | 
			
		||||
  MY_CS_COMPILED|MY_CS_STRNXFRM|MY_CS_UNICODE|MY_CS_NONASCII|MY_CS_NOPAD,
 | 
			
		||||
  "utf16le",           /* cs name          */
 | 
			
		||||
  charset_name_utf16le,           /* cs name          */
 | 
			
		||||
  "utf16le_general_nopad_ci",/* name       */
 | 
			
		||||
  "UTF-16LE Unicode",  /* comment          */
 | 
			
		||||
  NULL,                /* tailoring        */
 | 
			
		||||
@@ -2040,7 +2040,7 @@ struct charset_info_st my_charset_utf16le_nopad_bin=
 | 
			
		||||
  MY_NOPAD_ID(62),0,0, /* number           */
 | 
			
		||||
  MY_CS_COMPILED|MY_CS_BINSORT|MY_CS_STRNXFRM|MY_CS_UNICODE|MY_CS_NONASCII|
 | 
			
		||||
  MY_CS_NOPAD,
 | 
			
		||||
  "utf16le",           /* cs name          */
 | 
			
		||||
  charset_name_utf16le,           /* cs name          */
 | 
			
		||||
  "utf16le_nopad_bin", /* name             */
 | 
			
		||||
  "UTF-16LE Unicode",  /* comment          */
 | 
			
		||||
  NULL,                /* tailoring        */
 | 
			
		||||
@@ -2763,7 +2763,7 @@ struct charset_info_st my_charset_utf32_general_ci=
 | 
			
		||||
{
 | 
			
		||||
  60,0,0,              /* number       */
 | 
			
		||||
  MY_CS_COMPILED|MY_CS_PRIMARY|MY_CS_STRNXFRM|MY_CS_UNICODE|MY_CS_NONASCII,
 | 
			
		||||
  "utf32",             /* cs name    */
 | 
			
		||||
  charset_name_utf32,             /* cs name    */
 | 
			
		||||
  "utf32_general_ci",  /* name         */
 | 
			
		||||
  "UTF-32 Unicode",    /* comment      */
 | 
			
		||||
  NULL,                /* tailoring    */
 | 
			
		||||
@@ -2796,7 +2796,7 @@ struct charset_info_st my_charset_utf32_bin=
 | 
			
		||||
{
 | 
			
		||||
  61,0,0,              /* number       */
 | 
			
		||||
  MY_CS_COMPILED|MY_CS_BINSORT|MY_CS_STRNXFRM|MY_CS_UNICODE|MY_CS_NONASCII,
 | 
			
		||||
  "utf32",             /* cs name    */
 | 
			
		||||
  charset_name_utf32,             /* cs name    */
 | 
			
		||||
  "utf32_bin",         /* name         */
 | 
			
		||||
  "UTF-32 Unicode",    /* comment      */
 | 
			
		||||
  NULL,                /* tailoring    */
 | 
			
		||||
@@ -2829,7 +2829,7 @@ struct charset_info_st my_charset_utf32_general_nopad_ci=
 | 
			
		||||
{
 | 
			
		||||
  MY_NOPAD_ID(60),0,0, /* number           */
 | 
			
		||||
  MY_CS_COMPILED|MY_CS_STRNXFRM|MY_CS_UNICODE|MY_CS_NONASCII|MY_CS_NOPAD,
 | 
			
		||||
  "utf32",             /* cs name          */
 | 
			
		||||
  charset_name_utf32,             /* cs name          */
 | 
			
		||||
  "utf32_general_nopad_ci", /* name        */
 | 
			
		||||
  "UTF-32 Unicode",    /* comment          */
 | 
			
		||||
  NULL,                /* tailoring        */
 | 
			
		||||
@@ -2863,7 +2863,7 @@ struct charset_info_st my_charset_utf32_nopad_bin=
 | 
			
		||||
  MY_NOPAD_ID(61),0,0, /* number           */
 | 
			
		||||
  MY_CS_COMPILED|MY_CS_BINSORT|MY_CS_STRNXFRM|MY_CS_UNICODE|MY_CS_NONASCII|
 | 
			
		||||
  MY_CS_NOPAD,
 | 
			
		||||
  "utf32",             /* cs name          */
 | 
			
		||||
  charset_name_utf32,             /* cs name          */
 | 
			
		||||
  "utf32_nopad_bin",   /* name             */
 | 
			
		||||
  "UTF-32 Unicode",    /* comment          */
 | 
			
		||||
  NULL,                /* tailoring        */
 | 
			
		||||
@@ -3354,7 +3354,7 @@ struct charset_info_st my_charset_ucs2_general_ci=
 | 
			
		||||
{
 | 
			
		||||
    35,0,0,		/* number       */
 | 
			
		||||
    MY_CS_COMPILED|MY_CS_PRIMARY|MY_CS_STRNXFRM|MY_CS_UNICODE|MY_CS_NONASCII,
 | 
			
		||||
    "ucs2",		/* cs name    */
 | 
			
		||||
    charset_name_ucs2,		/* cs name    */
 | 
			
		||||
    "ucs2_general_ci",	/* name         */
 | 
			
		||||
    "",			/* comment      */
 | 
			
		||||
    NULL,		/* tailoring    */
 | 
			
		||||
@@ -3387,7 +3387,7 @@ struct charset_info_st my_charset_ucs2_general_mysql500_ci=
 | 
			
		||||
{
 | 
			
		||||
  159, 0, 0,                                       /* number           */
 | 
			
		||||
  MY_CS_COMPILED|MY_CS_STRNXFRM|MY_CS_UNICODE|MY_CS_NONASCII, /* state */
 | 
			
		||||
  "ucs2",                                          /* cs name          */
 | 
			
		||||
  charset_name_ucs2,                                          /* cs name          */
 | 
			
		||||
  "ucs2_general_mysql500_ci",                      /* name             */
 | 
			
		||||
  "",                                              /* comment          */
 | 
			
		||||
  NULL,                                            /* tailoring        */
 | 
			
		||||
@@ -3420,7 +3420,7 @@ struct charset_info_st my_charset_ucs2_bin=
 | 
			
		||||
{
 | 
			
		||||
    90,0,0,		/* number       */
 | 
			
		||||
    MY_CS_COMPILED|MY_CS_BINSORT|MY_CS_UNICODE|MY_CS_NONASCII,
 | 
			
		||||
    "ucs2",		/* cs name    */
 | 
			
		||||
    charset_name_ucs2,		/* cs name    */
 | 
			
		||||
    "ucs2_bin",		/* name         */
 | 
			
		||||
    "",			/* comment      */
 | 
			
		||||
    NULL,		/* tailoring    */
 | 
			
		||||
@@ -3453,7 +3453,7 @@ struct charset_info_st my_charset_ucs2_general_nopad_ci=
 | 
			
		||||
{
 | 
			
		||||
    MY_NOPAD_ID(35),0,0,     /* number           */
 | 
			
		||||
    MY_CS_COMPILED|MY_CS_STRNXFRM|MY_CS_UNICODE|MY_CS_NONASCII|MY_CS_NOPAD,
 | 
			
		||||
    "ucs2",                  /* cs name          */
 | 
			
		||||
    charset_name_ucs2,                  /* cs name          */
 | 
			
		||||
    "ucs2_general_nopad_ci", /* name             */
 | 
			
		||||
    "",                      /* comment          */
 | 
			
		||||
    NULL,                    /* tailoring        */
 | 
			
		||||
@@ -3486,7 +3486,7 @@ struct charset_info_st my_charset_ucs2_nopad_bin=
 | 
			
		||||
{
 | 
			
		||||
    MY_NOPAD_ID(90),0,0,     /* number           */
 | 
			
		||||
    MY_CS_COMPILED|MY_CS_BINSORT|MY_CS_UNICODE|MY_CS_NONASCII|MY_CS_NOPAD,
 | 
			
		||||
    "ucs2",                  /* cs name          */
 | 
			
		||||
    charset_name_ucs2,                  /* cs name          */
 | 
			
		||||
    "ucs2_nopad_bin",        /* name             */
 | 
			
		||||
    "",                      /* comment          */
 | 
			
		||||
    NULL,                    /* tailoring        */
 | 
			
		||||
 
 | 
			
		||||
@@ -32,6 +32,7 @@
 | 
			
		||||
 | 
			
		||||
#ifdef HAVE_CHARSET_ujis
 | 
			
		||||
 | 
			
		||||
const char charset_name_ujis[]= "ujis";
 | 
			
		||||
 | 
			
		||||
static const uchar ctype_ujis[257] =
 | 
			
		||||
{
 | 
			
		||||
@@ -67337,7 +67338,7 @@ struct charset_info_st my_charset_ujis_japanese_ci=
 | 
			
		||||
{
 | 
			
		||||
    12,0,0,		/* number       */
 | 
			
		||||
    MY_CS_COMPILED|MY_CS_PRIMARY,	/* state        */
 | 
			
		||||
    "ujis",		/* cs name    */
 | 
			
		||||
    charset_name_ujis,		/* cs name    */
 | 
			
		||||
    "ujis_japanese_ci",	/* name         */
 | 
			
		||||
    "",			/* comment      */
 | 
			
		||||
    NULL,		/* tailoring    */
 | 
			
		||||
@@ -67370,7 +67371,7 @@ struct charset_info_st my_charset_ujis_bin=
 | 
			
		||||
{
 | 
			
		||||
    91,0,0,		/* number       */
 | 
			
		||||
    MY_CS_COMPILED|MY_CS_BINSORT,	/* state        */
 | 
			
		||||
    "ujis",		/* cs name    */
 | 
			
		||||
    charset_name_ujis,		/* cs name    */
 | 
			
		||||
    "ujis_bin",		/* name         */
 | 
			
		||||
    "",			/* comment      */
 | 
			
		||||
    NULL,		/* tailoring    */
 | 
			
		||||
@@ -67403,7 +67404,7 @@ struct charset_info_st my_charset_ujis_japanese_nopad_ci=
 | 
			
		||||
{
 | 
			
		||||
    MY_NOPAD_ID(12),0,0,/* number           */
 | 
			
		||||
    MY_CS_COMPILED|MY_CS_NOPAD, /* state    */
 | 
			
		||||
    "ujis",             /* cs name          */
 | 
			
		||||
    charset_name_ujis,             /* cs name          */
 | 
			
		||||
    "ujis_japanese_nopad_ci", /* name       */
 | 
			
		||||
    "",                 /* comment          */
 | 
			
		||||
    NULL,               /* tailoring        */
 | 
			
		||||
@@ -67436,7 +67437,7 @@ struct charset_info_st my_charset_ujis_nopad_bin=
 | 
			
		||||
{
 | 
			
		||||
    MY_NOPAD_ID(91),0,0,/* number           */
 | 
			
		||||
    MY_CS_COMPILED|MY_CS_BINSORT|MY_CS_NOPAD, /* state */
 | 
			
		||||
    "ujis",             /* cs name          */
 | 
			
		||||
    charset_name_ujis,             /* cs name          */
 | 
			
		||||
    "ujis_nopad_bin",   /* name             */
 | 
			
		||||
    "",                 /* comment          */
 | 
			
		||||
    NULL,               /* tailoring        */
 | 
			
		||||
 
 | 
			
		||||
@@ -5473,7 +5473,7 @@ struct charset_info_st my_charset_utf8mb3_general_ci=
 | 
			
		||||
{
 | 
			
		||||
    33,0,0,             /* number       */
 | 
			
		||||
    MY_CS_COMPILED|MY_CS_PRIMARY|MY_CS_STRNXFRM|MY_CS_UNICODE,  /* state  */
 | 
			
		||||
    MY_UTF8MB3,         /* cs name      */
 | 
			
		||||
    charset_name_utf8,         /* cs name      */
 | 
			
		||||
    MY_UTF8MB3 "_general_ci", /* name   */
 | 
			
		||||
    "",                 /* comment      */
 | 
			
		||||
    NULL,               /* tailoring    */
 | 
			
		||||
@@ -5506,7 +5506,7 @@ struct charset_info_st my_charset_utf8mb3_general_mysql500_ci=
 | 
			
		||||
{
 | 
			
		||||
  223,0,0,                                      /* number           */
 | 
			
		||||
  MY_CS_COMPILED|MY_CS_STRNXFRM|MY_CS_UNICODE,  /* state            */
 | 
			
		||||
  MY_UTF8MB3,                                   /* cs name          */
 | 
			
		||||
  charset_name_utf8,                                   /* cs name          */
 | 
			
		||||
  MY_UTF8MB3 "_general_mysql500_ci",            /* name             */
 | 
			
		||||
  "",                                           /* comment          */
 | 
			
		||||
  NULL,                                         /* tailoring        */
 | 
			
		||||
@@ -5539,7 +5539,7 @@ struct charset_info_st my_charset_utf8mb3_bin=
 | 
			
		||||
{
 | 
			
		||||
    83,0,0,             /* number       */
 | 
			
		||||
    MY_CS_COMPILED|MY_CS_STRNXFRM|MY_CS_BINSORT|MY_CS_UNICODE, /* state  */
 | 
			
		||||
    MY_UTF8MB3,         /* cs name      */
 | 
			
		||||
    charset_name_utf8,         /* cs name      */
 | 
			
		||||
    MY_UTF8MB3 "_bin",  /* name         */
 | 
			
		||||
    "",                 /* comment      */
 | 
			
		||||
    NULL,               /* tailoring    */
 | 
			
		||||
@@ -5572,7 +5572,7 @@ struct charset_info_st my_charset_utf8mb3_general_nopad_ci=
 | 
			
		||||
{
 | 
			
		||||
    MY_NOPAD_ID(33),0,0,      /* number           */
 | 
			
		||||
    MY_CS_COMPILED|MY_CS_STRNXFRM|MY_CS_UNICODE|MY_CS_NOPAD, /* state */
 | 
			
		||||
    MY_UTF8MB3,               /* cs name          */
 | 
			
		||||
    charset_name_utf8,               /* cs name          */
 | 
			
		||||
    MY_UTF8MB3 "_general_nopad_ci", /* name       */
 | 
			
		||||
    "",                       /* comment          */
 | 
			
		||||
    NULL,                     /* tailoring        */
 | 
			
		||||
@@ -5605,7 +5605,7 @@ struct charset_info_st my_charset_utf8mb3_nopad_bin=
 | 
			
		||||
{
 | 
			
		||||
    MY_NOPAD_ID(83),0,0,/* number           */
 | 
			
		||||
    MY_CS_COMPILED|MY_CS_STRNXFRM|MY_CS_BINSORT|MY_CS_UNICODE|MY_CS_NOPAD,
 | 
			
		||||
    MY_UTF8MB3,         /* cs name          */
 | 
			
		||||
    charset_name_utf8,         /* cs name          */
 | 
			
		||||
    MY_UTF8MB3 "_nopad_bin", /* name        */
 | 
			
		||||
    "",                 /* comment          */
 | 
			
		||||
    NULL,               /* tailoring        */
 | 
			
		||||
@@ -5767,7 +5767,7 @@ struct charset_info_st my_charset_utf8mb3_general_cs=
 | 
			
		||||
{
 | 
			
		||||
    254,0,0,		/* number       */
 | 
			
		||||
    MY_CS_COMPILED|MY_CS_UNICODE, /* state */
 | 
			
		||||
    MY_UTF8MB3,		/* cs name      */
 | 
			
		||||
    charset_name_utf8,		/* cs name      */
 | 
			
		||||
    MY_UTF8MB3 "_general_cs", /* name   */
 | 
			
		||||
    "",			/* comment      */
 | 
			
		||||
    NULL,		/* tailoring    */
 | 
			
		||||
@@ -7809,7 +7809,7 @@ struct charset_info_st my_charset_utf8mb4_general_ci=
 | 
			
		||||
{
 | 
			
		||||
  45,0,0,              /* number       */
 | 
			
		||||
  MY_CS_COMPILED|MY_CS_PRIMARY|MY_CS_STRNXFRM|MY_CS_UNICODE|MY_CS_UNICODE_SUPPLEMENT,  /* state  */
 | 
			
		||||
  MY_UTF8MB4,         /* cs name      */
 | 
			
		||||
  charset_name_utf8mb4,         /* cs name      */
 | 
			
		||||
  MY_UTF8MB4_GENERAL_CI,/* name       */
 | 
			
		||||
  "UTF-8 Unicode",    /* comment      */
 | 
			
		||||
  NULL,               /* tailoring    */
 | 
			
		||||
@@ -7843,7 +7843,7 @@ struct charset_info_st my_charset_utf8mb4_bin=
 | 
			
		||||
  46,0,0,             /* number       */
 | 
			
		||||
  MY_CS_COMPILED|MY_CS_BINSORT|MY_CS_STRNXFRM|MY_CS_UNICODE|
 | 
			
		||||
  MY_CS_UNICODE_SUPPLEMENT, /* state  */
 | 
			
		||||
  MY_UTF8MB4,         /* cs name      */
 | 
			
		||||
  charset_name_utf8mb4,         /* cs name      */
 | 
			
		||||
  MY_UTF8MB4_BIN,     /* name         */
 | 
			
		||||
  "UTF-8 Unicode",    /* comment      */
 | 
			
		||||
  NULL,               /* tailoring    */
 | 
			
		||||
@@ -7877,7 +7877,7 @@ struct charset_info_st my_charset_utf8mb4_general_nopad_ci=
 | 
			
		||||
  MY_NOPAD_ID(45),0,0,/* number       */
 | 
			
		||||
  MY_CS_COMPILED|MY_CS_STRNXFRM|MY_CS_UNICODE|MY_CS_UNICODE_SUPPLEMENT|
 | 
			
		||||
  MY_CS_NOPAD,        /* state            */
 | 
			
		||||
  MY_UTF8MB4,         /* cs name          */
 | 
			
		||||
  charset_name_utf8mb4,         /* cs name          */
 | 
			
		||||
  MY_UTF8MB4_GENERAL_NOPAD_CI,/* name     */
 | 
			
		||||
  "UTF-8 Unicode",    /* comment          */
 | 
			
		||||
  NULL,               /* tailoring        */
 | 
			
		||||
@@ -7911,7 +7911,7 @@ struct charset_info_st my_charset_utf8mb4_nopad_bin=
 | 
			
		||||
  MY_NOPAD_ID(46),0,0, /* number          */
 | 
			
		||||
  MY_CS_COMPILED|MY_CS_BINSORT|MY_CS_STRNXFRM|MY_CS_UNICODE|
 | 
			
		||||
  MY_CS_UNICODE_SUPPLEMENT|MY_CS_NOPAD, /* state  */
 | 
			
		||||
  MY_UTF8MB4,         /* cs name          */
 | 
			
		||||
  charset_name_utf8mb4,         /* cs name          */
 | 
			
		||||
  MY_UTF8MB4_NOPAD_BIN, /* name           */
 | 
			
		||||
  "UTF-8 Unicode",    /* comment          */
 | 
			
		||||
  NULL,               /* tailoring        */
 | 
			
		||||
 
 | 
			
		||||
@@ -52,6 +52,7 @@
 | 
			
		||||
 | 
			
		||||
#ifdef HAVE_CHARSET_cp1250
 | 
			
		||||
 | 
			
		||||
const char charset_name_cp1250[]= "cp1250";
 | 
			
		||||
 | 
			
		||||
static const uint16 tab_cp1250_uni[256]={
 | 
			
		||||
     0,0x0001,0x0002,0x0003,0x0004,0x0005,0x0006,0x0007,
 | 
			
		||||
@@ -690,7 +691,7 @@ struct charset_info_st my_charset_cp1250_czech_ci =
 | 
			
		||||
  34,0,0,                                     /* number    */
 | 
			
		||||
  MY_CS_COMPILED|MY_CS_STRNXFRM|MY_CS_CSSORT|
 | 
			
		||||
  MY_CS_STRNXFRM_BAD_NWEIGHTS|MY_CS_NON1TO1,  /* state     */
 | 
			
		||||
  "cp1250",                                   /* cs name   */
 | 
			
		||||
  charset_name_cp1250,                        /* cs name   */
 | 
			
		||||
  "cp1250_czech_cs",                          /* name      */
 | 
			
		||||
  "",                                         /* comment   */
 | 
			
		||||
  NULL,                                       /* tailoring */
 | 
			
		||||
 
 | 
			
		||||
@@ -36,6 +36,12 @@
 | 
			
		||||
  
 | 
			
		||||
*/
 | 
			
		||||
 | 
			
		||||
const char charset_name_latin2[]= "latin2";
 | 
			
		||||
const char charset_name_utf8[]= "utf8";
 | 
			
		||||
const char charset_name_utf16[]= "utf16";
 | 
			
		||||
const char charset_name_utf32[]= "utf32";
 | 
			
		||||
const char charset_name_ucs2[]= "ucs2";
 | 
			
		||||
const char charset_name_utf8mb4[]= "utf8mb4";
 | 
			
		||||
 | 
			
		||||
/*
 | 
			
		||||
  Avoid using my_snprintf
 | 
			
		||||
 
 | 
			
		||||
@@ -130,4 +130,13 @@ int my_wc_to_printable_generic(CHARSET_INFO *cs, my_wc_t wc,
 | 
			
		||||
int my_wc_to_printable_8bit(CHARSET_INFO *cs, my_wc_t wc,
 | 
			
		||||
                            uchar *s, uchar *e);
 | 
			
		||||
 | 
			
		||||
/* Some common character set names */
 | 
			
		||||
extern const char charset_name_latin2[];
 | 
			
		||||
extern const char charset_name_utf8[];
 | 
			
		||||
extern const char charset_name_utf16[];
 | 
			
		||||
extern const char charset_name_utf32[];
 | 
			
		||||
extern const char charset_name_ucs2[];
 | 
			
		||||
extern const char charset_name_ucs2[];
 | 
			
		||||
extern const char charset_name_utf8mb4[];
 | 
			
		||||
 | 
			
		||||
#endif /*STRINGS_DEF_INCLUDED */
 | 
			
		||||
 
 | 
			
		||||
		Reference in New Issue
	
	Block a user