List:Commits« Previous MessageNext Message »
From:Christopher Powers Date:August 4 2010 3:48pm
Subject:bzr push into mysql-next-mr-wl4896 branch (chris.powers:3159 to 3160)
View as plain text  
 3160 Christopher Powers	2010-08-04
      Merged with next-mr
      Integrated WL 4895 "Performance Schema Table IO"
      Integrated bug 55087, "Performance schema: optimization of the instrumentation interface"

    removed:
      include/mysql/psi/mysql_network.h
    added:
      storage/perfschema/table_helper.h.moved
    modified:
      include/mysql/psi/mysql_socket.h
      include/mysql/psi/psi_abi_v1.h.pp
      include/mysql/psi/psi_abi_v2.h.pp
      sql/mysqld.cc
      storage/perfschema/pfs.cc
      storage/perfschema/table_events_waits.cc
      storage/perfschema/table_helper.h
 3159 Christopher Powers	2010-08-03 [merge]
      merge

    removed:
      dbug/sanity.c
      include/config-netware.h
      include/help_end.h
      include/help_start.h
      mysql-test/suite/perfschema/r/pfs_upgrade.result
      mysql-test/suite/perfschema/t/pfs_upgrade.test
      mysql-test/suite/rpl/r/rpl_temp_temporary.result
      mysql-test/suite/rpl/t/rpl_temp_temporary-master.opt
      mysql-test/suite/rpl/t/rpl_temp_temporary.test
      mysql-test/suite/sys_vars/inc/rpl_recovery_rank_basic.inc
      mysql-test/suite/sys_vars/t/rpl_recovery_rank_basic_32.test
      mysql-test/suite/sys_vars/t/rpl_recovery_rank_basic_64.test
      mysql-test/t/mysql-bug45236-master.opt
      mysys/mf_util.c
      mysys/my_netware.c
      mysys/my_realloc.c
      mysys/safemalloc.c
      netware/
      netware/BUILD/
      netware/BUILD/apply-patch
      netware/BUILD/compile-AUTOTOOLS
      netware/BUILD/compile-linux-tools
      netware/BUILD/compile-netware-END
      netware/BUILD/compile-netware-START
      netware/BUILD/compile-netware-all
      netware/BUILD/compile-netware-debug
      netware/BUILD/compile-netware-max
      netware/BUILD/compile-netware-max-debug
      netware/BUILD/compile-netware-src
      netware/BUILD/compile-netware-standard
      netware/BUILD/create-patch
      netware/BUILD/cron-build
      netware/BUILD/crontab
      netware/BUILD/knetware.imp
      netware/BUILD/mwasmnlm
      netware/BUILD/mwccnlm
      netware/BUILD/mwenv
      netware/BUILD/mwldnlm
      netware/BUILD/nwbuild
      netware/BUILD/openssl.imp
      netware/BUILD/save-patch
      netware/Makefile.am
      netware/comp_err.def
      netware/install_test_db.ncf
      netware/libmysql.def
      netware/libmysqlmain.c
      netware/my_manage.c
      netware/my_manage.h
      netware/my_print_defaults.def
      netware/myisam_ftdump.def
      netware/myisamchk.def
      netware/myisamlog.def
      netware/myisampack.def
      netware/mysql.def
      netware/mysql.xdc
      netware/mysql_client_test.def
      netware/mysql_fix_privilege_tables.pl
      netware/mysql_install_db.c
      netware/mysql_install_db.def
      netware/mysql_secure_installation.pl
      netware/mysql_test_run.c
      netware/mysql_test_run.def
      netware/mysql_upgrade.def
      netware/mysql_waitpid.def
      netware/mysqladmin.def
      netware/mysqlbinlog.def
      netware/mysqlcheck.def
      netware/mysqld.def
      netware/mysqld_safe.c
      netware/mysqld_safe.def
      netware/mysqldump.def
      netware/mysqlimport.def
      netware/mysqlshow.def
      netware/mysqlslap.def
      netware/mysqltest.def
      netware/perror.def
      netware/replace.def
      netware/resolve_stack_dump.def
      netware/resolveip.def
      netware/static_init_db.sql
      sql/my_lock.c
      sql/repl_failsafe.cc
      sql/repl_failsafe.h
      sql/thr_malloc.h.moved
      storage/perfschema/table_helper.h
      strings/bcmp.c
    added:
      Doxyfile-wl4895
      config/ac-macros/maintainer.m4
      include/my_compiler.h
      include/mysql/psi/mysql_table.h
      mysql-test/collections/disabled-per-push.list
      mysql-test/extra/rpl_tests/rpl_drop_create_temp_table.inc
      mysql-test/extra/rpl_tests/rpl_drop_create_temp_table.test
      mysql-test/include/ctype_unicode520.inc
      mysql-test/include/ctype_unicode_latin.inc
      mysql-test/include/rpl_diff_tables.inc
      mysql-test/r/server_uuid_embedded.result
      mysql-test/r/single_delete_update.result
      mysql-test/std_data/intersect-bug50389.tsv
      mysql-test/suite/innodb/r/innodb_bug54044.result
      mysql-test/suite/innodb/t/innodb_bug54044.test
      mysql-test/suite/perfschema/include/pfs_upgrade.inc
      mysql-test/suite/perfschema/include/table_io_basic_dml.inc
      mysql-test/suite/perfschema/include/table_io_cleanup_helper.inc
      mysql-test/suite/perfschema/include/table_io_result_helper.inc
      mysql-test/suite/perfschema/include/table_io_setup_helper.inc
      mysql-test/suite/perfschema/r/csv_table_io.result
      mysql-test/suite/perfschema/r/indexed_table_io.result
      mysql-test/suite/perfschema/r/innodb_table_io.result
      mysql-test/suite/perfschema/r/memory_table_io.result
      mysql-test/suite/perfschema/r/merge_table_io.result
      mysql-test/suite/perfschema/r/multi_table_io.result
      mysql-test/suite/perfschema/r/myisam_table_io.result
      mysql-test/suite/perfschema/r/part_table_io.result
      mysql-test/suite/perfschema/r/pfs_upgrade_lc0.result
      mysql-test/suite/perfschema/r/pfs_upgrade_lc1.result
      mysql-test/suite/perfschema/r/pfs_upgrade_lc2.result
      mysql-test/suite/perfschema/r/privilege_table_io.result
      mysql-test/suite/perfschema/r/rollback_table_io.result
      mysql-test/suite/perfschema/r/start_server_no_table_hdl.result
      mysql-test/suite/perfschema/r/start_server_no_table_inst.result
      mysql-test/suite/perfschema/r/start_server_nothing.result
      mysql-test/suite/perfschema/r/temp_table_io.result
      mysql-test/suite/perfschema/r/thread_cache.result
      mysql-test/suite/perfschema/r/trigger_table_io.result
      mysql-test/suite/perfschema/r/view_table_io.result
      mysql-test/suite/perfschema/t/csv_table_io.test
      mysql-test/suite/perfschema/t/indexed_table_io.test
      mysql-test/suite/perfschema/t/innodb_table_io.test
      mysql-test/suite/perfschema/t/memory_table_io.test
      mysql-test/suite/perfschema/t/merge_table_io.test
      mysql-test/suite/perfschema/t/multi_table_io.test
      mysql-test/suite/perfschema/t/myisam_table_io.test
      mysql-test/suite/perfschema/t/part_table_io.test
      mysql-test/suite/perfschema/t/pfs_upgrade_lc0.test
      mysql-test/suite/perfschema/t/pfs_upgrade_lc1.test
      mysql-test/suite/perfschema/t/pfs_upgrade_lc2.test
      mysql-test/suite/perfschema/t/privilege_table_io.test
      mysql-test/suite/perfschema/t/rollback_table_io.test
      mysql-test/suite/perfschema/t/start_server_no_table_hdl-master.opt
      mysql-test/suite/perfschema/t/start_server_no_table_hdl.test
      mysql-test/suite/perfschema/t/start_server_no_table_inst-master.opt
      mysql-test/suite/perfschema/t/start_server_no_table_inst.test
      mysql-test/suite/perfschema/t/start_server_nothing-master.opt
      mysql-test/suite/perfschema/t/start_server_nothing.test
      mysql-test/suite/perfschema/t/temp_table_io.test
      mysql-test/suite/perfschema/t/thread_cache.test
      mysql-test/suite/perfschema/t/trigger_table_io.test
      mysql-test/suite/perfschema/t/view_table_io.test
      mysql-test/suite/rpl/r/rpl_current_user.result
      mysql-test/suite/rpl/r/rpl_mixed_drop_create_temp_table.result
      mysql-test/suite/rpl/r/rpl_row_drop_create_temp_table.result
      mysql-test/suite/rpl/r/rpl_savepoint.result
      mysql-test/suite/rpl/r/rpl_stm_drop_create_temp_table.result
      mysql-test/suite/rpl/t/rpl_current_user.cnf
      mysql-test/suite/rpl/t/rpl_current_user.test
      mysql-test/suite/rpl/t/rpl_mixed_drop_create_temp_table.test
      mysql-test/suite/rpl/t/rpl_row_drop_create_temp_table.test
      mysql-test/suite/rpl/t/rpl_savepoint.test
      mysql-test/suite/rpl/t/rpl_stm_drop_create_temp_table.test
      mysql-test/t/server_uuid_embedded.test
      mysql-test/t/single_delete_update.test
      sql/sql_bootstrap.cc
      sql/sql_bootstrap.h
      storage/perfschema/table_helper.h
      unittest/mysys/my_malloc-t.c
    renamed:
      mysql-test/r/analyse.result => mysql-test/r/func_analyse.result
      mysql-test/t/analyse.test => mysql-test/t/func_analyse.test
    modified:
      .bzrignore
      BUILD-CMAKE
      BUILD/SETUP.sh
      BUILD/build_mccge.sh
      BUILD/check-cpu
      BUILD/compile-ia64-debug-max
      CMakeLists.txt*
      Makefile.am
      client/CMakeLists.txt*
      client/client_priv.h
      client/completion_hash.cc
      client/mysql.cc
      client/mysql_upgrade.c
      client/mysqladmin.cc
      client/mysqlbinlog.cc
      client/mysqlcheck.c
      client/mysqldump.c
      client/mysqlimport.c
      client/mysqlshow.c
      client/mysqlslap.c
      client/mysqltest.cc
      client/readline.cc
      client/sql_string.h
      cmake/build_configurations/mysql_release.cmake
      cmake/configure.pl
      cmake/install_layout.cmake*
      cmake/install_macros.cmake
      cmake/os/AIX.cmake
      cmake/os/FreeBSD.cmake
      cmake/os/Windows.cmake
      cmake/os/WindowsCache.cmake
      cmake/package_name.cmake
      cmake/ssl.cmake
      cmd-line-utils/readline/Makefile.am
      config.h.cmake
      config/ac-macros/misc.m4
      configure.cmake
      configure.in
      dbug/CMakeLists.txt*
      dbug/Makefile.am
      dbug/dbug.c
      dbug/dbug_analyze.c
      dbug/user.r
      extra/CMakeLists.txt*
      extra/comp_err.c
      extra/my_print_defaults.c
      extra/mysql_waitpid.c
      extra/perror.c
      extra/replace.c
      extra/resolve_stack_dump.c
      extra/resolveip.c
      extra/yassl/CMakeLists.txt*
      extra/yassl/include/yassl_int.hpp
      extra/yassl/src/crypto_wrapper.cpp
      extra/yassl/src/socket_wrapper.cpp
      extra/yassl/taocrypt/CMakeLists.txt*
      extra/yassl/taocrypt/include/blowfish.hpp
      extra/yassl/taocrypt/include/misc.hpp
      extra/yassl/taocrypt/include/runtime.hpp
      extra/yassl/taocrypt/src/aes.cpp
      extra/yassl/taocrypt/src/algebra.cpp
      extra/yassl/taocrypt/src/blowfish.cpp
      extra/yassl/taocrypt/src/integer.cpp
      extra/yassl/taocrypt/src/misc.cpp
      extra/yassl/taocrypt/src/random.cpp
      extra/yassl/taocrypt/src/twofish.cpp
      extra/yassl/testsuite/test.hpp
      include/Makefile.am
      include/config-win.h
      include/hash.h
      include/lf.h
      include/m_ctype.h
      include/m_string.h
      include/my_alarm.h
      include/my_bitmap.h
      include/my_dbug.h
      include/my_global.h
      include/my_list.h
      include/my_net.h
      include/my_nosys.h
      include/my_pthread.h
      include/my_stacktrace.h
      include/my_sys.h
      include/my_time.h
      include/myisam.h
      include/mysql.h
      include/mysql/psi/psi.h
      include/mysys_err.h
      libmysql/CMakeLists.txt*
      libmysql/Makefile.am
      libmysql/Makefile.shared
      libmysql/dll.c
      libmysql/get_password.c
      libmysql/libmysql.c
      libmysqld/CMakeLists.txt
      libmysqld/Makefile.am
      libmysqld/examples/Makefile.am
      libmysqld/lib_sql.cc
      libmysqld/libmysqld.c
      mysql-test/collections/default.daily
      mysql-test/collections/default.experimental
      mysql-test/collections/default.push
      mysql-test/collections/mysql-next-mr.push
      mysql-test/collections/mysql-trunk.push
      mysql-test/extra/binlog_tests/binlog.test
      mysql-test/extra/binlog_tests/database.test
      mysql-test/extra/binlog_tests/drop_temp_table.test
      mysql-test/extra/binlog_tests/mix_innodb_myisam_binlog.test
      mysql-test/extra/rpl_tests/rpl_binlog_max_cache_size.test
      mysql-test/extra/rpl_tests/rpl_conflicts.test
      mysql-test/include/ctype_numconv.inc
      mysql-test/include/diff_tables.inc
      mysql-test/include/mtr_check.sql
      mysql-test/include/mtr_warnings.sql
      mysql-test/include/mysqld--help.inc
      mysql-test/include/parser_bug21114.inc*
      mysql-test/include/show_msg.inc*
      mysql-test/include/show_msg80.inc*
      mysql-test/lib/My/Handles.pm*
      mysql-test/lib/My/SafeProcess/safe_kill_win.cc*
      mysql-test/lib/My/SafeProcess/safe_process.cc
      mysql-test/lib/My/SafeProcess/safe_process_win.cc*
      mysql-test/lib/mtr_cases.pm
      mysql-test/lib/v1/mtr_misc.pl
      mysql-test/lib/v1/mtr_report.pl
      mysql-test/lib/v1/mysql-test-run.pl
      mysql-test/mysql-stress-test.pl
      mysql-test/mysql-test-run.pl
      mysql-test/r/bug46080.result*
      mysql-test/r/ctype_binary.result
      mysql-test/r/ctype_cp1251.result
      mysql-test/r/ctype_latin1.result
      mysql-test/r/ctype_ldml.result
      mysql-test/r/ctype_uca.result
      mysql-test/r/ctype_ucs.result
      mysql-test/r/ctype_utf16_uca.result
      mysql-test/r/ctype_utf32_uca.result
      mysql-test/r/error_simulation.result
      mysql-test/r/func_digest.result
      mysql-test/r/func_in.result
      mysql-test/r/func_like.result
      mysql-test/r/group_by.result
      mysql-test/r/having.result
      mysql-test/r/information_schema.result
      mysql-test/r/information_schema_parameters.result
      mysql-test/r/information_schema_routines.result
      mysql-test/r/key.result
      mysql-test/r/loaddata.result
      mysql-test/r/log_state.result
      mysql-test/r/lowercase_mixed_tmpdir_innodb.result*
      mysql-test/r/lowercase_table2.result
      mysql-test/r/lowercase_view.result
      mysql-test/r/merge.result
      mysql-test/r/mysql_upgrade.result
      mysql-test/r/mysqld--help-notwin.result
      mysql-test/r/mysqld--help-win.result
      mysql-test/r/mysqldump.result
      mysql-test/r/partition_innodb.result
      mysql-test/r/range.result
      mysql-test/r/rpl_mysqldump_slave.result
      mysql-test/r/select.result
      mysql-test/r/sp_trans_log.result
      mysql-test/r/subselect.result
      mysql-test/r/subselect4.result
      mysql-test/r/update.result
      mysql-test/r/variables.result
      mysql-test/std_data/Index.xml
      mysql-test/suite/binlog/r/binlog_base64_flag.result
      mysql-test/suite/binlog/r/binlog_database.result
      mysql-test/suite/binlog/r/binlog_multi_engine.result
      mysql-test/suite/binlog/r/binlog_row_binlog.result
      mysql-test/suite/binlog/r/binlog_row_drop_tmp_tbl.result
      mysql-test/suite/binlog/r/binlog_row_mix_innodb_myisam.result
      mysql-test/suite/binlog/r/binlog_stm_binlog.result
      mysql-test/suite/binlog/r/binlog_stm_ctype_cp932.result*
      mysql-test/suite/binlog/r/binlog_stm_drop_tmp_tbl.result
      mysql-test/suite/binlog/r/binlog_stm_mix_innodb_myisam.result
      mysql-test/suite/binlog/t/binlog_base64_flag.test
      mysql-test/suite/binlog/t/binlog_killed_simulate.test
      mysql-test/suite/engines/funcs/r/db_alter_collate_utf8.result
      mysql-test/suite/engines/funcs/t/db_alter_collate_utf8.test
      mysql-test/suite/funcs_1/r/is_basics_mixed.result
      mysql-test/suite/funcs_1/r/is_columns_innodb.result
      mysql-test/suite/funcs_1/r/is_columns_is.result
      mysql-test/suite/funcs_1/r/is_columns_memory.result
      mysql-test/suite/funcs_1/r/is_columns_myisam.result
      mysql-test/suite/funcs_1/r/is_columns_mysql.result
      mysql-test/suite/funcs_1/r/is_engines_myisam.result
      mysql-test/suite/ibmdb2i/include/have_i54.inc*
      mysql-test/suite/ibmdb2i/r/ibmdb2i_bug_44232.result*
      mysql-test/suite/ibmdb2i/r/ibmdb2i_bug_44610.result*
      mysql-test/suite/ibmdb2i/t/ibmdb2i_bug_44232.test*
      mysql-test/suite/ibmdb2i/t/ibmdb2i_bug_44610.test*
      mysql-test/suite/innodb/r/innodb_mysql.result
      mysql-test/suite/innodb/t/innodb_mysql.test
      mysql-test/suite/ndb/r/ndb_binlog_format.result
      mysql-test/suite/ndb/t/disabled.def
      mysql-test/suite/perfschema/include/start_server_common.inc
      mysql-test/suite/perfschema/r/dml_events_waits_current.result
      mysql-test/suite/perfschema/r/dml_events_waits_history.result
      mysql-test/suite/perfschema/r/dml_events_waits_history_long.result
      mysql-test/suite/perfschema/r/dml_setup_instruments.result
      mysql-test/suite/perfschema/r/func_file_io.result
      mysql-test/suite/perfschema/r/func_mutex.result
      mysql-test/suite/perfschema/r/myisam_file_io.result
      mysql-test/suite/perfschema/r/no_threads.result
      mysql-test/suite/perfschema/r/selects.result
      mysql-test/suite/perfschema/r/server_init.result
      mysql-test/suite/perfschema/r/start_server_no_cond_class.result
      mysql-test/suite/perfschema/r/start_server_no_cond_inst.result
      mysql-test/suite/perfschema/r/start_server_no_file_class.result
      mysql-test/suite/perfschema/r/start_server_no_file_inst.result
      mysql-test/suite/perfschema/r/start_server_no_mutex_class.result
      mysql-test/suite/perfschema/r/start_server_no_mutex_inst.result
      mysql-test/suite/perfschema/r/start_server_no_rwlock_class.result
      mysql-test/suite/perfschema/r/start_server_no_rwlock_inst.result
      mysql-test/suite/perfschema/r/start_server_no_thread_class.result
      mysql-test/suite/perfschema/r/start_server_no_thread_inst.result
      mysql-test/suite/perfschema/r/start_server_off.result
      mysql-test/suite/perfschema/r/start_server_on.result
      mysql-test/suite/perfschema/t/dml_events_waits_current.test
      mysql-test/suite/perfschema/t/dml_events_waits_history.test
      mysql-test/suite/perfschema/t/dml_events_waits_history_long.test
      mysql-test/suite/perfschema/t/func_file_io.test
      mysql-test/suite/perfschema/t/func_mutex.test
      mysql-test/suite/perfschema/t/misc.test
      mysql-test/suite/perfschema/t/myisam_file_io.test
      mysql-test/suite/perfschema/t/no_threads.test
      mysql-test/suite/perfschema/t/selects.test
      mysql-test/suite/perfschema/t/server_init.test
      mysql-test/suite/rpl/extension/bhs/rpl_1slave_base.cnf
      mysql-test/suite/rpl/r/rpl_begin_commit_rollback.result
      mysql-test/suite/rpl/r/rpl_concurrency_error.result
      mysql-test/suite/rpl/r/rpl_drop_temp.result
      mysql-test/suite/rpl/r/rpl_innodb_mixed_dml.result
      mysql-test/suite/rpl/r/rpl_mixed_binlog_max_cache_size.result
      mysql-test/suite/rpl/r/rpl_mixed_mixing_engines.result
      mysql-test/suite/rpl/r/rpl_non_direct_mixed_mixing_engines.result
      mysql-test/suite/rpl/r/rpl_non_direct_stm_mixing_engines.result
      mysql-test/suite/rpl/r/rpl_row_conflicts.result
      mysql-test/suite/rpl/r/rpl_server_uuid.result
      mysql-test/suite/rpl/r/rpl_stm_binlog_max_cache_size.result
      mysql-test/suite/rpl/r/rpl_stm_conflicts.result
      mysql-test/suite/rpl/r/rpl_stm_mixing_engines.result
      mysql-test/suite/rpl/r/rpl_stm_stop_middle_group.result
      mysql-test/suite/rpl/r/rpl_stm_until.result
      mysql-test/suite/rpl/rpl_1slave_base.cnf
      mysql-test/suite/rpl/t/rpl_drop_temp.test
      mysql-test/suite/rpl/t/rpl_ip_mix.cnf
      mysql-test/suite/rpl/t/rpl_ip_mix2.cnf
      mysql-test/suite/rpl/t/rpl_ipv4_as_ipv6.cnf
      mysql-test/suite/rpl/t/rpl_ipv6.cnf
      mysql-test/suite/rpl/t/rpl_non_direct_mixed_mixing_engines.test
      mysql-test/suite/rpl/t/rpl_row_mysqlbinlog.test
      mysql-test/suite/rpl/t/rpl_server_uuid.test
      mysql-test/suite/rpl/t/rpl_stm_until.test
      mysql-test/suite/rpl_ndb/my.cnf
      mysql-test/suite/rpl_ndb/r/rpl_ndb_multi.result
      mysql-test/suite/rpl_ndb/t/disabled.def
      mysql-test/suite/rpl_ndb/t/rpl_ndb_circular_2ch.cnf
      mysql-test/suite/rpl_ndb/t/rpl_ndb_multi.test
      mysql-test/suite/sys_vars/inc/collation_basic.inc
      mysql-test/suite/sys_vars/r/collation_connection_basic.result
      mysql-test/suite/sys_vars/r/collation_database_basic.result
      mysql-test/suite/sys_vars/r/collation_server_basic.result
      mysql-test/suite/sys_vars/r/sql_select_limit_func.result
      mysql-test/suite/sys_vars/t/innodb_fast_shutdown_basic.test
      mysql-test/suite/sys_vars/t/ndb_log_update_as_write_basic.test
      mysql-test/suite/sys_vars/t/ndb_log_updated_only_basic.test
      mysql-test/suite/sys_vars/t/sql_select_limit_func.test
      mysql-test/t/bug46080-master.opt
      mysql-test/t/ctype_ldml.test
      mysql-test/t/ctype_uca.test
      mysql-test/t/ctype_ucs.test
      mysql-test/t/ctype_utf16.test
      mysql-test/t/ctype_utf16_uca.test
      mysql-test/t/ctype_utf32_uca.test
      mysql-test/t/disabled.def
      mysql-test/t/error_simulation.test
      mysql-test/t/func_digest.test
      mysql-test/t/func_in.test
      mysql-test/t/func_like.test
      mysql-test/t/group_by.test
      mysql-test/t/having.test
      mysql-test/t/information_schema.test
      mysql-test/t/innodb_mysql_lock2.test
      mysql-test/t/key.test
      mysql-test/t/loaddata.test
      mysql-test/t/lowercase_table2.test
      mysql-test/t/lowercase_view.test
      mysql-test/t/merge.test
      mysql-test/t/mysql_delimiter_19799.sql*
      mysql-test/t/mysql_upgrade.test
      mysql-test/t/mysqlbinlog.test
      mysql-test/t/mysqlbinlog2.test
      mysql-test/t/mysqldump.test
      mysql-test/t/partition_innodb.test
      mysql-test/t/range.test
      mysql-test/t/rpl_mysqldump_slave.test
      mysql-test/t/select.test
      mysql-test/t/sp_trans_log.test
      mysql-test/t/subselect.test
      mysql-test/t/subselect4.test
      mysql-test/t/update.test
      mysql-test/t/variables.test
      mysql-test/t/windows.test*
      mysys/CMakeLists.txt*
      mysys/Makefile.am
      mysys/array.c
      mysys/charset-def.c
      mysys/charset.c
      mysys/default.c
      mysys/default_modify.c
      mysys/errors.c
      mysys/hash.c
      mysys/lf_alloc-pin.c
      mysys/lf_dynarray.c
      mysys/lf_hash.c
      mysys/list.c
      mysys/mf_cache.c
      mysys/mf_dirname.c
      mysys/mf_fn_ext.c
      mysys/mf_iocache.c
      mysys/mf_keycache.c
      mysys/mf_keycaches.c
      mysys/mf_loadpath.c
      mysys/mf_pack.c
      mysys/mf_path.c
      mysys/mf_sort.c
      mysys/mf_tempdir.c
      mysys/mf_tempfile.c
      mysys/mf_unixpath.c
      mysys/mf_wfile.c
      mysys/my_alloc.c
      mysys/my_bitmap.c
      mysys/my_clock.c
      mysys/my_compress.c
      mysys/my_copy.c
      mysys/my_delete.c
      mysys/my_error.c
      mysys/my_file.c
      mysys/my_fopen.c
      mysys/my_gethwaddr.c
      mysys/my_getopt.c
      mysys/my_getsystime.c
      mysys/my_getwd.c
      mysys/my_handler.c
      mysys/my_init.c
      mysys/my_largepage.c
      mysys/my_lib.c
      mysys/my_lock.c
      mysys/my_lockmem.c
      mysys/my_malloc.c
      mysys/my_mess.c
      mysys/my_mmap.c
      mysys/my_once.c
      mysys/my_open.c
      mysys/my_pthread.c
      mysys/my_rdtsc.c
      mysys/my_redel.c
      mysys/my_sleep.c
      mysys/my_static.c
      mysys/my_static.h
      mysys/my_windac.c
      mysys/queues.c
      mysys/stacktrace.c
      mysys/string.c
      mysys/test_charset.c
      mysys/testhash.c
      mysys/thr_alarm.c
      mysys/thr_lock.c
      mysys/tree.c
      mysys/trie.c
      packaging/WiX/CMakeLists.txt
      packaging/WiX/CPackWixConfig.cmake
      packaging/WiX/ca/CMakeLists.txt
      packaging/WiX/create_msi.cmake.in
      packaging/WiX/mysql_server.wxs.in
      plugin/daemon_example/Makefile.am
      plugin/daemon_example/daemon_example.cc
      plugin/semisync/Makefile.am
      plugin/semisync/semisync_master.h
      regex/CMakeLists.txt*
      regex/regcomp.c
      scripts/CMakeLists.txt*
      scripts/Makefile.am
      scripts/comp_sql.c
      scripts/make_binary_distribution.sh
      scripts/mysql_config.pl.in
      scripts/mysql_config.sh
      scripts/mysql_secure_installation.pl.in
      scripts/mysql_secure_installation.sh
      scripts/mysql_system_tables.sql
      scripts/mysql_system_tables_fix.sql
      scripts/mysqld_safe.sh
      scripts/mysqlhotcopy.sh
      sql-common/client.c
      sql-common/my_time.c
      sql/CMakeLists.txt*
      sql/Makefile.am
      sql/authors.h
      sql/binlog.cc
      sql/binlog.h
      sql/client_settings.h
      sql/contributors.h
      sql/custom_conf.h
      sql/debug_sync.cc
      sql/debug_sync.h
      sql/derror.cc
      sql/derror.h
      sql/des_key_file.cc
      sql/des_key_file.h
      sql/discover.cc
      sql/discover.h
      sql/event_data_objects.cc
      sql/event_data_objects.h
      sql/event_db_repository.cc
      sql/event_db_repository.h
      sql/event_parse_data.cc
      sql/event_parse_data.h
      sql/event_queue.cc
      sql/event_queue.h
      sql/event_scheduler.cc*
      sql/event_scheduler.h
      sql/examples/CMakeLists.txt*
      sql/field.cc
      sql/field_conv.cc
      sql/filesort.cc
      sql/filesort.h
      sql/frm_crypt.cc
      sql/frm_crypt.h
      sql/gen_lex_hash.cc
      sql/gstream.cc
      sql/gstream.h
      sql/ha_ndbcluster.cc
      sql/ha_ndbcluster.h
      sql/ha_ndbcluster_binlog.cc
      sql/ha_ndbcluster_binlog.h
      sql/ha_ndbcluster_cond.cc
      sql/ha_ndbcluster_cond.h
      sql/ha_ndbcluster_tables.h
      sql/ha_partition.cc
      sql/ha_partition.h
      sql/handler.cc
      sql/handler.h
      sql/hash_filo.cc
      sql/hash_filo.h
      sql/hostname.cc
      sql/hostname.h
      sql/init.cc
      sql/init.h
      sql/item.cc
      sql/item.h
      sql/item_buff.cc
      sql/item_cmpfunc.cc
      sql/item_cmpfunc.h
      sql/item_create.cc
      sql/item_create.h
      sql/item_func.cc
      sql/item_func.h
      sql/item_geofunc.cc
      sql/item_geofunc.h
      sql/item_row.cc
      sql/item_row.h
      sql/item_strfunc.cc
      sql/item_strfunc.h
      sql/item_subselect.cc
      sql/item_subselect.h
      sql/item_sum.cc
      sql/item_sum.h
      sql/item_timefunc.cc
      sql/item_timefunc.h
      sql/item_xmlfunc.cc
      sql/item_xmlfunc.h
      sql/key.cc
      sql/key.h
      sql/keycaches.cc
      sql/keycaches.h
      sql/lex.h
      sql/lex_symbol.h
      sql/lock.cc
      sql/log.cc
      sql/log.h
      sql/log_event.cc
      sql/log_event.h
      sql/log_event_old.cc
      sql/log_event_old.h
      sql/main.cc
      sql/mdl.cc
      sql/mdl.h
      sql/mf_iocache.cc
      sql/my_decimal.cc
      sql/my_decimal.h
      sql/mysqld.h
      sql/mysqld_suffix.h
      sql/net_serv.cc
      sql/opt_range.cc
      sql/opt_range.h
      sql/opt_sum.cc
      sql/parse_file.cc
      sql/parse_file.h
      sql/partition_element.h
      sql/partition_info.cc
      sql/partition_info.h
      sql/procedure.cc
      sql/procedure.h
      sql/protocol.cc
      sql/protocol.h
      sql/records.cc
      sql/records.h
      sql/replication.h
      sql/rpl_filter.cc
      sql/rpl_filter.h
      sql/rpl_handler.cc
      sql/rpl_handler.h
      sql/rpl_injector.cc
      sql/rpl_injector.h
      sql/rpl_master.cc
      sql/rpl_master.h
      sql/rpl_mi.cc
      sql/rpl_mi.h
      sql/rpl_record.cc
      sql/rpl_record.h
      sql/rpl_record_old.h
      sql/rpl_reporting.cc
      sql/rpl_reporting.h
      sql/rpl_rli.cc
      sql/rpl_rli.h
      sql/rpl_slave.cc
      sql/rpl_slave.h
      sql/rpl_tblmap.cc
      sql/rpl_tblmap.h
      sql/rpl_utility.cc
      sql/rpl_utility.h
      sql/scheduler.cc
      sql/scheduler.h
      sql/set_var.cc
      sql/set_var.h
      sql/sha2.cc
      sql/sp.cc
      sql/sp.h
      sql/sp_cache.cc
      sql/sp_cache.h
      sql/sp_head.cc
      sql/sp_head.h
      sql/sp_pcontext.cc
      sql/sp_pcontext.h
      sql/sp_rcontext.cc
      sql/sp_rcontext.h
      sql/spatial.cc
      sql/spatial.h
      sql/sql_acl.cc
      sql/sql_acl.h
      sql/sql_alloc_error_handler.cc
      sql/sql_analyse.cc
      sql/sql_analyse.h
      sql/sql_array.h
      sql/sql_audit.cc
      sql/sql_audit.h
      sql/sql_base.cc
      sql/sql_base.h
      sql/sql_binlog.cc
      sql/sql_binlog.h
      sql/sql_bitmap.h
      sql/sql_cache.cc
      sql/sql_cache.h
      sql/sql_class.cc
      sql/sql_class.h
      sql/sql_client.cc
      sql/sql_connect.cc
      sql/sql_connect.h
      sql/sql_const.h
      sql/sql_crypt.cc
      sql/sql_crypt.h
      sql/sql_cursor.cc
      sql/sql_cursor.h
      sql/sql_db.cc
      sql/sql_db.h
      sql/sql_delete.cc
      sql/sql_delete.h
      sql/sql_derived.cc
      sql/sql_derived.h
      sql/sql_do.cc
      sql/sql_do.h
      sql/sql_error.cc
      sql/sql_error.h
      sql/sql_handler.cc
      sql/sql_handler.h
      sql/sql_help.cc
      sql/sql_help.h
      sql/sql_insert.cc
      sql/sql_insert.h
      sql/sql_lex.cc
      sql/sql_lex.h
      sql/sql_list.cc
      sql/sql_list.h
      sql/sql_load.cc
      sql/sql_load.h
      sql/sql_locale.cc
      sql/sql_locale.h
      sql/sql_manager.cc
      sql/sql_manager.h
      sql/sql_map.cc
      sql/sql_map.h
      sql/sql_olap.cc
      sql/sql_parse.cc
      sql/sql_parse.h
      sql/sql_partition.cc
      sql/sql_partition.h
      sql/sql_plist.h
      sql/sql_plugin.cc
      sql/sql_plugin.h
      sql/sql_plugin_services.h
      sql/sql_prepare.cc
      sql/sql_prepare.h
      sql/sql_priv.h
      sql/sql_profile.cc
      sql/sql_profile.h
      sql/sql_rename.cc
      sql/sql_rename.h
      sql/sql_select.cc
      sql/sql_select.h
      sql/sql_servers.cc
      sql/sql_servers.h
      sql/sql_show.cc
      sql/sql_show.h
      sql/sql_signal.cc
      sql/sql_signal.h
      sql/sql_sort.h
      sql/sql_string.cc
      sql/sql_string.h
      sql/sql_table.cc
      sql/sql_table.h
      sql/sql_tablespace.cc
      sql/sql_tablespace.h
      sql/sql_test.cc
      sql/sql_test.h
      sql/sql_time.cc
      sql/sql_time.h
      sql/sql_trigger.cc
      sql/sql_trigger.h
      sql/sql_truncate.cc
      sql/sql_udf.cc
      sql/sql_udf.h
      sql/sql_union.cc
      sql/sql_union.h
      sql/sql_update.cc
      sql/sql_update.h
      sql/sql_view.cc
      sql/sql_view.h
      sql/sql_yacc.yy
      sql/strfunc.cc
      sql/strfunc.h
      sql/structs.h
      sql/sys_vars.cc
      sql/sys_vars.h
      sql/sys_vars_shared.h
      sql/table.cc
      sql/table.h
      sql/thr_malloc.cc
      sql/thr_malloc.h
      sql/transaction.cc
      sql/transaction.h
      sql/tzfile.h
      sql/tztime.cc
      sql/tztime.h
      sql/udf_example.c
      sql/uniques.cc
      sql/unireg.cc
      sql/unireg.h
      storage/archive/Makefile.am
      storage/archive/archive_reader.c
      storage/archive/ha_archive.cc
      storage/blackhole/Makefile.am
      storage/blackhole/ha_blackhole.cc
      storage/csv/Makefile.am
      storage/csv/ha_tina.cc
      storage/csv/ha_tina.h
      storage/csv/transparent_file.cc
      storage/example/Makefile.am
      storage/example/ha_example.cc
      storage/federated/Makefile.am
      storage/federated/ha_federated.cc
      storage/heap/CMakeLists.txt*
      storage/heap/ha_heap.cc
      storage/heap/hp_block.c
      storage/heap/hp_close.c
      storage/heap/hp_create.c
      storage/heap/hp_hash.c
      storage/heap/hp_open.c
      storage/heap/hp_rename.c
      storage/heap/hp_test2.c
      storage/ibmdb2i/Makefile.am
      storage/ibmdb2i/db2i_constraints.cc
      storage/ibmdb2i/db2i_conversion.cc
      storage/ibmdb2i/db2i_file.cc
      storage/ibmdb2i/db2i_file.h
      storage/ibmdb2i/db2i_global.h
      storage/ibmdb2i/db2i_ileBridge.cc
      storage/ibmdb2i/db2i_ileBridge.h
      storage/ibmdb2i/ha_ibmdb2i.cc
      storage/innobase/CMakeLists.txt
      storage/innobase/Makefile.am
      storage/innobase/dict/dict0crea.c
      storage/innobase/handler/ha_innodb.cc
      storage/innobase/include/os0file.h
      storage/innobase/include/os0file.ic
      storage/innobase/include/srv0start.h
      storage/innobase/include/sync0rw.ic
      storage/innobase/include/sync0sync.ic
      storage/innobase/include/univ.i
      storage/innobase/include/ut0dbg.h
      storage/innobase/os/os0file.c
      storage/innobase/os/os0proc.c
      storage/innobase/os/os0thread.c
      storage/innobase/row/row0merge.c
      storage/innobase/srv/srv0start.c
      storage/innobase/ut/ut0dbg.c
      storage/innobase/ut/ut0mem.c
      storage/myisam/CMakeLists.txt*
      storage/myisam/ft_boolean_search.c
      storage/myisam/ft_nlq_search.c
      storage/myisam/ft_stopwords.c
      storage/myisam/ha_myisam.cc
      storage/myisam/mi_check.c
      storage/myisam/mi_close.c
      storage/myisam/mi_create.c
      storage/myisam/mi_dynrec.c
      storage/myisam/mi_log.c
      storage/myisam/mi_open.c
      storage/myisam/mi_packrec.c
      storage/myisam/mi_preload.c
      storage/myisam/mi_search.c
      storage/myisam/mi_static.c
      storage/myisam/mi_test2.c
      storage/myisam/mi_test3.c
      storage/myisam/mi_unique.c
      storage/myisam/mi_write.c
      storage/myisam/myisam_ftdump.c
      storage/myisam/myisamchk.c
      storage/myisam/myisamdef.h
      storage/myisam/myisamlog.c
      storage/myisam/myisampack.c
      storage/myisam/rt_index.c
      storage/myisam/sort.c
      storage/myisammrg/CMakeLists.txt*
      storage/myisammrg/ha_myisammrg.cc
      storage/myisammrg/myrg_close.c
      storage/myisammrg/myrg_open.c
      storage/ndb/config/win-lib.am
      storage/ndb/config/win-prg.am
      storage/ndb/include/util/NdbAutoPtr.hpp
      storage/ndb/src/common/portlib/NdbMutex.c
      storage/ndb/src/mgmapi/mgmapi.cpp
      storage/ndb/src/mgmapi/ndb_logevent.cpp
      storage/ndb/src/mgmclient/main.cpp
      storage/ndb/src/mgmsrv/main.cpp
      storage/ndb/src/ndbapi/DictCache.cpp
      storage/ndb/test/ndbapi/testIndexStat.cpp
      storage/ndb/tools/restore/consumer_restore.cpp
      storage/perfschema/pfs.cc
      storage/perfschema/unittest/CMakeLists.txt
      storage/perfschema/unittest/Makefile.am
      storage/perfschema/unittest/conf.txt
      storage/perfschema/unittest/pfs-t.cc
      storage/perfschema/unittest/pfs_instr-t.cc
      storage/perfschema/unittest/pfs_instr_class-t.cc
      strings/CMakeLists.txt*
      strings/Makefile.am
      strings/conf_to_src.c
      strings/ctype-big5.c
      strings/ctype-bin.c
      strings/ctype-cp932.c
      strings/ctype-czech.c
      strings/ctype-euc_kr.c
      strings/ctype-eucjpms.c
      strings/ctype-extra.c
      strings/ctype-gb2312.c
      strings/ctype-gbk.c
      strings/ctype-latin1.c
      strings/ctype-mb.c
      strings/ctype-simple.c
      strings/ctype-sjis.c
      strings/ctype-tis620.c
      strings/ctype-uca.c
      strings/ctype-ucs2.c
      strings/ctype-ujis.c
      strings/ctype-utf8.c
      strings/ctype-win1250ch.c
      strings/ctype.c
      strings/do_ctype.c
      strings/int2str.c
      strings/my_strtoll10.c
      strings/str_test.c
      strings/strtol.c
      strings/strtoul.c
      strings/uca-dump.c
      strings/xml.c
      tests/CMakeLists.txt*
      tests/mysql_client_test.c
      tests/thread_test.c
      unittest/mysys/CMakeLists.txt
      unittest/mysys/Makefile.am
      vio/CMakeLists.txt*
      vio/test-ssl.c
      vio/test-sslclient.c
      vio/test-sslserver.c
      vio/vio.c
      vio/viossl.c
      vio/viosslfactories.c
      vio/viotest-ssl.c
      win/mysql_manifest.cmake*
      zlib/CMakeLists.txt*
=== removed file 'include/mysql/psi/mysql_network.h'
--- a/include/mysql/psi/mysql_network.h	2010-05-10 19:16:42 +0000
+++ b/include/mysql/psi/mysql_network.h	1970-01-01 00:00:00 +0000
@@ -1,46 +0,0 @@
-/* Copyright (c) 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, Inc., 51 Franklin St, Fifth Floor, Boston, MA
-02110-1301  USA 
-*/
-
-#ifndef MYSQL_NETWORK_H
-#define MYSQL_NETWORK_H
-
-/* For strlen() */
-#include <string.h>
-/* For MY_STAT */
-#include <my_dir.h>
-/* For my_chsize */
-#include <my_sys.h>
-
-/**
-  @file mysql/psi/mysql_network.h
-[...]
-*/
-
-#include "mysql/psi/psi.h"
-
-/**
-  @defgroup Network_instrumentation Network Instrumentation
-  @ingroup Instrumentation_interface
-  @{
-*/
-
-
-/** @} (end of group Network_instrumentation) */
-
-#endif
-

=== modified file 'include/mysql/psi/mysql_socket.h'
--- a/include/mysql/psi/mysql_socket.h	2010-07-29 19:56:17 +0000
+++ b/include/mysql/psi/mysql_socket.h	2010-08-04 15:47:50 +0000
@@ -42,6 +42,24 @@ Foundation, Inc., 51 Franklin St, Fifth
 */
 
 /**
+  @def MYSQL_SOCKET_WAIT_VARIABLES
+  Instrumentation helper for socket waits.
+  This instrumentation declares local variables.
+  Do not use a ';' after this macro
+  @param LOCKER the locker
+  @param STATE the locker state
+  @sa MYSQL_START_SOCKET_WAIT.
+  @sa MYSQL_END_SOCKET_WAIT.
+*/
+#ifdef HAVE_PSI_INTERFACE
+  #define MYSQL_SOCKET_WAIT_VARIABLES(LOCKER, STATE) \
+    PSI_socket_locker* LOCKER; \
+    PSI_socket_locker_state STATE;
+#else
+  #define MYSQL_SOCKET_WAIT_VARIABLES(LOCKER, STATE)
+#endif
+
+/**
   @def MYSQL_START_SOCKET_WAIT
   Instrumentation helper for socket waits.
   This instrumentation marks the start of a wait event.
@@ -56,7 +74,7 @@ Foundation, Inc., 51 Franklin St, Fifth
     inline_mysql_start_socket_wait(PSI, OP, INDEX, FLAGS, __FILE__, __LINE__)
 #else
   #define MYSQL_START_SOCKET_WAIT(PSI, OP, INDEX, FLAGS) \
-    NULL
+    do {} while (0)
 #endif
 
 /**
@@ -74,20 +92,23 @@ Foundation, Inc., 51 Franklin St, Fifth
 #endif
 
 
+
 #ifdef HAVE_PSI_INTERFACE
 /**
   Instrumentation calls for MYSQL_START_SOCKET_WAIT.
   @sa MYSQL_START_SOCKET_WAIT.
 */
-static inline struct PSI_socket_locker *
-inline_mysql_start_socket_wait(struct PSI_socket *psi, enum PSI_socket_operation op,
+static inline PSI_socket_locker *
+inline_mysql_start_socket_wait(PSI_socket_locker_state *state,
+                              PSI_socket *psi, enum PSI_socket_operation op,
                               uint index, ulong flags,
                               const char *src_file, int src_line)
 {
-  struct PSI_socket_locker *locker= NULL;
+  PSI_socket_locker *locker= NULL;
+
   if (likely(PSI_server && psi))
   {
-    locker= PSI_server->get_thread_socket_locker(psi, op);
+    locker= PSI_server->get_thread_socket_locker(state, psi, op);
     if (likely(locker != NULL))
       PSI_server->start_socket_wait(locker, src_file, src_line);
   }
@@ -99,7 +120,7 @@ inline_mysql_start_socket_wait(struct PS
   @sa MYSQL_END_SOCKET_WAIT.
 */
 static inline void
-inline_mysql_end_socket_wait(struct PSI_socket_locker *locker)
+inline_mysql_end_socket_wait(PSI_socket_locker *locker)
 {
   if (likely(locker != NULL))
     PSI_server->end_socket_wait(locker);
@@ -290,7 +311,7 @@ struct st_mysql_socket
     for binary compatibility of the @c MYSQL_FILE interface.
   */
 
-  struct PSI_socket *m_psi;
+  PSI_socket *m_psi;
 };
 
 /**
@@ -340,10 +361,12 @@ inline_mysql_socket_socketpair
   int result = 0;
 #if 0 //TBD
 #ifdef HAVE_PSI_INTERFACE
-  struct PSI_socket_locker *locker= NULL;
+  PSI_socket_locker *locker= NULL;
+  PSI_socket_locker_state state;
+
   if (likely(PSI_server != NULL && mysql_socket.m_psi != NULL))
   {
-    locker= PSI_server->get_thread_socket_locker(mysql_socket.m_psi, PSI_SOCKET_CREATE);
+    locker= PSI_server->get_thread_socket_locker(&state, mysql_socket.m_psi, PSI_SOCKET_CREATE);
     if (likely(locker !=NULL))
       PSI_server->start_socket_wait(locker, src_file, src_line);
   }
@@ -369,10 +392,12 @@ inline_mysql_socket_bind
 {
   int result;
 #ifdef HAVE_PSI_INTERFACE
-  struct PSI_socket_locker *locker= NULL;
+  PSI_socket_locker *locker= NULL;
+  PSI_socket_locker_state state;
+
   if (likely(PSI_server != NULL && mysql_socket.m_psi != NULL))
   {
-    locker= PSI_server->get_thread_socket_locker(mysql_socket.m_psi, PSI_SOCKET_BIND);
+    locker= PSI_server->get_thread_socket_locker(&state, mysql_socket.m_psi, PSI_SOCKET_BIND);
     if (likely(locker !=NULL))
       PSI_server->start_socket_wait(locker, src_file, src_line);
   }
@@ -400,10 +425,12 @@ inline_mysql_socket_getsockname
 {
   int result;
 #ifdef HAVE_PSI_INTERFACE
-  struct PSI_socket_locker *locker= NULL;
+  PSI_socket_locker *locker= NULL;
+  PSI_socket_locker_state state;
+
   if (likely(PSI_server != NULL && mysql_socket.m_psi != NULL))
   {
-    locker= PSI_server->get_thread_socket_locker(mysql_socket.m_psi, PSI_SOCKET_BIND);
+    locker= PSI_server->get_thread_socket_locker(&state, mysql_socket.m_psi, PSI_SOCKET_BIND);
     if (likely(locker !=NULL))
       PSI_server->start_socket_wait(locker, src_file, src_line);
   }
@@ -428,10 +455,12 @@ inline_mysql_socket_connect
 {
   int result;
 #ifdef HAVE_PSI_INTERFACE
-  struct PSI_socket_locker *locker= NULL;
+  PSI_socket_locker *locker= NULL;
+  PSI_socket_locker_state state;
+
   if (likely(PSI_server != NULL && mysql_socket.m_psi != NULL))
   {
-    locker= PSI_server->get_thread_socket_locker(mysql_socket.m_psi, PSI_SOCKET_CONNECT);
+    locker= PSI_server->get_thread_socket_locker(&state, mysql_socket.m_psi, PSI_SOCKET_CONNECT);
     if (likely(locker !=NULL))
       PSI_server->start_socket_wait(locker, src_file, src_line);
   }
@@ -456,10 +485,12 @@ inline_mysql_socket_getpeername
 {
   int result;
 #ifdef HAVE_PSI_INTERFACE
-  struct PSI_socket_locker *locker= NULL;
+  PSI_socket_locker *locker= NULL;
+  PSI_socket_locker_state state;
+
   if (likely(PSI_server != NULL && mysql_socket.m_psi != NULL))
   {
-    locker= PSI_server->get_thread_socket_locker(mysql_socket.m_psi, PSI_SOCKET_BIND);
+    locker= PSI_server->get_thread_socket_locker(&state, mysql_socket.m_psi, PSI_SOCKET_BIND);
     if (likely(locker !=NULL))
       PSI_server->start_socket_wait(locker, src_file, src_line);
   }
@@ -484,10 +515,12 @@ inline_mysql_socket_send
 {
   ssize_t result;
 #ifdef HAVE_PSI_INTERFACE
-  struct PSI_socket_locker *locker= NULL;
+  PSI_socket_locker *locker= NULL;
+  PSI_socket_locker_state state;
+
   if (likely(PSI_server != NULL && mysql_socket.m_psi != NULL))
   {
-    locker= PSI_server->get_thread_socket_locker(mysql_socket.m_psi, PSI_SOCKET_SEND);
+    locker= PSI_server->get_thread_socket_locker(&state, mysql_socket.m_psi, PSI_SOCKET_SEND);
     if (likely(locker !=NULL))
       PSI_server->start_socket_wait(locker, src_file, src_line);
   }
@@ -512,10 +545,12 @@ inline_mysql_socket_recv
 {
   ssize_t result;
 #ifdef HAVE_PSI_INTERFACE
-  struct PSI_socket_locker *locker= NULL;
+  PSI_socket_locker *locker= NULL;
+  PSI_socket_locker_state state;
+
   if (likely(PSI_server != NULL && mysql_socket.m_psi != NULL))
   {
-    locker= PSI_server->get_thread_socket_locker(mysql_socket.m_psi, PSI_SOCKET_RECV);
+    locker= PSI_server->get_thread_socket_locker(&state, mysql_socket.m_psi, PSI_SOCKET_RECV);
     if (likely(locker !=NULL))
       PSI_server->start_socket_wait(locker, src_file, src_line);
   }
@@ -540,10 +575,12 @@ inline_mysql_socket_sendto
 {
   ssize_t result;
 #ifdef HAVE_PSI_INTERFACE
-  struct PSI_socket_locker *locker= NULL;
+  PSI_socket_locker *locker= NULL;
+  PSI_socket_locker_state state;
+
   if (likely(PSI_server != NULL && mysql_socket.m_psi != NULL))
   {
-    locker= PSI_server->get_thread_socket_locker(mysql_socket.m_psi, PSI_SOCKET_SEND);
+    locker= PSI_server->get_thread_socket_locker(&state, mysql_socket.m_psi, PSI_SOCKET_SEND);
     if (likely(locker !=NULL))
       PSI_server->start_socket_wait(locker, src_file, src_line);
   }
@@ -568,10 +605,12 @@ inline_mysql_socket_recvfrom
 {
   ssize_t result;
 #ifdef HAVE_PSI_INTERFACE
-  struct PSI_socket_locker *locker= NULL;
+  PSI_socket_locker *locker= NULL;
+  PSI_socket_locker_state state;
+
   if (likely(PSI_server != NULL && mysql_socket.m_psi != NULL))
   {
-    locker= PSI_server->get_thread_socket_locker(mysql_socket.m_psi, PSI_SOCKET_RECV);
+    locker= PSI_server->get_thread_socket_locker(&state, mysql_socket.m_psi, PSI_SOCKET_RECV);
     if (likely(locker !=NULL))
       PSI_server->start_socket_wait(locker, src_file, src_line);
   }
@@ -596,10 +635,12 @@ inline_mysql_socket_sendmsg
 {
   ssize_t result;
 #ifdef HAVE_PSI_INTERFACE
-  struct PSI_socket_locker *locker= NULL;
+  PSI_socket_locker *locker= NULL;
+  PSI_socket_locker_state state;
+
   if (likely(PSI_server != NULL && mysql_socket.m_psi != NULL))
   {
-    locker= PSI_server->get_thread_socket_locker(mysql_socket.m_psi, PSI_SOCKET_SEND);
+    locker= PSI_server->get_thread_socket_locker(&state, mysql_socket.m_psi, PSI_SOCKET_SEND);
     if (likely(locker !=NULL))
       PSI_server->start_socket_wait(locker, src_file, src_line);
   }
@@ -624,10 +665,12 @@ inline_mysql_socket_recvmsg
 {
   ssize_t result;
 #ifdef HAVE_PSI_INTERFACE
-  struct PSI_socket_locker *locker= NULL;
+  PSI_socket_locker *locker= NULL;
+  PSI_socket_locker_state state;
+
   if (likely(PSI_server != NULL && mysql_socket.m_psi != NULL))
   {
-    locker= PSI_server->get_thread_socket_locker(mysql_socket.m_psi, PSI_SOCKET_RECV);
+    locker= PSI_server->get_thread_socket_locker(&state, mysql_socket.m_psi, PSI_SOCKET_RECV);
     if (likely(locker !=NULL))
       PSI_server->start_socket_wait(locker, src_file, src_line);
   }
@@ -652,10 +695,12 @@ inline_mysql_socket_getsockopt
 {
   int result;
 #ifdef HAVE_PSI_INTERFACE
-  struct PSI_socket_locker *locker= NULL;
+  PSI_socket_locker *locker= NULL;
+  PSI_socket_locker_state state;
+
   if (likely(PSI_server != NULL && mysql_socket.m_psi != NULL))
   {
-    locker= PSI_server->get_thread_socket_locker(mysql_socket.m_psi, PSI_SOCKET_OPT);
+    locker= PSI_server->get_thread_socket_locker(&state, mysql_socket.m_psi, PSI_SOCKET_OPT);
     if (likely(locker !=NULL))
       PSI_server->start_socket_wait(locker, src_file, src_line);
   }
@@ -680,10 +725,12 @@ inline_mysql_socket_setsockopt
 {
   int result;
 #ifdef HAVE_PSI_INTERFACE
-  struct PSI_socket_locker *locker= NULL;
+  PSI_socket_locker *locker= NULL;
+  PSI_socket_locker_state state;
+
   if (likely(PSI_server != NULL && mysql_socket.m_psi != NULL))
   {
-    locker= PSI_server->get_thread_socket_locker(mysql_socket.m_psi, PSI_SOCKET_OPT);
+    locker= PSI_server->get_thread_socket_locker(&state, mysql_socket.m_psi, PSI_SOCKET_OPT);
     if (likely(locker !=NULL))
       PSI_server->start_socket_wait(locker, src_file, src_line);
   }
@@ -708,10 +755,12 @@ inline_mysql_socket_listen
 {
   int result;
 #ifdef HAVE_PSI_INTERFACE
-  struct PSI_socket_locker *locker= NULL;
+  PSI_socket_locker *locker= NULL;
+  PSI_socket_locker_state state;
+
   if (likely(PSI_server != NULL && mysql_socket.m_psi != NULL))
   {
-    locker= PSI_server->get_thread_socket_locker(mysql_socket.m_psi, PSI_SOCKET_CONNECT);
+    locker= PSI_server->get_thread_socket_locker(&state, mysql_socket.m_psi, PSI_SOCKET_CONNECT);
     if (likely(locker !=NULL))
       PSI_server->start_socket_wait(locker, src_file, src_line);
   }
@@ -736,12 +785,14 @@ inline_mysql_socket_accept
 {
   MYSQL_SOCKET socket_accept = {0, NULL};
 #ifdef HAVE_PSI_INTERFACE
-  struct PSI_socket_locker *locker= NULL;
+  PSI_socket_locker *locker= NULL;
+  PSI_socket_locker_state state;
+
   socket_accept.m_psi = PSI_server ? PSI_server->init_socket(key, &socket_accept.fd)
                                    : NULL;
   if (likely(PSI_server != NULL && socket_accept.m_psi != NULL))
   {
-    locker= PSI_server->get_thread_socket_locker(socket_accept.m_psi, PSI_SOCKET_CONNECT);
+    locker= PSI_server->get_thread_socket_locker(&state, socket_accept.m_psi, PSI_SOCKET_CONNECT);
     if (likely(locker !=NULL))
       PSI_server->start_socket_wait(locker, src_file, src_line);
   }
@@ -772,7 +823,9 @@ inline_mysql_socket_accept4
 {
   MYSQL_SOCKET socket_accept = {0, NULL};
 #ifdef HAVE_PSI_INTERFACE
-  struct PSI_socket_locker *locker= NULL;
+  PSI_socket_locker *locker= NULL;
+  PSI_socket_locker_state state;
+
   socket_accept.m_psi = PSI_server ? PSI_server->init_socket(key, &socket_accept.fd)
                                    : NULL;
   if (likely(PSI_server != NULL && socket_accept.m_psi != NULL))
@@ -806,10 +859,12 @@ inline_mysql_socket_close
 {
   int result;
 #ifdef HAVE_PSI_INTERFACE
-  struct PSI_socket_locker *locker= NULL;
+  PSI_socket_locker *locker= NULL;
+  PSI_socket_locker_state state;
+
   if (likely(PSI_server != NULL && mysql_socket.m_psi != NULL))
   {
-    locker= PSI_server->get_thread_socket_locker(mysql_socket.m_psi, PSI_SOCKET_CLOSE);
+    locker= PSI_server->get_thread_socket_locker(&state, mysql_socket.m_psi, PSI_SOCKET_CLOSE);
     if (likely(locker !=NULL))
       PSI_server->start_socket_wait(locker, src_file, src_line);
   }
@@ -834,10 +889,12 @@ inline_mysql_socket_shutdown
 {
   int result;
 #ifdef HAVE_PSI_INTERFACE
-  struct PSI_socket_locker *locker= NULL;
+  PSI_socket_locker *locker= NULL;
+  PSI_socket_locker_state state;
+
   if (likely(PSI_server != NULL && mysql_socket.m_psi != NULL))
   {
-    locker= PSI_server->get_thread_socket_locker(mysql_socket.m_psi, PSI_SOCKET_SHUTDOWN);
+    locker= PSI_server->get_thread_socket_locker(&state, mysql_socket.m_psi, PSI_SOCKET_SHUTDOWN);
     if (likely(locker !=NULL))
       PSI_server->start_socket_wait(locker, src_file, src_line);
   }
@@ -862,10 +919,12 @@ inline_mysql_socket_sockatmark
 {
   int result;
 #ifdef HAVE_PSI_INTERFACE
-  struct PSI_socket_locker *locker= NULL;
+  PSI_socket_locker *locker= NULL;
+  PSI_socket_locker_state state;
+
   if (likely(PSI_server != NULL && mysql_socket.m_psi != NULL))
   {
-    locker= PSI_server->get_thread_socket_locker(mysql_socket.m_psi, PSI_SOCKET_STAT);
+    locker= PSI_server->get_thread_socket_locker(&state, mysql_socket.m_psi, PSI_SOCKET_STAT);
     if (likely(locker !=NULL))
       PSI_server->start_socket_wait(locker, src_file, src_line);
   }
@@ -890,10 +949,12 @@ inline_mysql_socket_isfdtype
 {
   int result;
 #ifdef HAVE_PSI_INTERFACE
-  struct PSI_socket_locker *locker= NULL;
+  PSI_socket_locker *locker= NULL;
+  PSI_socket_locker_state state;
+
   if (likely(PSI_server != NULL && mysql_socket.m_psi != NULL))
   {
-    locker= PSI_server->get_thread_socket_locker(mysql_socket.m_psi, PSI_SOCKET_STAT);
+    locker= PSI_server->get_thread_socket_locker(&state, mysql_socket.m_psi, PSI_SOCKET_STAT);
     if (likely(locker !=NULL))
       PSI_server->start_socket_wait(locker, src_file, src_line);
   }

=== modified file 'include/mysql/psi/psi_abi_v1.h.pp'
--- a/include/mysql/psi/psi_abi_v1.h.pp	2010-08-04 03:19:48 +0000
+++ b/include/mysql/psi/psi_abi_v1.h.pp	2010-08-04 15:47:50 +0000
@@ -8,6 +8,7 @@ struct PSI_table_share;
 struct PSI_table;
 struct PSI_thread;
 struct PSI_file;
+struct PSI_socket;
 struct PSI_table_locker;
 struct PSI_bootstrap
 {
@@ -63,11 +64,25 @@ enum PSI_table_operation
   PSI_TABLE_UPDATE_ROW= 4,
   PSI_TABLE_DELETE_ROW= 5
 };
+enum PSI_socket_operation
+{
+  PSI_SOCKET_CREATE= 0,
+  PSI_SOCKET_CONNECT= 1,
+  PSI_SOCKET_BIND= 2,
+  PSI_SOCKET_CLOSE= 3,
+  PSI_SOCKET_SEND= 4,
+  PSI_SOCKET_RECV= 5,
+  PSI_SOCKET_SEEK= 6,
+  PSI_SOCKET_OPT= 7,
+  PSI_SOCKET_STAT= 8,
+  PSI_SOCKET_SHUTDOWN= 9
+};
 typedef unsigned int PSI_mutex_key;
 typedef unsigned int PSI_rwlock_key;
 typedef unsigned int PSI_cond_key;
 typedef unsigned int PSI_thread_key;
 typedef unsigned int PSI_file_key;
+typedef unsigned int PSI_socket_key;
 struct PSI_mutex_info_v1
 {
   PSI_mutex_key *m_key;
@@ -98,6 +113,12 @@ struct PSI_file_info_v1
   const char *m_name;
   int m_flags;
 };
+struct PSI_socket_info_v1
+{
+  PSI_socket_key *m_key;
+  const char *m_name;
+  int m_flags;
+};
 struct PSI_mutex_locker_state_v1
 {
   uint m_flags;
@@ -164,6 +185,19 @@ struct PSI_table_locker_state_v1
   int m_src_line;
   void *m_wait;
 };
+struct PSI_socket_locker_state_v1
+{
+  uint m_flags;
+  struct PSI_socket *m_socket;
+  struct PSI_thread *m_thread;
+  size_t m_number_of_bytes;
+  ulonglong m_timer_start;
+  ulonglong (*m_timer)(void);
+  enum PSI_socket_operation m_operation;
+  const char* m_src_file;
+  int m_src_line;
+  void *m_wait;
+};
 typedef void (*register_mutex_v1_t)
   (const char *category, struct PSI_mutex_info_v1 *info, int count);
 typedef void (*register_rwlock_v1_t)
@@ -174,6 +208,8 @@ typedef void (*register_thread_v1_t)
   (const char *category, struct PSI_thread_info_v1 *info, int count);
 typedef void (*register_file_v1_t)
   (const char *category, struct PSI_file_info_v1 *info, int count);
+typedef void (*register_socket_v1_t)
+  (const char *category, struct PSI_socket_info_v1 *info, int count);
 typedef struct PSI_mutex* (*init_mutex_v1_t)
   (PSI_mutex_key key, const void *identity);
 typedef void (*destroy_mutex_v1_t)(struct PSI_mutex *mutex);
@@ -183,6 +219,9 @@ typedef void (*destroy_rwlock_v1_t)(stru
 typedef struct PSI_cond* (*init_cond_v1_t)
   (PSI_cond_key key, const void *identity);
 typedef void (*destroy_cond_v1_t)(struct PSI_cond *cond);
+typedef struct PSI_socket* (*init_socket_v1_t)
+  (PSI_socket_key key, const void *identity);
+typedef void (*destroy_socket_v1_t)(struct PSI_socket *socket);
 typedef struct PSI_table_share* (*get_table_share_v1_t)
   (my_bool temporary, struct TABLE_SHARE *share);
 typedef void (*release_table_share_v1_t)(struct PSI_table_share *share);
@@ -231,6 +270,9 @@ typedef struct PSI_file_locker* (*get_th
 typedef struct PSI_file_locker* (*get_thread_file_descriptor_locker_v1_t)
   (struct PSI_file_locker_state_v1 *state,
    File file, enum PSI_file_operation op);
+typedef struct PSI_socket_locker* (*get_thread_socket_locker_v1_t)
+  (struct PSI_socket_locker_state_v1 *state,
+   struct PSI_socket *socket, enum PSI_socket_operation op);
 typedef void (*unlock_mutex_v1_t)
   (struct PSI_mutex *mutex);
 typedef void (*unlock_rwlock_v1_t)
@@ -268,6 +310,18 @@ typedef void (*start_file_wait_v1_t)
    const char *src_file, uint src_line);
 typedef void (*end_file_wait_v1_t)
   (struct PSI_file_locker *locker, size_t count);
+typedef void (*start_socket_wait_v1_t)
+  (struct PSI_socket_locker *locker,
+   const char *src_file, uint src_line);
+typedef void (*end_socket_wait_v1_t)
+  (struct PSI_socket_locker *locker);
+typedef void (*set_socket_descriptor_v1_t)(struct PSI_socket *socket,
+                                             uint fd);
+typedef void (*set_socket_address_v1_t)(struct PSI_socket *socket,
+                                         const struct sockaddr * addr);
+typedef void (*set_socket_info_v1_t)(struct PSI_socket *socket,
+                                      uint fd,
+                                      const struct sockaddr * addr);
 struct PSI_v1
 {
   register_mutex_v1_t register_mutex;
@@ -275,12 +329,15 @@ struct PSI_v1
   register_cond_v1_t register_cond;
   register_thread_v1_t register_thread;
   register_file_v1_t register_file;
+  register_socket_v1_t register_socket;
   init_mutex_v1_t init_mutex;
   destroy_mutex_v1_t destroy_mutex;
   init_rwlock_v1_t init_rwlock;
   destroy_rwlock_v1_t destroy_rwlock;
   init_cond_v1_t init_cond;
   destroy_cond_v1_t destroy_cond;
+  init_socket_v1_t init_socket;
+  destroy_socket_v1_t destroy_socket;
   get_table_share_v1_t get_table_share;
   release_table_share_v1_t release_table_share;
   drop_table_share_v1_t drop_table_share;
@@ -301,6 +358,7 @@ struct PSI_v1
   get_thread_file_name_locker_v1_t get_thread_file_name_locker;
   get_thread_file_stream_locker_v1_t get_thread_file_stream_locker;
   get_thread_file_descriptor_locker_v1_t get_thread_file_descriptor_locker;
+  get_thread_socket_locker_v1_t get_thread_socket_locker;
   unlock_mutex_v1_t unlock_mutex;
   unlock_rwlock_v1_t unlock_rwlock;
   signal_cond_v1_t signal_cond;
@@ -321,6 +379,11 @@ struct PSI_v1
     end_file_open_wait_and_bind_to_descriptor;
   start_file_wait_v1_t start_file_wait;
   end_file_wait_v1_t end_file_wait;
+  start_socket_wait_v1_t start_socket_wait;
+  end_socket_wait_v1_t end_socket_wait;
+  set_socket_descriptor_v1_t set_socket_descriptor;
+  set_socket_address_v1_t set_socket_address;
+  set_socket_info_v1_t set_socket_info;
 };
 typedef struct PSI_v1 PSI;
 typedef struct PSI_mutex_info_v1 PSI_mutex_info;
@@ -328,10 +391,12 @@ typedef struct PSI_rwlock_info_v1 PSI_rw
 typedef struct PSI_cond_info_v1 PSI_cond_info;
 typedef struct PSI_thread_info_v1 PSI_thread_info;
 typedef struct PSI_file_info_v1 PSI_file_info;
+typedef struct PSI_socket_info_v1 PSI_socket_info;
 typedef struct PSI_mutex_locker_state_v1 PSI_mutex_locker_state;
 typedef struct PSI_rwlock_locker_state_v1 PSI_rwlock_locker_state;
 typedef struct PSI_cond_locker_state_v1 PSI_cond_locker_state;
 typedef struct PSI_file_locker_state_v1 PSI_file_locker_state;
 typedef struct PSI_table_locker_state_v1 PSI_table_locker_state;
+typedef struct PSI_socket_locker_state_v1 PSI_socket_locker_state;
 extern MYSQL_PLUGIN_IMPORT PSI *PSI_server;
 C_MODE_END

=== modified file 'include/mysql/psi/psi_abi_v2.h.pp'
--- a/include/mysql/psi/psi_abi_v2.h.pp	2010-08-04 03:19:48 +0000
+++ b/include/mysql/psi/psi_abi_v2.h.pp	2010-08-04 15:47:50 +0000
@@ -8,6 +8,7 @@ struct PSI_table_share;
 struct PSI_table;
 struct PSI_thread;
 struct PSI_file;
+struct PSI_socket;
 struct PSI_table_locker;
 struct PSI_bootstrap
 {
@@ -63,11 +64,25 @@ enum PSI_table_operation
   PSI_TABLE_UPDATE_ROW= 4,
   PSI_TABLE_DELETE_ROW= 5
 };
+enum PSI_socket_operation
+{
+  PSI_SOCKET_CREATE= 0,
+  PSI_SOCKET_CONNECT= 1,
+  PSI_SOCKET_BIND= 2,
+  PSI_SOCKET_CLOSE= 3,
+  PSI_SOCKET_SEND= 4,
+  PSI_SOCKET_RECV= 5,
+  PSI_SOCKET_SEEK= 6,
+  PSI_SOCKET_OPT= 7,
+  PSI_SOCKET_STAT= 8,
+  PSI_SOCKET_SHUTDOWN= 9
+};
 typedef unsigned int PSI_mutex_key;
 typedef unsigned int PSI_rwlock_key;
 typedef unsigned int PSI_cond_key;
 typedef unsigned int PSI_thread_key;
 typedef unsigned int PSI_file_key;
+typedef unsigned int PSI_socket_key;
 struct PSI_v2
 {
   int placeholder;
@@ -112,16 +127,22 @@ struct PSI_table_locker_state_v2
 {
   int placeholder;
 };
+struct PSI_socket_locker_state_v2
+{
+  int placeholder;
+};
 typedef struct PSI_v2 PSI;
 typedef struct PSI_mutex_info_v2 PSI_mutex_info;
 typedef struct PSI_rwlock_info_v2 PSI_rwlock_info;
 typedef struct PSI_cond_info_v2 PSI_cond_info;
 typedef struct PSI_thread_info_v2 PSI_thread_info;
 typedef struct PSI_file_info_v2 PSI_file_info;
+typedef struct PSI_socket_info_v2 PSI_socket_info;
 typedef struct PSI_mutex_locker_state_v2 PSI_mutex_locker_state;
 typedef struct PSI_rwlock_locker_state_v2 PSI_rwlock_locker_state;
 typedef struct PSI_cond_locker_state_v2 PSI_cond_locker_state;
 typedef struct PSI_file_locker_state_v2 PSI_file_locker_state;
 typedef struct PSI_table_locker_state_v2 PSI_table_locker_state;
+typedef struct PSI_socket_locker_state_v2 PSI_socket_locker_state;
 extern MYSQL_PLUGIN_IMPORT PSI *PSI_server;
 C_MODE_END

=== modified file 'sql/mysqld.cc'
--- a/sql/mysqld.cc	2010-08-04 03:19:48 +0000
+++ b/sql/mysqld.cc	2010-08-04 15:47:50 +0000
@@ -5308,8 +5308,8 @@ void handle_connections_sockets()
     {
       if (socket_errno != SOCKET_EINTR)
       {
-	if (!select_errors++ && !abort_loop)	/* purecov: inspected */
-	  sql_print_error("mysqld: Got error %d from select",socket_errno); /* purecov: inspected */
+        if (!select_errors++ && !abort_loop)	/* purecov: inspected */
+          sql_print_error("mysqld: Got error %d from select",socket_errno); /* purecov: inspected */
       }
       MAYBE_BROKEN_SYSCALL
       continue;
@@ -5364,18 +5364,17 @@ void handle_connections_sockets()
     for (uint retry=0; retry < MAX_ACCEPT_RETRY; retry++)
     {
       size_socket length= sizeof(struct sockaddr_storage);
-      new_sock= mysql_socket_accept(key_socket_handle_connection, sock, (struct sockaddr *)(&cAddr), &length);
-                       &length);
-      if (new_sock != INVALID_SOCKET ||
+      new_sock= mysql_socket_accept(key_socket_handle_connection, sock,
+                                    (struct sockaddr *)(&cAddr), &length);
       if (mysql_socket_getfd(new_sock) != INVALID_SOCKET ||
-	  (socket_errno != SOCKET_EINTR && socket_errno != SOCKET_EAGAIN))
-	break;
+          (socket_errno != SOCKET_EINTR && socket_errno != SOCKET_EAGAIN))
+        break;
       MAYBE_BROKEN_SYSCALL;
 #if !defined(NO_FCNTL_NONBLOCK)
       if (!(test_flags & TEST_BLOCKING))
       {
-	if (retry == MAX_ACCEPT_RETRY - 1)
-	  fcntl(mysql_socket_getfd(sock), F_SETFL, flags);		// Try without O_NONBLOCK
+        if (retry == MAX_ACCEPT_RETRY - 1)
+          fcntl(mysql_socket_getfd(sock), F_SETFL, flags);		// Try without O_NONBLOCK
       }
 #endif
     }
@@ -5386,10 +5385,10 @@ void handle_connections_sockets()
     if (mysql_socket_getfd(new_sock) == INVALID_SOCKET)
     {
       if ((error_count++ & 255) == 0)		// This can happen often
-	sql_perror("Error in accept");
+        sql_perror("Error in accept");
       MAYBE_BROKEN_SYSCALL;
       if (socket_errno == SOCKET_ENFILE || socket_errno == SOCKET_EMFILE)
-	sleep(1);				// Give other threads some time
+        sleep(1);				// Give other threads some time
       continue;
     }
 
@@ -5397,33 +5396,34 @@ void handle_connections_sockets()
     {
       if (mysql_socket_getfd(sock) == mysql_socket_getfd(ip_sock))
       {
-	struct request_info req;
-	signal(SIGCHLD, SIG_DFL);
-	request_init(&req, RQ_DAEMON, libwrapName, RQ_FILE, mysql_socket_getfd(new_sock), NULL); //TBD cwp
-	my_fromhost(&req);
-	if (!my_hosts_access(&req))
-	{
-	  /*
-	    This may be stupid but refuse() includes an exit(0)
-	    which we surely don't want...
-	    clean_exit() - same stupid thing ...
-	  */
-	  syslog(deny_severity, "refused connect from %s",
-		 my_eval_client(&req));
-
-	  /*
-	    C++ sucks (the gibberish in front just translates the supplied
-	    sink function pointer in the req structure from a void (*sink)();
-	    to a void(*sink)(int) if you omit the cast, the C++ compiler
-	    will cry...
-	  */
-	  if (req.sink)
-	    ((void (*)(int))req.sink)(req.fd);
-
-	  (void) mysql_socket_shutdown(new_sock, SHUT_RDWR);
-	  (void) mysql_socket_ closesocket(new_sock);
-	  continue;
-	}
+        struct request_info req;
+        signal(SIGCHLD, SIG_DFL);
+        request_init(&req, RQ_DAEMON, libwrapName, RQ_FILE, mysql_socket_getfd(new_sock), NULL); //TBD cwp
+        my_fromhost(&req);
+
+        if (!my_hosts_access(&req))
+        {
+          /*
+            This may be stupid but refuse() includes an exit(0)
+            which we surely don't want...
+            clean_exit() - same stupid thing ...
+          */
+          syslog(deny_severity, "refused connect from %s",
+           my_eval_client(&req));
+
+          /*
+            C++ sucks (the gibberish in front just translates the supplied
+            sink function pointer in the req structure from a void (*sink)();
+            to a void(*sink)(int) if you omit the cast, the C++ compiler
+            will cry...
+          */
+          if (req.sink)
+            ((void (*)(int))req.sink)(req.fd);
+
+          (void) mysql_socket_shutdown(new_sock, SHUT_RDWR);
+          (void) mysql_socket_ closesocket(new_sock);
+          continue;
+        }
       }
     }
 #endif /* HAVE_LIBWRAP */
@@ -5435,10 +5435,10 @@ void handle_connections_sockets()
       if (  mysql_socket_getsockname(new_sock, (struct sockaddr *)&dummy,
                   (SOCKET_SIZE_TYPE *)&dummyLen) < 0  )
       {
-	sql_perror("Error on new connection socket");
-	(void) mysql_socket_shutdown(new_sock, SHUT_RDWR);
-	(void) mysql_socket_close(new_sock);
-	continue;
+        sql_perror("Error on new connection socket");
+        (void) mysql_socket_shutdown(new_sock, SHUT_RDWR);
+        (void) mysql_socket_close(new_sock);
+        continue;
       }
     }
 
@@ -5453,10 +5453,10 @@ void handle_connections_sockets()
       continue;
     }
     if (!(vio_tmp=vio_new(mysql_socket_getfd(new_sock), //TBD cwp
-			  mysql_socket_getfd(sock) == mysql_socket_getfd(unix_sock) ? VIO_TYPE_SOCKET :
-			  VIO_TYPE_TCPIP,
-			  mysql_socket_getfd(sock) == mysql_socket_getfd(unix_sock) ? VIO_LOCALHOST: 0)) ||
-	my_net_init(&thd->net,vio_tmp))
+          mysql_socket_getfd(sock) == mysql_socket_getfd(unix_sock) ? VIO_TYPE_SOCKET :
+          VIO_TYPE_TCPIP,
+          mysql_socket_getfd(sock) == mysql_socket_getfd(unix_sock) ? VIO_LOCALHOST: 0)) ||
+          my_net_init(&thd->net,vio_tmp))
     {
       /*
         Only delete the temporary vio if we didn't already attach it to the
@@ -5467,8 +5467,8 @@ void handle_connections_sockets()
         vio_delete(vio_tmp);
       else
       {
-	(void) mysql_socket_shutdown(new_sock, SHUT_RDWR);
-	(void) mysql_socket_close(new_sock);
+        (void) mysql_socket_shutdown(new_sock, SHUT_RDWR);
+        (void) mysql_socket_close(new_sock);
       }
       delete thd;
       continue;

=== modified file 'storage/perfschema/pfs.cc'
--- a/storage/perfschema/pfs.cc	2010-08-04 03:19:48 +0000
+++ b/storage/perfschema/pfs.cc	2010-08-04 15:47:50 +0000
@@ -1702,6 +1702,7 @@ get_thread_socket_locker_v1(PSI_socket_l
   return reinterpret_cast<PSI_socket_locker*> (pfs_locker);
 }
 
+static void unlock_mutex_v1(PSI_mutex *mutex)
 {
   PFS_mutex *pfs_mutex= reinterpret_cast<PFS_mutex*> (mutex);
   DBUG_ASSERT(pfs_mutex != NULL);

=== modified file 'storage/perfschema/table_events_waits.cc'
--- a/storage/perfschema/table_events_waits.cc	2010-08-04 03:19:48 +0000
+++ b/storage/perfschema/table_events_waits.cc	2010-08-04 15:47:50 +0000
@@ -378,7 +378,19 @@ static const LEX_STRING operation_names_
   { C_STRING_WITH_LEN("fetch") },
   { C_STRING_WITH_LEN("insert") }, /* write row */
   { C_STRING_WITH_LEN("update") }, /* update row */
-  { C_STRING_WITH_LEN("delete") }  /* delete row */
+  { C_STRING_WITH_LEN("delete") },  /* delete row */
+
+  /* Socket operations */
+  { C_STRING_WITH_LEN("create") },
+  { C_STRING_WITH_LEN("connect") },
+  { C_STRING_WITH_LEN("bind") },
+  { C_STRING_WITH_LEN("close") },
+  { C_STRING_WITH_LEN("send") },
+  { C_STRING_WITH_LEN("receive") },
+  { C_STRING_WITH_LEN("seek") },
+  { C_STRING_WITH_LEN("opt") },
+  { C_STRING_WITH_LEN("stat") },
+  { C_STRING_WITH_LEN("shutdown") }
 };
 
 
@@ -390,8 +402,8 @@ int table_events_waits_common::read_row_
   Field *f;
   const LEX_STRING *operation;
 
-  compile_time_assert(COUNT_OPERATION_TYPE ==
-                      array_elements(operation_names_map));
+//  compile_time_assert(COUNT_OPERATION_TYPE ==
+//                      array_elements(operation_names_map));
 
   if (unlikely(! m_row_exists))
     return HA_ERR_RECORD_DELETED;

=== modified file 'storage/perfschema/table_helper.h'
--- a/storage/perfschema/table_helper.h	2010-07-02 17:25:26 +0000
+++ b/storage/perfschema/table_helper.h	2010-08-04 15:47:50 +0000
@@ -34,7 +34,8 @@ struct PFS_instrument_view_constants
   static const uint VIEW_COND= 3;
   static const uint VIEW_FILE= 4;
   static const uint VIEW_TABLE= 5;
-  static const uint LAST_VIEW= 5;
+  static const uint VIEW_SOCKET= 6;
+  static const uint LAST_VIEW= 6;
 };
 
 struct PFS_object_view_constants

=== added file 'storage/perfschema/table_helper.h.moved'
--- a/storage/perfschema/table_helper.h.moved	1970-01-01 00:00:00 +0000
+++ b/storage/perfschema/table_helper.h.moved	2010-08-04 15:47:50 +0000
@@ -0,0 +1,55 @@
+/* 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 */
+
+#ifndef PFS_TABLE_HELPER_H
+#define PFS_TABLE_HELPER_H
+
+/**
+  @file storage/perfschema/table_helper.h
+  Performance schema table helpers (declarations).
+*/
+
+/**
+  @addtogroup Performance_schema_tables
+  @{
+*/
+
+struct PFS_instrument_view_constants
+{
+  static const uint FIRST_VIEW= 1;
+  static const uint VIEW_MUTEX= 1;
+  static const uint VIEW_RWLOCK= 2;
+  static const uint VIEW_COND= 3;
+  static const uint VIEW_FILE= 4;
+  static const uint VIEW_TABLE= 5;
+  static const uint LAST_VIEW= 5;
+};
+
+struct PFS_object_view_constants
+{
+  static const uint FIRST_VIEW= 1;
+  static const uint VIEW_TABLE= 1;
+  static const uint LAST_VIEW= 1;
+
+  /* Future use */
+  static const uint VIEW_EVENT= 2;
+  static const uint VIEW_PROCEDURE= 3;
+  static const uint VIEW_FUNCTION= 4;
+};
+
+/** @} */
+
+#endif
+


Attachment: [text/bzr-bundle] bzr/chris.powers@oracle.com-20100804154750-qx0wf5c5shvyowdc.bundle
Thread
bzr push into mysql-next-mr-wl4896 branch (chris.powers:3159 to 3160) Christopher Powers4 Aug