mirror of
https://github.com/MariaDB/server.git
synced 2025-07-29 05:21:33 +03:00
MDEV-5736 remove what remains from ONE_SHOT hack
This commit is contained in:
@ -606,7 +606,6 @@ static COMMANDS commands[] = {
|
||||
{ "OLD_PASSWORD", 0, 0, 0, ""},
|
||||
{ "ON", 0, 0, 0, ""},
|
||||
{ "ONE", 0, 0, 0, ""},
|
||||
{ "ONE_SHOT", 0, 0, 0, ""},
|
||||
{ "OPEN", 0, 0, 0, ""},
|
||||
{ "OPTIMIZE", 0, 0, 0, ""},
|
||||
{ "OPTION", 0, 0, 0, ""},
|
||||
|
@ -4471,18 +4471,7 @@ end:
|
||||
|
||||
int Query_log_event::do_update_pos(rpl_group_info *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);
|
||||
return Log_event::do_update_pos(rgi);
|
||||
}
|
||||
|
||||
|
||||
|
@ -956,7 +956,6 @@ THD::THD()
|
||||
connection_name.length= 0;
|
||||
|
||||
bzero(&variables, sizeof(variables));
|
||||
one_shot_set= 0;
|
||||
file_id = 0;
|
||||
query_id= 0;
|
||||
query_name_consts= 0;
|
||||
|
@ -2592,7 +2592,7 @@ public:
|
||||
char default_master_connection_buff[MAX_CONNECTION_NAME+1];
|
||||
uint8 password; /* 0, 1 or 2 */
|
||||
uint8 failed_com_change_user;
|
||||
bool slave_thread, one_shot_set;
|
||||
bool slave_thread;
|
||||
bool extra_port; /* If extra connection */
|
||||
|
||||
bool no_errors;
|
||||
|
@ -2468,7 +2468,7 @@ struct LEX: public Query_tables_list
|
||||
uint16 create_view_algorithm;
|
||||
uint8 create_view_check;
|
||||
uint8 context_analysis_only;
|
||||
bool drop_temporary, local_file, one_shot_set;
|
||||
bool drop_temporary, local_file;
|
||||
bool check_exists;
|
||||
bool autocommit;
|
||||
bool verbose, no_write_to_binlog;
|
||||
|
@ -2031,23 +2031,6 @@ bool alloc_query(THD *thd, const char *packet, uint packet_length)
|
||||
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)
|
||||
{
|
||||
@ -2348,9 +2331,6 @@ mysql_execute_command(THD *thd)
|
||||
{
|
||||
/* we warn the slave SQL thread */
|
||||
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)
|
||||
@ -2378,23 +2358,6 @@ mysql_execute_command(THD *thd)
|
||||
{
|
||||
/* we warn the slave SQL thread */
|
||||
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);
|
||||
}
|
||||
/*
|
||||
@ -3782,11 +3745,6 @@ end_with_restore_list:
|
||||
goto error;
|
||||
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);
|
||||
}
|
||||
else
|
||||
@ -5132,19 +5090,6 @@ create_sp_error:
|
||||
THD_STAGE_INFO(thd, stage_query_end);
|
||||
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;
|
||||
|
||||
error:
|
||||
|
@ -810,7 +810,6 @@ static void sp_create_assignment_lex(THD *thd, bool no_lookahead)
|
||||
lex->sql_command= SQLCOM_SET_OPTION;
|
||||
mysql_init_select(lex);
|
||||
lex->var_list.empty();
|
||||
lex->one_shot_set= 0;
|
||||
lex->autocommit= 0;
|
||||
/* get_ptr() is only correct with no lookahead. */
|
||||
DBUG_ASSERT(no_lookahead);
|
||||
@ -14424,7 +14423,6 @@ set:
|
||||
mysql_init_select(lex);
|
||||
lex->option_type=OPT_SESSION;
|
||||
lex->var_list.empty();
|
||||
lex->one_shot_set= 0;
|
||||
lex->autocommit= 0;
|
||||
sp_create_assignment_lex(thd, yychar == YYEMPTY);
|
||||
}
|
||||
|
Reference in New Issue
Block a user