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) 2008, 2014, SkySQL Ab.
Copyright (c) 2008, 2016, MariaDB
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
......@@ -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)
{
SV *gv=&global_system_variables;
CHARSET_INFO *cs;
/*
Use server character set and collation if
......@@ -831,16 +832,13 @@ bool thd_init_client_charset(THD *thd, uint cs_number)
*/
if (!opt_character_set_client_handshake ||
!(cs= get_charset(cs_number, MYF(0))) ||
!my_strcasecmp(&my_charset_latin1,
global_system_variables.character_set_client->name,
!my_strcasecmp(&my_charset_latin1, gv->character_set_client->name,
cs->name))
{
thd->variables.character_set_client=
global_system_variables.character_set_client;
thd->variables.collation_connection=
global_system_variables.collation_connection;
thd->variables.character_set_results=
global_system_variables.character_set_results;
DBUG_ASSERT(is_supported_parser_charset(gv->character_set_client));
thd->variables.character_set_client= gv->character_set_client;
thd->variables.collation_connection= gv->collation_connection;
thd->variables.character_set_results= gv->character_set_results;
}
else
{
......
......@@ -31,6 +31,7 @@
#include "my_global.h" /* NO_EMBEDDED_ACCESS_CHECKS */
#include "sql_priv.h"
#include "sql_class.h" // set_var.h: THD
#include "sql_parse.h"
#include "sys_vars.h"
#include "events.h"
......@@ -445,7 +446,7 @@ static bool check_cs_client(sys_var *self, THD *thd, set_var *var)
return true;
// 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 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