From: Marc Alff Date: March 1 2011 3:37pm Subject: bzr commit into mysql-5.5 branch (marc.alff:3357) Bug#117665528 List-Archive: http://lists.mysql.com/commits/132217 X-Bug: 117665528 Message-Id: <201103011538.p21EOZXr019743@rcsinet13.oracle.com> MIME-Version: 1.0 Content-Type: multipart/mixed; boundary="===============6200810278910931426==" --===============6200810278910931426== MIME-Version: 1.0 Content-Type: text/plain; charset="us-ascii" Content-Transfer-Encoding: 7bit Content-Disposition: inline #At file:///Users/malff/BZR_TREE/mysql-5.5-bug11766528/ based on revid:tor.didriksen@stripped 3357 Marc Alff 2011-03-01 Bug#117665528 PERFORMANCE_SCHEMA TRACKS BOTH BINARY AND RELAY LOGS IN THE SAME EVENTS Before this fix, all the performance schema instrumentation for both the binary log and the relay log would use the following instruments: - wait/io/file/sql/binlog - wait/io/file/sql/binlog_index - wait/synch/mutex/sql/MYSQL_BIN_LOG::LOCK_index - wait/synch/cond/sql/MYSQL_BIN_LOG::update_cond This instrumentation is too general and can be more specific. With this fix, the binlog instrumentation is identical, and the relay log instrumentation is changed to: - wait/io/file/sql/relaylog - wait/io/file/sql/relaylog_index - wait/synch/mutex/sql/MYSQL_RELAY_LOG::LOCK_index - wait/synch/cond/sql/MYSQL_RELAY_LOG::update_cond With this change, the performance instrumentation for the binary log and the relay log, which share the same structure but have different uses, is more detailed. This is especially important for hosts in the middle of a replication chain, that are both masters (binlog) and slaves (relaylog). added: mysql-test/suite/perfschema/r/relaylog.result mysql-test/suite/perfschema/t/relaylog.test modified: sql/log.cc sql/log.h sql/mysqld.cc sql/mysqld.h sql/rpl_rli.cc === added file 'mysql-test/suite/perfschema/r/relaylog.result' --- a/mysql-test/suite/perfschema/r/relaylog.result 1970-01-01 00:00:00 +0000 +++ b/mysql-test/suite/perfschema/r/relaylog.result 2011-03-01 15:36:59 +0000 @@ -0,0 +1,98 @@ +include/master-slave.inc +[connection master] +drop table if exists test.t1; +reset master; +create table test.t1(a int); +drop table test.t1; +show binlog events from ; +Log_name Pos Event_type Server_id End_log_pos Info +slave-bin.000001 # Query # # use `test`; create table test.t1(a int) +slave-bin.000001 # Query # # use `test`; DROP TABLE `t1` /* generated by server */ +"============ Performance schema on master ============" +select * from performance_schema.file_summary_by_instance +where file_name like "%master-%" order by file_name; +FILE_NAME EVENT_NAME COUNT_READ COUNT_WRITE SUM_NUMBER_OF_BYTES_READ SUM_NUMBER_OF_BYTES_WRITE +[DATADIR]master-bin.000001 wait/io/file/sql/binlog 6 4 221 329 +[DATADIR]master-bin.index wait/io/file/sql/binlog_index 0 2 0 40 +select * from performance_schema.file_summary_by_instance +where file_name like "%slave-%" order by file_name; +FILE_NAME EVENT_NAME COUNT_READ COUNT_WRITE SUM_NUMBER_OF_BYTES_READ SUM_NUMBER_OF_BYTES_WRITE +select * from performance_schema.file_summary_by_instance +where event_name like "%binlog%" order by file_name; +FILE_NAME EVENT_NAME COUNT_READ COUNT_WRITE SUM_NUMBER_OF_BYTES_READ SUM_NUMBER_OF_BYTES_WRITE +[DATADIR]master-bin.000001 wait/io/file/sql/binlog 6 4 221 329 +[DATADIR]master-bin.index wait/io/file/sql/binlog_index 0 2 0 40 +select * from performance_schema.file_summary_by_event_name +where event_name like "%binlog%" order by event_name; +EVENT_NAME COUNT_READ COUNT_WRITE SUM_NUMBER_OF_BYTES_READ SUM_NUMBER_OF_BYTES_WRITE +wait/io/file/sql/binlog 6 4 221 329 +wait/io/file/sql/binlog_index 0 2 0 40 +select event_name, count_star +from performance_schema.events_waits_summary_global_by_event_name +where event_name like "%MYSQL_BIN_LOG%" order by event_name; +event_name count_star +wait/synch/cond/sql/MYSQL_BIN_LOG::COND_prep_xids 0 +wait/synch/cond/sql/MYSQL_BIN_LOG::update_cond 1 +wait/synch/mutex/sql/MYSQL_BIN_LOG::LOCK_index 3 +wait/synch/mutex/sql/MYSQL_BIN_LOG::LOCK_prep_xids 0 +select * from performance_schema.file_summary_by_instance +where event_name like "%relaylog%" order by file_name; +FILE_NAME EVENT_NAME COUNT_READ COUNT_WRITE SUM_NUMBER_OF_BYTES_READ SUM_NUMBER_OF_BYTES_WRITE +select * from performance_schema.file_summary_by_event_name +where event_name like "%relaylog%" order by event_name; +EVENT_NAME COUNT_READ COUNT_WRITE SUM_NUMBER_OF_BYTES_READ SUM_NUMBER_OF_BYTES_WRITE +wait/io/file/sql/relaylog 0 0 0 0 +wait/io/file/sql/relaylog_index 0 0 0 0 +select * from performance_schema.events_waits_summary_global_by_event_name +where event_name like "%MYSQL_RELAY_LOG%" order by event_name; +EVENT_NAME COUNT_STAR SUM_TIMER_WAIT MIN_TIMER_WAIT AVG_TIMER_WAIT MAX_TIMER_WAIT +wait/synch/cond/sql/MYSQL_RELAY_LOG::update_cond 0 0 0 0 0 +wait/synch/mutex/sql/MYSQL_RELAY_LOG::LOCK_index 0 0 0 0 0 +"============ Performance schema on slave ============" +select * from performance_schema.file_summary_by_instance +where file_name like "%master-%" order by file_name; +FILE_NAME EVENT_NAME COUNT_READ COUNT_WRITE SUM_NUMBER_OF_BYTES_READ SUM_NUMBER_OF_BYTES_WRITE +select * from performance_schema.file_summary_by_instance +where file_name like "%slave-%" order by file_name; +FILE_NAME EVENT_NAME COUNT_READ COUNT_WRITE SUM_NUMBER_OF_BYTES_READ SUM_NUMBER_OF_BYTES_WRITE +[DATADIR]slave-bin.000001 wait/io/file/sql/binlog 3 8 602 631 +[DATADIR]slave-bin.index wait/io/file/sql/binlog_index 0 3 0 57 +[DATADIR]slave-relay-bin.000001 wait/io/file/sql/relaylog 4 3 370 263 +[DATADIR]slave-relay-bin.000002 wait/io/file/sql/relaylog 2 4 368 368 +[DATADIR]slave-relay-bin.index wait/io/file/sql/relaylog_index 2 4 50 125 +select * from performance_schema.file_summary_by_instance +where event_name like "%binlog%" order by file_name; +FILE_NAME EVENT_NAME COUNT_READ COUNT_WRITE SUM_NUMBER_OF_BYTES_READ SUM_NUMBER_OF_BYTES_WRITE +[DATADIR]slave-bin.000001 wait/io/file/sql/binlog 3 8 602 631 +[DATADIR]slave-bin.index wait/io/file/sql/binlog_index 0 3 0 57 +select * from performance_schema.file_summary_by_event_name +where event_name like "%binlog%" order by event_name; +EVENT_NAME COUNT_READ COUNT_WRITE SUM_NUMBER_OF_BYTES_READ SUM_NUMBER_OF_BYTES_WRITE +wait/io/file/sql/binlog 3 8 602 631 +wait/io/file/sql/binlog_index 0 3 0 57 +select event_name, count_star +from performance_schema.events_waits_summary_global_by_event_name +where event_name like "%MYSQL_BIN_LOG%" order by event_name; +event_name count_star +wait/synch/cond/sql/MYSQL_BIN_LOG::COND_prep_xids 0 +wait/synch/cond/sql/MYSQL_BIN_LOG::update_cond 0 +wait/synch/mutex/sql/MYSQL_BIN_LOG::LOCK_index 5 +wait/synch/mutex/sql/MYSQL_BIN_LOG::LOCK_prep_xids 0 +select * from performance_schema.file_summary_by_instance +where event_name like "%relaylog%" order by file_name; +FILE_NAME EVENT_NAME COUNT_READ COUNT_WRITE SUM_NUMBER_OF_BYTES_READ SUM_NUMBER_OF_BYTES_WRITE +[DATADIR]slave-relay-bin.000001 wait/io/file/sql/relaylog 4 3 370 263 +[DATADIR]slave-relay-bin.000002 wait/io/file/sql/relaylog 2 4 368 368 +[DATADIR]slave-relay-bin.index wait/io/file/sql/relaylog_index 2 4 50 125 +select * from performance_schema.file_summary_by_event_name +where event_name like "%relaylog%" order by event_name; +EVENT_NAME COUNT_READ COUNT_WRITE SUM_NUMBER_OF_BYTES_READ SUM_NUMBER_OF_BYTES_WRITE +wait/io/file/sql/relaylog 6 7 738 631 +wait/io/file/sql/relaylog_index 2 4 50 125 +select event_name, count_star +from performance_schema.events_waits_summary_global_by_event_name +where event_name like "%MYSQL_RELAY_LOG%" order by event_name; +event_name count_star +wait/synch/cond/sql/MYSQL_RELAY_LOG::update_cond 2 +wait/synch/mutex/sql/MYSQL_RELAY_LOG::LOCK_index 12 +include/stop_slave.inc === added file 'mysql-test/suite/perfschema/t/relaylog.test' --- a/mysql-test/suite/perfschema/t/relaylog.test 1970-01-01 00:00:00 +0000 +++ b/mysql-test/suite/perfschema/t/relaylog.test 2011-03-01 15:36:59 +0000 @@ -0,0 +1,112 @@ +# Copyright (c) 2011, Oracle and/or its affiliates. All rights reserved. +# +# This program is free software; you can redistribute it and/or modify +# it under the terms of the GNU General Public License as published by +# the Free Software Foundation; version 2 of the License. +# +# This program is distributed in the hope that it will be useful, +# but WITHOUT ANY WARRANTY; without even the implied warranty of +# MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the +# GNU General Public License for more details. +# +# You should have received a copy of the GNU General Public License +# along with this program; if not, write to the Free Software Foundation, +# 51 Franklin Street, Suite 500, Boston, MA 02110-1335 USA + +# Tests for PERFORMANCE_SCHEMA + +--source include/have_log_bin.inc +--source include/not_embedded.inc +--source include/have_perfschema.inc +--source include/master-slave.inc + +--disable_warnings +drop table if exists test.t1; +--sync_slave_with_master +reset master; +--enable_warnings + +create table test.t1(a int); +drop table test.t1; + +--source include/show_binlog_events.inc + +connection master; +-- echo "============ Performance schema on master ============" + +let $MYSQLD_DATADIR= `SELECT @@datadir`; + +--replace_result $MYSQLD_DATADIR [DATADIR] +select * from performance_schema.file_summary_by_instance + where file_name like "%master-%" order by file_name; + +--replace_result $MYSQLD_DATADIR [DATADIR] +select * from performance_schema.file_summary_by_instance + where file_name like "%slave-%" order by file_name; + +# Expect a master binlog + binlog_index + +--replace_result $MYSQLD_DATADIR [DATADIR] +select * from performance_schema.file_summary_by_instance + where event_name like "%binlog%" order by file_name; + +select * from performance_schema.file_summary_by_event_name + where event_name like "%binlog%" order by event_name; + +select event_name, count_star + from performance_schema.events_waits_summary_global_by_event_name + where event_name like "%MYSQL_BIN_LOG%" order by event_name; + +# Expect no slave relay log. + +--replace_result $MYSQLD_DATADIR [DATADIR] +select * from performance_schema.file_summary_by_instance + where event_name like "%relaylog%" order by file_name; + +select * from performance_schema.file_summary_by_event_name + where event_name like "%relaylog%" order by event_name; + +select * from performance_schema.events_waits_summary_global_by_event_name + where event_name like "%MYSQL_RELAY_LOG%" order by event_name; + +sync_slave_with_master; +-- echo "============ Performance schema on slave ============" + +let $MYSQLD_DATADIR= `SELECT @@datadir`; + +--replace_result $MYSQLD_DATADIR [DATADIR] +select * from performance_schema.file_summary_by_instance + where file_name like "%master-%" order by file_name; + +--replace_result $MYSQLD_DATADIR [DATADIR] +select * from performance_schema.file_summary_by_instance + where file_name like "%slave-%" order by file_name; + +# Expect a slave binlog + binlog_index + +--replace_result $MYSQLD_DATADIR [DATADIR] +select * from performance_schema.file_summary_by_instance + where event_name like "%binlog%" order by file_name; + +select * from performance_schema.file_summary_by_event_name + where event_name like "%binlog%" order by event_name; + +select event_name, count_star + from performance_schema.events_waits_summary_global_by_event_name + where event_name like "%MYSQL_BIN_LOG%" order by event_name; + +# Expect a slave relay log. + +--replace_result $MYSQLD_DATADIR [DATADIR] +select * from performance_schema.file_summary_by_instance + where event_name like "%relaylog%" order by file_name; + +select * from performance_schema.file_summary_by_event_name + where event_name like "%relaylog%" order by event_name; + +select event_name, count_star + from performance_schema.events_waits_summary_global_by_event_name + where event_name like "%MYSQL_RELAY_LOG%" order by event_name; + +--source include/stop_slave.inc + === modified file 'sql/log.cc' --- a/sql/log.cc 2011-02-08 15:47:33 +0000 +++ b/sql/log.cc 2011-03-01 15:36:59 +0000 @@ -2861,11 +2861,9 @@ void MYSQL_BIN_LOG::init(bool no_auto_ev void MYSQL_BIN_LOG::init_pthread_objects() { - DBUG_ASSERT(inited == 0); - inited= 1; - mysql_mutex_init(key_LOG_LOCK_log, &LOCK_log, MY_MUTEX_INIT_SLOW); - mysql_mutex_init(key_BINLOG_LOCK_index, &LOCK_index, MY_MUTEX_INIT_SLOW); - mysql_cond_init(key_BINLOG_update_cond, &update_cond, 0); + MYSQL_LOG::init_pthread_objects(); + mysql_mutex_init(m_key_LOCK_index, &LOCK_index, MY_MUTEX_INIT_SLOW); + mysql_cond_init(m_key_update_cond, &update_cond, 0); } @@ -2888,7 +2886,7 @@ bool MYSQL_BIN_LOG::open_index_file(cons } fn_format(index_file_name, index_file_name_arg, mysql_data_home, ".index", opt); - if ((index_file_nr= mysql_file_open(key_file_binlog_index, + if ((index_file_nr= mysql_file_open(m_key_file_log_index, index_file_name, O_RDWR | O_CREAT | O_BINARY, MYF(MY_WME))) < 0 || @@ -3004,7 +3002,7 @@ bool MYSQL_BIN_LOG::open(const char *log /* open the main log file */ if (MYSQL_LOG::open( #ifdef HAVE_PSI_INTERFACE - key_file_binlog, + m_key_file_log, #endif log_name, log_type_arg, new_name, io_cache_type_arg)) { @@ -3874,7 +3872,7 @@ int MYSQL_BIN_LOG::purge_index_entry(THD /* Get rid of the trailing '\n' */ log_info.log_file_name[length-1]= 0; - if (!mysql_file_stat(key_file_binlog, log_info.log_file_name, &s, MYF(0))) + if (!mysql_file_stat(m_key_file_log, log_info.log_file_name, &s, MYF(0))) { if (my_errno == ENOENT) { @@ -4049,7 +4047,7 @@ int MYSQL_BIN_LOG::purge_logs_before_dat !is_active(log_info.log_file_name) && !log_in_use(log_info.log_file_name)) { - if (!mysql_file_stat(key_file_binlog, + if (!mysql_file_stat(m_key_file_log, log_info.log_file_name, &stat_area, MYF(0))) { if (my_errno == ENOENT) === modified file 'sql/log.h' --- a/sql/log.h 2010-12-07 16:11:13 +0000 +++ b/sql/log.h 2011-03-01 15:36:59 +0000 @@ -274,6 +274,16 @@ private: class MYSQL_BIN_LOG: public TC_LOG, private MYSQL_LOG { private: +#ifdef HAVE_PSI_INTERFACE + /** The instrumentation key to use for @ LOCK_index. */ + PSI_mutex_key m_key_LOCK_index; + /** The instrumentation key to use for @ update_cond. */ + PSI_cond_key m_key_update_cond; + /** The instrumentation key to use for opening the log file. */ + PSI_file_key m_key_file_log; + /** The instrumentation key to use for opening the log index file. */ + PSI_file_key m_key_file_log_index; +#endif /* LOCK_log and LOCK_index are inited by init_pthread_objects() */ mysql_mutex_t LOCK_index; mysql_mutex_t LOCK_prep_xids; @@ -362,6 +372,19 @@ public: on exit() - but only during the correct shutdown process */ +#ifdef HAVE_PSI_INTERFACE + void set_psi_keys(PSI_mutex_key key_LOCK_index, + PSI_cond_key key_update_cond, + PSI_file_key key_file_log, + PSI_file_key key_file_log_index) + { + m_key_LOCK_index= key_LOCK_index; + m_key_update_cond= key_update_cond; + m_key_file_log= key_file_log; + m_key_file_log_index= key_file_log_index; + } +#endif + int open(const char *opt_name); void close(); int log_xid(THD *thd, my_xid xid); === modified file 'sql/mysqld.cc' --- a/sql/mysqld.cc 2011-02-16 16:27:35 +0000 +++ b/sql/mysqld.cc 2011-03-01 15:36:59 +0000 @@ -3122,6 +3122,18 @@ static int init_common_variables() */ global_system_variables.time_zone= my_tz_SYSTEM; +#ifdef HAVE_PSI_INTERFACE + /* + Complete the mysql_bin_log initialization. + Instrumentation keys are known only after the performance schema initialization, + and can not be set in the MYSQL_BIN_LOG constructor (called before main()). + */ + mysql_bin_log.set_psi_keys(key_BINLOG_LOCK_index, + key_BINLOG_update_cond, + key_file_binlog, + key_file_binlog_index); +#endif + /* Init mutexes for the global MYSQL_BIN_LOG objects. As safe_mutex depends on what MY_INIT() does, we can't init the mutexes of @@ -7690,6 +7702,7 @@ PSI_mutex_key key_BINLOG_LOCK_index, key key_structure_guard_mutex, key_TABLE_SHARE_LOCK_ha_data, key_LOCK_error_messages, key_LOG_INFO_lock, key_LOCK_thread_count, key_PARTITION_LOCK_auto_inc; +PSI_mutex_key key_RELAYLOG_LOCK_index; static PSI_mutex_info all_server_mutexes[]= { @@ -7706,6 +7719,7 @@ static PSI_mutex_info all_server_mutexes { &key_BINLOG_LOCK_index, "MYSQL_BIN_LOG::LOCK_index", 0}, { &key_BINLOG_LOCK_prep_xids, "MYSQL_BIN_LOG::LOCK_prep_xids", 0}, + { &key_RELAYLOG_LOCK_index, "MYSQL_RELAY_LOG::LOCK_index", 0}, { &key_delayed_insert_mutex, "Delayed_insert::mutex", 0}, { &key_hash_filo_lock, "hash_filo::lock", 0}, { &key_LOCK_active_mi, "LOCK_active_mi", PSI_FLAG_GLOBAL}, @@ -7773,6 +7787,7 @@ PSI_cond_key key_BINLOG_COND_prep_xids, key_relay_log_info_start_cond, key_relay_log_info_stop_cond, key_TABLE_SHARE_cond, key_user_level_lock_cond, key_COND_thread_count, key_COND_thread_cache, key_COND_flush_thread_cache; +PSI_cond_key key_RELAYLOG_update_cond; static PSI_cond_info all_server_conds[]= { @@ -7786,6 +7801,7 @@ static PSI_cond_info all_server_conds[]= #endif /* HAVE_MMAP */ { &key_BINLOG_COND_prep_xids, "MYSQL_BIN_LOG::COND_prep_xids", 0}, { &key_BINLOG_update_cond, "MYSQL_BIN_LOG::update_cond", 0}, + { &key_RELAYLOG_update_cond, "MYSQL_RELAY_LOG::update_cond", 0}, { &key_COND_cache_status_changed, "Query_cache::COND_cache_status_changed", 0}, { &key_COND_manager, "COND_manager", PSI_FLAG_GLOBAL}, { &key_COND_rpl_status, "COND_rpl_status", PSI_FLAG_GLOBAL}, @@ -7849,6 +7865,7 @@ PSI_file_key key_file_binlog, key_file_b key_file_pid, key_file_relay_log_info, key_file_send_file, key_file_tclog, key_file_trg, key_file_trn, key_file_init; PSI_file_key key_file_query_log, key_file_slow_log; +PSI_file_key key_file_relaylog, key_file_relaylog_index; static PSI_file_info all_server_files[]= { @@ -7857,6 +7874,8 @@ static PSI_file_info all_server_files[]= #endif /* HAVE_MMAP */ { &key_file_binlog, "binlog", 0}, { &key_file_binlog_index, "binlog_index", 0}, + { &key_file_relaylog, "relaylog", 0}, + { &key_file_relaylog_index, "relaylog_index", 0}, { &key_file_casetest, "casetest", 0}, { &key_file_dbopt, "dbopt", 0}, { &key_file_des_key_file, "des_key_file", 0}, === modified file 'sql/mysqld.h' --- a/sql/mysqld.h 2011-01-14 13:21:46 +0000 +++ b/sql/mysqld.h 2011-03-01 15:36:59 +0000 @@ -241,6 +241,7 @@ extern PSI_mutex_key key_BINLOG_LOCK_ind key_relay_log_info_log_space_lock, key_relay_log_info_run_lock, key_structure_guard_mutex, key_TABLE_SHARE_LOCK_ha_data, key_LOCK_error_messages, key_LOCK_thread_count, key_PARTITION_LOCK_auto_inc; +extern PSI_mutex_key key_RELAYLOG_LOCK_index; extern PSI_rwlock_key key_rwlock_LOCK_grant, key_rwlock_LOCK_logger, key_rwlock_LOCK_sys_init_connect, key_rwlock_LOCK_sys_init_slave, @@ -260,6 +261,7 @@ extern PSI_cond_key key_BINLOG_COND_prep key_relay_log_info_start_cond, key_relay_log_info_stop_cond, key_TABLE_SHARE_cond, key_user_level_lock_cond, key_COND_thread_count, key_COND_thread_cache, key_COND_flush_thread_cache; +extern PSI_cond_key key_RELAYLOG_update_cond; extern PSI_thread_key key_thread_bootstrap, key_thread_delayed_insert, key_thread_handle_manager, key_thread_kill_server, key_thread_main, @@ -277,6 +279,7 @@ extern PSI_file_key key_file_binlog, key key_file_pid, key_file_relay_log_info, key_file_send_file, key_file_tclog, key_file_trg, key_file_trn, key_file_init; extern PSI_file_key key_file_query_log, key_file_slow_log; +extern PSI_file_key key_file_relaylog, key_file_relaylog_index; void init_server_psi_keys(); #endif /* HAVE_PSI_INTERFACE */ === modified file 'sql/rpl_rli.cc' --- a/sql/rpl_rli.cc 2010-11-11 17:11:05 +0000 +++ b/sql/rpl_rli.cc 2011-03-01 15:36:59 +0000 @@ -54,6 +54,13 @@ Relay_log_info::Relay_log_info(bool is_s { DBUG_ENTER("Relay_log_info::Relay_log_info"); +#ifdef HAVE_PSI_INTERFACE + relay_log.set_psi_keys(key_RELAYLOG_LOCK_index, + key_RELAYLOG_update_cond, + key_file_relaylog, + key_file_relaylog_index); +#endif + group_relay_log_name[0]= event_relay_log_name[0]= group_master_log_name[0]= 0; until_log_name[0]= ign_master_log_name_end[0]= 0; @@ -356,7 +363,7 @@ static inline int add_relay_log(Relay_lo { MY_STAT s; DBUG_ENTER("add_relay_log"); - if (!mysql_file_stat(key_file_binlog, + if (!mysql_file_stat(key_file_relaylog, linfo->log_file_name, &s, MYF(0))) { sql_print_error("log %s listed in the index, but failed to stat", --===============6200810278910931426== MIME-Version: 1.0 Content-Type: text/bzr-bundle; charset="us-ascii"; name="bzr/marc.alff@stripped" Content-Transfer-Encoding: 7bit Content-Disposition: inline # Bazaar merge directive format 2 (Bazaar 0.90) # revision_id: marc.alff@stripped # target_branch: file:///Users/malff/BZR_TREE/mysql-5.5-bug11766528/ # testament_sha1: bd6e8d79a5e0c61287534eeaba0738e20c6803ab # timestamp: 2011-03-01 16:37:23 +0100 # base_revision_id: tor.didriksen@stripped\ # qmhcbs7oyzdgiyyy # # Begin bundle IyBCYXphYXIgcmV2aXNpb24gYnVuZGxlIHY0CiMKQlpoOTFBWSZTWS3VimMACr1/gGBwUiB/f/// f+//6v////pgFd91mdc9rzu613dySa3pQGlLGCuNwPSgHVNAUB6MlKCg6J2A6SKdDurU5dcJJCJp kZNHqNAaFTJ/qo0/VP9SR6epqeUZB6jQ0ZHlAAaBKQJkxJmqn6ZJN6iHqeoAAGg0aaZDQ0AAaACS JoECBPQQmmp6nqfqKDQ2Ueo2oADQAAA00EmpJpNJk0ptR6m8iM1I2oyeUwE0YmnqaA0AABo0HBkG jQBk0xDTQZBiGEDQGjExGgAACpJAmjRMIJhGEI0xFPIaamnpGNTRp5NNTaIDE8pnDzI6/WP7LN7+ 3142+20LJ3zwlz/xVMbVhZMR1LyUIYhRdSOpY+JUMEWVqp1AVU01Otl+H2RPyEobdy99u9gTEn6r y9wOBuWWfb/CfKOb4F5AIMWydtZL8JoI88JiY8ZQzXukHsoPZmbFZ+sf2/LefvoLN3AvIUoOmzJA 9kiensKHAgrOoP5WAdAmbwDnM2YUrpionzC/R/FSn1MPoYth2bvf62bzCpmzIPBMP6eBi7OevyoY 8ffEouJVT8WOZQYgbbU+EzYUrACShDV8GFikmmYKabNlF0c4vqHUsUykGMqnShWZOcRKcK+NpcmB 34ZbAHeR4knoqPOuvnTWzhxszttWe2112zlbj5w1++QNEk6aBeDcwP6or0lPI7L+bmuuRNZsw7Vv 50eaTzxwilFFiyKQ0+jnoP5gGnHVY2Jbj1q2mfi5NmY7fByTBhN/Fsmwq9mMZOWJSldqtDWv3dZQ TnXGHc7qbOZLVRuaLYGRl6OLZqVOQ7f61r6vn7vD6/Ly0Gi+kiwQ71UEnoqpWDFMzuLjhis3yMwz R6w/tdWaSgwUd/djp5gxblufkA7CnGdkulj3/Lknj7188xM6L5aILV7HfYM+h2FwKn/2et939OZP VnMP3q5rhKTiHDkr9GEkvAUHTZVkn+ecz0rvEL7bW334VqSNjXpVqQLPczPRagq03ee7W+48Gfdw DRxMFUzDVs0ALCMIYHkYNUb54tizmwwb3JWtrjVr+3IKYnjgADtJqm8GotjUaar8R58JNlct/brZ 9VYYz9ipSoYjYiTFNd6vjt1rBxGeUbc1Equw20Iz1+noEUjTHaBI4AhVI1LoC9a8QfF19XW+2H0V dvORt3qACvyGoa8RpZp8lpHk7laP9eAAObheHskmHQuii0kUGpH7kvkMKF6PklxVFHeWilSnsAhI 9Xn/NtFC+BpHEKNL2bfljpnPXB5S/3Fip83sDEQnQwEWXzLOXOHd3d4j6w0pzdzzkdgaU304aPYU Zy66/odQufJKVaQ+p4NOounksxzuflFikPF8vPFVoZLilll/i03Pchtc+nsPWZ05pKpkK4EzLMkL mhszBrGpv09OV+TS+48HOdBHLDLBIOV/VmnHMUhbV7QAiaYhZPGUMKu/5LKKauqS08U8IncknYNS JsZImeu6GA7rbmqS5UXWLnRFSpUuJNQdCPhSdEqfIqDp4VtdxEYepIXTMziQJjZ69srVRDbeiHmI 2GKilavEq7LS8yKXlSYFJFrlXIDpx7PBUqp0ndgJzHBKCY3qm8iLyGsTKh7kcjqrRkYOfkdMkEYI EU5JINVCayEH1xF2g36jRMJ/OsxKwyY7HMm3Fa8eHFRTrOWIb2Q7fpiSSUg4jnaR5d8ZleDABy5T l2GOyRBjuehE2EDT3ZQtyK4aK0YKxFkhqXuTXdcp7cMiKOkmdZOJ8u9BDlGGYbdiVPk3VSDXMz5X 5RqTx73uVbwg7zlgdbXlnTAQahi7eAapM5zJG44I5m04HhAGOvcBuXpI4aDHSe7SduHZvpXbg2Mw unEQwJOUGo6bDo/bcQe+9KmauWWl64YR6CoXUiimc/WUUWDAH0GyGrt8CRvYz3ulzHlizJ+Zn3RE hHUwH6jmfhyJ5HX4IRvA2bavpvOUM7O9JPw118C0i18CQkWeQSDKAcoTVF2yOhGa5cttzmYQXnIs 2jzQrMqmE10unRpxakOlo5NkZuxsczpal0AYaw1Suwsjcao+U3iNTbbZxlt4vJ3lo+FgHGSus9S6 8pIHJjwmY3DkFxx2fE49OZkVKzPNl8L8MMlMuPTycz04rmxhLldYzMXBi1T88fR5Ho1PwG0gzy2D bJrn276tSXLwc7Wl3WUuHa3p0lBfIdkbjXZBtEHoRzHg3/FesCu3onmZrTedkwzN6xhqYOxiyv0Q vNuXMtc8HdyaTUxc7NXJtZtGuah+BzLwlSS7BfGZJsiKhQ10EYOpcRNYdYxRjNV0QbKZeWNU0QOk aIsbQnnNBmxRjwsrHmty2RjagPCgoiWHHHaR5mRHF8bo3Ouk1MbYOU8qByQCc3G16zuRsa53Iry6 GzYbDs2SlhnYJmxpykM02UmQ+ZKJaFxjfRBmVJkwvgdhlx4x8JY5GZ8a+kd5gdi5YbYTa9JceNKR HCcDk7TlHaXkTO4tI6D8y4PWugxK0jOcWKVxd8q5jdM9+BBQqVMjYbOfkILFYMx8GC+T6R2wzMJD SlyHltIK1sIN+0YTmViB37KCmg8JGWWNYTXO6JnFxwLjE026BhVOIO30ZUwF7kg470icG9o28stR 7YF4gC95IGm4FyGbHPVTKTUHnEzvJwveabQK7diqwLI80xxhPstctMDI9vtdF+P3gHxgeY3dTvau xn1MVRBNMl6EVVIZwD2Q0A+KTLewD4zm23q2adFEDg4itXCboYbgCMADdDgQQg8hwwW/ih6q/sBq Pz68ojN2ehVSkqVVXifZf+MFrWE343evA0b+C7+sRg2wmb+n368hNeiPxSLgX70YOaI6Cf1KJblh v4Ccrloi5e/BJjkdL6RLjZeJpyHTF2gzNzBifFuNQuWdQlookqUmVRaZ6rFrKdg22L7c9KKkm7rB zmwTsz38OdDj1cyR/LsiPwRU42INqWVH+Rch4wJO1UsDMqZwSgGqdzZjJuE50jDcX6Xf2RX3nsRa xafFUq7OE4Z6oitc7nddLqN1qiZQn+EyEvwDriLhKiQaSvWt+uCBcJclTKbCDtH8OYZzHczmFpZa xIWb863o59nPoJnRFk7xNTw6dc1pGJJr/Db1ZaaNn5XUhd3pDZbhCWEytRtOpr8L94N2Il5rEx25 YctC12VqRKqJaOdS02UJrhNUJuwt6eZJui7YYKE1sMNK18mdwpIdgliWzhqkn5NSR/u7ZJ5xOtH4 85h1yqVOadUpVKVKU1Wsqqm+JwHMJoJYuJ0E1DUS9e1Z6tmZgTMnv/a9v3VY2lFEWkLcx8t4Y0uS iW+jC6FShz/Lq1UMEHrZSLEREWCCgqiKZeHIBaWYlWst86T7ZcjOisbQw+1ptNekgxEBgkRERBgI DHFLaTYXDCAeHKZ3AvSfe+xaGd8iZC7TzSqVLheZH08mTwTk90tYqVA/vfscwf6Pm+pscXS+xnNq 5fcPEHdBLZH04zOagNGgEvQQiNOeksKMAiBZZ4oTcwOjoH8ZDxmy+1sJyImlJI0xlBpJDDH9dfIq dGfMx1VUP3+3XIcGbK3TBxtNXMyBlURkvlu10SpDTjfxxR141XXM1JFKkm6kh83do7rdD63721/l 5XtqmLvsti1R6F6yzzC95L2TyeaX4dN2ze8n2nl/FH0UlMn7JKPqHsvXpeq348dz1w2FZNHVhP5G 3B5NTC5BsB6h7Ek9eUxm+ktdIe1dp2vN4O5Zis4rnagQGLS0LT8SssMlcU7idBiMVZco70Eb4Gcq AdSVJYUDs8eY6ncthBXGe+SGK6mq1EmA2yJ2+dJ4ikej7Ng+qVc/jokN9V0NDdS8p7bLri11Wk4x Za5LWR5u1rty8WHw90HSqYtMWMjPy87ZC+9UYySkz8lL/4PfIYOKt7V7ecanDxMO8GrTzLETlq4+ Dw+OXIXPGZHEZ/E2M+N+/y/hwnmKj1tfysurbU7qTrUpOPouS5Sk+8HzbnYyTi1PGrmFYFqEvkoS hDSGskwVncAJDt4tRlZkw1RRelbKlkaY68MlatM5N+gZa4ksblpKKRKeLyaMvZ7jzsGPozbuOq7j fkyaPU97gDn0ktJz8PSK2rpConFFScqBVQ6RFRJZiz41Od6TrSJMITJhNxLp4YceJsdsssc9lIdl Zp4Xl21t01AcEay3H08NVkQrm2tx4He8qECnADaAi+0o3tIvh/mfRPF4ZOJpDNA9aOu0WoXQyqJ6 bqmAKqkVxsl3THAHr2T/UqB2cdUar7npvIPkx3MvcrgCbzwSImBa2WYfWGWe5bABySQ3yDWjVCNo qRUYKkmM9MBunMe+jq3l10qer4h7utlfZ52qPW9zfk92Cz/F8K0hT2pbhAzzlWEoHjG3T4TAPSCV BL4ER5EOpLYa1PzIneukpChVBSTvE5rnoe/i80cHjMUc7xkhZ83UsnMqqEv6OeZZZcr0TMp8NRIq pqoHndLDXIrY19rtbGvftnSPc6Y7z4OE3NvhGTr5UdiWg1+Zeu1hUqzk7XqlzW8VonwlRNurx1yQ +YGBXdaZFXtFZXUreptSE9E6g4yFtggxMe0E6lNeKdwywwd2h4pNerZ2+i0k7OjfO8w023mH0qPl LocK3MgVOBA8ui3bdsa5lUucYjwF07Kle5HJJelJfQn0YW19JZ34s4G+8Lomr2Y5+lE7O7hJKqqo a3Yv1ylKVUrnv5fGiztYTg6ERWXV9joL2mWQt4dbx2qm5vkq97669jfzNyzy87a1NiHsAN6HUJN8 Op6aspb8bHpqi5cpUVS974FVUvqlVE9zh1L/Hc0nrOhidU7bfpCZHm5Dky9TBMWQpOqRkSXoTNen Vtk0eiosukSoGXz1ZEi9qBpdv9LT690hhwlZzByA6VsZfNWT2d+toHjnTiMV0UKmxpsUKIiIi2Ua tUtR0bBTCYDEL9K1EYxLVTsmVGlbfpikPxA9dJaVGEJa+090R45/H/6RKTu72tqkhbskh73QKk3f H4g58p+s/AyXX0ZzX6t8gnTI06mD1TV1PVzeyNGsHT5/njM3bhhuak4DhGGR+Mrp2KxrVnnLa7pJ Xvqy5ypVlqlQWt9ChaVcttkSNklyPBkJKCwxS5KFKFfQuRcj7OLCryJmdLGyXfuouxWcMHMuj1sL QMfiU3TlffjG/zZxrMQzqGlbL7SoQ3QqSWoi608zkp+Zq4fPF8ohe2bilEkOZ0e6Blljm0Iv85NQ YUkC62MCoqcg95J93MTRSlM6JeD8meF0wy71FnTxxX9xlsy0Y1POoun+ciUi8HQvqu6kR+Vgvnd9 NW0ZqjUbvD6pbvWRQbhQnqLx5rhQeBSOBozITyIZ+TJMgyXJBgAdLfMfID1MkBa65DBDqmg11Try 0uixnNtp4qu+BwaOxyjWb0kntnO3R+na9PtTjU0tKKqgUlqsnx0lpUzUaU+F92EQuNU5u/qv2EcE yBaWsuBdZTNu3rQTG/wvRkE1yWXpA8u1D4MMzIZwU40BpMxndX6GI/RO+68aoRxrcy9WHqnwfK8+ MzRHkujWbnhGnCdMDPQu73Pzs9attq1xLRa5VmgAyCjjOrjj6u4SlVnXZntKcJ5Mew4X60qzBd6/ N20nIHPl0+SqVUqu0HwTz4asKsrN5YDzbJMNta+/tnVgjGT9qHGO2mceRrfQjLSqphi5rXp6I3VV VVVwvvjswRFJL0nQGcTtI+LvydCOTLZUjPG9aRmDF0NOGsO4ZHXmIWzo6ylnEC0es2IpNrd9JMNC pbhQqTdKghEUu7tJ9s5MAgoU2gSeInJDQlMYCCAmZCoItsoqSvIERQPBhHRkYUT00UJaFkJxKq4q MSM8nIZAqOIOCTV0opwwM0dhIkaRgwk8GlqX4SyMp89lqiZqtXbTG5rwFoK/MX6lDfSaixHRtDpW fiRqNgH6Hk1y5+UtmasaxIoSGAuddQ65OiPbfaMPIxSvrYSc19T3xN0fS/VZ6HXlv8JJPDje62O+ oD6fCWRi353I7ma/+47y20eA5UcaKRpoGmhpBRRQdYGuJW8JgIiIiIiIiIxxcB1lqOcs2iOSobV6 wbXBmXMeZxNn58EPgYvWanKviwASeohzkhw1ypIOpMVF+iEk4CmFpIsLBfdFcZSQ6kOn37NmR4ST ocidZVpXO6mBIrXJZxn0SnIneWFYs4f+LuSKcKEgW6sUxg== --===============6200810278910931426==--