Commit 0eafb957 authored by bar@mysql.com's avatar bar@mysql.com

mysqld.cc, mysql_priv.h, sql_parse.cc:

  bug#9948
  changed client-charset behavior in 4.1.x libmysql, which issue BC prob
  after review fixes
parent f2ea1ac8
...@@ -931,6 +931,7 @@ extern bool opt_using_transactions, mysqld_embedded; ...@@ -931,6 +931,7 @@ extern bool opt_using_transactions, mysqld_embedded;
extern bool using_update_log, opt_large_files, server_id_supplied; extern bool using_update_log, opt_large_files, server_id_supplied;
extern bool opt_log, opt_update_log, opt_bin_log, opt_slow_log, opt_error_log; extern bool opt_log, opt_update_log, opt_bin_log, opt_slow_log, opt_error_log;
extern bool opt_disable_networking, opt_skip_show_db; extern bool opt_disable_networking, opt_skip_show_db;
extern bool opt_character_set_client_handshake;
extern bool volatile abort_loop, shutdown_in_progress, grant_option; extern bool volatile abort_loop, shutdown_in_progress, grant_option;
extern uint volatile thread_count, thread_running, global_read_lock; extern uint volatile thread_count, thread_running, global_read_lock;
extern my_bool opt_sql_bin_update, opt_safe_user_create, opt_no_mix_types; extern my_bool opt_sql_bin_update, opt_safe_user_create, opt_no_mix_types;
......
...@@ -271,7 +271,7 @@ arg_cmp_func Arg_comparator::comparator_matrix[4][2] = ...@@ -271,7 +271,7 @@ arg_cmp_func Arg_comparator::comparator_matrix[4][2] =
bool opt_log, opt_update_log, opt_bin_log, opt_slow_log; bool opt_log, opt_update_log, opt_bin_log, opt_slow_log;
bool opt_error_log= IF_WIN(1,0); bool opt_error_log= IF_WIN(1,0);
bool opt_disable_networking=0, opt_skip_show_db=0; bool opt_disable_networking=0, opt_skip_show_db=0;
bool opt_skip_character_set_client_handshake= 0; bool opt_character_set_client_handshake= 1;
bool lower_case_table_names_used= 0; bool lower_case_table_names_used= 0;
bool server_id_supplied = 0; bool server_id_supplied = 0;
bool opt_endinfo,using_udf_functions, locked_in_memory; bool opt_endinfo,using_udf_functions, locked_in_memory;
...@@ -4297,6 +4297,11 @@ Disable with --skip-bdb (will save memory).", ...@@ -4297,6 +4297,11 @@ Disable with --skip-bdb (will save memory).",
0, 0, 0, GET_STR, REQUIRED_ARG, 0, 0, 0, 0, 0, 0}, 0, 0, 0, GET_STR, REQUIRED_ARG, 0, 0, 0, 0, 0, 0},
{"bootstrap", OPT_BOOTSTRAP, "Used by mysql installation scripts.", 0, 0, 0, {"bootstrap", OPT_BOOTSTRAP, "Used by mysql installation scripts.", 0, 0, 0,
GET_NO_ARG, NO_ARG, 0, 0, 0, 0, 0, 0}, GET_NO_ARG, NO_ARG, 0, 0, 0, 0, 0, 0},
{"character-set-client-handshake", OPT_CHARACTER_SET_CLIENT_HANDSHAKE,
"Don't use client side character set value sent during handshake.",
(gptr*) &opt_character_set_client_handshake,
(gptr*) &opt_character_set_client_handshake,
0, GET_BOOL, NO_ARG, 1, 0, 0, 0, 0, 0},
{"character-set-server", 'C', "Set the default character set.", {"character-set-server", 'C', "Set the default character set.",
(gptr*) &default_character_set_name, (gptr*) &default_character_set_name, (gptr*) &default_character_set_name, (gptr*) &default_character_set_name,
0, GET_STR, REQUIRED_ARG, 0, 0, 0, 0, 0, 0 }, 0, GET_STR, REQUIRED_ARG, 0, 0, 0, 0, 0, 0 },
...@@ -4755,11 +4760,6 @@ Can't be set to 1 if --log-slave-updates is used.", ...@@ -4755,11 +4760,6 @@ Can't be set to 1 if --log-slave-updates is used.",
"Show user and password in SHOW SLAVE HOSTS on this master", "Show user and password in SHOW SLAVE HOSTS on this master",
(gptr*) &opt_show_slave_auth_info, (gptr*) &opt_show_slave_auth_info, 0, (gptr*) &opt_show_slave_auth_info, (gptr*) &opt_show_slave_auth_info, 0,
GET_BOOL, NO_ARG, 0, 0, 0, 0, 0, 0}, GET_BOOL, NO_ARG, 0, 0, 0, 0, 0, 0},
{"skip-character-set-client-handshake", OPT_CHARACTER_SET_CLIENT_HANDSHAKE,
"Don't use client side character set value sent during handshake.",
(gptr*) &opt_skip_character_set_client_handshake,
(gptr*) &opt_skip_character_set_client_handshake,
0, GET_BOOL, NO_ARG, 0, 0, 0, 0, 0, 0},
{"skip-grant-tables", OPT_SKIP_GRANT, {"skip-grant-tables", OPT_SKIP_GRANT,
"Start without grant tables. This gives all users FULL ACCESS to all tables!", "Start without grant tables. This gives all users FULL ACCESS to all tables!",
(gptr*) &opt_noacl, (gptr*) &opt_noacl, 0, GET_BOOL, NO_ARG, 0, 0, 0, 0, 0, (gptr*) &opt_noacl, (gptr*) &opt_noacl, 0, GET_BOOL, NO_ARG, 0, 0, 0, 0, 0,
......
...@@ -811,12 +811,12 @@ static int check_connection(THD *thd) ...@@ -811,12 +811,12 @@ static int check_connection(THD *thd)
DBUG_PRINT("info", ("client_character_set: %d", (uint) net->read_pos[8])); DBUG_PRINT("info", ("client_character_set: %d", (uint) net->read_pos[8]));
/* /*
Use server character set and collation if Use server character set and collation if
- opt_skip_character_set_client_handshake is set - opt_character_set_client_handshake is not set
- client has not specified a character set - client has not specified a character set
- client character set is the same as the servers - client character set is the same as the servers
- client character set doesn't exists in server - client character set doesn't exists in server
*/ */
if (opt_skip_character_set_client_handshake || if (!opt_character_set_client_handshake ||
!(thd->variables.character_set_client= !(thd->variables.character_set_client=
get_charset((uint) net->read_pos[8], MYF(0))) || get_charset((uint) net->read_pos[8], MYF(0))) ||
!my_strcasecmp(&my_charset_latin1, !my_strcasecmp(&my_charset_latin1,
......
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