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<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 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%";
| Thread |
|---|
| • bk commit into 5.0 tree (bar:1.2192) BUG#15276 | bar | 23 Jun |