summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorbar@mysql.com <>2006-03-22 13:11:31 +0400
committerbar@mysql.com <>2006-03-22 13:11:31 +0400
commitcab060d2e2fc6de1f64e331d4d9d53c64697beb0 (patch)
treedb6df6e4b184db38b69af78d9b8d3e14d1efe47d
parentdcceaae8b63641958bab3cdf9ebb161af4c76332 (diff)
parent33e446b356f6054e0f03f64a91220e33be385204 (diff)
downloadmariadb-git-cab060d2e2fc6de1f64e331d4d9d53c64697beb0.tar.gz
Merge mysql.com:/usr/home/bar/mysql-4.1.b18004
into mysql.com:/usr/home/bar/mysql-5.0
-rw-r--r--mysql-test/r/ctype_ucs2_def.result6
-rw-r--r--mysql-test/t/ctype_ucs2_def-master.opt1
-rw-r--r--mysql-test/t/ctype_ucs2_def.test9
-rw-r--r--sql/table.cc6
4 files changed, 19 insertions, 3 deletions
diff --git a/mysql-test/r/ctype_ucs2_def.result b/mysql-test/r/ctype_ucs2_def.result
new file mode 100644
index 00000000000..897dbac251c
--- /dev/null
+++ b/mysql-test/r/ctype_ucs2_def.result
@@ -0,0 +1,6 @@
+show variables like "%character_set_ser%";
+Variable_name Value
+character_set_server ucs2
+DROP TABLE IF EXISTS t1;
+create table t1 (a int);
+drop table t1;
diff --git a/mysql-test/t/ctype_ucs2_def-master.opt b/mysql-test/t/ctype_ucs2_def-master.opt
new file mode 100644
index 00000000000..1f884ff1d67
--- /dev/null
+++ b/mysql-test/t/ctype_ucs2_def-master.opt
@@ -0,0 +1 @@
+--default-character-set=ucs2 --default-collation=ucs2_unicode_ci
diff --git a/mysql-test/t/ctype_ucs2_def.test b/mysql-test/t/ctype_ucs2_def.test
new file mode 100644
index 00000000000..fb174d551cf
--- /dev/null
+++ b/mysql-test/t/ctype_ucs2_def.test
@@ -0,0 +1,9 @@
+#
+# Bug#18004 Connecting crashes server when default charset is UCS2
+#
+show variables like "%character_set_ser%";
+--disable_warnings
+DROP TABLE IF EXISTS t1;
+--enable_warnings
+create table t1 (a int);
+drop table t1;
diff --git a/sql/table.cc b/sql/table.cc
index 64ef8aa1e4b..8e23bea2540 100644
--- a/sql/table.cc
+++ b/sql/table.cc
@@ -1597,7 +1597,7 @@ bool check_db_name(char *name)
while (*name)
{
#if defined(USE_MB) && defined(USE_MB_IDENT)
- last_char_is_space= my_isspace(default_charset_info, *name);
+ last_char_is_space= my_isspace(system_charset_info, *name);
if (use_mb(system_charset_info))
{
int len=my_ismbchar(system_charset_info, name,
@@ -1643,7 +1643,7 @@ bool check_table_name(const char *name, uint length)
while (name != end)
{
#if defined(USE_MB) && defined(USE_MB_IDENT)
- last_char_is_space= my_isspace(default_charset_info, *name);
+ last_char_is_space= my_isspace(system_charset_info, *name);
if (use_mb(system_charset_info))
{
int len=my_ismbchar(system_charset_info, name, end);
@@ -1674,7 +1674,7 @@ bool check_column_name(const char *name)
while (*name)
{
#if defined(USE_MB) && defined(USE_MB_IDENT)
- last_char_is_space= my_isspace(default_charset_info, *name);
+ last_char_is_space= my_isspace(system_charset_info, *name);
if (use_mb(system_charset_info))
{
int len=my_ismbchar(system_charset_info, name,