From: Date: June 23 2006 3:00pm Subject: bk commit into 5.0 tree (bar:1.2192) BUG#15276 List-Archive: http://lists.mysql.com/commits/8140 X-Bug: 15276 Message-Id: <200606231300.k5ND0wFT049340@bar.intranet.mysql.r18.ru> Below is the list of changes that have just been committed into a local 5.0 repository of bar. When bar does a push these changes will be propagated to the main repository and, within 24 hours after the push, to the public repository. For information on how to access the public repository see http://dev.mysql.com/doc/mysql/en/installing-source-tree.html ChangeSet 1.2192 06/06/23 18:00:49 bar@stripped +4 -0 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. sql/mysqld.cc 1.556 06/06/23 18:00:39 bar@stripped +4 -2 Don't clear default_collation_name when processing --character-set-server if collation has already been specified using --collation-server mysql-test/t/ctype_ucs2_def.test 1.2 06/06/23 18:00:38 bar@stripped +5 -0 Adding test case mysql-test/t/ctype_ucs2_def-master.opt 1.2 06/06/23 18:00:38 bar@stripped +1 -1 Specifying variables in reverse order, to cover the bug. mysql-test/r/ctype_ucs2_def.result 1.2 06/06/23 18:00:38 bar@stripped +3 -0 Adding test case # This is a BitKeeper patch. What follows are the unified diffs for the # set of deltas contained in the patch. The rest of the patch, the part # that BitKeeper cares about, is below these diffs. # User: bar # Host: bar.intranet.mysql.r18.ru # Root: /usr/home/bar/mysql-5.0-kt.b15276 --- 1.555/sql/mysqld.cc 2006-06-19 16:11:17 +05:00 +++ 1.556/sql/mysqld.cc 2006-06-23 18:00:39 +05:00 @@ -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 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 m 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; --- 1.1/mysql-test/r/ctype_ucs2_def.result 2006-03-20 14:36:28 +04:00 +++ 1.2/mysql-test/r/ctype_ucs2_def.result 2006-06-23 18:00:38 +05:00 @@ -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/mysql-test/t/ctype_ucs2_def-master.opt 2006-03-20 14:36:28 +04:00 +++ 1.2/mysql-test/t/ctype_ucs2_def-master.opt 2006-06-23 18:00:38 +05:00 @@ -1 +1 @@ ---default-character-set=ucs2 --default-collation=ucs2_unicode_ci +--default-collation=ucs2_unicode_ci --default-character-set=ucs2 --- 1.1/mysql-test/t/ctype_ucs2_def.test 2006-03-20 14:36:28 +04:00 +++ 1.2/mysql-test/t/ctype_ucs2_def.test 2006-06-23 18:00:38 +05:00 @@ -1,4 +1,9 @@ # +# MySQL Bug#15276: MySQL ignores collation-server +# +show variables like 'collation_server'; + +# # Bug#18004 Connecting crashes server when default charset is UCS2 # show variables like "%character_set_ser%";