From: Christopher Powers Date: March 29 2011 12:46am Subject: bzr commit into mysql-trunk branch (chris.powers:3274) WL#4896 List-Archive: http://lists.mysql.com/commits/134105 Message-Id: <20110329004622.DBC551DB0337@xeno.mysql.com> MIME-Version: 1.0 Content-Type: multipart/mixed; boundary="===============3740325538295178199==" --===============3740325538295178199== MIME-Version: 1.0 Content-Type: text/plain; charset="us-ascii" Content-Transfer-Encoding: 7bit Content-Disposition: inline #At file:///home/cpowers/work/dev/mysql-trunk-wl4896/ based on revid:cpowers@tma-1-20110328233710-el7vs7os5f3xtw77 3274 Christopher Powers 2011-03-28 WL#4896 "Performance Schema Net IO" - Updates for code review II. Intermediate version. modified: include/mysql/psi/psi_abi_v1.h.pp include/mysql/psi/psi_abi_v2.h.pp mysql-test/r/mysqld--help-notwin.result mysql-test/suite/perfschema/r/aggregate.result mysql-test/suite/perfschema/r/pfs_upgrade_lc0.result mysql-test/suite/perfschema/r/start_server_innodb.result mysql-test/suite/perfschema/r/start_server_no_stage_class.result mysql-test/suite/perfschema/r/start_server_no_statement_class.result storage/perfschema/pfs.cc === modified file 'include/mysql/psi/psi_abi_v1.h.pp' --- a/include/mysql/psi/psi_abi_v1.h.pp 2011-03-28 20:15:26 +0000 +++ b/include/mysql/psi/psi_abi_v1.h.pp 2011-03-29 00:46:15 +0000 @@ -10,10 +10,12 @@ struct PSI_thread; struct PSI_file; struct PSI_table_locker; struct PSI_statement_locker; +struct PSI_socket; struct PSI_bootstrap { void* (*get_interface)(int version); }; +struct PSI_idle_locker; struct PSI_mutex_locker; struct PSI_rwlock_locker; struct PSI_cond_locker; @@ -67,6 +69,28 @@ enum PSI_table_lock_operation PSI_TABLE_LOCK= 0, PSI_TABLE_EXTERNAL_LOCK= 1 }; +enum PSI_socket_state +{ + PSI_SOCKET_STATE_IDLE= 1, + PSI_SOCKET_STATE_ACTIVE= 2 +}; +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_SENDTO= 6, + PSI_SOCKET_RECVFROM= 7, + PSI_SOCKET_SENDMSG= 8, + PSI_SOCKET_RECVMSG= 9, + PSI_SOCKET_SEEK= 10, + PSI_SOCKET_OPT= 11, + PSI_SOCKET_STAT= 12, + PSI_SOCKET_SHUTDOWN= 13 +}; typedef unsigned int PSI_mutex_key; typedef unsigned int PSI_rwlock_key; typedef unsigned int PSI_cond_key; @@ -74,6 +98,7 @@ typedef unsigned int PSI_thread_key; typedef unsigned int PSI_file_key; typedef unsigned int PSI_stage_key; typedef unsigned int PSI_statement_key; +typedef unsigned int PSI_socket_key; struct PSI_mutex_info_v1 { PSI_mutex_key *m_key; @@ -116,6 +141,20 @@ struct PSI_statement_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_idle_locker_state_v1 +{ + uint m_flags; + struct PSI_thread *m_thread; + ulonglong m_timer_start; + ulonglong (*m_timer)(void); + void *m_wait; +}; struct PSI_mutex_locker_state_v1 { uint m_flags; @@ -208,6 +247,19 @@ struct PSI_statement_locker_state_v1 ulonglong m_no_index_used; ulonglong m_no_good_index_used; }; +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) @@ -222,6 +274,8 @@ typedef void (*register_stage_v1_t) (const char *category, struct PSI_stage_info_v1 **info, int count); typedef void (*register_statement_v1_t) (const char *category, struct PSI_statement_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); @@ -231,6 +285,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 my_socket *fd); +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); @@ -290,6 +347,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) @@ -298,6 +358,10 @@ typedef void (*signal_cond_v1_t) (struct PSI_cond *cond); typedef void (*broadcast_cond_v1_t) (struct PSI_cond *cond); +typedef struct PSI_idle_locker* (*start_idle_wait_v1_t) + (struct PSI_idle_locker_state_v1 *state, const char *src_file, uint src_line); +typedef void (*end_idle_wait_v1_t) + (struct PSI_idle_locker *locker); typedef void (*start_mutex_wait_v1_t) (struct PSI_mutex_locker *locker, const char *src_file, uint src_line); typedef void (*end_mutex_wait_v1_t) @@ -380,6 +444,18 @@ typedef void (*set_statement_no_good_ind (struct PSI_statement_locker *locker); typedef void (*end_statement_v1_t) (struct PSI_statement_locker *locker, void *stmt_da); +typedef void (*start_socket_wait_v1_t) + (struct PSI_socket_locker *locker, size_t count, + const char *src_file, uint src_line); +typedef void (*end_socket_wait_v1_t) + (struct PSI_socket_locker *locker, size_t count); +typedef void (*set_socket_state_v1_t)(struct PSI_socket *socket, + enum PSI_socket_state state); +typedef void (*set_socket_info_v1_t)(struct PSI_socket *socket, + const my_socket *fd, + const struct sockaddr *addr, + socklen_t addr_len); +typedef void (*set_socket_thread_owner_v1_t)(struct PSI_socket *socket); struct PSI_v1 { register_mutex_v1_t register_mutex; @@ -389,12 +465,15 @@ struct PSI_v1 register_file_v1_t register_file; register_stage_v1_t register_stage; register_statement_v1_t register_statement; + 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; @@ -423,10 +502,13 @@ 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; broadcast_cond_v1_t broadcast_cond; + start_idle_wait_v1_t start_idle_wait; + end_idle_wait_v1_t end_idle_wait; start_mutex_wait_v1_t start_mutex_wait; end_mutex_wait_v1_t end_mutex_wait; start_rwlock_rdwait_v1_t start_rwlock_rdwait; @@ -468,6 +550,11 @@ struct PSI_v1 set_statement_no_index_used_t set_statement_no_index_used; set_statement_no_good_index_used_t set_statement_no_good_index_used; end_statement_v1_t end_statement; + start_socket_wait_v1_t start_socket_wait; + end_socket_wait_v1_t end_socket_wait; + set_socket_state_v1_t set_socket_state; + set_socket_info_v1_t set_socket_info; + set_socket_thread_owner_v1_t set_socket_thread_owner; }; typedef struct PSI_v1 PSI; typedef struct PSI_mutex_info_v1 PSI_mutex_info; @@ -477,11 +564,14 @@ typedef struct PSI_thread_info_v1 PSI_th typedef struct PSI_file_info_v1 PSI_file_info; typedef struct PSI_stage_info_v1 PSI_stage_info; typedef struct PSI_statement_info_v1 PSI_statement_info; +typedef struct PSI_socket_info_v1 PSI_socket_info; +typedef struct PSI_idle_locker_state_v1 PSI_idle_locker_state; 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_statement_locker_state_v1 PSI_statement_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 2011-03-28 20:15:26 +0000 +++ b/include/mysql/psi/psi_abi_v2.h.pp 2011-03-29 00:46:15 +0000 @@ -10,10 +10,12 @@ struct PSI_thread; struct PSI_file; struct PSI_table_locker; struct PSI_statement_locker; +struct PSI_socket; struct PSI_bootstrap { void* (*get_interface)(int version); }; +struct PSI_idle_locker; struct PSI_mutex_locker; struct PSI_rwlock_locker; struct PSI_cond_locker; @@ -67,6 +69,28 @@ enum PSI_table_lock_operation PSI_TABLE_LOCK= 0, PSI_TABLE_EXTERNAL_LOCK= 1 }; +enum PSI_socket_state +{ + PSI_SOCKET_STATE_IDLE= 1, + PSI_SOCKET_STATE_ACTIVE= 2 +}; +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_SENDTO= 6, + PSI_SOCKET_RECVFROM= 7, + PSI_SOCKET_SENDMSG= 8, + PSI_SOCKET_RECVMSG= 9, + PSI_SOCKET_SEEK= 10, + PSI_SOCKET_OPT= 11, + PSI_SOCKET_STAT= 12, + PSI_SOCKET_SHUTDOWN= 13 +}; typedef unsigned int PSI_mutex_key; typedef unsigned int PSI_rwlock_key; typedef unsigned int PSI_cond_key; @@ -74,6 +98,7 @@ typedef unsigned int PSI_thread_key; typedef unsigned int PSI_file_key; typedef unsigned int PSI_stage_key; typedef unsigned int PSI_statement_key; +typedef unsigned int PSI_socket_key; struct PSI_v2 { int placeholder; @@ -98,6 +123,10 @@ struct PSI_file_info_v2 { int placeholder; }; +struct PSI_idle_locker_state_v2 +{ + int placeholder; +}; struct PSI_mutex_locker_state_v2 { int placeholder; @@ -122,6 +151,10 @@ struct PSI_statement_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; @@ -130,11 +163,14 @@ typedef struct PSI_thread_info_v2 PSI_th typedef struct PSI_file_info_v2 PSI_file_info; typedef struct PSI_stage_info_v2 PSI_stage_info; typedef struct PSI_statement_info_v2 PSI_statement_info; +typedef struct PSI_socket_info_v2 PSI_socket_info; +typedef struct PSI_idle_locker_state_v2 PSI_idle_locker_state; 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_statement_locker_state_v2 PSI_statement_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 'mysql-test/r/mysqld--help-notwin.result' --- a/mysql-test/r/mysqld--help-notwin.result 2011-03-28 20:15:26 +0000 +++ b/mysql-test/r/mysqld--help-notwin.result 2011-03-29 00:46:15 +0000 @@ -460,6 +460,10 @@ The following options may be given as th Maximum number of rwlock instruments. --performance-schema-max-rwlock-instances=# Maximum number of instrumented RWLOCK objects. + --performance-schema-max-socket-classes=# + Maximum number of socket instruments. + --performance-schema-max-socket-instances=# + Maximum number of opened instrumented sockets. --performance-schema-max-stage-classes=# Maximum number of stage instruments. --performance-schema-max-statement-classes=# @@ -916,6 +920,8 @@ performance-schema-max-mutex-classes 200 performance-schema-max-mutex-instances 1000000 performance-schema-max-rwlock-classes 30 performance-schema-max-rwlock-instances 1000000 +performance-schema-max-socket-classes 10 +performance-schema-max-socket-instances 1000 performance-schema-max-stage-classes 100 performance-schema-max-statement-classes 165 performance-schema-max-table-handles 10000 === modified file 'mysql-test/suite/perfschema/r/aggregate.result' --- a/mysql-test/suite/perfschema/r/aggregate.result 2011-02-25 21:49:11 +0000 +++ b/mysql-test/suite/perfschema/r/aggregate.result 2011-03-29 00:46:15 +0000 @@ -71,6 +71,7 @@ GROUP BY EVENT_NAME HAVING (e.SUM_TIMER_WAIT < SUM(i.SUM_TIMER_WAIT)) OR @dump_all; EVENT_NAME SUM_TIMER_WAIT SUM(i.SUM_TIMER_WAIT) +wait/io/socket/com/client_connection 0 16887000 SELECT EVENT_NAME, e.MIN_TIMER_WAIT, MIN(i.MIN_TIMER_WAIT) FROM performance_schema.events_waits_summary_global_by_event_name AS e JOIN performance_schema.events_waits_summary_by_instance AS i USING (EVENT_NAME) @@ -86,6 +87,7 @@ GROUP BY EVENT_NAME HAVING (e.MAX_TIMER_WAIT < MAX(i.MAX_TIMER_WAIT)) OR @dump_all; EVENT_NAME MAX_TIMER_WAIT MAX(i.MAX_TIMER_WAIT) +wait/io/socket/com/client_connection 0 10950000 "Verifying waits aggregate consistency (thread)" SELECT EVENT_NAME, e.SUM_TIMER_WAIT, SUM(t.SUM_TIMER_WAIT) FROM performance_schema.events_waits_summary_global_by_event_name AS e @@ -95,6 +97,7 @@ GROUP BY EVENT_NAME HAVING (e.SUM_TIMER_WAIT < SUM(t.SUM_TIMER_WAIT)) OR @dump_all; EVENT_NAME SUM_TIMER_WAIT SUM(t.SUM_TIMER_WAIT) +wait/io/socket/com/client_connection 0 16887000 SELECT EVENT_NAME, e.MIN_TIMER_WAIT, MIN(t.MIN_TIMER_WAIT) FROM performance_schema.events_waits_summary_global_by_event_name AS e JOIN performance_schema.events_waits_summary_by_thread_by_event_name AS t @@ -112,6 +115,7 @@ GROUP BY EVENT_NAME HAVING (e.MAX_TIMER_WAIT < MAX(t.MAX_TIMER_WAIT)) OR @dump_all; EVENT_NAME MAX_TIMER_WAIT MAX(t.MAX_TIMER_WAIT) +wait/io/socket/com/client_connection 0 10950000 update performance_schema.setup_consumers set enabled = 'YES'; update performance_schema.setup_instruments set enabled = 'YES', timed = 'YES'; === modified file 'mysql-test/suite/perfschema/r/pfs_upgrade_lc0.result' --- a/mysql-test/suite/perfschema/r/pfs_upgrade_lc0.result 2011-03-28 20:15:26 +0000 +++ b/mysql-test/suite/perfschema/r/pfs_upgrade_lc0.result 2011-03-29 00:46:15 +0000 @@ -18,30 +18,33 @@ ERROR 1050 (42S01) at line 180: Table 'e ERROR 1050 (42S01) at line 189: Table 'file_instances' already exists ERROR 1050 (42S01) at line 200: Table 'file_summary_by_event_name' already exists ERROR 1050 (42S01) at line 212: Table 'file_summary_by_instance' already exists -ERROR 1050 (42S01) at line 221: Table 'mutex_instances' already exists -ERROR 1050 (42S01) at line 235: Table 'objects_summary_global_by_type' already exists -ERROR 1050 (42S01) at line 245: Table 'performance_timers' already exists -ERROR 1050 (42S01) at line 255: Table 'rwlock_instances' already exists -ERROR 1050 (42S01) at line 264: Table 'setup_actors' already exists -ERROR 1050 (42S01) at line 272: Table 'setup_consumers' already exists -ERROR 1050 (42S01) at line 281: Table 'setup_instruments' already exists -ERROR 1050 (42S01) at line 291: Table 'setup_objects' already exists -ERROR 1050 (42S01) at line 299: Table 'setup_timers' already exists -ERROR 1050 (42S01) at line 344: Table 'table_io_waits_summary_by_index_usage' already exists -ERROR 1050 (42S01) at line 388: Table 'table_io_waits_summary_by_table' already exists -ERROR 1050 (42S01) at line 467: Table 'table_lock_waits_summary_by_table' already exists -ERROR 1050 (42S01) at line 487: Table 'threads' already exists -ERROR 1050 (42S01) at line 502: Table 'events_stages_current' already exists -ERROR 1050 (42S01) at line 517: Table 'events_stages_history' already exists -ERROR 1050 (42S01) at line 532: Table 'events_stages_history_long' already exists -ERROR 1050 (42S01) at line 545: Table 'events_stages_summary_by_thread_by_event_name' already exists -ERROR 1050 (42S01) at line 557: Table 'events_stages_summary_global_by_event_name' already exists -ERROR 1050 (42S01) at line 600: Table 'events_statements_current' already exists -ERROR 1050 (42S01) at line 643: Table 'events_statements_history' already exists -ERROR 1050 (42S01) at line 686: Table 'events_statements_history_long' already exists -ERROR 1050 (42S01) at line 718: Table 'events_statements_summary_by_thread_by_event_name' already exists -ERROR 1050 (42S01) at line 749: Table 'events_statements_summary_global_by_event_name' already exists -ERROR 1644 (HY000) at line 1169: Unexpected content found in the performance_schema database. +ERROR 1050 (42S01) at line 225: Table 'socket_instances' already exists +ERROR 1050 (42S01) at line 256: Table 'socket_summary_by_instance' already exists +ERROR 1050 (42S01) at line 285: Table 'socket_summary_by_event_name' already exists +ERROR 1050 (42S01) at line 294: Table 'mutex_instances' already exists +ERROR 1050 (42S01) at line 308: Table 'objects_summary_global_by_type' already exists +ERROR 1050 (42S01) at line 318: Table 'performance_timers' already exists +ERROR 1050 (42S01) at line 328: Table 'rwlock_instances' already exists +ERROR 1050 (42S01) at line 337: Table 'setup_actors' already exists +ERROR 1050 (42S01) at line 345: Table 'setup_consumers' already exists +ERROR 1050 (42S01) at line 354: Table 'setup_instruments' already exists +ERROR 1050 (42S01) at line 364: Table 'setup_objects' already exists +ERROR 1050 (42S01) at line 372: Table 'setup_timers' already exists +ERROR 1050 (42S01) at line 417: Table 'table_io_waits_summary_by_index_usage' already exists +ERROR 1050 (42S01) at line 461: Table 'table_io_waits_summary_by_table' already exists +ERROR 1050 (42S01) at line 540: Table 'table_lock_waits_summary_by_table' already exists +ERROR 1050 (42S01) at line 560: Table 'threads' already exists +ERROR 1050 (42S01) at line 575: Table 'events_stages_current' already exists +ERROR 1050 (42S01) at line 590: Table 'events_stages_history' already exists +ERROR 1050 (42S01) at line 605: Table 'events_stages_history_long' already exists +ERROR 1050 (42S01) at line 618: Table 'events_stages_summary_by_thread_by_event_name' already exists +ERROR 1050 (42S01) at line 630: Table 'events_stages_summary_global_by_event_name' already exists +ERROR 1050 (42S01) at line 673: Table 'events_statements_current' already exists +ERROR 1050 (42S01) at line 716: Table 'events_statements_history' already exists +ERROR 1050 (42S01) at line 759: Table 'events_statements_history_long' already exists +ERROR 1050 (42S01) at line 791: Table 'events_statements_summary_by_thread_by_event_name' already exists +ERROR 1050 (42S01) at line 822: Table 'events_statements_summary_global_by_event_name' already exists +ERROR 1644 (HY000) at line 1242: Unexpected content found in the performance_schema database. FATAL ERROR: Upgrade failed show tables like "user_table"; Tables_in_performance_schema (user_table) @@ -64,30 +67,33 @@ ERROR 1050 (42S01) at line 180: Table 'e ERROR 1050 (42S01) at line 189: Table 'file_instances' already exists ERROR 1050 (42S01) at line 200: Table 'file_summary_by_event_name' already exists ERROR 1050 (42S01) at line 212: Table 'file_summary_by_instance' already exists -ERROR 1050 (42S01) at line 221: Table 'mutex_instances' already exists -ERROR 1050 (42S01) at line 235: Table 'objects_summary_global_by_type' already exists -ERROR 1050 (42S01) at line 245: Table 'performance_timers' already exists -ERROR 1050 (42S01) at line 255: Table 'rwlock_instances' already exists -ERROR 1050 (42S01) at line 264: Table 'setup_actors' already exists -ERROR 1050 (42S01) at line 272: Table 'setup_consumers' already exists -ERROR 1050 (42S01) at line 281: Table 'setup_instruments' already exists -ERROR 1050 (42S01) at line 291: Table 'setup_objects' already exists -ERROR 1050 (42S01) at line 299: Table 'setup_timers' already exists -ERROR 1050 (42S01) at line 344: Table 'table_io_waits_summary_by_index_usage' already exists -ERROR 1050 (42S01) at line 388: Table 'table_io_waits_summary_by_table' already exists -ERROR 1050 (42S01) at line 467: Table 'table_lock_waits_summary_by_table' already exists -ERROR 1050 (42S01) at line 487: Table 'threads' already exists -ERROR 1050 (42S01) at line 502: Table 'events_stages_current' already exists -ERROR 1050 (42S01) at line 517: Table 'events_stages_history' already exists -ERROR 1050 (42S01) at line 532: Table 'events_stages_history_long' already exists -ERROR 1050 (42S01) at line 545: Table 'events_stages_summary_by_thread_by_event_name' already exists -ERROR 1050 (42S01) at line 557: Table 'events_stages_summary_global_by_event_name' already exists -ERROR 1050 (42S01) at line 600: Table 'events_statements_current' already exists -ERROR 1050 (42S01) at line 643: Table 'events_statements_history' already exists -ERROR 1050 (42S01) at line 686: Table 'events_statements_history_long' already exists -ERROR 1050 (42S01) at line 718: Table 'events_statements_summary_by_thread_by_event_name' already exists -ERROR 1050 (42S01) at line 749: Table 'events_statements_summary_global_by_event_name' already exists -ERROR 1644 (HY000) at line 1169: Unexpected content found in the performance_schema database. +ERROR 1050 (42S01) at line 225: Table 'socket_instances' already exists +ERROR 1050 (42S01) at line 256: Table 'socket_summary_by_instance' already exists +ERROR 1050 (42S01) at line 285: Table 'socket_summary_by_event_name' already exists +ERROR 1050 (42S01) at line 294: Table 'mutex_instances' already exists +ERROR 1050 (42S01) at line 308: Table 'objects_summary_global_by_type' already exists +ERROR 1050 (42S01) at line 318: Table 'performance_timers' already exists +ERROR 1050 (42S01) at line 328: Table 'rwlock_instances' already exists +ERROR 1050 (42S01) at line 337: Table 'setup_actors' already exists +ERROR 1050 (42S01) at line 345: Table 'setup_consumers' already exists +ERROR 1050 (42S01) at line 354: Table 'setup_instruments' already exists +ERROR 1050 (42S01) at line 364: Table 'setup_objects' already exists +ERROR 1050 (42S01) at line 372: Table 'setup_timers' already exists +ERROR 1050 (42S01) at line 417: Table 'table_io_waits_summary_by_index_usage' already exists +ERROR 1050 (42S01) at line 461: Table 'table_io_waits_summary_by_table' already exists +ERROR 1050 (42S01) at line 540: Table 'table_lock_waits_summary_by_table' already exists +ERROR 1050 (42S01) at line 560: Table 'threads' already exists +ERROR 1050 (42S01) at line 575: Table 'events_stages_current' already exists +ERROR 1050 (42S01) at line 590: Table 'events_stages_history' already exists +ERROR 1050 (42S01) at line 605: Table 'events_stages_history_long' already exists +ERROR 1050 (42S01) at line 618: Table 'events_stages_summary_by_thread_by_event_name' already exists +ERROR 1050 (42S01) at line 630: Table 'events_stages_summary_global_by_event_name' already exists +ERROR 1050 (42S01) at line 673: Table 'events_statements_current' already exists +ERROR 1050 (42S01) at line 716: Table 'events_statements_history' already exists +ERROR 1050 (42S01) at line 759: Table 'events_statements_history_long' already exists +ERROR 1050 (42S01) at line 791: Table 'events_statements_summary_by_thread_by_event_name' already exists +ERROR 1050 (42S01) at line 822: Table 'events_statements_summary_global_by_event_name' already exists +ERROR 1644 (HY000) at line 1242: Unexpected content found in the performance_schema database. FATAL ERROR: Upgrade failed show tables like "user_view"; Tables_in_performance_schema (user_view) @@ -108,30 +114,33 @@ ERROR 1050 (42S01) at line 180: Table 'e ERROR 1050 (42S01) at line 189: Table 'file_instances' already exists ERROR 1050 (42S01) at line 200: Table 'file_summary_by_event_name' already exists ERROR 1050 (42S01) at line 212: Table 'file_summary_by_instance' already exists -ERROR 1050 (42S01) at line 221: Table 'mutex_instances' already exists -ERROR 1050 (42S01) at line 235: Table 'objects_summary_global_by_type' already exists -ERROR 1050 (42S01) at line 245: Table 'performance_timers' already exists -ERROR 1050 (42S01) at line 255: Table 'rwlock_instances' already exists -ERROR 1050 (42S01) at line 264: Table 'setup_actors' already exists -ERROR 1050 (42S01) at line 272: Table 'setup_consumers' already exists -ERROR 1050 (42S01) at line 281: Table 'setup_instruments' already exists -ERROR 1050 (42S01) at line 291: Table 'setup_objects' already exists -ERROR 1050 (42S01) at line 299: Table 'setup_timers' already exists -ERROR 1050 (42S01) at line 344: Table 'table_io_waits_summary_by_index_usage' already exists -ERROR 1050 (42S01) at line 388: Table 'table_io_waits_summary_by_table' already exists -ERROR 1050 (42S01) at line 467: Table 'table_lock_waits_summary_by_table' already exists -ERROR 1050 (42S01) at line 487: Table 'threads' already exists -ERROR 1050 (42S01) at line 502: Table 'events_stages_current' already exists -ERROR 1050 (42S01) at line 517: Table 'events_stages_history' already exists -ERROR 1050 (42S01) at line 532: Table 'events_stages_history_long' already exists -ERROR 1050 (42S01) at line 545: Table 'events_stages_summary_by_thread_by_event_name' already exists -ERROR 1050 (42S01) at line 557: Table 'events_stages_summary_global_by_event_name' already exists -ERROR 1050 (42S01) at line 600: Table 'events_statements_current' already exists -ERROR 1050 (42S01) at line 643: Table 'events_statements_history' already exists -ERROR 1050 (42S01) at line 686: Table 'events_statements_history_long' already exists -ERROR 1050 (42S01) at line 718: Table 'events_statements_summary_by_thread_by_event_name' already exists -ERROR 1050 (42S01) at line 749: Table 'events_statements_summary_global_by_event_name' already exists -ERROR 1644 (HY000) at line 1169: Unexpected content found in the performance_schema database. +ERROR 1050 (42S01) at line 225: Table 'socket_instances' already exists +ERROR 1050 (42S01) at line 256: Table 'socket_summary_by_instance' already exists +ERROR 1050 (42S01) at line 285: Table 'socket_summary_by_event_name' already exists +ERROR 1050 (42S01) at line 294: Table 'mutex_instances' already exists +ERROR 1050 (42S01) at line 308: Table 'objects_summary_global_by_type' already exists +ERROR 1050 (42S01) at line 318: Table 'performance_timers' already exists +ERROR 1050 (42S01) at line 328: Table 'rwlock_instances' already exists +ERROR 1050 (42S01) at line 337: Table 'setup_actors' already exists +ERROR 1050 (42S01) at line 345: Table 'setup_consumers' already exists +ERROR 1050 (42S01) at line 354: Table 'setup_instruments' already exists +ERROR 1050 (42S01) at line 364: Table 'setup_objects' already exists +ERROR 1050 (42S01) at line 372: Table 'setup_timers' already exists +ERROR 1050 (42S01) at line 417: Table 'table_io_waits_summary_by_index_usage' already exists +ERROR 1050 (42S01) at line 461: Table 'table_io_waits_summary_by_table' already exists +ERROR 1050 (42S01) at line 540: Table 'table_lock_waits_summary_by_table' already exists +ERROR 1050 (42S01) at line 560: Table 'threads' already exists +ERROR 1050 (42S01) at line 575: Table 'events_stages_current' already exists +ERROR 1050 (42S01) at line 590: Table 'events_stages_history' already exists +ERROR 1050 (42S01) at line 605: Table 'events_stages_history_long' already exists +ERROR 1050 (42S01) at line 618: Table 'events_stages_summary_by_thread_by_event_name' already exists +ERROR 1050 (42S01) at line 630: Table 'events_stages_summary_global_by_event_name' already exists +ERROR 1050 (42S01) at line 673: Table 'events_statements_current' already exists +ERROR 1050 (42S01) at line 716: Table 'events_statements_history' already exists +ERROR 1050 (42S01) at line 759: Table 'events_statements_history_long' already exists +ERROR 1050 (42S01) at line 791: Table 'events_statements_summary_by_thread_by_event_name' already exists +ERROR 1050 (42S01) at line 822: Table 'events_statements_summary_global_by_event_name' already exists +ERROR 1644 (HY000) at line 1242: Unexpected content found in the performance_schema database. FATAL ERROR: Upgrade failed select name from mysql.proc where db='performance_schema'; name @@ -152,30 +161,33 @@ ERROR 1050 (42S01) at line 180: Table 'e ERROR 1050 (42S01) at line 189: Table 'file_instances' already exists ERROR 1050 (42S01) at line 200: Table 'file_summary_by_event_name' already exists ERROR 1050 (42S01) at line 212: Table 'file_summary_by_instance' already exists -ERROR 1050 (42S01) at line 221: Table 'mutex_instances' already exists -ERROR 1050 (42S01) at line 235: Table 'objects_summary_global_by_type' already exists -ERROR 1050 (42S01) at line 245: Table 'performance_timers' already exists -ERROR 1050 (42S01) at line 255: Table 'rwlock_instances' already exists -ERROR 1050 (42S01) at line 264: Table 'setup_actors' already exists -ERROR 1050 (42S01) at line 272: Table 'setup_consumers' already exists -ERROR 1050 (42S01) at line 281: Table 'setup_instruments' already exists -ERROR 1050 (42S01) at line 291: Table 'setup_objects' already exists -ERROR 1050 (42S01) at line 299: Table 'setup_timers' already exists -ERROR 1050 (42S01) at line 344: Table 'table_io_waits_summary_by_index_usage' already exists -ERROR 1050 (42S01) at line 388: Table 'table_io_waits_summary_by_table' already exists -ERROR 1050 (42S01) at line 467: Table 'table_lock_waits_summary_by_table' already exists -ERROR 1050 (42S01) at line 487: Table 'threads' already exists -ERROR 1050 (42S01) at line 502: Table 'events_stages_current' already exists -ERROR 1050 (42S01) at line 517: Table 'events_stages_history' already exists -ERROR 1050 (42S01) at line 532: Table 'events_stages_history_long' already exists -ERROR 1050 (42S01) at line 545: Table 'events_stages_summary_by_thread_by_event_name' already exists -ERROR 1050 (42S01) at line 557: Table 'events_stages_summary_global_by_event_name' already exists -ERROR 1050 (42S01) at line 600: Table 'events_statements_current' already exists -ERROR 1050 (42S01) at line 643: Table 'events_statements_history' already exists -ERROR 1050 (42S01) at line 686: Table 'events_statements_history_long' already exists -ERROR 1050 (42S01) at line 718: Table 'events_statements_summary_by_thread_by_event_name' already exists -ERROR 1050 (42S01) at line 749: Table 'events_statements_summary_global_by_event_name' already exists -ERROR 1644 (HY000) at line 1169: Unexpected content found in the performance_schema database. +ERROR 1050 (42S01) at line 225: Table 'socket_instances' already exists +ERROR 1050 (42S01) at line 256: Table 'socket_summary_by_instance' already exists +ERROR 1050 (42S01) at line 285: Table 'socket_summary_by_event_name' already exists +ERROR 1050 (42S01) at line 294: Table 'mutex_instances' already exists +ERROR 1050 (42S01) at line 308: Table 'objects_summary_global_by_type' already exists +ERROR 1050 (42S01) at line 318: Table 'performance_timers' already exists +ERROR 1050 (42S01) at line 328: Table 'rwlock_instances' already exists +ERROR 1050 (42S01) at line 337: Table 'setup_actors' already exists +ERROR 1050 (42S01) at line 345: Table 'setup_consumers' already exists +ERROR 1050 (42S01) at line 354: Table 'setup_instruments' already exists +ERROR 1050 (42S01) at line 364: Table 'setup_objects' already exists +ERROR 1050 (42S01) at line 372: Table 'setup_timers' already exists +ERROR 1050 (42S01) at line 417: Table 'table_io_waits_summary_by_index_usage' already exists +ERROR 1050 (42S01) at line 461: Table 'table_io_waits_summary_by_table' already exists +ERROR 1050 (42S01) at line 540: Table 'table_lock_waits_summary_by_table' already exists +ERROR 1050 (42S01) at line 560: Table 'threads' already exists +ERROR 1050 (42S01) at line 575: Table 'events_stages_current' already exists +ERROR 1050 (42S01) at line 590: Table 'events_stages_history' already exists +ERROR 1050 (42S01) at line 605: Table 'events_stages_history_long' already exists +ERROR 1050 (42S01) at line 618: Table 'events_stages_summary_by_thread_by_event_name' already exists +ERROR 1050 (42S01) at line 630: Table 'events_stages_summary_global_by_event_name' already exists +ERROR 1050 (42S01) at line 673: Table 'events_statements_current' already exists +ERROR 1050 (42S01) at line 716: Table 'events_statements_history' already exists +ERROR 1050 (42S01) at line 759: Table 'events_statements_history_long' already exists +ERROR 1050 (42S01) at line 791: Table 'events_statements_summary_by_thread_by_event_name' already exists +ERROR 1050 (42S01) at line 822: Table 'events_statements_summary_global_by_event_name' already exists +ERROR 1644 (HY000) at line 1242: Unexpected content found in the performance_schema database. FATAL ERROR: Upgrade failed select name from mysql.proc where db='performance_schema'; name @@ -196,30 +208,33 @@ ERROR 1050 (42S01) at line 180: Table 'e ERROR 1050 (42S01) at line 189: Table 'file_instances' already exists ERROR 1050 (42S01) at line 200: Table 'file_summary_by_event_name' already exists ERROR 1050 (42S01) at line 212: Table 'file_summary_by_instance' already exists -ERROR 1050 (42S01) at line 221: Table 'mutex_instances' already exists -ERROR 1050 (42S01) at line 235: Table 'objects_summary_global_by_type' already exists -ERROR 1050 (42S01) at line 245: Table 'performance_timers' already exists -ERROR 1050 (42S01) at line 255: Table 'rwlock_instances' already exists -ERROR 1050 (42S01) at line 264: Table 'setup_actors' already exists -ERROR 1050 (42S01) at line 272: Table 'setup_consumers' already exists -ERROR 1050 (42S01) at line 281: Table 'setup_instruments' already exists -ERROR 1050 (42S01) at line 291: Table 'setup_objects' already exists -ERROR 1050 (42S01) at line 299: Table 'setup_timers' already exists -ERROR 1050 (42S01) at line 344: Table 'table_io_waits_summary_by_index_usage' already exists -ERROR 1050 (42S01) at line 388: Table 'table_io_waits_summary_by_table' already exists -ERROR 1050 (42S01) at line 467: Table 'table_lock_waits_summary_by_table' already exists -ERROR 1050 (42S01) at line 487: Table 'threads' already exists -ERROR 1050 (42S01) at line 502: Table 'events_stages_current' already exists -ERROR 1050 (42S01) at line 517: Table 'events_stages_history' already exists -ERROR 1050 (42S01) at line 532: Table 'events_stages_history_long' already exists -ERROR 1050 (42S01) at line 545: Table 'events_stages_summary_by_thread_by_event_name' already exists -ERROR 1050 (42S01) at line 557: Table 'events_stages_summary_global_by_event_name' already exists -ERROR 1050 (42S01) at line 600: Table 'events_statements_current' already exists -ERROR 1050 (42S01) at line 643: Table 'events_statements_history' already exists -ERROR 1050 (42S01) at line 686: Table 'events_statements_history_long' already exists -ERROR 1050 (42S01) at line 718: Table 'events_statements_summary_by_thread_by_event_name' already exists -ERROR 1050 (42S01) at line 749: Table 'events_statements_summary_global_by_event_name' already exists -ERROR 1644 (HY000) at line 1169: Unexpected content found in the performance_schema database. +ERROR 1050 (42S01) at line 225: Table 'socket_instances' already exists +ERROR 1050 (42S01) at line 256: Table 'socket_summary_by_instance' already exists +ERROR 1050 (42S01) at line 285: Table 'socket_summary_by_event_name' already exists +ERROR 1050 (42S01) at line 294: Table 'mutex_instances' already exists +ERROR 1050 (42S01) at line 308: Table 'objects_summary_global_by_type' already exists +ERROR 1050 (42S01) at line 318: Table 'performance_timers' already exists +ERROR 1050 (42S01) at line 328: Table 'rwlock_instances' already exists +ERROR 1050 (42S01) at line 337: Table 'setup_actors' already exists +ERROR 1050 (42S01) at line 345: Table 'setup_consumers' already exists +ERROR 1050 (42S01) at line 354: Table 'setup_instruments' already exists +ERROR 1050 (42S01) at line 364: Table 'setup_objects' already exists +ERROR 1050 (42S01) at line 372: Table 'setup_timers' already exists +ERROR 1050 (42S01) at line 417: Table 'table_io_waits_summary_by_index_usage' already exists +ERROR 1050 (42S01) at line 461: Table 'table_io_waits_summary_by_table' already exists +ERROR 1050 (42S01) at line 540: Table 'table_lock_waits_summary_by_table' already exists +ERROR 1050 (42S01) at line 560: Table 'threads' already exists +ERROR 1050 (42S01) at line 575: Table 'events_stages_current' already exists +ERROR 1050 (42S01) at line 590: Table 'events_stages_history' already exists +ERROR 1050 (42S01) at line 605: Table 'events_stages_history_long' already exists +ERROR 1050 (42S01) at line 618: Table 'events_stages_summary_by_thread_by_event_name' already exists +ERROR 1050 (42S01) at line 630: Table 'events_stages_summary_global_by_event_name' already exists +ERROR 1050 (42S01) at line 673: Table 'events_statements_current' already exists +ERROR 1050 (42S01) at line 716: Table 'events_statements_history' already exists +ERROR 1050 (42S01) at line 759: Table 'events_statements_history_long' already exists +ERROR 1050 (42S01) at line 791: Table 'events_statements_summary_by_thread_by_event_name' already exists +ERROR 1050 (42S01) at line 822: Table 'events_statements_summary_global_by_event_name' already exists +ERROR 1644 (HY000) at line 1242: Unexpected content found in the performance_schema database. FATAL ERROR: Upgrade failed select name from mysql.event where db='performance_schema'; name === modified file 'mysql-test/suite/perfschema/r/start_server_innodb.result' --- a/mysql-test/suite/perfschema/r/start_server_innodb.result 2011-03-23 11:49:30 +0000 +++ b/mysql-test/suite/perfschema/r/start_server_innodb.result 2011-03-29 00:46:15 +0000 @@ -11,12 +11,12 @@ count(*) select count(*) from performance_schema.setup_consumers; count(*) 11 -select count(*) > 2 from performance_schema.setup_instruments; -count(*) > 2 +select count(*) > 3 from performance_schema.setup_instruments; +count(*) > 3 1 select count(*) from performance_schema.setup_timers; count(*) -3 +4 select * from performance_schema.cond_instances; select * from performance_schema.events_stages_current; select * from performance_schema.events_stages_history; @@ -37,6 +37,9 @@ select * from performance_schema.events_ select * from performance_schema.file_instances; select * from performance_schema.file_summary_by_event_name; select * from performance_schema.file_summary_by_instance; +select * from performance_schema.socket_instances; +select * from performance_schema.socket_summary_by_instance; +select * from performance_schema.socket_summary_by_event_name; select * from performance_schema.mutex_instances; select * from performance_schema.objects_summary_global_by_type; select * from performance_schema.performance_timers; @@ -68,6 +71,8 @@ performance_schema_max_mutex_classes 200 performance_schema_max_mutex_instances 5000 performance_schema_max_rwlock_classes 30 performance_schema_max_rwlock_instances 5000 +performance_schema_max_socket_classes 10 +performance_schema_max_socket_instances 1000 performance_schema_max_stage_classes 100 performance_schema_max_statement_classes 165 performance_schema_max_table_handles 1000 @@ -90,6 +95,8 @@ Performance_schema_mutex_classes_lost 0 Performance_schema_mutex_instances_lost 0 Performance_schema_rwlock_classes_lost 0 Performance_schema_rwlock_instances_lost 0 +Performance_schema_socket_classes_lost 0 +Performance_schema_socket_instances_lost 0 Performance_schema_stage_classes_lost 0 Performance_schema_statement_classes_lost 0 Performance_schema_table_handles_lost 0 === modified file 'mysql-test/suite/perfschema/r/start_server_no_stage_class.result' --- a/mysql-test/suite/perfschema/r/start_server_no_stage_class.result 2011-03-23 11:49:30 +0000 +++ b/mysql-test/suite/perfschema/r/start_server_no_stage_class.result 2011-03-29 00:46:15 +0000 @@ -11,12 +11,12 @@ count(*) select count(*) from performance_schema.setup_consumers; count(*) 11 -select count(*) > 2 from performance_schema.setup_instruments; -count(*) > 2 +select count(*) > 3 from performance_schema.setup_instruments; +count(*) > 3 1 select count(*) from performance_schema.setup_timers; count(*) -3 +4 select * from performance_schema.cond_instances; select * from performance_schema.events_stages_current; select * from performance_schema.events_stages_history; @@ -37,6 +37,9 @@ select * from performance_schema.events_ select * from performance_schema.file_instances; select * from performance_schema.file_summary_by_event_name; select * from performance_schema.file_summary_by_instance; +select * from performance_schema.socket_instances; +select * from performance_schema.socket_summary_by_instance; +select * from performance_schema.socket_summary_by_event_name; select * from performance_schema.mutex_instances; select * from performance_schema.objects_summary_global_by_type; select * from performance_schema.performance_timers; @@ -68,6 +71,8 @@ performance_schema_max_mutex_classes 200 performance_schema_max_mutex_instances 5000 performance_schema_max_rwlock_classes 30 performance_schema_max_rwlock_instances 5000 +performance_schema_max_socket_classes 10 +performance_schema_max_socket_instances 1000 performance_schema_max_stage_classes 0 performance_schema_max_statement_classes 165 performance_schema_max_table_handles 1000 === modified file 'mysql-test/suite/perfschema/r/start_server_no_statement_class.result' --- a/mysql-test/suite/perfschema/r/start_server_no_statement_class.result 2011-03-23 11:49:30 +0000 +++ b/mysql-test/suite/perfschema/r/start_server_no_statement_class.result 2011-03-29 00:46:15 +0000 @@ -11,12 +11,12 @@ count(*) select count(*) from performance_schema.setup_consumers; count(*) 11 -select count(*) > 2 from performance_schema.setup_instruments; -count(*) > 2 +select count(*) > 3 from performance_schema.setup_instruments; +count(*) > 3 1 select count(*) from performance_schema.setup_timers; count(*) -3 +4 select * from performance_schema.cond_instances; select * from performance_schema.events_stages_current; select * from performance_schema.events_stages_history; @@ -37,6 +37,9 @@ select * from performance_schema.events_ select * from performance_schema.file_instances; select * from performance_schema.file_summary_by_event_name; select * from performance_schema.file_summary_by_instance; +select * from performance_schema.socket_instances; +select * from performance_schema.socket_summary_by_instance; +select * from performance_schema.socket_summary_by_event_name; select * from performance_schema.mutex_instances; select * from performance_schema.objects_summary_global_by_type; select * from performance_schema.performance_timers; @@ -68,6 +71,8 @@ performance_schema_max_mutex_classes 200 performance_schema_max_mutex_instances 5000 performance_schema_max_rwlock_classes 30 performance_schema_max_rwlock_instances 5000 +performance_schema_max_socket_classes 10 +performance_schema_max_socket_instances 1000 performance_schema_max_stage_classes 100 performance_schema_max_statement_classes 0 performance_schema_max_table_handles 1000 === modified file 'storage/perfschema/pfs.cc' --- a/storage/perfschema/pfs.cc 2011-03-28 23:37:10 +0000 +++ b/storage/perfschema/pfs.cc 2011-03-29 00:46:15 +0000 @@ -4639,7 +4639,7 @@ static void end_socket_wait_v1(PSI_socke } register uint flags= state->m_flags; - size_t bytes= (byte_count > -1 ? byte_count : 0); + size_t bytes= ((int)byte_count > -1 ? byte_count : 0); /** Aggregation for EVENTS_WAITS_SUMMARY_BY_INSTANCE */ if (flags & STATE_FLAG_TIMED) --===============3740325538295178199== MIME-Version: 1.0 Content-Type: text/bzr-bundle; charset="us-ascii"; name="bzr/chris.powers@stripped" Content-Transfer-Encoding: 7bit Content-Disposition: inline # Bazaar merge directive format 2 (Bazaar 0.90) # revision_id: chris.powers@stripped # target_branch: file:///home/cpowers/work/dev/mysql-trunk-wl4896/ # testament_sha1: 6111b90b2f8da2c4fe49e1ca19fd71df13456cd0 # timestamp: 2011-03-28 19:46:22 -0500 # source_branch: file:///home/cpowers/work/dev/mysql-trunk/ # base_revision_id: cpowers@tma-1-20110328233710-el7vs7os5f3xtw77 # # Begin bundle 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 jcuw --===============3740325538295178199==--