mirror of
https://github.com/MariaDB/server.git
synced 2025-07-29 05:21:33 +03:00
mysqld --collation-server=xxx --character-set-server=yyy
didn't work as expected: collation_server was set not to xxx, but to the default collation of character set "yyy". With different argument order it worked as expected: mysqld --character-set-server=yyy --collation-server=yyy Fix: initializate default_collation_name to 0 when processing --character-set-server only if --collation-server has not been specified in command line. mysql-test/r/ctype_ucs2_def.result: Adding test cast mysql-test/t/ctype_ucs2_def-master.opt: Adding test case mysql-test/t/ctype_ucs2_def.test: Adding test case sql/mysqld.cc: Don't clear default_collation_name when processing --character-set-server if collation has already been specified using --collation-server
This commit is contained in:
@ -1,3 +1,6 @@
|
||||
show variables like 'collation_server';
|
||||
Variable_name Value
|
||||
collation_server ucs2_unicode_ci
|
||||
show variables like "%character_set_ser%";
|
||||
Variable_name Value
|
||||
character_set_server ucs2
|
||||
|
@ -1 +1 @@
|
||||
--default-character-set=ucs2 --default-collation=ucs2_unicode_ci
|
||||
--default-collation=ucs2_unicode_ci --default-character-set=ucs2
|
||||
|
@ -1,3 +1,8 @@
|
||||
#
|
||||
# MySQL Bug#15276: MySQL ignores collation-server
|
||||
#
|
||||
show variables like 'collation_server';
|
||||
|
||||
#
|
||||
# Bug#18004 Connecting crashes server when default charset is UCS2
|
||||
#
|
||||
|
@ -378,6 +378,7 @@ key_map key_map_full(0); // Will be initialized later
|
||||
|
||||
const char *opt_date_time_formats[3];
|
||||
|
||||
char compiled_default_collation_name[]= MYSQL_DEFAULT_COLLATION_NAME;
|
||||
char *language_ptr, *default_collation_name, *default_character_set_name;
|
||||
char mysql_data_home_buff[2], *mysql_data_home=mysql_real_data_home;
|
||||
struct passwd *user_info;
|
||||
@ -5936,7 +5937,7 @@ static void mysql_init_variables(void)
|
||||
/* Variables in libraries */
|
||||
charsets_dir= 0;
|
||||
default_character_set_name= (char*) MYSQL_DEFAULT_CHARSET_NAME;
|
||||
default_collation_name= (char*) MYSQL_DEFAULT_COLLATION_NAME;
|
||||
default_collation_name= compiled_default_collation_name;
|
||||
sys_charset_system.value= (char*) system_charset_info->csname;
|
||||
|
||||
|
||||
@ -6091,6 +6092,7 @@ get_one_option(int optid, const struct my_option *opt __attribute__((unused)),
|
||||
strmake(mysql_home,argument,sizeof(mysql_home)-1);
|
||||
break;
|
||||
case 'C':
|
||||
if (default_collation_name == compiled_default_collation_name)
|
||||
default_collation_name= 0;
|
||||
break;
|
||||
case 'l':
|
||||
|
Reference in New Issue
Block a user