diff options
author | unknown <ramil/ram@ramil.myoffice.izhnet.ru> | 2007-10-23 16:04:32 +0500 |
---|---|---|
committer | unknown <ramil/ram@ramil.myoffice.izhnet.ru> | 2007-10-23 16:04:32 +0500 |
commit | 0c396b862e4b04e86b5e24ae8099f9dd27690e95 (patch) | |
tree | 3c4896aeb0febbeddae4139d1b2b417a87ab8be6 /sql | |
parent | 9ef7b5f6f0a71208892ad97c89f5e6aba173b5a3 (diff) | |
parent | e8adc3f74be7c8c8e81e59b1f5927bedf4a561bb (diff) | |
download | mariadb-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.cc | 22 | ||||
-rw-r--r-- | sql/set_var.h | 1 |
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 |