New function my_charset_same()
BitKeeper/etc/logging_ok: Logging to logging@openlogging.org accepted
This commit is contained in:
parent
23f252855e
commit
ed2bb40a9a
@ -65,6 +65,7 @@ monty@work.mysql.com
|
||||
mwagner@cash.mwagner.org
|
||||
mwagner@evoq.mwagner.org
|
||||
mwagner@work.mysql.com
|
||||
mysql@home.(none)
|
||||
nick@mysql.com
|
||||
nick@nick.leippe.com
|
||||
papa@gbichot.local
|
||||
|
@ -199,6 +199,7 @@ extern CHARSET_INFO my_charset_latin1_de;
|
||||
extern CHARSET_INFO my_charset_sjis;
|
||||
extern CHARSET_INFO my_charset_tis620;
|
||||
extern CHARSET_INFO my_charset_ucs2;
|
||||
extern CHARSET_INFO my_charset_ucse;
|
||||
extern CHARSET_INFO my_charset_ujis;
|
||||
extern CHARSET_INFO my_charset_utf8;
|
||||
extern CHARSET_INFO my_charset_win1250ch;
|
||||
|
@ -215,6 +215,7 @@ extern CHARSET_INFO *get_charset_by_csname(const char *cs_name,
|
||||
extern void free_charsets(void);
|
||||
extern char *list_charsets(myf want_flags); /* my_free() this string... */
|
||||
extern char *get_charsets_dir(char *buf);
|
||||
extern my_bool my_charset_same(CHARSET_INFO *cs1, CHARSET_INFO *cs2);
|
||||
|
||||
|
||||
/* statistics */
|
||||
|
@ -33,6 +33,10 @@
|
||||
- Setting server default character set
|
||||
*/
|
||||
|
||||
my_bool my_charset_same(CHARSET_INFO *cs1, CHARSET_INFO *cs2)
|
||||
{
|
||||
return ((cs1 == cs2) || !strcmp(cs1->csname,cs2->csname));
|
||||
}
|
||||
|
||||
static void set_max_sort_char(CHARSET_INFO *cs)
|
||||
{
|
||||
|
@ -136,7 +136,7 @@ Item_func::fix_fields(THD *thd, TABLE_LIST *tables, Item **ref)
|
||||
}
|
||||
else if ((*arg)->coercibility < coercibility)
|
||||
{
|
||||
if (strcmp(charset()->csname,(*arg)->charset()->csname))
|
||||
if (!my_charset_same(charset(),(*arg)->charset()))
|
||||
{
|
||||
set_charset(&my_charset_bin);
|
||||
coercibility= COER_NOCOLL;
|
||||
|
@ -2216,7 +2216,7 @@ bool Item_func_set_collation::fix_fields(THD *thd,struct st_table_list *tables,
|
||||
return 1;
|
||||
}
|
||||
|
||||
if (strcmp(args[0]->charset()->csname,set_collation->csname))
|
||||
if (!my_charset_same(args[0]->charset(),set_collation))
|
||||
{
|
||||
my_error(ER_COLLATION_CHARSET_MISMATCH, MYF(0),
|
||||
set_collation->name,args[0]->charset()->csname);
|
||||
|
@ -1284,7 +1284,7 @@ attribute:
|
||||
| COMMENT_SYM text_literal { Lex->comment= $2; }
|
||||
| COLLATE_SYM collation_name
|
||||
{
|
||||
if (Lex->charset && strcmp(Lex->charset->csname,$2->csname))
|
||||
if (Lex->charset && !my_charset_same(Lex->charset,$2))
|
||||
{
|
||||
net_printf(YYTHD,ER_COLLATION_CHARSET_MISMATCH,
|
||||
$2->name,Lex->charset->csname);
|
||||
@ -4250,7 +4250,7 @@ option_value:
|
||||
CHARSET_INFO *cs= $2 ? $2 : thd->db_charset;
|
||||
CHARSET_INFO *cl= $3 ? $3 : cs;
|
||||
|
||||
if ((cl != cs) && strcmp(cs->csname,cl->csname))
|
||||
if (!my_charset_same(cs,cl))
|
||||
{
|
||||
net_printf(YYTHD,ER_COLLATION_CHARSET_MISMATCH,
|
||||
cl->name,cs->csname);
|
||||
@ -4279,7 +4279,7 @@ option_value:
|
||||
YYABORT;
|
||||
}
|
||||
}
|
||||
else if ((cl != cs) && strcmp(cs->csname,cl->csname))
|
||||
else if (!my_charset_same(cs,cl))
|
||||
{
|
||||
net_printf(YYTHD,ER_COLLATION_CHARSET_MISMATCH,
|
||||
cl->name,cs->csname);
|
||||
|
Loading…
x
Reference in New Issue
Block a user