diff options
author | unknown <bar@bar.mysql.r18.ru> | 2003-05-28 13:54:18 +0500 |
---|---|---|
committer | unknown <bar@bar.mysql.r18.ru> | 2003-05-28 13:54:18 +0500 |
commit | 1328c29e946df6553e5204c0d3b34803001945eb (patch) | |
tree | 113fa0806e9a3ee57d69fa7d8f3f6f4c808d6911 | |
parent | 15b3f3a0d8c11babff0f2e4dfa81c1716bcf533d (diff) | |
download | mariadb-git-1328c29e946df6553e5204c0d3b34803001945eb.tar.gz |
"mysql" now sends client character set to server.
-rw-r--r-- | client/mysql.cc | 1 | ||||
-rw-r--r-- | libmysql/libmysql.c | 3 | ||||
-rw-r--r-- | sql/sql_parse.cc | 9 |
3 files changed, 12 insertions, 1 deletions
diff --git a/client/mysql.cc b/client/mysql.cc index 812673d34c2..33014b27ae8 100644 --- a/client/mysql.cc +++ b/client/mysql.cc @@ -2549,6 +2549,7 @@ sql_real_connect(char *host,char *database,char *user,char *password, select_limit,max_join_size); mysql_options(&mysql, MYSQL_INIT_COMMAND, init_command); } + mysql_options(&mysql, MYSQL_SET_CHARSET_NAME, default_charset); if (!mysql_real_connect(&mysql, host, user, password, database, opt_mysql_port, opt_mysql_unix_port, connect_flag | CLIENT_MULTI_QUERIES)) diff --git a/libmysql/libmysql.c b/libmysql/libmysql.c index 514de2a87a6..41fde189eb5 100644 --- a/libmysql/libmysql.c +++ b/libmysql/libmysql.c @@ -2241,7 +2241,8 @@ mysql_real_connect(MYSQL *mysql,const char *host, const char *user, const char *save=charsets_dir; if (mysql->options.charset_dir) charsets_dir=mysql->options.charset_dir; - mysql->charset=get_charset_by_name(mysql->options.charset_name, + mysql->charset=get_charset_by_csname(mysql->options.charset_name, + MY_CS_PRIMARY, MYF(MY_WME)); charsets_dir=save; } diff --git a/sql/sql_parse.cc b/sql/sql_parse.cc index 78b6a03e2fa..b1e0b2dc91d 100644 --- a/sql/sql_parse.cc +++ b/sql/sql_parse.cc @@ -664,8 +664,17 @@ check_connections(THD *thd) thd->max_client_packet_length= uint4korr(net->read_pos+4); if (!(thd->variables.character_set_client= get_charset((uint) net->read_pos[8], MYF(0)))) + { thd->variables.character_set_client= global_system_variables.character_set_client; + thd->variables.collation_connection= + global_system_variables.collation_connection; + } + else + { + thd->variables.collation_connection= + thd->variables.character_set_client; + } end= (char*) net->read_pos+32; } else |