Commit e7d7910b authored by Sergei Golubchik's avatar Sergei Golubchik

add an assert

and use is_supported_parser_charset() instead of direct check
parent 48655ce6
/* /*
Copyright (c) 2007, 2013, Oracle and/or its affiliates. Copyright (c) 2007, 2013, Oracle and/or its affiliates.
Copyright (c) 2008, 2014, SkySQL Ab. Copyright (c) 2008, 2016, MariaDB
This program is free software; you can redistribute it and/or modify This program is free software; you can redistribute it and/or modify
it under the terms of the GNU General Public License as published by it under the terms of the GNU General Public License as published by
...@@ -821,6 +821,7 @@ void update_global_user_stats(THD *thd, bool create_user, time_t now) ...@@ -821,6 +821,7 @@ void update_global_user_stats(THD *thd, bool create_user, time_t now)
bool thd_init_client_charset(THD *thd, uint cs_number) bool thd_init_client_charset(THD *thd, uint cs_number)
{ {
SV *gv=&global_system_variables;
CHARSET_INFO *cs; CHARSET_INFO *cs;
/* /*
Use server character set and collation if Use server character set and collation if
...@@ -831,16 +832,13 @@ bool thd_init_client_charset(THD *thd, uint cs_number) ...@@ -831,16 +832,13 @@ bool thd_init_client_charset(THD *thd, uint cs_number)
*/ */
if (!opt_character_set_client_handshake || if (!opt_character_set_client_handshake ||
!(cs= get_charset(cs_number, MYF(0))) || !(cs= get_charset(cs_number, MYF(0))) ||
!my_strcasecmp(&my_charset_latin1, !my_strcasecmp(&my_charset_latin1, gv->character_set_client->name,
global_system_variables.character_set_client->name,
cs->name)) cs->name))
{ {
thd->variables.character_set_client= DBUG_ASSERT(is_supported_parser_charset(gv->character_set_client));
global_system_variables.character_set_client; thd->variables.character_set_client= gv->character_set_client;
thd->variables.collation_connection= thd->variables.collation_connection= gv->collation_connection;
global_system_variables.collation_connection; thd->variables.character_set_results= gv->character_set_results;
thd->variables.character_set_results=
global_system_variables.character_set_results;
} }
else else
{ {
......
...@@ -31,6 +31,7 @@ ...@@ -31,6 +31,7 @@
#include "my_global.h" /* NO_EMBEDDED_ACCESS_CHECKS */ #include "my_global.h" /* NO_EMBEDDED_ACCESS_CHECKS */
#include "sql_priv.h" #include "sql_priv.h"
#include "sql_class.h" // set_var.h: THD #include "sql_class.h" // set_var.h: THD
#include "sql_parse.h"
#include "sys_vars.h" #include "sys_vars.h"
#include "events.h" #include "events.h"
...@@ -445,7 +446,7 @@ static bool check_cs_client(sys_var *self, THD *thd, set_var *var) ...@@ -445,7 +446,7 @@ static bool check_cs_client(sys_var *self, THD *thd, set_var *var)
return true; return true;
// Currently, UCS-2 cannot be used as a client character set // Currently, UCS-2 cannot be used as a client character set
if (((CHARSET_INFO *)(var->save_result.ptr))->mbminlen > 1) if (!is_supported_parser_charset((CHARSET_INFO *)(var->save_result.ptr)))
return true; return true;
return false; return false;
......
Markdown is supported
0%
or
You are about to add 0 people to the discussion. Proceed with caution.
Finish editing this message first!
Please register or to comment