Commit 26618a54 authored by Sergei Golubchik's avatar Sergei Golubchik

MDEV-5736 remove what remains from ONE_SHOT hack

parent d81b662b
...@@ -606,7 +606,6 @@ static COMMANDS commands[] = { ...@@ -606,7 +606,6 @@ static COMMANDS commands[] = {
{ "OLD_PASSWORD", 0, 0, 0, ""}, { "OLD_PASSWORD", 0, 0, 0, ""},
{ "ON", 0, 0, 0, ""}, { "ON", 0, 0, 0, ""},
{ "ONE", 0, 0, 0, ""}, { "ONE", 0, 0, 0, ""},
{ "ONE_SHOT", 0, 0, 0, ""},
{ "OPEN", 0, 0, 0, ""}, { "OPEN", 0, 0, 0, ""},
{ "OPTIMIZE", 0, 0, 0, ""}, { "OPTIMIZE", 0, 0, 0, ""},
{ "OPTION", 0, 0, 0, ""}, { "OPTION", 0, 0, 0, ""},
......
...@@ -4471,18 +4471,7 @@ end: ...@@ -4471,18 +4471,7 @@ end:
int Query_log_event::do_update_pos(rpl_group_info *rgi) int Query_log_event::do_update_pos(rpl_group_info *rgi)
{ {
/* return Log_event::do_update_pos(rgi);
Note that we will not increment group* positions if we are just
after a SET ONE_SHOT, because SET ONE_SHOT should not be separated
from its following updating query.
*/
if (thd->one_shot_set)
{
rgi->inc_event_relay_log_pos();
return 0;
}
else
return Log_event::do_update_pos(rgi);
} }
......
...@@ -956,7 +956,6 @@ THD::THD() ...@@ -956,7 +956,6 @@ THD::THD()
connection_name.length= 0; connection_name.length= 0;
bzero(&variables, sizeof(variables)); bzero(&variables, sizeof(variables));
one_shot_set= 0;
file_id = 0; file_id = 0;
query_id= 0; query_id= 0;
query_name_consts= 0; query_name_consts= 0;
......
...@@ -2592,7 +2592,7 @@ public: ...@@ -2592,7 +2592,7 @@ public:
char default_master_connection_buff[MAX_CONNECTION_NAME+1]; char default_master_connection_buff[MAX_CONNECTION_NAME+1];
uint8 password; /* 0, 1 or 2 */ uint8 password; /* 0, 1 or 2 */
uint8 failed_com_change_user; uint8 failed_com_change_user;
bool slave_thread, one_shot_set; bool slave_thread;
bool extra_port; /* If extra connection */ bool extra_port; /* If extra connection */
bool no_errors; bool no_errors;
......
...@@ -2468,7 +2468,7 @@ struct LEX: public Query_tables_list ...@@ -2468,7 +2468,7 @@ struct LEX: public Query_tables_list
uint16 create_view_algorithm; uint16 create_view_algorithm;
uint8 create_view_check; uint8 create_view_check;
uint8 context_analysis_only; uint8 context_analysis_only;
bool drop_temporary, local_file, one_shot_set; bool drop_temporary, local_file;
bool check_exists; bool check_exists;
bool autocommit; bool autocommit;
bool verbose, no_write_to_binlog; bool verbose, no_write_to_binlog;
......
...@@ -2031,23 +2031,6 @@ bool alloc_query(THD *thd, const char *packet, uint packet_length) ...@@ -2031,23 +2031,6 @@ bool alloc_query(THD *thd, const char *packet, uint packet_length)
return FALSE; return FALSE;
} }
static void reset_one_shot_variables(THD *thd)
{
thd->variables.character_set_client=
global_system_variables.character_set_client;
thd->variables.collation_connection=
global_system_variables.collation_connection;
thd->variables.collation_database=
global_system_variables.collation_database;
thd->variables.collation_server=
global_system_variables.collation_server;
thd->update_charset();
thd->variables.time_zone=
global_system_variables.time_zone;
thd->variables.lc_time_names= &my_locale_en_US;
thd->one_shot_set= 0;
}
bool sp_process_definer(THD *thd) bool sp_process_definer(THD *thd)
{ {
...@@ -2348,9 +2331,6 @@ mysql_execute_command(THD *thd) ...@@ -2348,9 +2331,6 @@ mysql_execute_command(THD *thd)
{ {
/* we warn the slave SQL thread */ /* we warn the slave SQL thread */
my_message(ER_SLAVE_IGNORED_TABLE, ER(ER_SLAVE_IGNORED_TABLE), MYF(0)); my_message(ER_SLAVE_IGNORED_TABLE, ER(ER_SLAVE_IGNORED_TABLE), MYF(0));
if (thd->one_shot_set)
reset_one_shot_variables(thd);
DBUG_RETURN(0);
} }
for (table=all_tables; table; table=table->next_global) for (table=all_tables; table; table=table->next_global)
...@@ -2378,23 +2358,6 @@ mysql_execute_command(THD *thd) ...@@ -2378,23 +2358,6 @@ mysql_execute_command(THD *thd)
{ {
/* we warn the slave SQL thread */ /* we warn the slave SQL thread */
my_message(ER_SLAVE_IGNORED_TABLE, ER(ER_SLAVE_IGNORED_TABLE), MYF(0)); my_message(ER_SLAVE_IGNORED_TABLE, ER(ER_SLAVE_IGNORED_TABLE), MYF(0));
if (thd->one_shot_set)
{
/*
It's ok to check thd->one_shot_set here:
The charsets in a MySQL 5.0 slave can change by both a binlogged
SET ONE_SHOT statement and the event-internal charset setting,
and these two ways to change charsets do not seems to work
together.
At least there seems to be problems in the rli cache for
charsets if we are using ONE_SHOT. Note that this is normally no
problem because either the >= 5.0 slave reads a 4.1 binlog (with
ONE_SHOT) *or* or 5.0 binlog (without ONE_SHOT) but never both."
*/
reset_one_shot_variables(thd);
}
DBUG_RETURN(0); DBUG_RETURN(0);
} }
/* /*
...@@ -3782,11 +3745,6 @@ end_with_restore_list: ...@@ -3782,11 +3745,6 @@ end_with_restore_list:
goto error; goto error;
if (!(res= sql_set_variables(thd, lex_var_list))) if (!(res= sql_set_variables(thd, lex_var_list)))
{ {
/*
If the previous command was a SET ONE_SHOT, we don't want to forget
about the ONE_SHOT property of that SET. So we use a |= instead of = .
*/
thd->one_shot_set|= lex->one_shot_set;
my_ok(thd); my_ok(thd);
} }
else else
...@@ -5132,19 +5090,6 @@ create_sp_error: ...@@ -5132,19 +5090,6 @@ create_sp_error:
THD_STAGE_INFO(thd, stage_query_end); THD_STAGE_INFO(thd, stage_query_end);
thd->update_stats(); thd->update_stats();
/*
Binlog-related cleanup:
Reset system variables temporarily modified by SET ONE SHOT.
Exception: If this is a SET, do nothing. This is to allow
mysqlbinlog to print many SET commands (in this case we want the
charset temp setting to live until the real query). This is also
needed so that SET CHARACTER_SET_CLIENT... does not cancel itself
immediately.
*/
if (thd->one_shot_set && lex->sql_command != SQLCOM_SET_OPTION)
reset_one_shot_variables(thd);
goto finish; goto finish;
error: error:
......
...@@ -810,7 +810,6 @@ static void sp_create_assignment_lex(THD *thd, bool no_lookahead) ...@@ -810,7 +810,6 @@ static void sp_create_assignment_lex(THD *thd, bool no_lookahead)
lex->sql_command= SQLCOM_SET_OPTION; lex->sql_command= SQLCOM_SET_OPTION;
mysql_init_select(lex); mysql_init_select(lex);
lex->var_list.empty(); lex->var_list.empty();
lex->one_shot_set= 0;
lex->autocommit= 0; lex->autocommit= 0;
/* get_ptr() is only correct with no lookahead. */ /* get_ptr() is only correct with no lookahead. */
DBUG_ASSERT(no_lookahead); DBUG_ASSERT(no_lookahead);
...@@ -14424,7 +14423,6 @@ set: ...@@ -14424,7 +14423,6 @@ set:
mysql_init_select(lex); mysql_init_select(lex);
lex->option_type=OPT_SESSION; lex->option_type=OPT_SESSION;
lex->var_list.empty(); lex->var_list.empty();
lex->one_shot_set= 0;
lex->autocommit= 0; lex->autocommit= 0;
sp_create_assignment_lex(thd, yychar == YYEMPTY); sp_create_assignment_lex(thd, yychar == YYEMPTY);
} }
......
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