summaryrefslogtreecommitdiff
path: root/sql/set_var.cc
diff options
context:
space:
mode:
authorunknown <bar@bar.mysql.r18.ru>2003-05-30 13:56:02 +0500
committerunknown <bar@bar.mysql.r18.ru>2003-05-30 13:56:02 +0500
commit7953039deddbf08c62498d4551745563ec572993 (patch)
treef1d5f6c46fc33df2ba8bde5c0055214d11f1d8bb /sql/set_var.cc
parent677ece6612b833227977ea3cfbbff29328224b69 (diff)
downloadmariadb-git-7953039deddbf08c62498d4551745563ec572993.tar.gz
SET character_set_results=NULL is now working
Diffstat (limited to 'sql/set_var.cc')
-rw-r--r--sql/set_var.cc12
1 files changed, 9 insertions, 3 deletions
diff --git a/sql/set_var.cc b/sql/set_var.cc
index f1a36ae0292..eb44dd1dbcb 100644
--- a/sql/set_var.cc
+++ b/sql/set_var.cc
@@ -1280,9 +1280,15 @@ bool sys_var_character_set::check(THD *thd, set_var *var)
String str(buff,sizeof(buff), system_charset_info), *res;
if (!(res=var->value->val_str(&str)))
- res= &empty_string;
-
- if (!(tmp=get_charset_by_csname(res->c_ptr(),MY_CS_PRIMARY,MYF(0))) &&
+ {
+ if (!nullable)
+ {
+ my_error(ER_UNKNOWN_CHARACTER_SET, MYF(0), "NULL");
+ return 1;
+ }
+ tmp= NULL;
+ }
+ else if (!(tmp=get_charset_by_csname(res->c_ptr(),MY_CS_PRIMARY,MYF(0))) &&
!(tmp=get_old_charset_by_name(res->c_ptr())))
{
my_error(ER_UNKNOWN_CHARACTER_SET, MYF(0), res->c_ptr());