List:Commits« Previous MessageNext Message »
From:Marc Alff Date:October 10 2011 10:34am
Subject:bzr push into mysql-trunk-wl5863 branch (marc.alff:3412 to 3414)
View as plain text  
 3414 Marc Alff	2011-10-10 [merge]
      Merge mysql-trunk --> mysql-trunk-wl5863

    added:
      mysql-test/std_data/bug11747887-bin.000002
      mysql-test/std_data/bug48633.ARM
      mysql-test/std_data/bug48633.ARZ
      mysql-test/std_data/bug48633.frm
      mysql-test/suite/rpl/r/binlog-hexdump.result
      mysql-test/suite/rpl/t/binlog-hexdump.test
    modified:
      mysql-test/collections/default.experimental
      mysql-test/r/archive.result
      mysql-test/r/partition_innodb.result
      mysql-test/r/partition_myisam.result
      mysql-test/suite/rpl/t/rpl_parallel_switch_sequential.test
      mysql-test/t/archive.test
      mysql-test/t/partition_innodb.test
      mysql-test/t/partition_myisam.test
      mysql-test/valgrind.supp
      scripts/mysql_install_db.pl.in
      scripts/mysql_install_db.sh
      sql/ha_partition.cc
      sql/log_event.cc
      sql/rpl_info_file.cc
      sql/rpl_rli_pdb.cc
      sql/share/errmsg-utf8.txt
      sql/sql_table.cc
      sql/table.cc
      sql/udf_example.c
      storage/archive/azio.c
      storage/archive/ha_archive.cc
      storage/archive/ha_archive.h
      storage/perfschema/table_ews_by_thread_by_event_name.cc
      storage/perfschema/table_socket_summary_by_event_name.cc
      storage/perfschema/table_socket_summary_by_instance.cc
      storage/perfschema/table_socket_summary_by_instance.h
 3413 Marc Alff	2011-10-10 [merge]
      Merge mysql-trunk --> mysql-trunk-wl5863

    modified:
      include/my_pthread.h
 3412 Marc Alff	2011-10-06 [merge]
      Merge mysql-trunk --> mysql-trunk-wl5863

    removed:
      mysql-test/collections/default.release
      mysql-test/extra/rpl_tests/rpl_insert_duplicate.test
      mysql-test/r/join_cache_bka_nobnl.result
      mysql-test/r/join_nested_bka_nobnl.result
      mysql-test/r/join_outer_bka_nobnl.result
      mysql-test/r/select_all_bka_nobnl.result
      mysql-test/r/select_icp_mrr_bka_nobnl.result
      mysql-test/r/select_none_bka_nobnl.result
      mysql-test/r/subquery_all_bka_nobnl.result
      mysql-test/r/subquery_nomat_nosj_bka_nobnl.result
      mysql-test/r/subquery_none_bka_nobnl.result
      mysql-test/r/subquery_sj_all_bka_nobnl.result
      mysql-test/r/subquery_sj_dupsweed_bka_nobnl.result
      mysql-test/r/subquery_sj_firstmatch_bka_nobnl.result
      mysql-test/r/subquery_sj_innodb_all_bka_nobnl.result
      mysql-test/r/subquery_sj_innodb_none_bka_nobnl.result
      mysql-test/r/subquery_sj_loosescan_bka_nobnl.result
      mysql-test/r/subquery_sj_mat_bka_nobnl.result
      mysql-test/r/subquery_sj_none_bka_nobnl.result
      mysql-test/suite/rpl/r/rpl_insert_duplicate.result
      mysql-test/suite/rpl/r/rpl_insert_select.result
      mysql-test/suite/rpl/t/rpl_insert_duplicate.test
      mysql-test/suite/rpl/t/rpl_insert_select.test
      mysql-test/t/join_cache_bka_nobnl.test
      mysql-test/t/join_nested_bka_nobnl.test
      mysql-test/t/join_outer_bka_nobnl.test
      mysql-test/t/select_all_bka_nobnl.test
      mysql-test/t/select_icp_mrr_bka_nobnl.test
      mysql-test/t/select_none_bka_nobnl.test
      mysql-test/t/subquery_all_bka_nobnl.test
      mysql-test/t/subquery_nomat_nosj_bka_nobnl.test
      mysql-test/t/subquery_none_bka_nobnl.test
      mysql-test/t/subquery_sj_all_bka_nobnl.test
      mysql-test/t/subquery_sj_dupsweed_bka_nobnl.test
      mysql-test/t/subquery_sj_firstmatch_bka_nobnl.test
      mysql-test/t/subquery_sj_innodb_all_bka_nobnl.test
      mysql-test/t/subquery_sj_innodb_none_bka_nobnl.test
      mysql-test/t/subquery_sj_loosescan_bka_nobnl.test
      mysql-test/t/subquery_sj_mat_bka_nobnl.test
      mysql-test/t/subquery_sj_none_bka_nobnl.test
    added:
      mysql-test/collections/default.release.in
      mysql-test/r/join_cache_bka_nixbnl.result
      mysql-test/r/join_nested_bka_nixbnl.result
      mysql-test/r/join_outer_bka_nixbnl.result
      mysql-test/r/select_all_bka_nixbnl.result
      mysql-test/r/select_icp_mrr_bka_nixbnl.result
      mysql-test/r/select_none_bka_nixbnl.result
      mysql-test/r/subquery_all_bka_nixbnl.result
      mysql-test/r/subquery_nomat_nosj_bka_nixbnl.result
      mysql-test/r/subquery_none_bka_nixbnl.result
      mysql-test/r/subquery_sj_all_bka_nixbnl.result
      mysql-test/r/subquery_sj_dupsweed_bka_nixbnl.result
      mysql-test/r/subquery_sj_firstmatch_bka_nixbnl.result
      mysql-test/r/subquery_sj_innodb_all_bka_nixbnl.result
      mysql-test/r/subquery_sj_innodb_none_bka_nixbnl.result
      mysql-test/r/subquery_sj_loosescan_bka_nixbnl.result
      mysql-test/r/subquery_sj_mat_bka_nixbnl.result
      mysql-test/r/subquery_sj_none_bka_nixbnl.result
      mysql-test/suite/innodb/t/innodb_bug47167-master.opt
      mysql-test/suite/innodb/t/innodb_file_format-master.opt
      mysql-test/suite/rpl/r/rpl_general_log.result
      mysql-test/suite/rpl/r/rpl_replicate_rewrite_db.result
      mysql-test/suite/rpl/t/rpl_general_log.test
      mysql-test/suite/rpl/t/rpl_replicate_rewrite_db.test
      mysql-test/suite/stress/t/wrapper.test
      mysql-test/suite/sys_vars/r/innodb_analyze_is_persistent_basic.result
      mysql-test/suite/sys_vars/r/innodb_monitor_disable_basic.result
      mysql-test/suite/sys_vars/r/innodb_monitor_enable_basic.result
      mysql-test/suite/sys_vars/r/innodb_monitor_reset_all_basic.result
      mysql-test/suite/sys_vars/r/innodb_monitor_reset_basic.result
      mysql-test/suite/sys_vars/r/innodb_print_all_deadlocks_basic.result
      mysql-test/suite/sys_vars/r/innodb_stats_persistent_sample_pages_basic.result
      mysql-test/suite/sys_vars/r/innodb_stats_transient_sample_pages_basic.result
      mysql-test/suite/sys_vars/r/innodb_sync_array_size_basic.result
      mysql-test/suite/sys_vars/t/innodb_analyze_is_persistent_basic.test
      mysql-test/suite/sys_vars/t/innodb_file_format_max_basic-master.opt
      mysql-test/suite/sys_vars/t/innodb_monitor_disable_basic.test
      mysql-test/suite/sys_vars/t/innodb_monitor_enable_basic.test
      mysql-test/suite/sys_vars/t/innodb_monitor_reset_all_basic.test
      mysql-test/suite/sys_vars/t/innodb_monitor_reset_basic.test
      mysql-test/suite/sys_vars/t/innodb_print_all_deadlocks_basic.test
      mysql-test/suite/sys_vars/t/innodb_stats_persistent_sample_pages_basic.test
      mysql-test/suite/sys_vars/t/innodb_stats_transient_sample_pages_basic.test
      mysql-test/suite/sys_vars/t/innodb_sync_array_size_basic.test
      mysql-test/t/join_cache_bka_nixbnl.test
      mysql-test/t/join_nested_bka_nixbnl.test
      mysql-test/t/join_outer_bka_nixbnl.test
      mysql-test/t/select_all_bka_nixbnl.test
      mysql-test/t/select_icp_mrr_bka_nixbnl.test
      mysql-test/t/select_none_bka_nixbnl.test
      mysql-test/t/subquery_all_bka_nixbnl.test
      mysql-test/t/subquery_nomat_nosj_bka_nixbnl.test
      mysql-test/t/subquery_none_bka_nixbnl.test
      mysql-test/t/subquery_sj_all_bka_nixbnl.test
      mysql-test/t/subquery_sj_dupsweed_bka_nixbnl.test
      mysql-test/t/subquery_sj_firstmatch_bka_nixbnl.test
      mysql-test/t/subquery_sj_innodb_all_bka_nixbnl.test
      mysql-test/t/subquery_sj_innodb_none_bka_nixbnl.test
      mysql-test/t/subquery_sj_loosescan_bka_nixbnl.test
      mysql-test/t/subquery_sj_mat_bka_nixbnl.test
      mysql-test/t/subquery_sj_none_bka_nixbnl.test
    modified:
      .bzrignore
      VERSION
      client/mysqltest.cc
      cmake/create_initial_db.cmake.in
      include/heap.h
      libmysql/authentication_win/handshake_client.cc
      libmysqld/lib_sql.cc
      mysql-test/CMakeLists.txt
      mysql-test/collections/README
      mysql-test/collections/default.experimental
      mysql-test/extra/rpl_tests/rpl_insert_id.test
      mysql-test/extra/rpl_tests/rpl_insert_ignore.test
      mysql-test/include/commit.inc
      mysql-test/include/explain_non_select.inc
      mysql-test/include/icp_tests.inc
      mysql-test/include/mrr_tests.inc
      mysql-test/include/mtr_check.sql
      mysql-test/include/subquery.inc
      mysql-test/include/subquery_sj.inc
      mysql-test/lib/My/CoreDump.pm
      mysql-test/mysql-stress-test.pl
      mysql-test/mysql-test-run.pl
      mysql-test/r/commit_1innodb.result
      mysql-test/r/derived.result
      mysql-test/r/error_simulation.result
      mysql-test/r/func_str.result
      mysql-test/r/group_by.result
      mysql-test/r/having.result
      mysql-test/r/heap.result
      mysql-test/r/index_merge_myisam.result
      mysql-test/r/innodb_explain_non_select_all.result
      mysql-test/r/innodb_explain_non_select_none.result
      mysql-test/r/innodb_icp.result
      mysql-test/r/innodb_icp_all.result
      mysql-test/r/innodb_icp_none.result
      mysql-test/r/innodb_mrr.result
      mysql-test/r/innodb_mrr_all.result
      mysql-test/r/innodb_mrr_cost.result
      mysql-test/r/innodb_mrr_cost_all.result
      mysql-test/r/innodb_mrr_cost_icp.result
      mysql-test/r/innodb_mrr_icp.result
      mysql-test/r/innodb_mrr_none.result
      mysql-test/r/join_cache_bka.result
      mysql-test/r/join_cache_bkaunique.result
      mysql-test/r/join_cache_nojb.result
      mysql-test/r/join_nested_bka.result
      mysql-test/r/join_outer.result
      mysql-test/r/join_outer_bka.result
      mysql-test/r/myisam_explain_non_select_all.result
      mysql-test/r/myisam_explain_non_select_none.result
      mysql-test/r/myisam_icp.result
      mysql-test/r/myisam_icp_all.result
      mysql-test/r/myisam_icp_none.result
      mysql-test/r/myisam_mrr.result
      mysql-test/r/myisam_mrr_all.result
      mysql-test/r/myisam_mrr_cost.result
      mysql-test/r/myisam_mrr_cost_all.result
      mysql-test/r/myisam_mrr_cost_icp.result
      mysql-test/r/myisam_mrr_icp.result
      mysql-test/r/myisam_mrr_none.result
      mysql-test/r/mysqld--help-notwin.result
      mysql-test/r/mysqld--help-win.result
      mysql-test/r/mysqltest.result
      mysql-test/r/optimizer_switch.result
      mysql-test/r/partition.result
      mysql-test/r/partition_innodb_plugin.result
      mysql-test/r/partition_myisam.result
      mysql-test/r/plugin_auth.result
      mysql-test/r/select_all_bka.result
      mysql-test/r/select_icp_mrr_bka.result
      mysql-test/r/select_none_bka.result
      mysql-test/r/show_check.result
      mysql-test/r/subquery_all_bka.result
      mysql-test/r/subquery_nomat_nosj.result
      mysql-test/r/subquery_nomat_nosj_bka.result
      mysql-test/r/subquery_none.result
      mysql-test/r/subquery_none_bka.result
      mysql-test/r/subquery_sj_all.result
      mysql-test/r/subquery_sj_all_bka.result
      mysql-test/r/subquery_sj_all_bkaunique.result
      mysql-test/r/subquery_sj_dupsweed.result
      mysql-test/r/subquery_sj_dupsweed_bka.result
      mysql-test/r/subquery_sj_dupsweed_bkaunique.result
      mysql-test/r/subquery_sj_firstmatch.result
      mysql-test/r/subquery_sj_firstmatch_bka.result
      mysql-test/r/subquery_sj_firstmatch_bkaunique.result
      mysql-test/r/subquery_sj_innodb_all_bka.result
      mysql-test/r/subquery_sj_innodb_all_bkaunique.result
      mysql-test/r/subquery_sj_innodb_none_bka.result
      mysql-test/r/subquery_sj_innodb_none_bkaunique.result
      mysql-test/r/subquery_sj_loosescan.result
      mysql-test/r/subquery_sj_loosescan_bka.result
      mysql-test/r/subquery_sj_loosescan_bkaunique.result
      mysql-test/r/subquery_sj_mat.result
      mysql-test/r/subquery_sj_mat_bka.result
      mysql-test/r/subquery_sj_mat_bkaunique.result
      mysql-test/r/subquery_sj_mat_nosj.result
      mysql-test/r/subquery_sj_none.result
      mysql-test/r/subquery_sj_none_bka.result
      mysql-test/r/subquery_sj_none_bkaunique.result
      mysql-test/suite/binlog/r/binlog_stm_blackhole.result
      mysql-test/suite/binlog/r/binlog_unsafe.result
      mysql-test/suite/binlog/t/binlog_unsafe.test
      mysql-test/suite/federated/federated_plugin-master.opt
      mysql-test/suite/federated/federated_plugin.result
      mysql-test/suite/federated/federated_plugin.test
      mysql-test/suite/innodb/r/innodb_bug52745.result
      mysql-test/suite/innodb/r/innodb_bug53591.result
      mysql-test/suite/innodb/r/innodb_file_format.result
      mysql-test/suite/innodb/r/innodb_index_large_prefix.result
      mysql-test/suite/innodb/r/innodb_prefix_index_liftedlimit.result
      mysql-test/suite/innodb/r/innodb_prefix_index_restart_server.result
      mysql-test/suite/innodb/t/innodb-autoinc-44030.test
      mysql-test/suite/innodb/t/innodb-autoinc.test
      mysql-test/suite/innodb/t/innodb-create-options.test
      mysql-test/suite/innodb/t/innodb-index.test
      mysql-test/suite/innodb/t/innodb-zip.test
      mysql-test/suite/innodb/t/innodb_bug36172.test
      mysql-test/suite/innodb/t/innodb_bug52745.test
      mysql-test/suite/innodb/t/innodb_bug53591.test
      mysql-test/suite/innodb/t/innodb_bug56680.test
      mysql-test/suite/innodb/t/innodb_file_format.test
      mysql-test/suite/innodb/t/innodb_index_large_prefix.test
      mysql-test/suite/innodb/t/innodb_prefix_index_liftedlimit.test
      mysql-test/suite/innodb/t/innodb_prefix_index_restart_server.test
      mysql-test/suite/opt_trace/include/general.inc
      mysql-test/suite/opt_trace/include/general2.inc
      mysql-test/suite/opt_trace/include/range.inc
      mysql-test/suite/opt_trace/include/subquery.inc
      mysql-test/suite/opt_trace/r/bugs_no_prot_all.result
      mysql-test/suite/opt_trace/r/bugs_no_prot_none.result
      mysql-test/suite/opt_trace/r/bugs_ps_prot_all.result
      mysql-test/suite/opt_trace/r/bugs_ps_prot_none.result
      mysql-test/suite/opt_trace/r/charset.result
      mysql-test/suite/opt_trace/r/filesort_pq.result
      mysql-test/suite/opt_trace/r/general2_no_prot.result
      mysql-test/suite/opt_trace/r/general2_ps_prot.result
      mysql-test/suite/opt_trace/r/general_no_prot_all.result
      mysql-test/suite/opt_trace/r/general_no_prot_none.result
      mysql-test/suite/opt_trace/r/general_ps_prot_all.result
      mysql-test/suite/opt_trace/r/general_ps_prot_none.result
      mysql-test/suite/opt_trace/r/range_no_prot.result
      mysql-test/suite/opt_trace/r/range_ps_prot.result
      mysql-test/suite/opt_trace/r/security_no_prot.result
      mysql-test/suite/opt_trace/r/security_ps_prot.result
      mysql-test/suite/opt_trace/r/subquery_no_prot.result
      mysql-test/suite/opt_trace/r/subquery_ps_prot.result
      mysql-test/suite/rpl/r/rpl_checksum.result
      mysql-test/suite/rpl/r/rpl_insert_ignore.result
      mysql-test/suite/rpl/r/rpl_known_bugs_detection.result
      mysql-test/suite/rpl/r/rpl_log_pos.result
      mysql-test/suite/rpl/r/rpl_manual_change_index_file.result
      mysql-test/suite/rpl/r/rpl_packet.result
      mysql-test/suite/rpl/r/rpl_parallel_start_stop.result
      mysql-test/suite/rpl/r/rpl_row_event_max_size.result
      mysql-test/suite/rpl/r/rpl_slave_load_remove_tmpfile.result
      mysql-test/suite/rpl/t/rpl_known_bugs_detection.test
      mysql-test/suite/rpl/t/rpl_manual_change_index_file.test
      mysql-test/suite/rpl/t/rpl_packet.test
      mysql-test/suite/rpl/t/rpl_row_event_max_size.test
      mysql-test/suite/rpl/t/rpl_slave_load_remove_tmpfile.test
      mysql-test/suite/sys_vars/r/all_vars.result
      mysql-test/suite/sys_vars/r/optimizer_switch_basic.result
      mysql-test/t/derived.test
      mysql-test/t/error_simulation.test
      mysql-test/t/func_str.test
      mysql-test/t/group_by.test
      mysql-test/t/heap.test
      mysql-test/t/join_cache_bka.test
      mysql-test/t/join_cache_bkaunique.test
      mysql-test/t/join_cache_nojb.test
      mysql-test/t/join_nested_bka.test
      mysql-test/t/join_outer.test
      mysql-test/t/join_outer_bka.test
      mysql-test/t/mysql_plugin.test
      mysql-test/t/mysqld--defaults-file.test
      mysql-test/t/mysqltest.test
      mysql-test/t/partition.test
      mysql-test/t/partition_innodb_plugin.test
      mysql-test/t/partition_myisam.test
      mysql-test/t/plugin_auth.test
      mysql-test/t/select_all_bka.test
      mysql-test/t/select_icp_mrr_bka.test
      mysql-test/t/select_none_bka.test
      mysql-test/t/show_check.test
      mysql-test/t/subquery_all_bka.test
      mysql-test/t/subquery_nomat_nosj_bka.test
      mysql-test/t/subquery_none_bka.test
      mysql-test/t/subquery_sj_all_bka.test
      mysql-test/t/subquery_sj_all_bkaunique.test
      mysql-test/t/subquery_sj_dupsweed_bka.test
      mysql-test/t/subquery_sj_dupsweed_bkaunique.test
      mysql-test/t/subquery_sj_firstmatch.test
      mysql-test/t/subquery_sj_firstmatch_bka.test
      mysql-test/t/subquery_sj_firstmatch_bkaunique.test
      mysql-test/t/subquery_sj_innodb_all_bka.test
      mysql-test/t/subquery_sj_innodb_all_bkaunique.test
      mysql-test/t/subquery_sj_innodb_none_bka.test
      mysql-test/t/subquery_sj_innodb_none_bkaunique.test
      mysql-test/t/subquery_sj_loosescan_bka.test
      mysql-test/t/subquery_sj_loosescan_bkaunique.test
      mysql-test/t/subquery_sj_mat_bka.test
      mysql-test/t/subquery_sj_mat_bkaunique.test
      mysql-test/t/subquery_sj_none_bka.test
      mysql-test/t/subquery_sj_none_bkaunique.test
      scripts/mysqld_safe.sh
      sql/event_scheduler.cc
      sql/ha_partition.cc
      sql/ha_partition.h
      sql/handler.cc
      sql/handler.h
      sql/item_buff.cc
      sql/item_cmpfunc.cc
      sql/item_func.cc
      sql/item_subselect.cc
      sql/item_subselect.h
      sql/log_event.cc
      sql/mysqld.cc
      sql/opt_explain.cc
      sql/opt_range.cc
      sql/opt_trace.cc
      sql/opt_trace.h
      sql/opt_trace2server.cc
      sql/rpl_master.cc
      sql/rpl_rli_pdb.cc
      sql/rpl_slave.cc
      sql/share/errmsg-utf8.txt
      sql/sp_head.cc
      sql/sql_base.cc
      sql/sql_class.cc
      sql/sql_class.h
      sql/sql_insert.cc
      sql/sql_lex.cc
      sql/sql_lex.h
      sql/sql_list.h
      sql/sql_parse.cc
      sql/sql_prepare.cc
      sql/sql_select.cc
      sql/sql_select.h
      sql/sql_show.cc
      sql/sys_vars.cc
      sql/table.cc
      storage/heap/ha_heap.cc
      storage/heap/hp_create.c
      storage/heap/hp_info.c
      storage/innobase/buf/buf0buf.c
      storage/innobase/buf/buf0lru.c
      storage/innobase/dict/dict0stats.c
      storage/innobase/handler/ha_innodb.cc
      storage/innobase/handler/i_s.cc
      storage/innobase/include/btr0cur.h
      storage/innobase/include/btr0cur.ic
      storage/innobase/include/buf0buf.h
      storage/innobase/include/buf0buf.ic
      storage/innobase/include/buf0types.h
      storage/innobase/include/sync0rw.h
      storage/innobase/include/sync0rw.ic
      storage/innobase/include/ut0crc32.h
      storage/innobase/log/log0log.c
      storage/innobase/os/os0file.c
      storage/innobase/rem/rem0rec.c
      storage/innobase/row/row0purge.c
      storage/innobase/srv/srv0start.c
      storage/innobase/sync/sync0rw.c
      storage/innobase/ut/ut0crc32.c
      storage/myisam/ha_myisam.cc
      support-files/mysql.spec.sh
      tests/mysql_client_test.c
      unittest/gunit/opt_trace-t.cc
      unittest/gunit/sql_list-t.cc
      unittest/mysys/my_atomic-t.c
=== modified file 'include/my_pthread.h'
--- a/include/my_pthread.h	2011-08-19 13:04:28 +0000
+++ b/include/my_pthread.h	2011-10-06 14:33:18 +0000
@@ -542,8 +542,8 @@ void safe_mutex_end(FILE *file);
           DBUG_ASSERT(! (mp)->count || \
                       ! pthread_equal(pthread_self(), (mp)->thread))
 #else
-#define safe_mutex_assert_owner(mp)
-#define safe_mutex_assert_not_owner(mp)
+#define safe_mutex_assert_owner(mp) do {} while (0)
+#define safe_mutex_assert_not_owner(mp) do {} while (0)
 #endif /* SAFE_MUTEX */
 
 #if defined(MY_PTHREAD_FASTMUTEX) && !defined(SAFE_MUTEX)

=== modified file 'mysql-test/collections/default.experimental'
--- a/mysql-test/collections/default.experimental	2011-10-04 10:55:09 +0000
+++ b/mysql-test/collections/default.experimental	2011-10-07 08:36:04 +0000
@@ -41,6 +41,6 @@ sys_vars.have_ndbcluster_basic
 sys_vars.ndb_log_updated_only_basic
 sys_vars.rpl_init_slave_func		 # Bug#12535301 2011-05-09 andrei sys_vars.rpl_init_slave_func mismatches in daily-5.5
 
-rpl.rpl_mixed_mts_rec_crash_safe @solaris          # Bug 12902514 2011-08-19 andrei mts recovery tests are slow
-rpl.rpl_mixed_mts_rec_crash_safe_checksum @solaris # same as rpl_mixed_mts_rec_crash_safe
-rpl.rpl_mixed_mts_crash_safe @solaris              # same as rpl_mixed_mts_rec_crash_safe
+rpl.rpl_mixed_mts_rec_crash_safe @solaris          # Bug#12902514 2011-08-19 andrei mts recovery tests are slow
+rpl.rpl_mixed_mts_rec_crash_safe_checksum @solaris # Bug#12902514 2011-08-19 andrei same as rpl_mixed_mts_rec_crash_safe
+rpl.rpl_mixed_mts_crash_safe @solaris              # Bug#12902514 2011-08-19 andrei same as rpl_mixed_mts_rec_crash_safe

=== modified file 'mysql-test/r/archive.result'
--- a/mysql-test/r/archive.result	2011-03-03 09:22:17 +0000
+++ b/mysql-test/r/archive.result	2011-10-06 13:51:28 +0000
@@ -12729,15 +12729,17 @@ id	id	name	name
 2	2	a	b
 DROP TABLE t1,t2;
 SHOW CREATE TABLE t1;
-ERROR HY000: Table upgrade required. Please do "REPAIR TABLE `t1`" or dump/reload to fix it!
+Table	Create Table
+t1	CREATE TABLE `t1` (
+  `col1` int(11) DEFAULT NULL,
+  `col2` varchar(20) DEFAULT NULL
+) ENGINE=ARCHIVE DEFAULT CHARSET=latin1
 SELECT * FROM t1;
-ERROR HY000: Table upgrade required. Please do "REPAIR TABLE `t1`" or dump/reload to fix it!
+col1	col2
 INSERT INTO t1 (col1, col2) VALUES (1, "value");
-ERROR HY000: Table upgrade required. Please do "REPAIR TABLE `t1`" or dump/reload to fix it!
 REPAIR TABLE t1;
 Table	Op	Msg_type	Msg_text
-test.t1	repair	Error	Table upgrade required. Please do "REPAIR TABLE `t1`" or dump/reload to fix it!
-test.t1	repair	error	Corrupt
+test.t1	repair	status	OK
 DROP TABLE t1;
 #
 # BUG#48757 - missing .ARZ file causes server crash
@@ -12823,3 +12825,59 @@ a	b	c	d	e	f
 -1	b	c	d	e	1
 DROP TABLE t1;
 SET sort_buffer_size=DEFAULT;
+#
+# BUG#11756687 - 48633: ARCHIVE TABLES ARE NOT UPGRADEABLE
+#
+SHOW CREATE TABLE t1;
+Table	Create Table
+t1	CREATE TABLE `t1` (
+  `a` int(11) DEFAULT NULL,
+  `b` text,
+  `c` varchar(255) DEFAULT NULL,
+  `d` blob,
+  `e` blob
+) ENGINE=ARCHIVE DEFAULT CHARSET=latin1
+SELECT * FROM t1;
+a	b	c	d	e
+1	text	varchar	blob1	blob2
+2	text	varchar	blob1	blob2
+SELECT * FROM t1;
+a	b	c	d	e
+1	text	varchar	blob1	blob2
+2	text	varchar	blob1	blob2
+FLUSH TABLE t1;
+SELECT * FROM t1;
+a	b	c	d	e
+1	text	varchar	blob1	blob2
+2	text	varchar	blob1	blob2
+CHECK TABLE t1;
+Table	Op	Msg_type	Msg_text
+test.t1	check	error	Table upgrade required. Please do "REPAIR TABLE `t1`" or dump/reload to fix it!
+SELECT * FROM t1;
+a	b	c	d	e
+1	text	varchar	blob1	blob2
+2	text	varchar	blob1	blob2
+INSERT INTO t1 VALUES(3, 'text', 'varchar', 'blob1', 'blob2');
+SELECT * FROM t1;
+a	b	c	d	e
+1	text	varchar	blob1	blob2
+2	text	varchar	blob1	blob2
+3	text	varchar	blob1	blob2
+FLUSH TABLE t1;
+SELECT * FROM t1;
+a	b	c	d	e
+1	text	varchar	blob1	blob2
+2	text	varchar	blob1	blob2
+3	text	varchar	blob1	blob2
+REPAIR TABLE t1;
+Table	Op	Msg_type	Msg_text
+test.t1	repair	status	OK
+SELECT * FROM t1;
+a	b	c	d	e
+1	text	varchar	blob1	blob2
+2	text	varchar	blob1	blob2
+3	text	varchar	blob1	blob2
+CHECK TABLE t1;
+Table	Op	Msg_type	Msg_text
+test.t1	check	status	OK
+DROP TABLE t1;

=== modified file 'mysql-test/r/partition_innodb.result'
--- a/mysql-test/r/partition_innodb.result	2011-08-29 07:08:18 +0000
+++ b/mysql-test/r/partition_innodb.result	2011-10-07 08:30:01 +0000
@@ -1,5 +1,16 @@
 drop table if exists t1, t2;
 #
+# Bug#13007154: Crash in keys_to_use_for_scanning with ORDER BY
+#               and PARTITIONING
+#
+CREATE TABLE t1 (a INT, KEY(a))
+ENGINE = InnoDB
+PARTITION BY KEY (a) PARTITIONS 1;
+SELECT 1 FROM t1 WHERE a > (SELECT LAST_INSERT_ID() FROM t1 LIMIT 0)
+ORDER BY a;
+1
+DROP TABLE t1;
+#
 # Bug#56287: crash when using Partition datetime in sub in query
 #
 CREATE TABLE t1

=== modified file 'mysql-test/r/partition_myisam.result'
--- a/mysql-test/r/partition_myisam.result	2011-10-06 09:50:40 +0000
+++ b/mysql-test/r/partition_myisam.result	2011-10-07 14:20:21 +0000
@@ -1,5 +1,25 @@
 DROP TABLE IF EXISTS t1, t2;
 #
+# Bug#11763825/56590: PARTITIONS: FULLTEXT SEARCHES FAIL
+# (bad/confusing error message)
+CREATE TABLE t1
+(a INT UNSIGNED AUTO_INCREMENT NOT NULL PRIMARY KEY,
+b VARCHAR(200),
+c TEXT)
+ENGINE=MyISAM
+PARTITION BY HASH(a) PARTITIONS 1;
+CREATE FULLTEXT INDEX msg ON t1 (b, c);
+ERROR HY000: FULLTEXT index is not supported for partitioned tables.
+DROP TABLE t1;
+CREATE TABLE t1
+(a INT UNSIGNED AUTO_INCREMENT NOT NULL PRIMARY KEY,
+b VARCHAR(200),
+c TEXT,
+FULLTEXT (b, c))
+ENGINE=MyISAM
+PARTITION BY HASH(a) PARTITIONS 1;
+ERROR HY000: FULLTEXT index is not supported for partitioned tables.
+#
 # BUG#11933226 - 60681: CHECKSUM TABLE RETURNS 0 FOR PARTITIONED TABLE
 #
 CREATE TABLE t1 (

=== added file 'mysql-test/std_data/bug11747887-bin.000002'
Binary files a/mysql-test/std_data/bug11747887-bin.000002	1970-01-01 00:00:00 +0000 and b/mysql-test/std_data/bug11747887-bin.000002	2011-10-10 06:22:13 +0000 differ

=== added file 'mysql-test/std_data/bug48633.ARM'
Binary files a/mysql-test/std_data/bug48633.ARM	1970-01-01 00:00:00 +0000 and b/mysql-test/std_data/bug48633.ARM	2011-10-06 13:51:28 +0000 differ

=== added file 'mysql-test/std_data/bug48633.ARZ'
Binary files a/mysql-test/std_data/bug48633.ARZ	1970-01-01 00:00:00 +0000 and b/mysql-test/std_data/bug48633.ARZ	2011-10-06 13:51:28 +0000 differ

=== added file 'mysql-test/std_data/bug48633.frm'
Binary files a/mysql-test/std_data/bug48633.frm	1970-01-01 00:00:00 +0000 and b/mysql-test/std_data/bug48633.frm	2011-10-06 13:51:28 +0000 differ

=== added file 'mysql-test/suite/rpl/r/binlog-hexdump.result'
--- a/mysql-test/suite/rpl/r/binlog-hexdump.result	1970-01-01 00:00:00 +0000
+++ b/mysql-test/suite/rpl/r/binlog-hexdump.result	2011-10-10 06:22:13 +0000
@@ -0,0 +1,88 @@
+include/master-slave.inc
+[connection master]
+include/rpl_reset.inc
+/*!40019 SET @@session.max_insert_delayed_threads=0*/;
+/*!50003 SET @OLD_COMPLETION_TYPE=@@COMPLETION_TYPE,COMPLETION_TYPE=0*/;
+DELIMITER /*!*/;
+# at 4
+#110927 20:57:19 server id 1  end_log_pos 114 
+# Position  Timestamp   Type   Master ID        Size      Master Pos    Flags 
+#        4 7f 0e 82 4e   0f   01 00 00 00   6e 00 00 00   72 00 00 00   00 00
+#       17 04 00 35 2e 36 2e 34 2d  6d 35 2d 64 65 62 75 67 |..5.6.4.m5.debug|
+#       27 2d 6c 6f 67 00 00 00 00  00 00 00 00 00 00 00 00 |.log............|
+#       37 00 00 00 00 00 00 00 00  00 00 00 00 00 00 00 00 |................|
+#       47 00 00 00 00 7f 0e 82 4e  13 38 0d 00 08 00 12 00 |.......N.8......|
+#       57 04 04 04 04 12 00 00 56  00 04 1a 08 00 00 00 08 |.......V........|
+#       67 08 08 02 00 00 00 00 93  fa cd dc                |...........|
+# 	Start: binlog v 4, server v 5.6.4-m5-debug-log created 110927 20:57:19 at startup
+ROLLBACK/*!*/;
+BINLOG '
+fw6CTg8BAAAAbgAAAHIAAAAAAAQANS42LjQtbTUtZGVidWctbG9nAAAAAAAAAAAAAAAAAAAAAAAA
+AAAAAAAAAAAAAAAAAAB/DoJOEzgNAAgAEgAEBAQEEgAAVgAEGggAAAAICAgCAAAAAJP6zdw=
+'/*!*/;
+# at 114
+#110927 20:57:23 server id 1  end_log_pos 231 
+# Position  Timestamp   Type   Master ID        Size      Master Pos    Flags 
+#       72 83 0e 82 4e   02   01 00 00 00   75 00 00 00   e7 00 00 00   00 00
+#       85 01 00 00 00 00 00 00 00  04 00 00 21 00 00 00 00 |................|
+#       95 00 00 01 00 00 00 00 00  00 00 00 06 03 73 74 64 |.............std|
+#       a5 04 21 00 21 00 08 00 0c  01 74 65 73 74 00 74 65 |.........test.te|
+#       b5 73 74 00 63 72 65 61 74  65 20 74 61 62 6c 65 20 |st.create.table.|
+#       c5 74 31 20 28 61 20 65 6e  75 6d 28 27 6f 6e 65 27 |t1..a.enum..one.|
+#       d5 2c 20 27 74 77 6f 27 2c  20 27 74 68 72 65 65 27 |...two....three.|
+#       e5 29 29                                            |..|
+# 	Query	thread_id=1	exec_time=0	error_code=0
+use test/*!*/;
+SET TIMESTAMP=1317146243/*!*/;
+SET @@session.pseudo_thread_id=1/*!*/;
+SET @@session.foreign_key_checks=1, @@session.sql_auto_is_null=0, @@session.unique_checks=1, @@session.autocommit=1/*!*/;
+SET @@session.sql_mode=0/*!*/;
+SET @@session.auto_increment_increment=1, @@session.auto_increment_offset=1/*!*/;
+/*!\C utf8 *//*!*/;
+SET @@session.character_set_client=33,@@session.collation_connection=33,@@session.collation_server=8/*!*/;
+SET @@session.lc_time_names=0/*!*/;
+SET @@session.collation_database=DEFAULT/*!*/;
+create table t1 (a enum('one', 'two', 'three'))
+/*!*/;
+# at 231
+#110927 20:57:25 server id 1  end_log_pos 306 
+# Position  Timestamp   Type   Master ID        Size      Master Pos    Flags 
+#       e7 85 0e 82 4e   02   01 00 00 00   4b 00 00 00   32 01 00 00   08 00
+#       fa 01 00 00 00 00 00 00 00  04 00 00 21 00 00 00 00 |................|
+#      10a 00 00 01 00 00 00 00 00  00 00 00 06 03 73 74 64 |.............std|
+#      11a 04 21 00 21 00 08 00 0c  01 74 65 73 74 00 74 65 |.........test.te|
+#      12a 73 74 00 42 45 47 49 4e                          |st.BEGIN|
+# 	Query	thread_id=1	exec_time=0	error_code=0
+SET TIMESTAMP=1317146245/*!*/;
+BEGIN
+/*!*/;
+# at 306
+#110927 20:57:25 server id 1  end_log_pos 405 
+# Position  Timestamp   Type   Master ID        Size      Master Pos    Flags 
+#      132 85 0e 82 4e   02   01 00 00 00   63 00 00 00   95 01 00 00   00 00
+#      145 01 00 00 00 00 00 00 00  04 00 00 21 00 00 00 00 |................|
+#      155 00 00 01 00 00 00 00 00  00 00 00 06 03 73 74 64 |.............std|
+#      165 04 21 00 21 00 08 00 0c  01 74 65 73 74 00 74 65 |.........test.te|
+#      175 73 74 00 69 6e 73 65 72  74 20 69 6e 74 6f 20 74 |st.insert.into.t|
+#      185 31 20 76 61 6c 75 65 73  20 28 27 74 77 6f 27 29 |1.values...two..|
+# 	Query	thread_id=1	exec_time=0	error_code=0
+SET TIMESTAMP=1317146245/*!*/;
+insert into t1 values ('two')
+/*!*/;
+# at 405
+#110927 20:57:25 server id 1  end_log_pos 432 
+# Position  Timestamp   Type   Master ID        Size      Master Pos    Flags 
+#      195 85 0e 82 4e   10   01 00 00 00   1b 00 00 00   b0 01 00 00   00 00
+#      1a8 07 00 00 00 00 00 00 00                          |........|
+# 	Xid = 7
+COMMIT/*!*/;
+# at 432
+#110927 20:57:30 server id 1  end_log_pos 451 
+# Position  Timestamp   Type   Master ID        Size      Master Pos    Flags 
+#      1b0 8a 0e 82 4e   03   01 00 00 00   13 00 00 00   c3 01 00 00   00 00
+# 	Stop
+DELIMITER ;
+# End of log file
+ROLLBACK /* added by mysqlbinlog */;
+/*!50003 SET COMPLETION_TYPE=@OLD_COMPLETION_TYPE*/;
+include/rpl_end.inc

=== added file 'mysql-test/suite/rpl/t/binlog-hexdump.test'
--- a/mysql-test/suite/rpl/t/binlog-hexdump.test	1970-01-01 00:00:00 +0000
+++ b/mysql-test/suite/rpl/t/binlog-hexdump.test	2011-10-10 06:22:13 +0000
@@ -0,0 +1,15 @@
+#
+# Bug#11747887 - 34386: MYSQLBINLOG --HEXDUMP PRINTS LAST ROW OF HEXDUMP
+# INCORRECTLY
+#
+
+--source include/master-slave.inc
+--source include/rpl_reset.inc
+
+--sync_slave_with_master
+
+--let $MYSQLD_DATADIR= `select @@datadir`
+
+--exec $MYSQL_BINLOG --hexdump std_data/bug11747887-bin.000002
+
+--source include/rpl_end.inc

=== modified file 'mysql-test/suite/rpl/t/rpl_parallel_switch_sequential.test'
--- a/mysql-test/suite/rpl/t/rpl_parallel_switch_sequential.test	2011-08-19 13:04:28 +0000
+++ b/mysql-test/suite/rpl/t/rpl_parallel_switch_sequential.test	2011-10-07 08:36:04 +0000
@@ -40,6 +40,11 @@ let $slave_status= 0;
 let $trx= 0;
 let $alter= 0;
 let $i= 200; # with bigger value test times out on some PB hosts 
+if ($VALGRIND_TEST)
+{
+  # test may be slow on Valgrind
+  let $i=50;
+}
 if (`select @@binlog_format like "STATEMENT"`) {
    # relax mtr to scan unsafe warnings
    let $i=50;

=== modified file 'mysql-test/t/archive.test'
--- a/mysql-test/t/archive.test	2011-03-03 09:22:17 +0000
+++ b/mysql-test/t/archive.test	2011-10-06 13:51:28 +0000
@@ -12,6 +12,7 @@ DROP TABLE if exists t1,t2,t3,t4,t5,t6;
 --enable_warnings
 
 SET default_storage_engine=ARCHIVE;
+let $MYSQLD_DATADIR= `SELECT @@datadir`;
 
 CREATE TABLE t1 (
   Period smallint(4) unsigned zerofill DEFAULT '0000' NOT NULL,
@@ -1641,18 +1642,14 @@ DROP TABLE t1,t2;
 #
 # BUG#47012 archive tables are not upgradeable, and server crashes on any access
 #
-let $MYSQLD_DATADIR= `SELECT @@datadir`;
 copy_file std_data/bug47012.frm $MYSQLD_DATADIR/test/t1.frm;
 copy_file std_data/bug47012.ARZ $MYSQLD_DATADIR/test/t1.ARZ;
 copy_file std_data/bug47012.ARM $MYSQLD_DATADIR/test/t1.ARM;
 
---error ER_TABLE_NEEDS_UPGRADE
 SHOW CREATE TABLE t1;
 
---error ER_TABLE_NEEDS_UPGRADE
 SELECT * FROM t1;
 
---error ER_TABLE_NEEDS_UPGRADE
 INSERT INTO t1 (col1, col2) VALUES (1, "value");
 
 REPAIR TABLE t1;
@@ -1715,7 +1712,6 @@ CREATE TABLE t1 (a int) ENGINE=ARCHIVE;
 SHOW CREATE TABLE t1;
 INSERT INTO t1 VALUES (1);
 OPTIMIZE TABLE t1;
-let $MYSQLD_DATADIR= `select @@datadir`;
 remove_file $MYSQLD_DATADIR/test/t1.frm;
 FLUSH TABLES;
 INSERT INTO t1 VALUES (2);
@@ -1745,3 +1741,33 @@ INSERT INTO t1 SELECT t1.* FROM t1,t1 t2
 SELECT * FROM t1 ORDER BY f LIMIT 1;
 DROP TABLE t1;
 SET sort_buffer_size=DEFAULT;
+
+--echo #
+--echo # BUG#11756687 - 48633: ARCHIVE TABLES ARE NOT UPGRADEABLE
+--echo #
+copy_file std_data/bug48633.frm $MYSQLD_DATADIR/test/t1.frm;
+copy_file std_data/bug48633.ARZ $MYSQLD_DATADIR/test/t1.ARZ;
+copy_file std_data/bug48633.ARM $MYSQLD_DATADIR/test/t1.ARM;
+SHOW CREATE TABLE t1;
+# Test first table scan
+SELECT * FROM t1;
+# Test second table scan
+SELECT * FROM t1;
+# Test table close
+FLUSH TABLE t1;
+SELECT * FROM t1;
+# Test check
+CHECK TABLE t1;
+SELECT * FROM t1;
+# Test insert
+INSERT INTO t1 VALUES(3, 'text', 'varchar', 'blob1', 'blob2');
+SELECT * FROM t1;
+# Test table close after insert
+FLUSH TABLE t1;
+SELECT * FROM t1;
+# Test repair
+REPAIR TABLE t1;
+SELECT * FROM t1;
+# Test check table after upgrade
+CHECK TABLE t1;
+DROP TABLE t1;

=== modified file 'mysql-test/t/partition_innodb.test'
--- a/mysql-test/t/partition_innodb.test	2011-08-29 07:08:18 +0000
+++ b/mysql-test/t/partition_innodb.test	2011-10-07 08:30:01 +0000
@@ -9,6 +9,17 @@ drop table if exists t1, t2;
 let $MYSQLD_DATADIR= `SELECT @@datadir`;
 
 --echo #
+--echo # Bug#13007154: Crash in keys_to_use_for_scanning with ORDER BY
+--echo #               and PARTITIONING
+--echo #
+CREATE TABLE t1 (a INT, KEY(a))
+ENGINE = InnoDB
+PARTITION BY KEY (a) PARTITIONS 1;
+SELECT 1 FROM t1 WHERE a > (SELECT LAST_INSERT_ID() FROM t1 LIMIT 0)
+ORDER BY a;
+DROP TABLE t1;
+
+--echo #
 --echo # Bug#56287: crash when using Partition datetime in sub in query
 --echo #
 

=== modified file 'mysql-test/t/partition_myisam.test'
--- a/mysql-test/t/partition_myisam.test	2011-10-06 09:50:40 +0000
+++ b/mysql-test/t/partition_myisam.test	2011-10-07 14:20:21 +0000
@@ -10,6 +10,27 @@ DROP TABLE IF EXISTS t1, t2;
 let $MYSQLD_DATADIR= `SELECT @@datadir`;
 
 --echo #
+--echo # Bug#11763825/56590: PARTITIONS: FULLTEXT SEARCHES FAIL
+--echo # (bad/confusing error message)
+CREATE TABLE t1
+(a INT UNSIGNED AUTO_INCREMENT NOT NULL PRIMARY KEY,
+ b VARCHAR(200),
+ c TEXT)
+ENGINE=MyISAM
+PARTITION BY HASH(a) PARTITIONS 1;
+--error ER_FULLTEXT_NOT_SUPPORTED_WITH_PARTITIONING
+CREATE FULLTEXT INDEX msg ON t1 (b, c);
+DROP TABLE t1;
+--error ER_FULLTEXT_NOT_SUPPORTED_WITH_PARTITIONING
+CREATE TABLE t1
+(a INT UNSIGNED AUTO_INCREMENT NOT NULL PRIMARY KEY,
+ b VARCHAR(200),
+ c TEXT,
+ FULLTEXT (b, c))
+ENGINE=MyISAM
+PARTITION BY HASH(a) PARTITIONS 1;
+
+--echo #
 --echo # BUG#11933226 - 60681: CHECKSUM TABLE RETURNS 0 FOR PARTITIONED TABLE
 --echo #
 CREATE TABLE t1 (

=== modified file 'mysql-test/valgrind.supp'
--- a/mysql-test/valgrind.supp	2011-09-19 14:08:30 +0000
+++ b/mysql-test/valgrind.supp	2011-10-07 06:03:14 +0000
@@ -281,6 +281,16 @@
    fun:do_flush
 }
 
+{
+  libz deflate4
+  Memcheck:Param
+  write(buf)
+  fun:*
+  fun:my_write
+  fun:do_flush
+  fun:azclose
+}
+
 #
 # Warning from my_thread_init becasue mysqld dies before kill thread exists
 #

=== modified file 'scripts/mysql_install_db.pl.in'
--- a/scripts/mysql_install_db.pl.in	2011-09-06 16:23:43 +0000
+++ b/scripts/mysql_install_db.pl.in	2011-10-10 06:59:58 +0000
@@ -538,7 +538,7 @@ else
          "",
         "Examine the logs in $opt->{ldata} for more information.",
         "You can try to start the mysqld daemon with:",
-        "$mysqld --skip-grant &",
+        "$mysqld --skip-grant-tables &",
         "and use the command line tool",
         "$bindir/mysql to connect to the mysql",
         "database and look at the grant tables:",

=== modified file 'scripts/mysql_install_db.sh'
--- a/scripts/mysql_install_db.sh	2011-09-06 15:59:12 +0000
+++ b/scripts/mysql_install_db.sh	2011-10-10 06:59:58 +0000
@@ -410,7 +410,7 @@ else
   echo
   echo "You can try to start the mysqld daemon with:"
   echo
-  echo "    shell> $mysqld --skip-grant &"
+  echo "    shell> $mysqld --skip-grant-tables &"
   echo
   echo "and use the command line tool $bindir/mysql"
   echo "to connect to the mysql database and look at the grant tables:"

=== modified file 'sql/ha_partition.cc'
--- a/sql/ha_partition.cc	2011-10-06 09:50:40 +0000
+++ b/sql/ha_partition.cc	2011-10-07 08:30:01 +0000
@@ -6474,23 +6474,19 @@ void ha_partition::late_extra_no_cache(u
                 MODULE optimiser support
 ****************************************************************************/
 
-/*
-  Get keys to use for scanning
+/**
+  Get keys to use for scanning.
 
-  SYNOPSIS
-    keys_to_use_for_scanning()
+  @return key_map of keys usable for scanning
 
-  RETURN VALUE
-    key_map of keys usable for scanning
+  @note No need to use read_partitions here, since it does not depend on
+  which partitions is used, only which storage engine used.
 */
 
 const key_map *ha_partition::keys_to_use_for_scanning()
 {
-  uint first_used_partition;
   DBUG_ENTER("ha_partition::keys_to_use_for_scanning");
-
-  first_used_partition= bitmap_get_first_set(&(m_part_info->read_partitions));
-  DBUG_RETURN(m_file[first_used_partition]->keys_to_use_for_scanning());
+  DBUG_RETURN(m_file[0]->keys_to_use_for_scanning());
 }
 
 #define MAX_PARTS_FOR_OPTIMIZER_CALLS 10

=== modified file 'sql/log_event.cc'
--- a/sql/log_event.cc	2011-09-22 10:14:00 +0000
+++ b/sql/log_event.cc	2011-10-10 06:22:13 +0000
@@ -1677,6 +1677,11 @@ void Log_event::print_header(IO_CACHE* f
     if (hex_string[0])
     {
       char emit_buf[256];
+      int pad_length= 48 - strlen(h);
+      DBUG_ASSERT(strlen(h) < 48);
+      for(int pad_done= 0; pad_done < pad_length; pad_done++)
+        *h++ = ' ';
+      *h= '\0';
       size_t const bytes_written=
         my_snprintf(emit_buf, sizeof(emit_buf),
                     "# %8.8lx %-48.48s |%s|\n",

=== modified file 'sql/rpl_info_file.cc'
--- a/sql/rpl_info_file.cc	2011-08-19 13:04:28 +0000
+++ b/sql/rpl_info_file.cc	2011-09-14 16:12:22 +0000
@@ -130,26 +130,14 @@ int Rpl_info_file::do_prepare_info_for_w
 int Rpl_info_file::do_check_info(const ulong *uidx __attribute__((unused)),
                                  const uint nidx __attribute__((unused)))
 {
-#ifndef NO_DBUG
   /*
-    This function checks if the file exists and in other modules
-    further actions are taken based on this. If the file exists
-    but users do not have the appropriated rights to access it,
-    other modules will assume that the file does not exist and
-    will take the appropriate actions and most likely will fail
-    safely after trying to create it. 
+    This function is used by callers to check if the file exists.
 
-    This is behavior is not a problem. However, in other modules,
-    it is not possible to print out what is the root of the
-    failure as a detailed error code is not returned. For that
-    reason, we print out such information in here.
+    If the file exists but users do not have the appropriated
+    rights to access it, callers will assume that the file does
+    not exist taking the appropriate actions and failing when
+    trying to create the file.
   */
-  if (my_access(info_fname, F_OK | R_OK | W_OK))
-    sql_print_information("Info file %s cannot be accessed (errno %d)."
-                          " Most likely this is a new slave or you are"
-                          " changing the repository type.", info_fname,
-                          errno);
-#endif
   return my_access(info_fname, F_OK);
 }
 

=== modified file 'sql/rpl_rli_pdb.cc'
--- a/sql/rpl_rli_pdb.cc	2011-10-05 13:16:38 +0000
+++ b/sql/rpl_rli_pdb.cc	2011-10-06 15:32:21 +0000
@@ -692,12 +692,11 @@ Slave_worker *map_db_to_worker(const cha
       Unless \exists the last assigned Worker, get a free worker based
       on a policy described in the function get_least_occupied_worker().
     */
+    mysql_mutex_lock(&slave_worker_hash_lock);
+
     entry->worker= (!last_worker) ?
       get_least_occupied_worker(workers) : last_worker;
     entry->worker->usage_partition++;
-
-    mysql_mutex_lock(&slave_worker_hash_lock);
-
     if (mapping_db_to_worker.records > mts_partition_hash_soft_max)
     {
       /* remove zero-usage (todo: rare or long ago scheduled) records */

=== modified file 'sql/share/errmsg-utf8.txt'
--- a/sql/share/errmsg-utf8.txt	2011-09-29 12:55:06 +0000
+++ b/sql/share/errmsg-utf8.txt	2011-10-07 14:20:21 +0000
@@ -6592,3 +6592,7 @@ ER_PLUGIN_NO_UNINSTALL
 
 ER_PLUGIN_NO_INSTALL
   eng "Plugin '%s' is marked as not dynamically installable. You have to stop the server to install it."
+
+ER_FULLTEXT_NOT_SUPPORTED_WITH_PARTITIONING
+  eng "FULLTEXT index is not supported for partitioned tables."
+  swe "FULLTEXT index stöds ej för partitionerade tabeller."

=== modified file 'sql/sql_table.cc'
--- a/sql/sql_table.cc	2011-08-30 04:28:18 +0000
+++ b/sql/sql_table.cc	2011-10-07 14:20:21 +0000
@@ -3457,6 +3457,15 @@ mysql_prepare_create_table(THD *thd, HA_
     {
       if (!(file->ha_table_flags() & HA_CAN_FULLTEXT))
       {
+#ifdef WITH_PARTITION_STORAGE_ENGINE
+        if (file->ht == partition_hton)
+        {
+          my_message(ER_FULLTEXT_NOT_SUPPORTED_WITH_PARTITIONING,
+                     ER(ER_FULLTEXT_NOT_SUPPORTED_WITH_PARTITIONING),
+                     MYF(0));
+          DBUG_RETURN(TRUE);
+        }
+#endif
 	my_message(ER_TABLE_CANT_HANDLE_FT, ER(ER_TABLE_CANT_HANDLE_FT),
                    MYF(0));
 	DBUG_RETURN(TRUE);

=== modified file 'sql/table.cc'
--- a/sql/table.cc	2011-09-26 13:48:06 +0000
+++ b/sql/table.cc	2011-10-07 06:03:14 +0000
@@ -1173,7 +1173,7 @@ static int open_binary_frm(THD *thd, TAB
     }
     else
 #endif
-    if (share->mysql_version >= 50110)
+    if (share->mysql_version >= 50110 && next_chunk < buff_end)
     {
       /* New auto_partitioned indicator introduced in 5.1.11 */
 #ifdef WITH_PARTITION_STORAGE_ENGINE

=== modified file 'sql/udf_example.c'
--- a/sql/udf_example.c	2011-06-30 15:50:45 +0000
+++ b/sql/udf_example.c	2011-10-10 06:59:58 +0000
@@ -20,7 +20,7 @@
 ** The functions name, type and shared library is saved in the new system
 ** table 'func'.  To be able to create new functions one must have write
 ** privilege for the database 'mysql'.	If one starts MySQL with
-** --skip-grant, then UDF initialization will also be skipped.
+** --skip-grant-tables, then UDF initialization will also be skipped.
 **
 ** Syntax for the new commands are:
 ** create function <function_name> returns {string|real|integer}

=== modified file 'storage/archive/azio.c'
--- a/storage/archive/azio.c	2011-06-03 07:49:05 +0000
+++ b/storage/archive/azio.c	2011-10-06 13:51:28 +0000
@@ -71,6 +71,7 @@ int az_open (azio_stream *s, const char
   s->version = (unsigned char)az_magic[1]; /* this needs to be a define to version */
   s->minor_version= (unsigned char) az_magic[2]; /* minor version */
   s->dirty= AZ_STATE_CLEAN;
+  s->start= 0;
 
   /*
     We do our own version of append by nature. 
@@ -169,6 +170,9 @@ int write_header(azio_stream *s)
   char buffer[AZHEADER_SIZE + AZMETA_BUFFER_SIZE];
   char *ptr= buffer;
 
+  if (s->version == 1)
+    return 0;
+
   s->block_size= AZ_BUFSIZE_WRITE;
   s->version = (unsigned char)az_magic[1];
   s->minor_version = (unsigned char)az_magic[2];
@@ -290,9 +294,9 @@ void check_header(azio_stream *s)
   /* Peek ahead to check the gzip magic header */
   if ( s->stream.next_in[0] == gz_magic[0]  && s->stream.next_in[1] == gz_magic[1])
   {
+    read_header(s, s->stream.next_in);
     s->stream.avail_in -= 2;
     s->stream.next_in += 2;
-    s->version= (unsigned char)2;
 
     /* Check the rest of the gzip header */
     method = get_byte(s);
@@ -321,7 +325,8 @@ void check_header(azio_stream *s)
       for (len = 0; len < 2; len++) (void)get_byte(s);
     }
     s->z_err = s->z_eof ? Z_DATA_ERROR : Z_OK;
-    s->start = my_tell(s->file, MYF(0)) - s->stream.avail_in;
+    if (!s->start)
+      s->start= my_tell(s->file, MYF(0)) - s->stream.avail_in;
   }
   else if ( s->stream.next_in[0] == az_magic[0]  && s->stream.next_in[1] == az_magic[1])
   {
@@ -365,9 +370,11 @@ void read_header(azio_stream *s, unsigne
   else if (buffer[0] == gz_magic[0]  && buffer[1] == gz_magic[1])
   {
     /*
-      Set version number to previous version (2).
+      Set version number to previous version (1).
     */
-    s->version= (unsigned char) 2;
+    s->version= 1;
+    s->auto_increment= 0;
+    s->frm_length= 0;
   } else {
     /*
       Unknown version.

=== modified file 'storage/archive/ha_archive.cc'
--- a/storage/archive/ha_archive.cc	2011-09-21 11:01:41 +0000
+++ b/storage/archive/ha_archive.cc	2011-10-08 17:18:28 +0000
@@ -93,6 +93,11 @@
      inserts a lot faster, but would mean highly arbitrary reads.
 
     -Brian
+
+  Archive file format versions:
+  <5.1.5 - v.1
+  5.1.5-5.1.15 - v.2
+  >5.1.15 - v.3
 */
 
 /* Variables for archive share methods */
@@ -104,6 +109,14 @@ static HASH archive_open_tables;
 #define ARN ".ARN"               // Files used during an optimize call
 #define ARM ".ARM"               // Meta file (deprecated)
 
+/* 5.0 compatibility */
+#define META_V1_OFFSET_CHECK_HEADER  0
+#define META_V1_OFFSET_VERSION       1
+#define META_V1_OFFSET_ROWS_RECORDED 2
+#define META_V1_OFFSET_CHECK_POINT   10
+#define META_V1_OFFSET_CRASHED       18
+#define META_V1_LENGTH               19
+
 /*
   uchar + uchar
 */
@@ -281,6 +294,106 @@ err:
   DBUG_RETURN(1);
 }
 
+
+/**
+  @brief Read version 1 meta file (5.0 compatibility routine).
+
+  @return Completion status
+    @retval  0 Success
+    @retval !0 Failure
+*/
+
+int ha_archive::read_v1_metafile()
+{
+  char file_name[FN_REFLEN];
+  uchar buf[META_V1_LENGTH];
+  File fd;
+  DBUG_ENTER("ha_archive::read_v1_metafile");
+
+  fn_format(file_name, share->data_file_name, "", ARM, MY_REPLACE_EXT);
+  if ((fd= my_open(file_name, O_RDONLY, MYF(0))) == -1)
+    DBUG_RETURN(-1);
+
+  if (my_read(fd, buf, sizeof(buf), MYF(0)) != sizeof(buf))
+  {
+    my_close(fd, MYF(0));
+    DBUG_RETURN(-1);
+  }
+  
+  share->rows_recorded= uint8korr(buf + META_V1_OFFSET_ROWS_RECORDED);
+  share->crashed= buf[META_V1_OFFSET_CRASHED];
+  my_close(fd, MYF(0));
+  DBUG_RETURN(0);
+}
+
+
+/**
+  @brief Write version 1 meta file (5.0 compatibility routine).
+
+  @return Completion status
+    @retval  0 Success
+    @retval !0 Failure
+*/
+
+int ha_archive::write_v1_metafile()
+{
+  char file_name[FN_REFLEN];
+  uchar buf[META_V1_LENGTH];
+  File fd;
+  DBUG_ENTER("ha_archive::write_v1_metafile");
+
+  buf[META_V1_OFFSET_CHECK_HEADER]= ARCHIVE_CHECK_HEADER;
+  buf[META_V1_OFFSET_VERSION]= 1;
+  int8store(buf + META_V1_OFFSET_ROWS_RECORDED, share->rows_recorded);
+  int8store(buf + META_V1_OFFSET_CHECK_POINT, (ulonglong) 0);
+  buf[META_V1_OFFSET_CRASHED]= share->crashed;
+  
+  fn_format(file_name, share->data_file_name, "", ARM, MY_REPLACE_EXT);
+  if ((fd= my_open(file_name, O_WRONLY, MYF(0))) == -1)
+    DBUG_RETURN(-1);
+
+  if (my_write(fd, buf, sizeof(buf), MYF(0)) != sizeof(buf))
+  {
+    my_close(fd, MYF(0));
+    DBUG_RETURN(-1);
+  }
+  
+  my_close(fd, MYF(0));
+  DBUG_RETURN(0);
+}
+
+
+/**
+  @brief Pack version 1 row (5.0 compatibility routine).
+
+  @param[in]  record  the record to pack
+
+  @return Length of packed row
+*/
+
+unsigned int ha_archive::pack_row_v1(uchar *record)
+{
+  uint *blob, *end;
+  uchar *pos;
+  DBUG_ENTER("pack_row_v1");
+  memcpy(record_buffer->buffer, record, table->s->reclength);
+  pos= record_buffer->buffer + table->s->reclength;
+  for (blob= table->s->blob_field, end= blob + table->s->blob_fields;
+       blob != end; blob++)
+  {
+    uint32 length= ((Field_blob *) table->field[*blob])->get_length();
+    if (length)
+    {
+      uchar *data_ptr;
+      ((Field_blob *) table->field[*blob])->get_ptr(&data_ptr);
+      memcpy(pos, data_ptr, length);
+      pos+= length;
+    }
+  }
+  DBUG_RETURN(pos - record_buffer->buffer);
+}
+
+
 /*
   This method reads the header of a datafile and returns whether or not it was successful.
 */
@@ -390,12 +503,8 @@ ARCHIVE_SHARE *ha_archive::get_share(con
     stats.auto_increment_value= archive_tmp.auto_increment + 1;
     share->rows_recorded= (ha_rows)archive_tmp.rows;
     share->crashed= archive_tmp.dirty;
-    /*
-      If archive version is less than 3, It should be upgraded before
-      use.
-    */
-    if (archive_tmp.version < ARCHIVE_VERSION)
-      *rc= HA_ERR_TABLE_NEEDS_UPGRADE;
+    if (archive_tmp.version == 1)
+      read_v1_metafile();
     azclose(&archive_tmp);
 
     (void) my_hash_insert(&archive_open_tables, (uchar*) share);
@@ -441,6 +550,8 @@ int ha_archive::free_share()
     */
     if (share->archive_write_open)
     {
+      if (share->archive_write.version == 1)
+        write_v1_metafile();
       if (azclose(&(share->archive_write)))
         rc= 1;
     }
@@ -527,13 +638,7 @@ int ha_archive::open(const char *name, i
                       (open_options & HA_OPEN_FOR_REPAIR) ? "yes" : "no"));
   share= get_share(name, &rc);
 
- /*
-    Allow open on crashed table in repair mode only.
-    Block open on 5.0 ARCHIVE table. Though we have almost all
-    routines to access these tables, they were not well tested.
-    For now we have to refuse to open such table to avoid
-    potential data loss.
-  */
+  /* Allow open on crashed table in repair mode only. */
   switch (rc)
   {
   case 0:
@@ -541,8 +646,6 @@ int ha_archive::open(const char *name, i
   case HA_ERR_CRASHED_ON_USAGE:
     if (open_options & HA_OPEN_FOR_REPAIR)
       break;
-    /* fall through */
-  case HA_ERR_TABLE_NEEDS_UPGRADE:
     free_share();
     /* fall through */
   default:
@@ -610,11 +713,40 @@ int ha_archive::close(void)
 }
 
 
+void ha_archive::frm_load(const char *name, azio_stream *dst)
+{
+  char name_buff[FN_REFLEN];
+  MY_STAT file_stat;
+  File frm_file;
+  uchar *frm_ptr;
+  DBUG_ENTER("ha_archive::frm_load");
+  fn_format(name_buff, name, "", ".frm", MY_REPLACE_EXT | MY_UNPACK_FILENAME);
+
+  /* Here is where we open up the frm and pass it to archive to store */
+  if ((frm_file= my_open(name_buff, O_RDONLY, MYF(0))) >= 0)
+  {
+    if (!mysql_file_fstat(frm_file, &file_stat, MYF(MY_WME)))
+    {
+      frm_ptr= (uchar *) my_malloc(sizeof(uchar) * file_stat.st_size, MYF(0));
+      if (frm_ptr)
+      {
+        if (my_read(frm_file, frm_ptr, file_stat.st_size, MYF(0)) ==
+            (size_t) file_stat.st_size)
+          azwrite_frm(dst, (char *) frm_ptr, file_stat.st_size);
+        my_free(frm_ptr);
+      }
+    }
+    my_close(frm_file, MYF(0));
+  }
+  DBUG_VOID_RETURN;
+}
+
+
 /**
   Copy a frm blob between streams.
 
-  @param  src   The source stream.
-  @param  dst   The destination stream.
+  @param[in]  src   The source stream.
+  @param[in]  dst   The destination stream.
 
   @return Zero on success, non-zero otherwise.
 */
@@ -624,6 +756,13 @@ int ha_archive::frm_copy(azio_stream *sr
   int rc= 0;
   char *frm_ptr;
 
+  /* If there is no .frm in source stream, try to read .frm from file. */
+  if (!src->frm_length)
+  {
+    frm_load(table->s->normalized_path.str, dst);
+    return 0;
+  }
+
   if (!(frm_ptr= (char *) my_malloc(src->frm_length, MYF(0))))
     return HA_ERR_OUT_OF_MEM;
 
@@ -654,9 +793,7 @@ int ha_archive::create(const char *name,
   char linkname[FN_REFLEN];
   int error;
   azio_stream create_stream;            /* Archive file we are working with */
-  File frm_file;                   /* File handler for readers */
   MY_STAT file_stat;  // Stat information for the data file
-  uchar *frm_ptr;
 
   DBUG_ENTER("ha_archive::create");
 
@@ -716,26 +853,8 @@ int ha_archive::create(const char *name,
 
     if (linkname[0])
       my_symlink(name_buff, linkname, MYF(0));
-    fn_format(name_buff, name, "", ".frm",
-              MY_REPLACE_EXT | MY_UNPACK_FILENAME);
 
-    /*
-      Here is where we open up the frm and pass it to archive to store 
-    */
-    if ((frm_file= my_open(name_buff, O_RDONLY, MYF(0))) > 0)
-    {
-      if (!mysql_file_fstat(frm_file, &file_stat, MYF(MY_WME)))
-      {
-        frm_ptr= (uchar *)my_malloc(sizeof(uchar) * file_stat.st_size, MYF(0));
-        if (frm_ptr)
-        {
-          my_read(frm_file, frm_ptr, file_stat.st_size, MYF(0));
-          azwrite_frm(&create_stream, (char *)frm_ptr, file_stat.st_size);
-          my_free(frm_ptr);
-        }
-      }
-      my_close(frm_file, MYF(0));
-    }
+    frm_load(name, &create_stream);
 
     if (create_info->comment.str)
       azwrite_comment(&create_stream, create_info->comment.str, 
@@ -829,6 +948,9 @@ unsigned int ha_archive::pack_row(uchar
   if (fix_rec_buff(max_row_length(record)))
     DBUG_RETURN(HA_ERR_OUT_OF_MEM); /* purecov: inspected */
 
+  if (share->archive_write.version == 1)
+    DBUG_RETURN(pack_row_v1(record));
+
   /* Copy null bits */
   memcpy(record_buffer->buffer+ARCHIVE_ROW_HEADER_SIZE, 
          record, table->s->null_bytes);
@@ -1382,6 +1504,8 @@ int ha_archive::optimize(THD* thd, HA_CH
   // now we close both our writer and our reader for the rename
   if (share->archive_write_open)
   {
+    if (share->archive_write.version == 1)
+      write_v1_metafile();
     azclose(&(share->archive_write));
     share->archive_write_open= FALSE;
   }
@@ -1426,7 +1550,7 @@ int ha_archive::optimize(THD* thd, HA_CH
       share->rows_recorded= 0;
       stats.auto_increment_value= 1;
       share->archive_write.auto_increment= 0;
-      my_bitmap_map *org_bitmap= dbug_tmp_use_all_columns(table, table->read_set);
+      my_bitmap_map *org_bitmap= tmp_use_all_columns(table, table->read_set);
 
       while (!(rc= get_row(&archive, table->record[0])))
       {
@@ -1447,7 +1571,7 @@ int ha_archive::optimize(THD* thd, HA_CH
         }
       }
 
-      dbug_tmp_restore_column_map(table->read_set, org_bitmap);
+      tmp_restore_column_map(table->read_set, org_bitmap);
       share->rows_recorded= (ha_rows)writer.rows;
     }
 
@@ -1664,6 +1788,29 @@ bool ha_archive::is_crashed() const
   DBUG_RETURN(share->crashed); 
 }
 
+
+/**
+  @brief Check for upgrade
+
+  @param[in]  check_opt  check options
+
+  @return Completion status
+    @retval HA_ADMIN_OK            No upgrade required
+    @retval HA_ADMIN_CORRUPT       Cannot read meta-data
+    @retval HA_ADMIN_NEEDS_UPGRADE Upgrade required
+*/
+
+int ha_archive::check_for_upgrade(HA_CHECK_OPT *check_opt)
+{
+  DBUG_ENTER("ha_archive::check_for_upgrade");
+  if (init_archive_reader())
+    DBUG_RETURN(HA_ADMIN_CORRUPT);
+  if (archive.version < ARCHIVE_VERSION)
+    DBUG_RETURN(HA_ADMIN_NEEDS_UPGRADE);
+  DBUG_RETURN(HA_ADMIN_OK);
+}
+
+
 /*
   Simple scan of the tables to make sure everything is ok.
 */
@@ -1677,9 +1824,12 @@ int ha_archive::check(THD* thd, HA_CHECK
 
   old_proc_info= thd_proc_info(thd, "Checking table");
   /* Flush any waiting data */
-  mysql_mutex_lock(&share->mutex);
-  azflush(&(share->archive_write), Z_SYNC_FLUSH);
-  mysql_mutex_unlock(&share->mutex);
+  if (share->archive_write_open)
+  {
+    mysql_mutex_lock(&share->mutex);
+    azflush(&(share->archive_write), Z_SYNC_FLUSH);
+    mysql_mutex_unlock(&share->mutex);
+  }
 
   if (init_archive_reader())
     DBUG_RETURN(HA_ADMIN_CORRUPT);

=== modified file 'storage/archive/ha_archive.h'
--- a/storage/archive/ha_archive.h	2011-06-30 15:50:45 +0000
+++ b/storage/archive/ha_archive.h	2011-10-07 06:03:14 +0000
@@ -72,6 +72,10 @@ class ha_archive: public handler
   archive_record_buffer *create_record_buffer(unsigned int length);
   void destroy_record_buffer(archive_record_buffer *r);
   int frm_copy(azio_stream *src, azio_stream *dst);
+  void frm_load(const char *name, azio_stream *dst);
+  int read_v1_metafile();
+  int write_v1_metafile();
+  unsigned int pack_row_v1(uchar *record);
 
 public:
   ha_archive(handlerton *hton, TABLE_SHARE *table_arg);
@@ -139,6 +143,7 @@ public:
   THR_LOCK_DATA **store_lock(THD *thd, THR_LOCK_DATA **to,
                              enum thr_lock_type lock_type);
   bool is_crashed() const;
+  int check_for_upgrade(HA_CHECK_OPT *check_opt);
   int check(THD* thd, HA_CHECK_OPT* check_opt);
   bool check_and_repair(THD *thd);
   uint32 max_row_length(const uchar *buf);

=== modified file 'storage/perfschema/table_ews_by_thread_by_event_name.cc'
--- a/storage/perfschema/table_ews_by_thread_by_event_name.cc	2011-08-16 03:57:30 +0000
+++ b/storage/perfschema/table_ews_by_thread_by_event_name.cc	2011-10-06 17:15:47 +0000
@@ -246,8 +246,8 @@ void table_ews_by_thread_by_event_name
   */  
   if (klass->is_deferred())
   {
-    /* Visit instances owned by this thread. Do not visit the class. */
-    PFS_instance_wait_visitor inst_visitor;
+    /* Visit instances owned by this thread. Do not visit the class. */
+    PFS_instance_wait_visitor inst_visitor;
     PFS_instance_iterator::visit_instances(klass, &inst_visitor,
                                            thread, false);
     /* Combine the deferred stats and global stats */

=== modified file 'storage/perfschema/table_socket_summary_by_event_name.cc'
--- a/storage/perfschema/table_socket_summary_by_event_name.cc	2011-03-28 23:37:10 +0000
+++ b/storage/perfschema/table_socket_summary_by_event_name.cc	2011-10-06 17:15:47 +0000
@@ -1,348 +1,348 @@
-/* Copyright (c) 2008, 2010, 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 */
-
-/**
-  @file storage/perfschema/table_socket_summary_by_event_name.cc
-  Table SOCKET_EVENT_NAMES (implementation).
-*/
-
-#include "my_global.h"
-#include "my_pthread.h"
-#include "pfs_instr.h"
-#include "pfs_column_types.h"
-#include "pfs_column_values.h"
-#include "table_socket_summary_by_event_name.h"
-#include "pfs_global.h"
-#include "pfs_visitor.h"
-
-THR_LOCK table_socket_summary_by_event_name::m_table_lock;
-
-static const TABLE_FIELD_TYPE field_types[]=
-{
-  {
-    { C_STRING_WITH_LEN("EVENT_NAME") },
-    { C_STRING_WITH_LEN("varchar(128)") },
-    { NULL, 0}
-  },
-  {
-    { C_STRING_WITH_LEN("COUNT_STAR") },
-    { C_STRING_WITH_LEN("bigint(20)") },
-    { NULL, 0}
-  },
-  {
-    { C_STRING_WITH_LEN("SUM_TIMER_WAIT") },
-    { C_STRING_WITH_LEN("bigint(20)") },
-    { NULL, 0}
-  },
-  {
-    { C_STRING_WITH_LEN("MIN_TIMER_WAIT") },
-    { C_STRING_WITH_LEN("bigint(20)") },
-    { NULL, 0}
-  },
-  {
-    { C_STRING_WITH_LEN("AVG_TIMER_WAIT") },
-    { C_STRING_WITH_LEN("bigint(20)") },
-    { NULL, 0}
-  },
-  {
-    { C_STRING_WITH_LEN("MAX_TIMER_WAIT") },
-    { C_STRING_WITH_LEN("bigint(20)") },
-    { NULL, 0}
-  },
-
-  /** Read */
-  {
-    { C_STRING_WITH_LEN("COUNT_READ") },
-    { C_STRING_WITH_LEN("bigint(20)") },
-    { NULL, 0}
-  },
-  {
-    { C_STRING_WITH_LEN("SUM_TIMER_READ") },
-    { C_STRING_WITH_LEN("bigint(20)") },
-    { NULL, 0}
-  },
-  {
-    { C_STRING_WITH_LEN("MIN_TIMER_READ") },
-    { C_STRING_WITH_LEN("bigint(20)") },
-    { NULL, 0}
-  },
-  {
-    { C_STRING_WITH_LEN("AVG_TIMER_READ") },
-    { C_STRING_WITH_LEN("bigint(20)") },
-    { NULL, 0}
-  },
-  {
-    { C_STRING_WITH_LEN("MAX_TIMER_READ") },
-    { C_STRING_WITH_LEN("bigint(20)") },
-    { NULL, 0}
-  },
-  {
-    { C_STRING_WITH_LEN("SUM_NUMBER_OF_BYTES_READ") },
-    { C_STRING_WITH_LEN("bigint(20)") },
-    { NULL, 0}
-  },
-
-  /** Write */
-  {
-    { C_STRING_WITH_LEN("COUNT_WRITE") },
-    { C_STRING_WITH_LEN("bigint(20)") },
-    { NULL, 0}
-  },
-  {
-    { C_STRING_WITH_LEN("SUM_TIMER_WRITE") },
-    { C_STRING_WITH_LEN("bigint(20)") },
-    { NULL, 0}
-  },
-  {
-    { C_STRING_WITH_LEN("MIN_TIMER_WRITE") },
-    { C_STRING_WITH_LEN("bigint(20)") },
-    { NULL, 0}
-  },
-  {
-    { C_STRING_WITH_LEN("AVG_TIMER_WRITE") },
-    { C_STRING_WITH_LEN("bigint(20)") },
-    { NULL, 0}
-  },
-  {
-    { C_STRING_WITH_LEN("MAX_TIMER_WRITE") },
-    { C_STRING_WITH_LEN("bigint(20)") },
-    { NULL, 0}
-  },
-  {
-    { C_STRING_WITH_LEN("SUM_NUMBER_OF_BYTES_WRITE") },
-    { C_STRING_WITH_LEN("bigint(20)") },
-    { NULL, 0}
-  },
-
-  /** Misc */
-  {
-    { C_STRING_WITH_LEN("COUNT_MISC") },
-    { C_STRING_WITH_LEN("bigint(20)") },
-    { NULL, 0}
-  },
-  {
-    { C_STRING_WITH_LEN("SUM_TIMER_MISC") },
-    { C_STRING_WITH_LEN("bigint(20)") },
-    { NULL, 0}
-  },
-  {
-    { C_STRING_WITH_LEN("MIN_TIMER_MISC") },
-    { C_STRING_WITH_LEN("bigint(20)") },
-    { NULL, 0}
-  },
-  {
-    { C_STRING_WITH_LEN("AVG_TIMER_MISC") },
-    { C_STRING_WITH_LEN("bigint(20)") },
-    { NULL, 0}
-  },
-  {
-    { C_STRING_WITH_LEN("MAX_TIMER_MISC") },
-    { C_STRING_WITH_LEN("bigint(20)") },
-    { NULL, 0}
-  }
-};
-
-TABLE_FIELD_DEF
-table_socket_summary_by_event_name::m_field_def=
-{ 23, field_types };
-
-PFS_engine_table_share
-table_socket_summary_by_event_name::m_share=
-{
-  { C_STRING_WITH_LEN("socket_summary_by_event_name") },
-  &pfs_readonly_acl,
-  &table_socket_summary_by_event_name::create,
-  NULL, /* write_row */
-  table_socket_summary_by_event_name::delete_all_rows,
-  NULL, /* get_row_count */
-  1000, /* records */
-  sizeof(PFS_simple_index),
-  &m_table_lock,
-  &m_field_def,
-  false /* checked */
-};
-
-PFS_engine_table* table_socket_summary_by_event_name::create(void)
-{
-  return new table_socket_summary_by_event_name();
-}
-
-table_socket_summary_by_event_name::table_socket_summary_by_event_name()
-  : PFS_engine_table(&m_share, &m_pos),
-  m_row_exists(false), m_pos(1), m_next_pos(1)
-{}
-
-int table_socket_summary_by_event_name::delete_all_rows(void)
-{
-  reset_socket_instance_io();
-  reset_socket_class_io();
-  return 0;
-}
-
-void table_socket_summary_by_event_name::reset_position(void)
-{
-  m_pos.m_index= 1;
-  m_next_pos.m_index= 1;
-}
-
-int table_socket_summary_by_event_name::rnd_next(void)
-{
-  PFS_socket_class *socket_class;
-
-  m_pos.set_at(&m_next_pos);
-
-  socket_class= find_socket_class(m_pos.m_index);
-  if (socket_class)
-  {
-    make_row(socket_class);
-    m_next_pos.set_after(&m_pos);
-    return 0;
-  }
-
-  return HA_ERR_END_OF_FILE;
-}
-
-int table_socket_summary_by_event_name::rnd_pos(const void *pos)
-{
-  PFS_socket_class *socket_class;
-
-  set_position(pos);
-
-  socket_class= find_socket_class(m_pos.m_index);
-  if (socket_class)
-  {
-    make_row(socket_class);
-    return 0;
-  }
-
-  return HA_ERR_RECORD_DELETED;
-}
-
-void table_socket_summary_by_event_name::make_row(PFS_socket_class *socket_class)
-{
-  m_row.m_event_name.make_row(socket_class);
-
-  PFS_instance_socket_io_stat_visitor visitor;
-  PFS_instance_iterator::visit_socket_instances(socket_class, &visitor);
-
-  time_normalizer *normalizer= time_normalizer::get(wait_timer);
-  
-  /* Collect timer and byte count stats */
-  m_row.m_io_stat.set(normalizer, &visitor.m_socket_io_stat);
-  m_row_exists= true;
-}
-
-int table_socket_summary_by_event_name::read_row_values(TABLE *table,
-                                          unsigned char *,
-                                          Field **fields,
-                                          bool read_all)
-{
-  Field *f;
-
-  if (unlikely(!m_row_exists))
-    return HA_ERR_RECORD_DELETED;
-
-  /* Set the null bits */
-  DBUG_ASSERT(table->s->null_bytes == 0);
-
-  for (; (f= *fields) ; fields++)
-  {
-    if (read_all || bitmap_is_set(table->read_set, f->field_index))
-    {
-      switch(f->field_index)
-      {
-      case  0: /* EVENT_NAME */
-        m_row.m_event_name.set_field(f);
-        break;
-      case  1: /* COUNT_STAR */
-        set_field_ulonglong(f, m_row.m_io_stat.m_all.m_waits.m_count);
-        break;
-      case  2: /* SUM_TIMER_WAIT */
-        set_field_ulonglong(f, m_row.m_io_stat.m_all.m_waits.m_sum);
-        break;
-      case  3: /* MIN_TIMER_WAIT */
-        set_field_ulonglong(f, m_row.m_io_stat.m_all.m_waits.m_min);
-        break;
-      case  4: /* AVG_TIMER_WAIT */
-        set_field_ulonglong(f, m_row.m_io_stat.m_all.m_waits.m_avg);
-        break;
-      case  5: /* MAX_TIMER_WAIT */
-        set_field_ulonglong(f, m_row.m_io_stat.m_all.m_waits.m_max);
-        break;
-
-      case  6: /* COUNT_READ */
-        set_field_ulonglong(f, m_row.m_io_stat.m_read.m_waits.m_count);
-        break;
-      case  7: /* SUM_TIMER_READ */
-        set_field_ulonglong(f, m_row.m_io_stat.m_read.m_waits.m_sum);
-        break;
-      case  8: /* MIN_TIMER_READ */
-        set_field_ulonglong(f, m_row.m_io_stat.m_read.m_waits.m_min);
-        break;
-      case  9: /* AVG_TIMER_READ */
-        set_field_ulonglong(f, m_row.m_io_stat.m_read.m_waits.m_avg);
-        break;
-      case 10: /* MAX_TIMER_READ */
-        set_field_ulonglong(f, m_row.m_io_stat.m_read.m_waits.m_max);
-        break;
-      case 11: /* SUM_NUMBER_OF_BYTES_READ */
-        set_field_ulonglong(f, m_row.m_io_stat.m_read.m_bytes);
-        break;
-
-      case 12: /* COUNT_WRITE */
-        set_field_ulonglong(f, m_row.m_io_stat.m_write.m_waits.m_count);
-        break;
-      case 13: /* SUM_TIMER_WRITE */
-        set_field_ulonglong(f, m_row.m_io_stat.m_write.m_waits.m_sum);
-        break;
-      case 14: /* MIN_TIMER_WRITE */
-        set_field_ulonglong(f, m_row.m_io_stat.m_write.m_waits.m_min);
-        break;
-      case 15: /* AVG_TIMER_WRITE */
-        set_field_ulonglong(f, m_row.m_io_stat.m_write.m_waits.m_avg);
-        break;
-      case 16: /* MAX_TIMER_WRITE */
-        set_field_ulonglong(f, m_row.m_io_stat.m_write.m_waits.m_max);
-        break;
-      case 17: /* SUM_NUMBER_OF_BYTES_WRITE */
-        set_field_ulonglong(f, m_row.m_io_stat.m_write.m_bytes);
-        break;
-
-      case 18: /* COUNT_MISC */
-        set_field_ulonglong(f, m_row.m_io_stat.m_misc.m_waits.m_count);
-        break;
-      case 19: /* SUM_TIMER_MISC */
-        set_field_ulonglong(f, m_row.m_io_stat.m_misc.m_waits.m_sum);
-        break;
-      case 20: /* MIN_TIMER_MISC */
-        set_field_ulonglong(f, m_row.m_io_stat.m_misc.m_waits.m_min);
-        break;
-      case 21: /* AVG_TIMER_MISC */
-        set_field_ulonglong(f, m_row.m_io_stat.m_misc.m_waits.m_avg);
-        break;
-      case 22: /* MAX_TIMER_MISC */
-        set_field_ulonglong(f, m_row.m_io_stat.m_misc.m_waits.m_max);
-        break;
-
-      default:
-        DBUG_ASSERT(false);
-        break;
-      }
-    } // if
-  } // for
-
-  return 0;
-}
-
+/* Copyright (c) 2008, 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 */
+
+/**
+  @file storage/perfschema/table_socket_summary_by_event_name.cc
+  Table SOCKET_EVENT_NAMES (implementation).
+*/
+
+#include "my_global.h"
+#include "my_pthread.h"
+#include "pfs_instr.h"
+#include "pfs_column_types.h"
+#include "pfs_column_values.h"
+#include "table_socket_summary_by_event_name.h"
+#include "pfs_global.h"
+#include "pfs_visitor.h"
+
+THR_LOCK table_socket_summary_by_event_name::m_table_lock;
+
+static const TABLE_FIELD_TYPE field_types[]=
+{
+  {
+    { C_STRING_WITH_LEN("EVENT_NAME") },
+    { C_STRING_WITH_LEN("varchar(128)") },
+    { NULL, 0}
+  },
+  {
+    { C_STRING_WITH_LEN("COUNT_STAR") },
+    { C_STRING_WITH_LEN("bigint(20)") },
+    { NULL, 0}
+  },
+  {
+    { C_STRING_WITH_LEN("SUM_TIMER_WAIT") },
+    { C_STRING_WITH_LEN("bigint(20)") },
+    { NULL, 0}
+  },
+  {
+    { C_STRING_WITH_LEN("MIN_TIMER_WAIT") },
+    { C_STRING_WITH_LEN("bigint(20)") },
+    { NULL, 0}
+  },
+  {
+    { C_STRING_WITH_LEN("AVG_TIMER_WAIT") },
+    { C_STRING_WITH_LEN("bigint(20)") },
+    { NULL, 0}
+  },
+  {
+    { C_STRING_WITH_LEN("MAX_TIMER_WAIT") },
+    { C_STRING_WITH_LEN("bigint(20)") },
+    { NULL, 0}
+  },
+
+  /** Read */
+  {
+    { C_STRING_WITH_LEN("COUNT_READ") },
+    { C_STRING_WITH_LEN("bigint(20)") },
+    { NULL, 0}
+  },
+  {
+    { C_STRING_WITH_LEN("SUM_TIMER_READ") },
+    { C_STRING_WITH_LEN("bigint(20)") },
+    { NULL, 0}
+  },
+  {
+    { C_STRING_WITH_LEN("MIN_TIMER_READ") },
+    { C_STRING_WITH_LEN("bigint(20)") },
+    { NULL, 0}
+  },
+  {
+    { C_STRING_WITH_LEN("AVG_TIMER_READ") },
+    { C_STRING_WITH_LEN("bigint(20)") },
+    { NULL, 0}
+  },
+  {
+    { C_STRING_WITH_LEN("MAX_TIMER_READ") },
+    { C_STRING_WITH_LEN("bigint(20)") },
+    { NULL, 0}
+  },
+  {
+    { C_STRING_WITH_LEN("SUM_NUMBER_OF_BYTES_READ") },
+    { C_STRING_WITH_LEN("bigint(20)") },
+    { NULL, 0}
+  },
+
+  /** Write */
+  {
+    { C_STRING_WITH_LEN("COUNT_WRITE") },
+    { C_STRING_WITH_LEN("bigint(20)") },
+    { NULL, 0}
+  },
+  {
+    { C_STRING_WITH_LEN("SUM_TIMER_WRITE") },
+    { C_STRING_WITH_LEN("bigint(20)") },
+    { NULL, 0}
+  },
+  {
+    { C_STRING_WITH_LEN("MIN_TIMER_WRITE") },
+    { C_STRING_WITH_LEN("bigint(20)") },
+    { NULL, 0}
+  },
+  {
+    { C_STRING_WITH_LEN("AVG_TIMER_WRITE") },
+    { C_STRING_WITH_LEN("bigint(20)") },
+    { NULL, 0}
+  },
+  {
+    { C_STRING_WITH_LEN("MAX_TIMER_WRITE") },
+    { C_STRING_WITH_LEN("bigint(20)") },
+    { NULL, 0}
+  },
+  {
+    { C_STRING_WITH_LEN("SUM_NUMBER_OF_BYTES_WRITE") },
+    { C_STRING_WITH_LEN("bigint(20)") },
+    { NULL, 0}
+  },
+
+  /** Misc */
+  {
+    { C_STRING_WITH_LEN("COUNT_MISC") },
+    { C_STRING_WITH_LEN("bigint(20)") },
+    { NULL, 0}
+  },
+  {
+    { C_STRING_WITH_LEN("SUM_TIMER_MISC") },
+    { C_STRING_WITH_LEN("bigint(20)") },
+    { NULL, 0}
+  },
+  {
+    { C_STRING_WITH_LEN("MIN_TIMER_MISC") },
+    { C_STRING_WITH_LEN("bigint(20)") },
+    { NULL, 0}
+  },
+  {
+    { C_STRING_WITH_LEN("AVG_TIMER_MISC") },
+    { C_STRING_WITH_LEN("bigint(20)") },
+    { NULL, 0}
+  },
+  {
+    { C_STRING_WITH_LEN("MAX_TIMER_MISC") },
+    { C_STRING_WITH_LEN("bigint(20)") },
+    { NULL, 0}
+  }
+};
+
+TABLE_FIELD_DEF
+table_socket_summary_by_event_name::m_field_def=
+{ 23, field_types };
+
+PFS_engine_table_share
+table_socket_summary_by_event_name::m_share=
+{
+  { C_STRING_WITH_LEN("socket_summary_by_event_name") },
+  &pfs_readonly_acl,
+  &table_socket_summary_by_event_name::create,
+  NULL, /* write_row */
+  table_socket_summary_by_event_name::delete_all_rows,
+  NULL, /* get_row_count */
+  1000, /* records */
+  sizeof(PFS_simple_index),
+  &m_table_lock,
+  &m_field_def,
+  false /* checked */
+};
+
+PFS_engine_table* table_socket_summary_by_event_name::create(void)
+{
+  return new table_socket_summary_by_event_name();
+}
+
+table_socket_summary_by_event_name::table_socket_summary_by_event_name()
+  : PFS_engine_table(&m_share, &m_pos),
+  m_row_exists(false), m_pos(1), m_next_pos(1)
+{}
+
+int table_socket_summary_by_event_name::delete_all_rows(void)
+{
+  reset_socket_instance_io();
+  reset_socket_class_io();
+  return 0;
+}
+
+void table_socket_summary_by_event_name::reset_position(void)
+{
+  m_pos.m_index= 1;
+  m_next_pos.m_index= 1;
+}
+
+int table_socket_summary_by_event_name::rnd_next(void)
+{
+  PFS_socket_class *socket_class;
+
+  m_pos.set_at(&m_next_pos);
+
+  socket_class= find_socket_class(m_pos.m_index);
+  if (socket_class)
+  {
+    make_row(socket_class);
+    m_next_pos.set_after(&m_pos);
+    return 0;
+  }
+
+  return HA_ERR_END_OF_FILE;
+}
+
+int table_socket_summary_by_event_name::rnd_pos(const void *pos)
+{
+  PFS_socket_class *socket_class;
+
+  set_position(pos);
+
+  socket_class= find_socket_class(m_pos.m_index);
+  if (socket_class)
+  {
+    make_row(socket_class);
+    return 0;
+  }
+
+  return HA_ERR_RECORD_DELETED;
+}
+
+void table_socket_summary_by_event_name::make_row(PFS_socket_class *socket_class)
+{
+  m_row.m_event_name.make_row(socket_class);
+
+  PFS_instance_socket_io_stat_visitor visitor;
+  PFS_instance_iterator::visit_socket_instances(socket_class, &visitor);
+
+  time_normalizer *normalizer= time_normalizer::get(wait_timer);
+  
+  /* Collect timer and byte count stats */
+  m_row.m_io_stat.set(normalizer, &visitor.m_socket_io_stat);
+  m_row_exists= true;
+}
+
+int table_socket_summary_by_event_name::read_row_values(TABLE *table,
+                                          unsigned char *,
+                                          Field **fields,
+                                          bool read_all)
+{
+  Field *f;
+
+  if (unlikely(!m_row_exists))
+    return HA_ERR_RECORD_DELETED;
+
+  /* Set the null bits */
+  DBUG_ASSERT(table->s->null_bytes == 0);
+
+  for (; (f= *fields) ; fields++)
+  {
+    if (read_all || bitmap_is_set(table->read_set, f->field_index))
+    {
+      switch(f->field_index)
+      {
+      case  0: /* EVENT_NAME */
+        m_row.m_event_name.set_field(f);
+        break;
+      case  1: /* COUNT_STAR */
+        set_field_ulonglong(f, m_row.m_io_stat.m_all.m_waits.m_count);
+        break;
+      case  2: /* SUM_TIMER_WAIT */
+        set_field_ulonglong(f, m_row.m_io_stat.m_all.m_waits.m_sum);
+        break;
+      case  3: /* MIN_TIMER_WAIT */
+        set_field_ulonglong(f, m_row.m_io_stat.m_all.m_waits.m_min);
+        break;
+      case  4: /* AVG_TIMER_WAIT */
+        set_field_ulonglong(f, m_row.m_io_stat.m_all.m_waits.m_avg);
+        break;
+      case  5: /* MAX_TIMER_WAIT */
+        set_field_ulonglong(f, m_row.m_io_stat.m_all.m_waits.m_max);
+        break;
+
+      case  6: /* COUNT_READ */
+        set_field_ulonglong(f, m_row.m_io_stat.m_read.m_waits.m_count);
+        break;
+      case  7: /* SUM_TIMER_READ */
+        set_field_ulonglong(f, m_row.m_io_stat.m_read.m_waits.m_sum);
+        break;
+      case  8: /* MIN_TIMER_READ */
+        set_field_ulonglong(f, m_row.m_io_stat.m_read.m_waits.m_min);
+        break;
+      case  9: /* AVG_TIMER_READ */
+        set_field_ulonglong(f, m_row.m_io_stat.m_read.m_waits.m_avg);
+        break;
+      case 10: /* MAX_TIMER_READ */
+        set_field_ulonglong(f, m_row.m_io_stat.m_read.m_waits.m_max);
+        break;
+      case 11: /* SUM_NUMBER_OF_BYTES_READ */
+        set_field_ulonglong(f, m_row.m_io_stat.m_read.m_bytes);
+        break;
+
+      case 12: /* COUNT_WRITE */
+        set_field_ulonglong(f, m_row.m_io_stat.m_write.m_waits.m_count);
+        break;
+      case 13: /* SUM_TIMER_WRITE */
+        set_field_ulonglong(f, m_row.m_io_stat.m_write.m_waits.m_sum);
+        break;
+      case 14: /* MIN_TIMER_WRITE */
+        set_field_ulonglong(f, m_row.m_io_stat.m_write.m_waits.m_min);
+        break;
+      case 15: /* AVG_TIMER_WRITE */
+        set_field_ulonglong(f, m_row.m_io_stat.m_write.m_waits.m_avg);
+        break;
+      case 16: /* MAX_TIMER_WRITE */
+        set_field_ulonglong(f, m_row.m_io_stat.m_write.m_waits.m_max);
+        break;
+      case 17: /* SUM_NUMBER_OF_BYTES_WRITE */
+        set_field_ulonglong(f, m_row.m_io_stat.m_write.m_bytes);
+        break;
+
+      case 18: /* COUNT_MISC */
+        set_field_ulonglong(f, m_row.m_io_stat.m_misc.m_waits.m_count);
+        break;
+      case 19: /* SUM_TIMER_MISC */
+        set_field_ulonglong(f, m_row.m_io_stat.m_misc.m_waits.m_sum);
+        break;
+      case 20: /* MIN_TIMER_MISC */
+        set_field_ulonglong(f, m_row.m_io_stat.m_misc.m_waits.m_min);
+        break;
+      case 21: /* AVG_TIMER_MISC */
+        set_field_ulonglong(f, m_row.m_io_stat.m_misc.m_waits.m_avg);
+        break;
+      case 22: /* MAX_TIMER_MISC */
+        set_field_ulonglong(f, m_row.m_io_stat.m_misc.m_waits.m_max);
+        break;
+
+      default:
+        DBUG_ASSERT(false);
+        break;
+      }
+    } // if
+  } // for
+
+  return 0;
+}
+

=== modified file 'storage/perfschema/table_socket_summary_by_instance.cc'
--- a/storage/perfschema/table_socket_summary_by_instance.cc	2011-08-18 12:27:21 +0000
+++ b/storage/perfschema/table_socket_summary_by_instance.cc	2011-10-06 17:15:47 +0000
@@ -1,370 +1,370 @@
-/* Copyright (c) 2008, 2010, 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 */
-
-/**
-  @file storage/perfschema/table_socket_summary_by_instance.cc
-  Table SOCKET_INSTANCES (implementation).
-*/
-
-#include "my_global.h"
-#include "my_pthread.h"
-#include "pfs_instr.h"
-#include "pfs_column_types.h"
-#include "pfs_column_values.h"
-#include "table_socket_summary_by_instance.h"
-#include "pfs_global.h"
-
-THR_LOCK table_socket_summary_by_instance::m_table_lock;
-
-static const TABLE_FIELD_TYPE field_types[]=
-{
-  {
-    { C_STRING_WITH_LEN("EVENT_NAME") },
-    { C_STRING_WITH_LEN("varchar(128)") },
-    { NULL, 0}
-  },
-  {
-    { C_STRING_WITH_LEN("OBJECT_INSTANCE_BEGIN") },
-    { C_STRING_WITH_LEN("bigint(20)") },
-    { NULL, 0}
-  },
-  {
-    { C_STRING_WITH_LEN("COUNT_STAR") },
-    { C_STRING_WITH_LEN("bigint(20)") },
-    { NULL, 0}
-  },
-  {
-    { C_STRING_WITH_LEN("SUM_TIMER_WAIT") },
-    { C_STRING_WITH_LEN("bigint(20)") },
-    { NULL, 0}
-  },
-  {
-    { C_STRING_WITH_LEN("MIN_TIMER_WAIT") },
-    { C_STRING_WITH_LEN("bigint(20)") },
-    { NULL, 0}
-  },
-  {
-    { C_STRING_WITH_LEN("AVG_TIMER_WAIT") },
-    { C_STRING_WITH_LEN("bigint(20)") },
-    { NULL, 0}
-  },
-  {
-    { C_STRING_WITH_LEN("MAX_TIMER_WAIT") },
-    { C_STRING_WITH_LEN("bigint(20)") },
-    { NULL, 0}
-  },
-
-  /** Read */
-  {
-    { C_STRING_WITH_LEN("COUNT_READ") },
-    { C_STRING_WITH_LEN("bigint(20)") },
-    { NULL, 0}
-  },
-  {
-    { C_STRING_WITH_LEN("SUM_TIMER_READ") },
-    { C_STRING_WITH_LEN("bigint(20)") },
-    { NULL, 0}
-  },
-  {
-    { C_STRING_WITH_LEN("MIN_TIMER_READ") },
-    { C_STRING_WITH_LEN("bigint(20)") },
-    { NULL, 0}
-  },
-  {
-    { C_STRING_WITH_LEN("AVG_TIMER_READ") },
-    { C_STRING_WITH_LEN("bigint(20)") },
-    { NULL, 0}
-  },
-  {
-    { C_STRING_WITH_LEN("MAX_TIMER_READ") },
-    { C_STRING_WITH_LEN("bigint(20)") },
-    { NULL, 0}
-  },
-  {
-    { C_STRING_WITH_LEN("SUM_NUMBER_OF_BYTES_READ") },
-    { C_STRING_WITH_LEN("bigint(20)") },
-    { NULL, 0}
-  },
-
-  /** Write */
-  {
-    { C_STRING_WITH_LEN("COUNT_WRITE") },
-    { C_STRING_WITH_LEN("bigint(20)") },
-    { NULL, 0}
-  },
-  {
-    { C_STRING_WITH_LEN("SUM_TIMER_WRITE") },
-    { C_STRING_WITH_LEN("bigint(20)") },
-    { NULL, 0}
-  },
-  {
-    { C_STRING_WITH_LEN("MIN_TIMER_WRITE") },
-    { C_STRING_WITH_LEN("bigint(20)") },
-    { NULL, 0}
-  },
-  {
-    { C_STRING_WITH_LEN("AVG_TIMER_WRITE") },
-    { C_STRING_WITH_LEN("bigint(20)") },
-    { NULL, 0}
-  },
-  {
-    { C_STRING_WITH_LEN("MAX_TIMER_WRITE") },
-    { C_STRING_WITH_LEN("bigint(20)") },
-    { NULL, 0}
-  },
-  {
-    { C_STRING_WITH_LEN("SUM_NUMBER_OF_BYTES_WRITE") },
-    { C_STRING_WITH_LEN("bigint(20)") },
-    { NULL, 0}
-  },
-
-  /** Misc */
-  {
-    { C_STRING_WITH_LEN("COUNT_MISC") },
-    { C_STRING_WITH_LEN("bigint(20)") },
-    { NULL, 0}
-  },
-  {
-    { C_STRING_WITH_LEN("SUM_TIMER_MISC") },
-    { C_STRING_WITH_LEN("bigint(20)") },
-    { NULL, 0}
-  },
-  {
-    { C_STRING_WITH_LEN("MIN_TIMER_MISC") },
-    { C_STRING_WITH_LEN("bigint(20)") },
-    { NULL, 0}
-  },
-  {
-    { C_STRING_WITH_LEN("AVG_TIMER_MISC") },
-    { C_STRING_WITH_LEN("bigint(20)") },
-    { NULL, 0}
-  },
-  {
-    { C_STRING_WITH_LEN("MAX_TIMER_MISC") },
-    { C_STRING_WITH_LEN("bigint(20)") },
-    { NULL, 0}
-  }
-};
-
-TABLE_FIELD_DEF
-table_socket_summary_by_instance::m_field_def=
-{ 24, field_types };
-
-PFS_engine_table_share
-table_socket_summary_by_instance::m_share=
-{
-  { C_STRING_WITH_LEN("socket_summary_by_instance") },
-  &pfs_readonly_acl,
-  &table_socket_summary_by_instance::create,
-  NULL, /* write_row */
-  table_socket_summary_by_instance::delete_all_rows,
-  NULL, /* get_row_count */
-  1000, /* records */
-  sizeof(PFS_simple_index),
-  &m_table_lock,
-  &m_field_def,
-  false /* checked */
-};
-
-PFS_engine_table* table_socket_summary_by_instance::create(void)
-{
-  return new table_socket_summary_by_instance();
-}
-
-table_socket_summary_by_instance::table_socket_summary_by_instance()
-  : PFS_engine_table(&m_share, &m_pos),
-  m_row_exists(false), m_pos(0), m_next_pos(0)
-{}
-
-int table_socket_summary_by_instance::delete_all_rows(void)
-{
-  reset_socket_instance_io();
-  return 0;
-}
-
-void table_socket_summary_by_instance::reset_position(void)
-{
-  m_pos.m_index= 0;
-  m_next_pos.m_index= 0;
-}
-
-int table_socket_summary_by_instance::rnd_next(void)
-{
-  PFS_socket *pfs;
-
-  for (m_pos.set_at(&m_next_pos);
-       m_pos.m_index < socket_max;
-       m_pos.next())
-  {
-    pfs= &socket_array[m_pos.m_index];
-    if (pfs->m_lock.is_populated())
-    {
-      make_row(pfs);
-      m_next_pos.set_after(&m_pos);
-      return 0;
-    }
-  }
-
-  return HA_ERR_END_OF_FILE;
-}
-
-int table_socket_summary_by_instance::rnd_pos(const void *pos)
-{
-  PFS_socket *pfs;
-
-  set_position(pos);
-  DBUG_ASSERT(m_pos.m_index < socket_max);
-  pfs= &socket_array[m_pos.m_index];
-
-  if (! pfs->m_lock.is_populated())
-    return HA_ERR_RECORD_DELETED;
-
-  make_row(pfs);
-  return 0;
-}
-
-void table_socket_summary_by_instance::make_row(PFS_socket *pfs)
-{
-  pfs_lock lock;
-  PFS_socket_class *safe_class;
-
-  m_row_exists= false;
-
-  /* Protect this reader against a socket delete */
-  pfs->m_lock.begin_optimistic_lock(&lock);
-
-  safe_class= sanitize_socket_class(pfs->m_class);
-  if (unlikely(safe_class == NULL))
-    return;
-
-  m_row.m_event_name.make_row(safe_class);
-  m_row.m_identity= pfs->m_identity;
-
-  time_normalizer *normalizer= time_normalizer::get(wait_timer);
-
-  /* Collect timer and byte count stats */
-  m_row.m_io_stat.set(normalizer, &pfs->m_socket_stat.m_io_stat);
-
-  if (!pfs->m_lock.end_optimistic_lock(&lock))
-    return;
-
-  m_row_exists= true;
-}
-
-int table_socket_summary_by_instance::read_row_values(TABLE *table,
-                                          unsigned char *,
-                                          Field **fields,
-                                          bool read_all)
-{
-  Field *f;
-
-  if (unlikely(!m_row_exists))
-    return HA_ERR_RECORD_DELETED;
-
-  /* Set the null bits */
-  DBUG_ASSERT(table->s->null_bytes == 0);
-
-  for (; (f= *fields) ; fields++)
-  {
-    if (read_all || bitmap_is_set(table->read_set, f->field_index))
-    {
-      switch(f->field_index)
-      {
-      case  0: /* EVENT_NAME */
-        m_row.m_event_name.set_field(f);
-        break;
-      case  1: /* OBJECT_INSTANCE */
-        set_field_ulonglong(f, (ulonglong)m_row.m_identity);
-        break;
-
-      case  2:/* COUNT_STAR */
-        set_field_ulonglong(f, m_row.m_io_stat.m_all.m_waits.m_count);
-        break;
-      case  3:/* SUM_TIMER_WAIT */
-        set_field_ulonglong(f, m_row.m_io_stat.m_all.m_waits.m_sum);
-        break;
-      case  4: /* MIN_TIMER_WAIT */
-        set_field_ulonglong(f, m_row.m_io_stat.m_all.m_waits.m_min);
-        break;
-      case  5: /* AVG_TIMER_WAIT */
-        set_field_ulonglong(f, m_row.m_io_stat.m_all.m_waits.m_avg);
-        break;
-      case  6: /* MAX_TIMER_WAIT */
-        set_field_ulonglong(f, m_row.m_io_stat.m_all.m_waits.m_max);
-        break;
-
-      case  7: /* COUNT_READ */
-        set_field_ulonglong(f, m_row.m_io_stat.m_read.m_waits.m_count);
-        break;
-      case  8: /* SUM_TIMER_READ */
-        set_field_ulonglong(f, m_row.m_io_stat.m_read.m_waits.m_sum);
-        break;
-      case  9: /* MIN_TIMER_READ */
-        set_field_ulonglong(f, m_row.m_io_stat.m_read.m_waits.m_min);
-        break;
-      case 10: /* AVG_TIMER_READ */
-        set_field_ulonglong(f, m_row.m_io_stat.m_read.m_waits.m_avg);
-        break;
-      case 11: /* MAX_TIMER_READ */
-        set_field_ulonglong(f, m_row.m_io_stat.m_read.m_waits.m_max);
-        break;
-      case 12: /* SUM_NUMBER_OF_BYTES_READ */
-        set_field_ulonglong(f, m_row.m_io_stat.m_read.m_bytes);
-        break;
-
-      case 13: /* COUNT_WRITE */
-        set_field_ulonglong(f, m_row.m_io_stat.m_write.m_waits.m_count);
-        break;
-      case 14: /* SUM_TIMER_WRITE */
-        set_field_ulonglong(f, m_row.m_io_stat.m_write.m_waits.m_sum);
-        break;
-      case 15: /* MIN_TIMER_WRITE */
-        set_field_ulonglong(f, m_row.m_io_stat.m_write.m_waits.m_min);
-        break;
-      case 16: /* AVG_TIMER_WRITE */
-        set_field_ulonglong(f, m_row.m_io_stat.m_write.m_waits.m_avg);
-        break;
-      case 17: /* MAX_TIMER_WRITE */
-        set_field_ulonglong(f, m_row.m_io_stat.m_write.m_waits.m_max);
-        break;
-      case 18: /* SUM_NUMBER_OF_BYTES_WRITE */
-        set_field_ulonglong(f, m_row.m_io_stat.m_write.m_bytes);
-        break;
-
-      case 19: /* COUNT_MISC */
-        set_field_ulonglong(f, m_row.m_io_stat.m_misc.m_waits.m_count);
-        break;
-      case 20: /* SUM_TIMER_MISC */
-        set_field_ulonglong(f, m_row.m_io_stat.m_misc.m_waits.m_sum);
-        break;
-      case 21: /* MIN_TIMER_MISC */
-        set_field_ulonglong(f, m_row.m_io_stat.m_misc.m_waits.m_min);
-        break;
-      case 22: /* AVG_TIMER_MISC */
-        set_field_ulonglong(f, m_row.m_io_stat.m_misc.m_waits.m_avg);
-        break;
-      case 23: /* MAX_TIMER_MISC */
-        set_field_ulonglong(f, m_row.m_io_stat.m_misc.m_waits.m_max);
-        break;
-      default:
-        DBUG_ASSERT(false);
-        break;
-      }
-    }
-  }
-
-  return 0;
-}
-
+/* Copyright (c) 2008, 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 */
+
+/**
+  @file storage/perfschema/table_socket_summary_by_instance.cc
+  Table SOCKET_SUMMARY_BY_INSTANCE (implementation).
+*/
+
+#include "my_global.h"
+#include "my_pthread.h"
+#include "pfs_instr.h"
+#include "pfs_column_types.h"
+#include "pfs_column_values.h"
+#include "table_socket_summary_by_instance.h"
+#include "pfs_global.h"
+
+THR_LOCK table_socket_summary_by_instance::m_table_lock;
+
+static const TABLE_FIELD_TYPE field_types[]=
+{
+  {
+    { C_STRING_WITH_LEN("EVENT_NAME") },
+    { C_STRING_WITH_LEN("varchar(128)") },
+    { NULL, 0}
+  },
+  {
+    { C_STRING_WITH_LEN("OBJECT_INSTANCE_BEGIN") },
+    { C_STRING_WITH_LEN("bigint(20)") },
+    { NULL, 0}
+  },
+  {
+    { C_STRING_WITH_LEN("COUNT_STAR") },
+    { C_STRING_WITH_LEN("bigint(20)") },
+    { NULL, 0}
+  },
+  {
+    { C_STRING_WITH_LEN("SUM_TIMER_WAIT") },
+    { C_STRING_WITH_LEN("bigint(20)") },
+    { NULL, 0}
+  },
+  {
+    { C_STRING_WITH_LEN("MIN_TIMER_WAIT") },
+    { C_STRING_WITH_LEN("bigint(20)") },
+    { NULL, 0}
+  },
+  {
+    { C_STRING_WITH_LEN("AVG_TIMER_WAIT") },
+    { C_STRING_WITH_LEN("bigint(20)") },
+    { NULL, 0}
+  },
+  {
+    { C_STRING_WITH_LEN("MAX_TIMER_WAIT") },
+    { C_STRING_WITH_LEN("bigint(20)") },
+    { NULL, 0}
+  },
+
+  /** Read */
+  {
+    { C_STRING_WITH_LEN("COUNT_READ") },
+    { C_STRING_WITH_LEN("bigint(20)") },
+    { NULL, 0}
+  },
+  {
+    { C_STRING_WITH_LEN("SUM_TIMER_READ") },
+    { C_STRING_WITH_LEN("bigint(20)") },
+    { NULL, 0}
+  },
+  {
+    { C_STRING_WITH_LEN("MIN_TIMER_READ") },
+    { C_STRING_WITH_LEN("bigint(20)") },
+    { NULL, 0}
+  },
+  {
+    { C_STRING_WITH_LEN("AVG_TIMER_READ") },
+    { C_STRING_WITH_LEN("bigint(20)") },
+    { NULL, 0}
+  },
+  {
+    { C_STRING_WITH_LEN("MAX_TIMER_READ") },
+    { C_STRING_WITH_LEN("bigint(20)") },
+    { NULL, 0}
+  },
+  {
+    { C_STRING_WITH_LEN("SUM_NUMBER_OF_BYTES_READ") },
+    { C_STRING_WITH_LEN("bigint(20)") },
+    { NULL, 0}
+  },
+
+  /** Write */
+  {
+    { C_STRING_WITH_LEN("COUNT_WRITE") },
+    { C_STRING_WITH_LEN("bigint(20)") },
+    { NULL, 0}
+  },
+  {
+    { C_STRING_WITH_LEN("SUM_TIMER_WRITE") },
+    { C_STRING_WITH_LEN("bigint(20)") },
+    { NULL, 0}
+  },
+  {
+    { C_STRING_WITH_LEN("MIN_TIMER_WRITE") },
+    { C_STRING_WITH_LEN("bigint(20)") },
+    { NULL, 0}
+  },
+  {
+    { C_STRING_WITH_LEN("AVG_TIMER_WRITE") },
+    { C_STRING_WITH_LEN("bigint(20)") },
+    { NULL, 0}
+  },
+  {
+    { C_STRING_WITH_LEN("MAX_TIMER_WRITE") },
+    { C_STRING_WITH_LEN("bigint(20)") },
+    { NULL, 0}
+  },
+  {
+    { C_STRING_WITH_LEN("SUM_NUMBER_OF_BYTES_WRITE") },
+    { C_STRING_WITH_LEN("bigint(20)") },
+    { NULL, 0}
+  },
+
+  /** Misc */
+  {
+    { C_STRING_WITH_LEN("COUNT_MISC") },
+    { C_STRING_WITH_LEN("bigint(20)") },
+    { NULL, 0}
+  },
+  {
+    { C_STRING_WITH_LEN("SUM_TIMER_MISC") },
+    { C_STRING_WITH_LEN("bigint(20)") },
+    { NULL, 0}
+  },
+  {
+    { C_STRING_WITH_LEN("MIN_TIMER_MISC") },
+    { C_STRING_WITH_LEN("bigint(20)") },
+    { NULL, 0}
+  },
+  {
+    { C_STRING_WITH_LEN("AVG_TIMER_MISC") },
+    { C_STRING_WITH_LEN("bigint(20)") },
+    { NULL, 0}
+  },
+  {
+    { C_STRING_WITH_LEN("MAX_TIMER_MISC") },
+    { C_STRING_WITH_LEN("bigint(20)") },
+    { NULL, 0}
+  }
+};
+
+TABLE_FIELD_DEF
+table_socket_summary_by_instance::m_field_def=
+{ 24, field_types };
+
+PFS_engine_table_share
+table_socket_summary_by_instance::m_share=
+{
+  { C_STRING_WITH_LEN("socket_summary_by_instance") },
+  &pfs_readonly_acl,
+  &table_socket_summary_by_instance::create,
+  NULL, /* write_row */
+  table_socket_summary_by_instance::delete_all_rows,
+  NULL, /* get_row_count */
+  1000, /* records */
+  sizeof(PFS_simple_index),
+  &m_table_lock,
+  &m_field_def,
+  false /* checked */
+};
+
+PFS_engine_table* table_socket_summary_by_instance::create(void)
+{
+  return new table_socket_summary_by_instance();
+}
+
+table_socket_summary_by_instance::table_socket_summary_by_instance()
+  : PFS_engine_table(&m_share, &m_pos),
+  m_row_exists(false), m_pos(0), m_next_pos(0)
+{}
+
+int table_socket_summary_by_instance::delete_all_rows(void)
+{
+  reset_socket_instance_io();
+  return 0;
+}
+
+void table_socket_summary_by_instance::reset_position(void)
+{
+  m_pos.m_index= 0;
+  m_next_pos.m_index= 0;
+}
+
+int table_socket_summary_by_instance::rnd_next(void)
+{
+  PFS_socket *pfs;
+
+  for (m_pos.set_at(&m_next_pos);
+       m_pos.m_index < socket_max;
+       m_pos.next())
+  {
+    pfs= &socket_array[m_pos.m_index];
+    if (pfs->m_lock.is_populated())
+    {
+      make_row(pfs);
+      m_next_pos.set_after(&m_pos);
+      return 0;
+    }
+  }
+
+  return HA_ERR_END_OF_FILE;
+}
+
+int table_socket_summary_by_instance::rnd_pos(const void *pos)
+{
+  PFS_socket *pfs;
+
+  set_position(pos);
+  DBUG_ASSERT(m_pos.m_index < socket_max);
+  pfs= &socket_array[m_pos.m_index];
+
+  if (! pfs->m_lock.is_populated())
+    return HA_ERR_RECORD_DELETED;
+
+  make_row(pfs);
+  return 0;
+}
+
+void table_socket_summary_by_instance::make_row(PFS_socket *pfs)
+{
+  pfs_lock lock;
+  PFS_socket_class *safe_class;
+
+  m_row_exists= false;
+
+  /* Protect this reader against a socket delete */
+  pfs->m_lock.begin_optimistic_lock(&lock);
+
+  safe_class= sanitize_socket_class(pfs->m_class);
+  if (unlikely(safe_class == NULL))
+    return;
+
+  m_row.m_event_name.make_row(safe_class);
+  m_row.m_identity= pfs->m_identity;
+
+  time_normalizer *normalizer= time_normalizer::get(wait_timer);
+
+  /* Collect timer and byte count stats */
+  m_row.m_io_stat.set(normalizer, &pfs->m_socket_stat.m_io_stat);
+
+  if (!pfs->m_lock.end_optimistic_lock(&lock))
+    return;
+
+  m_row_exists= true;
+}
+
+int table_socket_summary_by_instance::read_row_values(TABLE *table,
+                                          unsigned char *,
+                                          Field **fields,
+                                          bool read_all)
+{
+  Field *f;
+
+  if (unlikely(!m_row_exists))
+    return HA_ERR_RECORD_DELETED;
+
+  /* Set the null bits */
+  DBUG_ASSERT(table->s->null_bytes == 0);
+
+  for (; (f= *fields) ; fields++)
+  {
+    if (read_all || bitmap_is_set(table->read_set, f->field_index))
+    {
+      switch(f->field_index)
+      {
+      case  0: /* EVENT_NAME */
+        m_row.m_event_name.set_field(f);
+        break;
+      case  1: /* OBJECT_INSTANCE */
+        set_field_ulonglong(f, (ulonglong)m_row.m_identity);
+        break;
+
+      case  2:/* COUNT_STAR */
+        set_field_ulonglong(f, m_row.m_io_stat.m_all.m_waits.m_count);
+        break;
+      case  3:/* SUM_TIMER_WAIT */
+        set_field_ulonglong(f, m_row.m_io_stat.m_all.m_waits.m_sum);
+        break;
+      case  4: /* MIN_TIMER_WAIT */
+        set_field_ulonglong(f, m_row.m_io_stat.m_all.m_waits.m_min);
+        break;
+      case  5: /* AVG_TIMER_WAIT */
+        set_field_ulonglong(f, m_row.m_io_stat.m_all.m_waits.m_avg);
+        break;
+      case  6: /* MAX_TIMER_WAIT */
+        set_field_ulonglong(f, m_row.m_io_stat.m_all.m_waits.m_max);
+        break;
+
+      case  7: /* COUNT_READ */
+        set_field_ulonglong(f, m_row.m_io_stat.m_read.m_waits.m_count);
+        break;
+      case  8: /* SUM_TIMER_READ */
+        set_field_ulonglong(f, m_row.m_io_stat.m_read.m_waits.m_sum);
+        break;
+      case  9: /* MIN_TIMER_READ */
+        set_field_ulonglong(f, m_row.m_io_stat.m_read.m_waits.m_min);
+        break;
+      case 10: /* AVG_TIMER_READ */
+        set_field_ulonglong(f, m_row.m_io_stat.m_read.m_waits.m_avg);
+        break;
+      case 11: /* MAX_TIMER_READ */
+        set_field_ulonglong(f, m_row.m_io_stat.m_read.m_waits.m_max);
+        break;
+      case 12: /* SUM_NUMBER_OF_BYTES_READ */
+        set_field_ulonglong(f, m_row.m_io_stat.m_read.m_bytes);
+        break;
+
+      case 13: /* COUNT_WRITE */
+        set_field_ulonglong(f, m_row.m_io_stat.m_write.m_waits.m_count);
+        break;
+      case 14: /* SUM_TIMER_WRITE */
+        set_field_ulonglong(f, m_row.m_io_stat.m_write.m_waits.m_sum);
+        break;
+      case 15: /* MIN_TIMER_WRITE */
+        set_field_ulonglong(f, m_row.m_io_stat.m_write.m_waits.m_min);
+        break;
+      case 16: /* AVG_TIMER_WRITE */
+        set_field_ulonglong(f, m_row.m_io_stat.m_write.m_waits.m_avg);
+        break;
+      case 17: /* MAX_TIMER_WRITE */
+        set_field_ulonglong(f, m_row.m_io_stat.m_write.m_waits.m_max);
+        break;
+      case 18: /* SUM_NUMBER_OF_BYTES_WRITE */
+        set_field_ulonglong(f, m_row.m_io_stat.m_write.m_bytes);
+        break;
+
+      case 19: /* COUNT_MISC */
+        set_field_ulonglong(f, m_row.m_io_stat.m_misc.m_waits.m_count);
+        break;
+      case 20: /* SUM_TIMER_MISC */
+        set_field_ulonglong(f, m_row.m_io_stat.m_misc.m_waits.m_sum);
+        break;
+      case 21: /* MIN_TIMER_MISC */
+        set_field_ulonglong(f, m_row.m_io_stat.m_misc.m_waits.m_min);
+        break;
+      case 22: /* AVG_TIMER_MISC */
+        set_field_ulonglong(f, m_row.m_io_stat.m_misc.m_waits.m_avg);
+        break;
+      case 23: /* MAX_TIMER_MISC */
+        set_field_ulonglong(f, m_row.m_io_stat.m_misc.m_waits.m_max);
+        break;
+      default:
+        DBUG_ASSERT(false);
+        break;
+      }
+    }
+  }
+
+  return 0;
+}
+

=== modified file 'storage/perfschema/table_socket_summary_by_instance.h'
--- a/storage/perfschema/table_socket_summary_by_instance.h	2011-02-25 21:12:43 +0000
+++ b/storage/perfschema/table_socket_summary_by_instance.h	2011-10-06 17:15:47 +0000
@@ -1,4 +1,4 @@
-/* Copyright (c) 2008, 2010, Oracle and/or its affiliates. All rights reserved.
+/* Copyright (c) 2008, 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

No bundle (reason: useless for push emails).
Thread
bzr push into mysql-trunk-wl5863 branch (marc.alff:3412 to 3414) Marc Alff10 Oct