mirror of
https://github.com/MariaDB/server.git
synced 2025-01-18 13:02:28 +01:00
Bug#15276: MySQL ignores collation-server
Problem: 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.
This commit is contained in:
parent
13fdfea032
commit
ee8fd1e3b5
4 changed files with 13 additions and 3 deletions
|
@ -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
|
||||
#
|
||||
|
|
|
@ -323,6 +323,7 @@ static char *default_character_set_name;
|
|||
static char *character_set_filesystem_name;
|
||||
static char *my_bind_addr_str;
|
||||
static char *default_collation_name;
|
||||
static char compiled_default_collation_name[]= MYSQL_DEFAULT_COLLATION_NAME;
|
||||
static char mysql_data_home_buff[2];
|
||||
static struct passwd *user_info;
|
||||
static I_List<THD> thread_cache;
|
||||
|
@ -6389,7 +6390,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;
|
||||
character_set_filesystem_name= (char*) "binary";
|
||||
|
||||
|
@ -6551,7 +6552,8 @@ get_one_option(int optid, const struct my_option *opt __attribute__((unused)),
|
|||
strmake(mysql_home,argument,sizeof(mysql_home)-1);
|
||||
break;
|
||||
case 'C':
|
||||
default_collation_name= 0;
|
||||
if (default_collation_name == compiled_default_collation_name)
|
||||
default_collation_name= 0;
|
||||
break;
|
||||
case 'l':
|
||||
opt_log=1;
|
||||
|
|
Loading…
Reference in a new issue