summaryrefslogtreecommitdiff
path: root/sql
diff options
context:
space:
mode:
authorunknown <ramil/ram@ramil.myoffice.izhnet.ru>2007-10-23 16:04:32 +0500
committerunknown <ramil/ram@ramil.myoffice.izhnet.ru>2007-10-23 16:04:32 +0500
commit0c396b862e4b04e86b5e24ae8099f9dd27690e95 (patch)
tree3c4896aeb0febbeddae4139d1b2b417a87ab8be6 /sql
parent9ef7b5f6f0a71208892ad97c89f5e6aba173b5a3 (diff)
parente8adc3f74be7c8c8e81e59b1f5927bedf4a561bb (diff)
downloadmariadb-git-0c396b862e4b04e86b5e24ae8099f9dd27690e95.tar.gz
Merge mysql.com:/home/ram/work/b31615/b31615.4.1
into mysql.com:/home/ram/work/b31615/b31615.5.0 mysql-test/r/ctype_ucs.result: Auto merged mysql-test/t/ctype_ucs.test: Auto merged sql/set_var.cc: Auto merged sql/set_var.h: Auto merged
Diffstat (limited to 'sql')
-rw-r--r--sql/set_var.cc22
-rw-r--r--sql/set_var.h1
2 files changed, 23 insertions, 0 deletions
diff --git a/sql/set_var.cc b/sql/set_var.cc
index 2c961868bba..3387a69bc97 100644
--- a/sql/set_var.cc
+++ b/sql/set_var.cc
@@ -2223,6 +2223,21 @@ sys_var_character_set_filesystem::set_default(THD *thd, enum_var_type type)
}
+bool sys_var_character_set_client::check(THD *thd, set_var *var)
+{
+ if (sys_var_character_set::check(thd, var))
+ return 1;
+ /* Currently, UCS-2 cannot be used as a client character set */
+ if (var->save_result.charset->mbminlen > 1)
+ {
+ my_error(ER_WRONG_VALUE_FOR_VAR, MYF(0), name,
+ var->save_result.charset->csname);
+ return 1;
+ }
+ return 0;
+}
+
+
CHARSET_INFO **
sys_var_character_set_results::ci_ptr(THD *thd, enum_var_type type)
{
@@ -2562,6 +2577,13 @@ end:
int set_var_collation_client::check(THD *thd)
{
+ /* Currently, UCS-2 cannot be used as a client character set */
+ if (character_set_client->mbminlen > 1)
+ {
+ my_error(ER_WRONG_VALUE_FOR_VAR, MYF(0), "character_set_client",
+ character_set_client->csname);
+ return 1;
+ }
return 0;
}
diff --git a/sql/set_var.h b/sql/set_var.h
index 6000e155db9..d408384d5f0 100644
--- a/sql/set_var.h
+++ b/sql/set_var.h
@@ -613,6 +613,7 @@ public:
sys_var_character_set(name_arg) {}
void set_default(THD *thd, enum_var_type type);
CHARSET_INFO **ci_ptr(THD *thd, enum_var_type type);
+ bool check(THD *thd, set_var *var);
};
class sys_var_character_set_results :public sys_var_character_set