diff options
-rw-r--r-- | mysql-test/suite/rpl/t/rpl_empty_master_host.test | 1 | ||||
-rw-r--r-- | sql/slave.cc | 2 | ||||
-rw-r--r-- | sql/sql_lex.cc | 1 | ||||
-rw-r--r-- | sql/sql_lex.h | 7 | ||||
-rw-r--r-- | sql/sql_repl.cc | 1 | ||||
-rw-r--r-- | sql/sql_yacc.yy | 16 |
6 files changed, 8 insertions, 20 deletions
diff --git a/mysql-test/suite/rpl/t/rpl_empty_master_host.test b/mysql-test/suite/rpl/t/rpl_empty_master_host.test index 66d30375a59..df0c85ad7ec 100644 --- a/mysql-test/suite/rpl/t/rpl_empty_master_host.test +++ b/mysql-test/suite/rpl/t/rpl_empty_master_host.test @@ -17,7 +17,6 @@ # working when expected. --source include/master-slave.inc ---source include/have_binlog_format_mixed.inc connection slave; STOP SLAVE; diff --git a/sql/slave.cc b/sql/slave.cc index 5c931a79695..797bd8e37e7 100644 --- a/sql/slave.cc +++ b/sql/slave.cc @@ -1129,7 +1129,7 @@ int init_dynarray_intvar_from_file(DYNAMIC_ARRAY* arr, IO_CACHE* f) memcpy(buf_act, buf, read_size); snd_size= my_b_gets(f, buf_act + read_size, max_size - read_size); if (snd_size == 0 || - ((snd_size + 1 == max_size - read_size) && buf[max_size - 2] != '\n')) + ((snd_size + 1 == max_size - read_size) && buf_act[max_size - 2] != '\n')) { /* failure to make the 2nd read or short read again diff --git a/sql/sql_lex.cc b/sql/sql_lex.cc index 00a67e2c134..869a5916339 100644 --- a/sql/sql_lex.cc +++ b/sql/sql_lex.cc @@ -2352,7 +2352,6 @@ LEX::LEX() INITIAL_LEX_PLUGIN_LIST_SIZE, INITIAL_LEX_PLUGIN_LIST_SIZE); reset_query_tables_list(TRUE); - repl_ignore_server_ids_inited= false; } diff --git a/sql/sql_lex.h b/sql/sql_lex.h index 474fa87495b..542e8b42ae2 100644 --- a/sql/sql_lex.h +++ b/sql/sql_lex.h @@ -291,9 +291,7 @@ typedef struct st_lex_master_info char *ssl_key, *ssl_cert, *ssl_ca, *ssl_capath, *ssl_cipher; char *relay_log_name; ulong relay_log_pos; - bool repl_ignore_server_ids_inited; DYNAMIC_ARRAY repl_ignore_server_ids; - typeof(::server_id) repl_ignore_server_ids_static_buffer[4]; } LEX_MASTER_INFO; typedef struct st_lex_reset_slave @@ -2457,11 +2455,6 @@ struct LEX: public Query_tables_list destroy_query_tables_list(); plugin_unlock_list(NULL, (plugin_ref *)plugins.buffer, plugins.elements); delete_dynamic(&plugins); - if (mi.repl_ignore_server_ids_inited) - { - delete_dynamic(&mi.repl_ignore_server_ids); - mi.repl_ignore_server_ids_inited= false; - } } inline bool is_ps_or_view_context_analysis() diff --git a/sql/sql_repl.cc b/sql/sql_repl.cc index 5300a327029..00c85d8eb43 100644 --- a/sql/sql_repl.cc +++ b/sql/sql_repl.cc @@ -1689,6 +1689,7 @@ err: thd_proc_info(thd, 0); if (ret == FALSE) my_ok(thd); + delete_dynamic(&lex_mi->repl_ignore_server_ids); //freeing of parser-time alloc DBUG_RETURN(ret); } diff --git a/sql/sql_yacc.yy b/sql/sql_yacc.yy index 209ec1ff0fc..87c3ae5b129 100644 --- a/sql/sql_yacc.yy +++ b/sql/sql_yacc.yy @@ -1863,7 +1863,12 @@ change: LEX *lex = Lex; lex->sql_command = SQLCOM_CHANGE_MASTER; bzero((char*) &lex->mi, sizeof(lex->mi)); + /* + resetting flags that can left from the previous CHANGE MASTER + */ lex->mi.repl_ignore_server_ids_opt= LEX_MASTER_INFO::LEX_MI_UNCHANGED; + my_init_dynamic_array(&Lex->mi.repl_ignore_server_ids, + sizeof(::server_id), 16, 16); } master_defs {} @@ -1960,7 +1965,7 @@ master_def: | IGNORE_SERVER_IDS_SYM EQ '(' ignore_server_id_list ')' { Lex->mi.repl_ignore_server_ids_opt= LEX_MASTER_INFO::LEX_MI_ENABLE; - } + } | master_file_def ; @@ -1974,15 +1979,6 @@ ignore_server_id_list: ignore_server_id: ulong_num { - if (!Lex->mi.repl_ignore_server_ids_inited) - { - my_init_dynamic_array2(&Lex->mi.repl_ignore_server_ids, - sizeof(::server_id), - Lex->mi.repl_ignore_server_ids_static_buffer, - array_elements(Lex->mi.repl_ignore_server_ids_static_buffer), - 16); - Lex->mi.repl_ignore_server_ids_inited= true; - } insert_dynamic(&Lex->mi.repl_ignore_server_ids, (uchar*) &($1)); } |