Merge abarkov@work.mysql.com:/home/bk/mysql-4.1

into bar.mysql.r18.ru:/usr/home/bar/mysql-4.1
This commit is contained in:
unknown 2003-03-05 16:43:43 +04:00
commit a6c0ea72d6
18 changed files with 116 additions and 56 deletions

View file

@ -77,6 +77,8 @@ typedef struct my_uni_idx_st
typedef struct charset_info_st
{
uint number;
uint primary_number;
uint binary_number;
uint state;
const char *csname;
const char *name;

View file

@ -257,7 +257,13 @@ static int add_collation(CHARSET_INFO *cs)
return MY_XML_ERROR;
bzero((void*)all_charsets[cs->number],sizeof(CHARSET_INFO));
}
if (cs->primary_number == cs->number)
cs->state |= MY_CS_PRIMARY;
if (cs->primary_number == cs->number)
cs->state |= MY_CS_BINSORT;
if (!(all_charsets[cs->number]->state & MY_CS_COMPILED))
{
simple_cs_copy_data(all_charsets[cs->number],cs);
@ -267,6 +273,10 @@ static int add_collation(CHARSET_INFO *cs)
all_charsets[cs->number]->state |= MY_CS_LOADED;
}
}
else
{
all_charsets[cs->number]->state |= cs->state;
}
cs->number= 0;
cs->name= NULL;
cs->state= 0;

View file

@ -674,7 +674,7 @@ bool my_yyoverflow(short **a, YYSTYPE **b,int *yystacksize);
handler_rkey_function handler_read_or_scan
single_multi table_wild_list table_wild_one opt_wild
union_clause union_list union_option
precision subselect_start opt_and
precision subselect_start opt_and charset
subselect_end select_var_list select_var_list_init help opt_len
END_OF_INPUT
@ -927,10 +927,9 @@ create_database_options:
create_database_option:
COLLATE_SYM collation_name_or_default
{ Lex->create_info.table_charset=$2; }
| opt_default CHAR_SYM SET charset_name_or_default
{ Lex->create_info.table_charset=$4; }
| opt_default CHARSET charset_name_or_default
{ Lex->create_info.table_charset=$3; };
| opt_default charset charset_name_or_default
{ Lex->create_info.table_charset=$3; }
;
opt_table_options:
/* empty */ { $$= 0; }
@ -989,16 +988,11 @@ create_table_option:
table_list->next=0;
lex->create_info.used_fields|= HA_CREATE_USED_UNION;
}
| opt_default CHARSET opt_equal charset_name_or_default
| opt_default charset opt_equal charset_name_or_default
{
Lex->create_info.table_charset= $4;
Lex->create_info.used_fields|= HA_CREATE_USED_CHARSET;
}
| opt_default CHAR_SYM SET opt_equal charset_name_or_default
{
Lex->create_info.table_charset= $5;
Lex->create_info.used_fields|= HA_CREATE_USED_CHARSET;
}
| COLLATE_SYM opt_equal collation_name_or_default
{
Lex->create_info.table_charset= $3;
@ -1301,6 +1295,10 @@ attribute:
}
;
charset:
CHAR_SYM SET {}
| CHARSET {}
;
charset_name:
ident_or_text
@ -1352,7 +1350,7 @@ opt_binary:
YYABORT;
}
}
| CHAR_SYM SET charset_name { Lex->charset=$3; } ;
| charset charset_name { Lex->charset=$2; } ;
opt_primary:
/* empty */
@ -3543,7 +3541,7 @@ show_param:
thd->lex.sql_command= SQLCOM_SHOW_VARIABLES;
thd->lex.option_type= (enum_var_type) $1;
}
| CHAR_SYM SET wild
| charset wild
{ Lex->sql_command= SQLCOM_SHOW_CHARSETS; }
| LOGS_SYM
{ Lex->sql_command= SQLCOM_SHOW_LOGS; }
@ -4215,12 +4213,12 @@ option_value:
find_sys_var("tx_isolation"),
new Item_int((int32) $4)));
}
| CHAR_SYM SET opt_equal set_expr_or_default
| charset opt_equal set_expr_or_default
{
LEX *lex=Lex;
lex->var_list.push_back(new set_var(lex->option_type,
find_sys_var("convert_character_set"),
$4));
$3));
}
| NAMES_SYM charset_name_or_default opt_collate
{

View file

@ -6233,7 +6233,7 @@ my_mb_wc_big5(CHARSET_INFO *cs __attribute__((unused)),
CHARSET_INFO my_charset_big5 =
{
1, /* number */
1,0,0, /* number */
MY_CS_COMPILED|MY_CS_PRIMARY|MY_CS_STRNXFRM, /* state */
"big5", /* cs name */
"big5", /* name */

View file

@ -295,7 +295,7 @@ static int my_strnxfrm_bin(CHARSET_INFO *cs __attribute__((unused)),
CHARSET_INFO my_charset_bin =
{
63, /* number */
63,0,0, /* number */
MY_CS_COMPILED|MY_CS_BINSORT|MY_CS_PRIMARY,/* state */
"binary", /* cs name */
"binary", /* name */

View file

@ -607,7 +607,7 @@ int my_strnncollsp_czech(CHARSET_INFO * cs,
CHARSET_INFO my_charset_czech =
{
2, /* number */
2,0,0, /* number */
MY_CS_COMPILED|MY_CS_STRNXFRM, /* state */
"latin2", /* cs name */
"czech", /* name */

View file

@ -8641,7 +8641,7 @@ my_mb_wc_euc_kr(CHARSET_INFO *cs __attribute__((unused)),
CHARSET_INFO my_charset_euc_kr =
{
19, /* number */
19,0,0, /* number */
MY_CS_COMPILED|MY_CS_PRIMARY, /* state */
"euckr", /* cs name */
"euckr", /* name */

View file

@ -1187,7 +1187,7 @@ static uchar sort_order_german1[] = {
};
#endif
#ifdef HAVE_CHARSET_greek
#ifdef HAVE_CHARSET_greek_bad
/* The greek character set. Generated automatically by
* the ./conf_to_src program
@ -2807,7 +2807,7 @@ CHARSET_INFO compiled_charsets[] = {
#ifdef HAVE_CHARSET_latin1
{
8, /* number */
8,0,0, /* number */
MY_CS_COMPILED|MY_CS_PRIMARY, /* state */
"latin1", /* cs name */
"latin1", /* name */
@ -2858,7 +2858,7 @@ CHARSET_INFO compiled_charsets[] = {
#ifdef HAVE_CHARSET_cp1251
{
14, /* number */
14,0,0, /* number */
MY_CS_COMPILED, /* state */
"cp1251", /* cs name */
"cp1251", /* name */
@ -2908,7 +2908,7 @@ CHARSET_INFO compiled_charsets[] = {
#ifdef HAVE_CHARSET_cp1257
{
29, /* number */
29,0,0, /* number */
MY_CS_COMPILED, /* state */
"cp1257", /* cs name */
"cp1257", /* name */
@ -2958,7 +2958,7 @@ CHARSET_INFO compiled_charsets[] = {
#ifdef HAVE_CHARSET_croat
{
27, /* number */
27,0,0, /* number */
MY_CS_COMPILED, /* state */
"latin2", /* cs name */
"croat", /* name */
@ -2979,6 +2979,8 @@ CHARSET_INFO compiled_charsets[] = {
NULL, /* ismbchar */
NULL, /* ismbhead */
NULL, /* mbcharlen */
my_numchars_8bit,
my_charpos_8bit,
my_mb_wc_8bit, /* mb_wc */
my_wc_mb_8bit, /* wc_mb */
my_caseup_str_8bit,
@ -3007,7 +3009,7 @@ CHARSET_INFO compiled_charsets[] = {
#ifdef HAVE_CHARSET_danish
{
15, /* number */
15,0,0, /* number */
MY_CS_COMPILED, /* state */
"latin1", /* cs name */
"danish", /* name */
@ -3028,6 +3030,8 @@ CHARSET_INFO compiled_charsets[] = {
NULL, /* ismbchar */
NULL, /* ismbhead */
NULL, /* mbcharlen */
my_numchars_8bit,
my_charpos_8bit,
my_mb_wc_8bit, /* mb_wc */
my_wc_mb_8bit, /* wc_mb */
my_caseup_str_8bit,
@ -3055,7 +3059,7 @@ CHARSET_INFO compiled_charsets[] = {
#ifdef HAVE_CHARSET_dec8
{
3, /* number */
3,0,0, /* number */
MY_CS_COMPILED, /* state */
"dec8", /* cs name */
"dec8", /* name */
@ -3076,6 +3080,8 @@ CHARSET_INFO compiled_charsets[] = {
NULL, /* ismbchar */
NULL, /* ismbhead */
NULL, /* mbcharlen */
my_numchars_8bit,
my_charpos_8bit,
my_mb_wc_8bit, /* mb_wc */
my_wc_mb_8bit, /* wc_mb */
my_caseup_str_8bit,
@ -3103,7 +3109,7 @@ CHARSET_INFO compiled_charsets[] = {
#ifdef HAVE_CHARSET_dos
{
4, /* number */
4,0,0, /* number */
MY_CS_COMPILED, /* state */
"cp850", /* cs name */
"dos", /* name */
@ -3124,6 +3130,8 @@ CHARSET_INFO compiled_charsets[] = {
NULL, /* ismbchar */
NULL, /* ismbhead */
NULL, /* mbcharlen */
my_numchars_8bit,
my_charpos_8bit,
my_mb_wc_8bit, /* mb_wc */
my_wc_mb_8bit, /* wc_mb */
my_caseup_str_8bit,
@ -3151,7 +3159,7 @@ CHARSET_INFO compiled_charsets[] = {
#ifdef HAVE_CHARSET_estonia
{
20, /* number */
20,0,0, /* number */
MY_CS_COMPILED, /* state */
"latin7", /* cs name */
"estonia", /* name */
@ -3172,6 +3180,8 @@ CHARSET_INFO compiled_charsets[] = {
NULL, /* ismbchar */
NULL, /* ismbhead */
NULL, /* mbcharlen */
my_numchars_8bit,
my_charpos_8bit,
my_mb_wc_8bit, /* mb_wc */
my_wc_mb_8bit, /* wc_mb */
my_caseup_str_8bit,
@ -3200,7 +3210,7 @@ CHARSET_INFO compiled_charsets[] = {
#ifdef HAVE_CHARSET_german1
{
5, /* number */
5,0,0, /* number */
MY_CS_COMPILED, /* state */
"latin1", /* cs name */
"german1", /* name */
@ -3221,6 +3231,8 @@ CHARSET_INFO compiled_charsets[] = {
NULL, /* ismbchar */
NULL, /* ismbhead */
NULL, /* mbcharlen */
my_numchars_8bit,
my_charpos_8bit,
my_mb_wc_8bit, /* mb_wc */
my_wc_mb_8bit, /* wc_mb */
my_caseup_str_8bit,
@ -3246,9 +3258,9 @@ CHARSET_INFO compiled_charsets[] = {
},
#endif
#ifdef HAVE_CHARSET_greek
#ifdef HAVE_CHARSET_greek_bad
{
25, /* number */
25,0,0, /* number */
MY_CS_COMPILED, /* state */
"greek", /* cs name */
"greek", /* name */
@ -3269,6 +3281,8 @@ CHARSET_INFO compiled_charsets[] = {
NULL, /* ismbchar */
NULL, /* ismbhead */
NULL, /* mbcharlen */
my_numchars_8bit,
my_charpos_8bit,
my_mb_wc_8bit, /* mb_wc */
my_wc_mb_8bit, /* wc_mb */
my_caseup_str_8bit,
@ -3296,7 +3310,7 @@ CHARSET_INFO compiled_charsets[] = {
#ifdef HAVE_CHARSET_hebrew
{
16, /* number */
16,0,0, /* number */
MY_CS_COMPILED, /* state */
"hebrew", /* cs name */
"hebrew", /* name */
@ -3317,6 +3331,8 @@ CHARSET_INFO compiled_charsets[] = {
NULL, /* ismbchar */
NULL, /* ismbhead */
NULL, /* mbcharlen */
my_numchars_8bit,
my_charpos_8bit,
my_mb_wc_8bit, /* mb_wc */
my_wc_mb_8bit, /* wc_mb */
my_caseup_str_8bit,
@ -3344,7 +3360,7 @@ CHARSET_INFO compiled_charsets[] = {
#ifdef HAVE_CHARSET_hp8
{
6, /* number */
6,0,0, /* number */
MY_CS_COMPILED, /* state */
"hp8", /* cs name */
"hp8", /* name */
@ -3365,6 +3381,8 @@ CHARSET_INFO compiled_charsets[] = {
NULL, /* ismbchar */
NULL, /* ismbhead */
NULL, /* mbcharlen */
my_numchars_8bit,
my_charpos_8bit,
my_mb_wc_8bit, /* mb_wc */
my_wc_mb_8bit, /* wc_mb */
my_caseup_str_8bit,
@ -3392,7 +3410,7 @@ CHARSET_INFO compiled_charsets[] = {
#ifdef HAVE_CHARSET_hungarian
{
21, /* number */
21,0,0, /* number */
MY_CS_COMPILED, /* state */
"latin2", /* cs name */
"hungarian", /* name */
@ -3413,6 +3431,8 @@ CHARSET_INFO compiled_charsets[] = {
NULL, /* ismbchar */
NULL, /* ismbhead */
NULL, /* mbcharlen */
my_numchars_8bit,
my_charpos_8bit,
my_mb_wc_8bit, /* mb_wc */
my_wc_mb_8bit, /* wc_mb */
my_caseup_str_8bit,
@ -3440,7 +3460,7 @@ CHARSET_INFO compiled_charsets[] = {
#ifdef HAVE_CHARSET_koi8_ru
{
7, /* number */
7,0,0, /* number */
MY_CS_COMPILED, /* state */
"koi8r", /* cs name */
"koi8r", /* name */
@ -3461,6 +3481,8 @@ CHARSET_INFO compiled_charsets[] = {
NULL, /* ismbchar */
NULL, /* ismbhead */
NULL, /* mbcharlen */
my_numchars_8bit,
my_charpos_8bit,
my_mb_wc_8bit, /* mb_wc */
my_wc_mb_8bit, /* wc_mb */
my_caseup_str_8bit,
@ -3488,7 +3510,7 @@ CHARSET_INFO compiled_charsets[] = {
#ifdef HAVE_CHARSET_koi8_ukr
{
22, /* number */
22,0,0, /* number */
MY_CS_COMPILED, /* state */
"koi8u", /* cs name */
"koi8u", /* name */
@ -3509,6 +3531,8 @@ CHARSET_INFO compiled_charsets[] = {
NULL, /* ismbchar */
NULL, /* ismbhead */
NULL, /* mbcharlen */
my_numchars_8bit,
my_charpos_8bit,
my_mb_wc_8bit, /* mb_wc */
my_wc_mb_8bit, /* wc_mb */
my_caseup_str_8bit,
@ -3537,7 +3561,7 @@ CHARSET_INFO compiled_charsets[] = {
#ifdef HAVE_CHARSET_latin2
{
9, /* number */
9,0,0, /* number */
MY_CS_COMPILED, /* state */
"latin2", /* cs name */
"latin2", /* name */
@ -3558,6 +3582,8 @@ CHARSET_INFO compiled_charsets[] = {
NULL, /* ismbchar */
NULL, /* ismbhead */
NULL, /* mbcharlen */
my_numchars_8bit,
my_charpos_8bit,
my_mb_wc_8bit, /* mb_wc */
my_wc_mb_8bit, /* wc_mb */
my_caseup_str_8bit,
@ -3585,7 +3611,7 @@ CHARSET_INFO compiled_charsets[] = {
#ifdef HAVE_CHARSET_latin5
{
30, /* number */
30,0,0, /* number */
MY_CS_COMPILED, /* state */
"latin5", /* cs name */
"latin5", /* name */
@ -3606,6 +3632,8 @@ CHARSET_INFO compiled_charsets[] = {
NULL, /* ismbchar */
NULL, /* ismbhead */
NULL, /* mbcharlen */
my_numchars_8bit,
my_charpos_8bit,
my_mb_wc_8bit, /* mb_wc */
my_wc_mb_8bit, /* wc_mb */
my_caseup_str_8bit,
@ -3634,7 +3662,7 @@ CHARSET_INFO compiled_charsets[] = {
#ifdef HAVE_CHARSET_swe7
{
10, /* number */
10,0,0, /* number */
MY_CS_COMPILED, /* state */
"swe7", /* cs name */
"swe7", /* name */
@ -3655,6 +3683,8 @@ CHARSET_INFO compiled_charsets[] = {
NULL, /* ismbchar */
NULL, /* ismbhead */
NULL, /* mbcharlen */
my_numchars_8bit,
my_charpos_8bit,
my_mb_wc_8bit, /* mb_wc */
my_wc_mb_8bit, /* wc_mb */
my_caseup_str_8bit,
@ -3683,7 +3713,7 @@ CHARSET_INFO compiled_charsets[] = {
#ifdef HAVE_CHARSET_usa7
{
11, /* number */
11,0,0, /* number */
MY_CS_COMPILED, /* state */
"ascii", /* cs name */
"ascii", /* name */
@ -3704,6 +3734,8 @@ CHARSET_INFO compiled_charsets[] = {
NULL, /* ismbchar */
NULL, /* ismbhead */
NULL, /* mbcharlen */
my_numchars_8bit,
my_charpos_8bit,
my_mb_wc_8bit, /* mb_wc */
my_wc_mb_8bit, /* wc_mb */
my_caseup_str_8bit,
@ -3731,7 +3763,7 @@ CHARSET_INFO compiled_charsets[] = {
#ifdef HAVE_CHARSET_win1250
{
26, /* number */
26,0,0, /* number */
MY_CS_COMPILED, /* state */
"cp1250", /* cs name */
"cp1250", /* name */
@ -3752,6 +3784,8 @@ CHARSET_INFO compiled_charsets[] = {
NULL, /* ismbchar */
NULL, /* ismbhead */
NULL, /* mbcharlen */
my_numchars_8bit,
my_charpos_8bit,
my_mb_wc_8bit, /* mb_wc */
my_wc_mb_8bit, /* wc_mb */
my_caseup_str_8bit,
@ -3779,7 +3813,7 @@ CHARSET_INFO compiled_charsets[] = {
#ifdef HAVE_CHARSET_win1251ukr
{
23, /* number */
23,0,0, /* number */
MY_CS_COMPILED, /* state */
"cp1251", /* cs name */
"win1251ukr", /* name */
@ -3800,14 +3834,16 @@ CHARSET_INFO compiled_charsets[] = {
NULL, /* ismbchar */
NULL, /* ismbhead */
NULL, /* mbcharlen */
my_numchars_8bit,
my_charpos_8bit,
my_mb_wc_8bit, /* mb_wc */
my_wc_mb_8bit, /* wc_mb */
my_caseup_str_8bit,
my_casedn_str_8bit,
my_caseup_8bit,
my_casedn_8bit,
my_strcasecmp_8bit,
my_tosort_8bit,
my_strcasecmp_8bit,
my_strncasecmp_8bit,
my_hash_caseup_simple,
my_hash_sort_simple,
@ -3827,7 +3863,7 @@ CHARSET_INFO compiled_charsets[] = {
#ifdef HAVE_CHARSET_armscii8
{
32, /* number */
32,0,0, /* number */
MY_CS_COMPILED, /* state */
"armscii8", /* cs name */
"armscii8", /* name */
@ -3848,6 +3884,8 @@ CHARSET_INFO compiled_charsets[] = {
NULL, /* ismbchar */
NULL, /* ismbhead */
NULL, /* mbcharlen */
my_numchars_8bit,
my_charpos_8bit,
my_mb_wc_8bit, /* mb_wc */
my_wc_mb_8bit, /* wc_mb */
my_caseup_str_8bit,
@ -3875,7 +3913,7 @@ CHARSET_INFO compiled_charsets[] = {
#ifdef HAVE_CHARSET_win1251
{
17, /* number */
17,0,0, /* number */
MY_CS_COMPILED, /* state */
"cp1251", /* cs name */
"win1251", /* name */
@ -3896,6 +3934,8 @@ CHARSET_INFO compiled_charsets[] = {
NULL, /* ismbchar */
NULL, /* ismbhead */
NULL, /* mbcharlen */
my_numchars_8bit,
my_charpos_8bit,
my_mb_wc_8bit, /* mb_wc */
my_wc_mb_8bit, /* wc_mb */
my_caseup_str_8bit,
@ -3922,7 +3962,7 @@ CHARSET_INFO compiled_charsets[] = {
#endif
{
0, /* end-of-list marker */
0,0,0, /* end-of-list marker */
0, /* state */
NullS, /* cs name */
NullS, /* name */

View file

@ -5691,7 +5691,7 @@ my_mb_wc_gb2312(CHARSET_INFO *cs __attribute__((unused)),
CHARSET_INFO my_charset_gb2312 =
{
24, /* number */
24,0,0, /* number */
MY_CS_COMPILED|MY_CS_PRIMARY, /* state */
"gb2312", /* cs name */
"gb2312", /* name */

View file

@ -9888,7 +9888,7 @@ my_mb_wc_gbk(CHARSET_INFO *cs __attribute__((unused)),
CHARSET_INFO my_charset_gbk =
{
28, /* number */
28,0,0, /* number */
MY_CS_COMPILED|MY_CS_PRIMARY|MY_CS_STRNXFRM, /* state */
"gbk", /* cs name */
"gbk", /* name */

View file

@ -177,7 +177,7 @@ int my_wc_mb_latin1(CHARSET_INFO *cs __attribute__((unused)),
CHARSET_INFO my_charset_latin1 =
{
8, /* number */
8,0,0, /* number */
MY_CS_COMPILED, /* state */
"latin1", /* cs name */
"latin1", /* name */

View file

@ -348,7 +348,7 @@ static int my_strnxfrm_latin1_de(CHARSET_INFO *cs __attribute__((unused)),
CHARSET_INFO my_charset_latin1_de =
{
31, /* number */
31,0,0, /* number */
MY_CS_COMPILED|MY_CS_STRNXFRM, /* state */
"latin1", /* cs name */
"latin1_de", /* name */

View file

@ -4475,7 +4475,7 @@ my_mb_wc_sjis(CHARSET_INFO *cs __attribute__((unused)),
CHARSET_INFO my_charset_sjis =
{
13, /* number */
13,0,0, /* number */
MY_CS_COMPILED|MY_CS_PRIMARY|MY_CS_STRNXFRM, /* state */
"sjis", /* cs name */
"sjis", /* name */

View file

@ -698,7 +698,7 @@ void ThNormalize(uchar* ptr, uint field_length, const uchar* from, uint length)
CHARSET_INFO my_charset_tis620 =
{
18, /* number */
18,0,0, /* number */
MY_CS_COMPILED|MY_CS_PRIMARY|MY_CS_STRNXFRM, /* state */
"tis620", /* cs name */
"tis620", /* name */

View file

@ -8432,7 +8432,7 @@ my_wc_mb_euc_jp(CHARSET_INFO *c,my_wc_t wc, unsigned char *s, unsigned char *e)
CHARSET_INFO my_charset_ujis =
{
12, /* number */
12,0,0, /* number */
MY_CS_COMPILED|MY_CS_PRIMARY, /* state */
"ujis", /* cs name */
"ujis", /* name */

View file

@ -1977,7 +1977,7 @@ static int my_mbcharlen_utf8(CHARSET_INFO *cs __attribute__((unused)) , uint c)
CHARSET_INFO my_charset_utf8 =
{
33, /* number */
33,0,0, /* number */
MY_CS_COMPILED|MY_CS_PRIMARY|MY_CS_STRNXFRM, /* state */
"utf8", /* cs name */
"utf8", /* name */
@ -3084,7 +3084,7 @@ uint my_charpos_ucs2(CHARSET_INFO *cs __attribute__((unused)),
CHARSET_INFO my_charset_ucs2 =
{
35, /* number */
35,0,0, /* number */
MY_CS_COMPILED|MY_CS_PRIMARY|MY_CS_STRNXFRM, /* state */
"ucs2", /* cs name */
"ucs2", /* name */

View file

@ -642,7 +642,7 @@ static my_bool my_like_range_win1250ch(CHARSET_INFO *cs __attribute__((unused)),
CHARSET_INFO my_charset_win1250ch =
{
34, /* number */
34,0,0, /* number */
MY_CS_COMPILED|MY_CS_STRNXFRM, /* state */
"cp1250", /* cs name */
"cp1250_czech", /* name */

View file

@ -52,6 +52,8 @@ struct my_cs_file_section_st
#define _CS_UNIMAP 12
#define _CS_COLLMAP 13
#define _CS_CTYPEMAP 14
#define _CS_PRIMARY_ID 15
#define _CS_BINARY_ID 16
static struct my_cs_file_section_st sec[] =
{
@ -62,6 +64,8 @@ static struct my_cs_file_section_st sec[] =
{_CS_MISC, "charsets.max-id"},
{_CS_MISC, "charsets.description"},
{_CS_CHARSET, "charsets.charset"},
{_CS_PRIMARY_ID, "charsets.charset.primary-id"},
{_CS_BINARY_ID, "charsets.charset.binary-id"},
{_CS_CSNAME, "charsets.charset.name"},
{_CS_FAMILY, "charsets.charset.family"},
{_CS_MISC, "charsets.charset.alias"},
@ -192,6 +196,12 @@ static int cs_value(MY_XML_PARSER *st,const char *attr, uint len)
case _CS_ID:
i->cs.number= strtol(attr,(char**)NULL,10);
break;
case _CS_BINARY_ID:
i->cs.binary_number= strtol(attr,(char**)NULL,10);
break;
case _CS_PRIMARY_ID:
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);
break;