diff options
author | unknown <bar@bar.mysql.r18.ru> | 2003-03-18 11:34:19 +0400 |
---|---|---|
committer | unknown <bar@bar.mysql.r18.ru> | 2003-03-18 11:34:19 +0400 |
commit | 2dae38c71357665601f9eb8bc4186fa9be6d4dee (patch) | |
tree | f8469e8b44aa1d821827236254dc5c79f587ca92 | |
parent | 1159272c28c83e4915beb67c296103a06875d198 (diff) | |
download | mariadb-git-2dae38c71357665601f9eb8bc4186fa9be6d4dee.tar.gz |
Replication were broken because of automatic charset conversion.
As a fix, my_charset_bin is now used in master-slave packets instead
of system_charset_info.
-rw-r--r-- | sql/log_event.cc | 28 | ||||
-rw-r--r-- | sql/repl_failsafe.cc | 8 | ||||
-rw-r--r-- | sql/slave.cc | 16 | ||||
-rw-r--r-- | sql/sql_repl.cc | 12 |
4 files changed, 32 insertions, 32 deletions
diff --git a/sql/log_event.cc b/sql/log_event.cc index a8e215d2b77..3a1dbb6485e 100644 --- a/sql/log_event.cc +++ b/sql/log_event.cc @@ -348,10 +348,10 @@ int Log_event::net_send(Protocol *protocol, const char* log_name, my_off_t pos) log_name = p + 1; protocol->prepare_for_resend(); - protocol->store(log_name, system_charset_info); + protocol->store(log_name, &my_charset_bin); protocol->store((ulonglong) pos); event_type = get_type_str(); - protocol->store(event_type, strlen(event_type), system_charset_info); + protocol->store(event_type, strlen(event_type), &my_charset_bin); protocol->store((uint32) server_id); protocol->store((ulonglong) log_pos); pack_info(protocol); @@ -722,7 +722,7 @@ void Query_log_event::pack_info(Protocol *protocol) memcpy(pos, query, q_len); pos+= q_len; } - protocol->store(buf, pos-buf, system_charset_info); + protocol->store(buf, pos-buf, &my_charset_bin); my_free(buf, MYF(MY_ALLOW_ZERO_PTR)); } #endif @@ -992,7 +992,7 @@ void Start_log_event::pack_info(Protocol *protocol) pos= strmov(pos, server_version); pos= strmov(pos, ", Binlog ver: "); pos=int10_to_str(binlog_version, pos, 10); - protocol->store(buf, pos-buf, system_charset_info); + protocol->store(buf, pos-buf, &my_charset_bin); } #endif @@ -1191,7 +1191,7 @@ void Load_log_event::pack_info(Protocol *protocol) *pos++= ')'; } - protocol->store(buf, pos-buf, system_charset_info); + protocol->store(buf, pos-buf, &my_charset_bin); my_free(buf, MYF(MY_ALLOW_ZERO_PTR)); } #endif @@ -1665,7 +1665,7 @@ void Rotate_log_event::pack_info(Protocol *protocol) b_pos=longlong10_to_str(pos, b_pos, 10); if (flags & LOG_EVENT_FORCED_ROTATE_F) b_pos= strmov(b_pos ,"; forced by master"); - protocol->store(buf, b_pos-buf, system_charset_info); + protocol->store(buf, b_pos-buf, &my_charset_bin); my_free(buf, MYF(MY_ALLOW_ZERO_PTR)); } #endif @@ -1800,7 +1800,7 @@ void Intvar_log_event::pack_info(Protocol *protocol) pos= strmov(buf, get_var_type_name()); *(pos++)='='; pos= longlong10_to_str(val, pos, -10); - protocol->store(buf, pos-buf, system_charset_info); + protocol->store(buf, pos-buf, &my_charset_bin); } #endif @@ -1911,7 +1911,7 @@ void Rand_log_event::pack_info(Protocol *protocol) pos= int10_to_str((long) seed1, pos, 10); pos= strmov(pos, ",rand_seed2="); pos= int10_to_str((long) seed2, pos, 10); - protocol->store(buf1, (uint) (pos-buf1), system_charset_info); + protocol->store(buf1, (uint) (pos-buf1), &my_charset_bin); } #endif @@ -2013,7 +2013,7 @@ void User_var_log_event::pack_info(Protocol* protocol) buf[0]= '@'; buf[1+name_len]= '='; memcpy(buf+1, name, name_len); - protocol->store(buf, event_len, system_charset_info); + protocol->store(buf, event_len, &my_charset_bin); my_free(buf, MYF(MY_ALLOW_ZERO_PTR)); } #endif // !MYSQL_CLIENT @@ -2213,7 +2213,7 @@ void Slave_log_event::pack_info(Protocol *protocol) pos= strmov(pos, master_log); pos= strmov(pos, ",pos="); pos= longlong10_to_str(master_pos, pos, 10); - protocol->store(buf, pos-buf, system_charset_info); + protocol->store(buf, pos-buf, &my_charset_bin); } #endif // !MYSQL_CLIENT @@ -2547,7 +2547,7 @@ void Create_file_log_event::pack_info(Protocol *protocol) pos= int10_to_str((long) file_id, pos, 10); pos= strmov(pos, ";block_len="); pos= int10_to_str((long) block_len, pos, 10); - protocol->store(buf, pos-buf, system_charset_info); + protocol->store(buf, pos-buf, &my_charset_bin); } #endif @@ -2698,7 +2698,7 @@ void Append_block_log_event::pack_info(Protocol *protocol) length= (uint) my_sprintf(buf, (buf, ";file_id=%u;block_len=%u", file_id, block_len)); - protocol->store(buf, (int32) length, system_charset_info); + protocol->store(buf, (int32) length, &my_charset_bin); } #endif @@ -2811,7 +2811,7 @@ void Delete_file_log_event::pack_info(Protocol *protocol) char buf[64]; uint length; length= (uint) my_sprintf(buf, (buf, ";file_id=%u", (uint) file_id)); - protocol->store(buf, (int32) length, system_charset_info); + protocol->store(buf, (int32) length, &my_charset_bin); } #endif @@ -2910,7 +2910,7 @@ void Execute_load_log_event::pack_info(Protocol *protocol) char buf[64]; uint length; length= (uint) my_sprintf(buf, (buf, ";file_id=%u", (uint) file_id)); - protocol->store(buf, (int32) length, system_charset_info); + protocol->store(buf, (int32) length, &my_charset_bin); } /***************************************************************************** diff --git a/sql/repl_failsafe.cc b/sql/repl_failsafe.cc index 7891ff92236..413ccb7fde2 100644 --- a/sql/repl_failsafe.cc +++ b/sql/repl_failsafe.cc @@ -440,7 +440,7 @@ int show_new_master(THD* thd) if (protocol->send_fields(&field_list, 1)) DBUG_RETURN(-1); protocol->prepare_for_resend(); - protocol->store(lex_mi->log_file_name, system_charset_info); + protocol->store(lex_mi->log_file_name, &my_charset_bin); protocol->store((ulonglong) lex_mi->pos); if (protocol->write()) DBUG_RETURN(-1); @@ -610,11 +610,11 @@ int show_slave_hosts(THD* thd) SLAVE_INFO* si = (SLAVE_INFO*) hash_element(&slave_list, i); protocol->prepare_for_resend(); protocol->store((uint32) si->server_id); - protocol->store(si->host, system_charset_info); + protocol->store(si->host, &my_charset_bin); if (opt_show_slave_auth_info) { - protocol->store(si->user, system_charset_info); - protocol->store(si->password, system_charset_info); + protocol->store(si->user, &my_charset_bin); + protocol->store(si->password, &my_charset_bin); } protocol->store((uint32) si->port); protocol->store((uint32) si->rpl_recovery_rank); diff --git a/sql/slave.cc b/sql/slave.cc index 86c7adc6a7f..b06895b1779 100644 --- a/sql/slave.cc +++ b/sql/slave.cc @@ -1608,22 +1608,22 @@ int show_master_info(THD* thd, MASTER_INFO* mi) pthread_mutex_lock(&mi->data_lock); pthread_mutex_lock(&mi->rli.data_lock); - protocol->store(mi->host, system_charset_info); - protocol->store(mi->user, system_charset_info); + protocol->store(mi->host, &my_charset_bin); + protocol->store(mi->user, &my_charset_bin); protocol->store((uint32) mi->port); protocol->store((uint32) mi->connect_retry); - protocol->store(mi->master_log_name, system_charset_info); + protocol->store(mi->master_log_name, &my_charset_bin); protocol->store((ulonglong) mi->master_log_pos); protocol->store(mi->rli.relay_log_name + - dirname_length(mi->rli.relay_log_name), system_charset_info); + dirname_length(mi->rli.relay_log_name), &my_charset_bin); protocol->store((ulonglong) mi->rli.relay_log_pos); - protocol->store(mi->rli.master_log_name, system_charset_info); - protocol->store(mi->slave_running ? "Yes":"No", system_charset_info); - protocol->store(mi->rli.slave_running ? "Yes":"No", system_charset_info); + protocol->store(mi->rli.master_log_name, &my_charset_bin); + protocol->store(mi->slave_running ? "Yes":"No", &my_charset_bin); + protocol->store(mi->rli.slave_running ? "Yes":"No", &my_charset_bin); protocol->store(&replicate_do_db); protocol->store(&replicate_ignore_db); protocol->store((uint32) mi->rli.last_slave_errno); - protocol->store(mi->rli.last_slave_error, system_charset_info); + protocol->store(mi->rli.last_slave_error, &my_charset_bin); protocol->store((uint32) mi->rli.slave_skip_counter); protocol->store((ulonglong) mi->rli.master_log_pos); protocol->store((ulonglong) mi->rli.log_space_total); diff --git a/sql/sql_repl.cc b/sql/sql_repl.cc index 12c1a4b0ee8..fd6c9060079 100644 --- a/sql/sql_repl.cc +++ b/sql/sql_repl.cc @@ -384,7 +384,7 @@ impossible position"; We need to start a packet with something other than 255 to distiquish it from error */ - packet->set("\0", 1, system_charset_info); + packet->set("\0", 1, &my_charset_bin); // if we are at the start of the log if (pos == BIN_LOG_HEADER_SIZE) @@ -395,7 +395,7 @@ impossible position"; my_errno= ER_MASTER_FATAL_ERROR_READING_BINLOG; goto err; } - packet->set("\0", 1, system_charset_info); + packet->set("\0", 1, &my_charset_bin); } while (!net->error && net->vio != 0 && !thd->killed) @@ -430,7 +430,7 @@ impossible position"; goto err; } } - packet->set("\0", 1, system_charset_info); + packet->set("\0", 1, &my_charset_bin); } /* TODO: now that we are logging the offset, check to make sure @@ -550,7 +550,7 @@ Increase max_allowed_packet on master"; goto err; } } - packet->set("\0", 1, system_charset_info); + packet->set("\0", 1, &my_charset_bin); /* No need to net_flush because we will get to flush later when we hit EOF pretty quick @@ -1103,7 +1103,7 @@ int show_binlog_info(THD* thd) LOG_INFO li; mysql_bin_log.get_current_log(&li); int dir_len = dirname_length(li.log_file_name); - protocol->store(li.log_file_name + dir_len, system_charset_info); + protocol->store(li.log_file_name + dir_len, &my_charset_bin); protocol->store((ulonglong) li.pos); protocol->store(&binlog_do_db); protocol->store(&binlog_ignore_db); @@ -1160,7 +1160,7 @@ int show_binlogs(THD* thd) protocol->prepare_for_resend(); int dir_len = dirname_length(fname); /* The -1 is for removing newline from fname */ - protocol->store(fname + dir_len, length-1-dir_len, system_charset_info); + protocol->store(fname + dir_len, length-1-dir_len, &my_charset_bin); if (protocol->write()) goto err; } |