add an assert
and use is_supported_parser_charset() instead of direct check
This commit is contained in:
parent
48655ce698
commit
e7d7910b7a
@ -1,6 +1,6 @@
|
|||||||
/*
|
/*
|
||||||
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)
|
|||||||
|
|
||||||
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)
|
|||||||
*/
|
*/
|
||||||
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 @@
|
|||||||
#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)
|
|||||||
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;
|
||||||
|
Loading…
x
Reference in New Issue
Block a user