From: Marc Alff Date: February 17 2011 6:11pm Subject: bzr commit into mysql-trunk branch (marc.alff:3211) WL#2515 WL#4813 List-Archive: http://lists.mysql.com/commits/131575 Message-Id: <201102171812.p1HCJELt008031@rcsinet13.oracle.com> MIME-Version: 1.0 Content-Type: multipart/mixed; boundary="===============4284055137666823952==" --===============4284055137666823952== MIME-Version: 1.0 Content-Type: text/plain; charset="us-ascii" Content-Transfer-Encoding: 7bit Content-Disposition: inline #At file:///Users/malff/BZR_TREE/mysql-trunk-wl4813/ based on revid:marc.alff@stripped 3211 Marc Alff 2011-02-17 WL#4813 PERFORMANCE_SCHEMA Instrumenting Stages WL#2515 PERFORMANCE_SCHEMA statements Added more test cases. added: 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_stages_history.result mysql-test/suite/perfschema/r/start_server_no_stages_history_long.result mysql-test/suite/perfschema/r/start_server_no_statement_class.result mysql-test/suite/perfschema/r/start_server_no_statements_history.result mysql-test/suite/perfschema/r/start_server_no_statements_history_long.result mysql-test/suite/perfschema/t/start_server_innodb-master.opt mysql-test/suite/perfschema/t/start_server_innodb.test mysql-test/suite/perfschema/t/start_server_no_stage_class-master.opt mysql-test/suite/perfschema/t/start_server_no_stage_class.test mysql-test/suite/perfschema/t/start_server_no_stages_history-master.opt mysql-test/suite/perfschema/t/start_server_no_stages_history.test mysql-test/suite/perfschema/t/start_server_no_stages_history_long-master.opt mysql-test/suite/perfschema/t/start_server_no_stages_history_long.test mysql-test/suite/perfschema/t/start_server_no_statement_class-master.opt mysql-test/suite/perfschema/t/start_server_no_statement_class.test mysql-test/suite/perfschema/t/start_server_no_statements_history-master.opt mysql-test/suite/perfschema/t/start_server_no_statements_history.test mysql-test/suite/perfschema/t/start_server_no_statements_history_long-master.opt mysql-test/suite/perfschema/t/start_server_no_statements_history_long.test modified: storage/perfschema/pfs_events_stages.cc storage/perfschema/pfs_events_statements.cc === added file 'mysql-test/suite/perfschema/r/start_server_innodb.result' --- a/mysql-test/suite/perfschema/r/start_server_innodb.result 1970-01-01 00:00:00 +0000 +++ b/mysql-test/suite/perfschema/r/start_server_innodb.result 2011-02-17 18:10:56 +0000 @@ -0,0 +1,98 @@ +show databases; +Database +information_schema +mtr +mysql +performance_schema +test +select count(*) from performance_schema.performance_timers; +count(*) +5 +select count(*) from performance_schema.setup_consumers; +count(*) +11 +select count(*) > 2 from performance_schema.setup_instruments; +count(*) > 2 +1 +select count(*) from performance_schema.setup_timers; +count(*) +3 +select * from performance_schema.cond_instances; +select * from performance_schema.events_stages_current; +select * from performance_schema.events_stages_history; +select * from performance_schema.events_stages_history_long; +select * from performance_schema.events_stages_summary_by_thread_by_event_name; +select * from performance_schema.events_stages_summary_global_by_event_name; +select * from performance_schema.events_statements_current; +select * from performance_schema.events_statements_history; +select * from performance_schema.events_statements_history_long; +select * from performance_schema.events_statements_summary_by_thread_by_event_name; +select * from performance_schema.events_statements_summary_global_by_event_name; +select * from performance_schema.events_waits_current; +select * from performance_schema.events_waits_history; +select * from performance_schema.events_waits_history_long; +select * from performance_schema.events_waits_summary_by_instance; +select * from performance_schema.events_waits_summary_by_thread_by_event_name; +select * from performance_schema.events_waits_summary_global_by_event_name; +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.mutex_instances; +select * from performance_schema.objects_summary_global_by_type; +select * from performance_schema.performance_timers; +select * from performance_schema.rwlock_instances; +select * from performance_schema.setup_actors; +select * from performance_schema.setup_consumers; +select * from performance_schema.setup_instruments; +select * from performance_schema.setup_objects; +select * from performance_schema.setup_timers; +select * from performance_schema.table_io_waits_summary_by_index_usage; +select * from performance_schema.table_io_waits_summary_by_table; +select * from performance_schema.table_lock_waits_summary_by_table; +select * from performance_schema.threads; +show variables like "performance_schema%"; +Variable_name Value +performance_schema ON +performance_schema_events_stages_history_long_size 10000 +performance_schema_events_stages_history_size 10 +performance_schema_events_statements_history_long_size 10000 +performance_schema_events_statements_history_size 10 +performance_schema_events_waits_history_long_size 10000 +performance_schema_events_waits_history_size 10 +performance_schema_max_cond_classes 80 +performance_schema_max_cond_instances 1000 +performance_schema_max_file_classes 50 +performance_schema_max_file_handles 32768 +performance_schema_max_file_instances 10000 +performance_schema_max_mutex_classes 200 +performance_schema_max_mutex_instances 10000 +performance_schema_max_rwlock_classes 30 +performance_schema_max_rwlock_instances 10000 +performance_schema_max_stage_classes 100 +performance_schema_max_statement_classes 166 +performance_schema_max_table_handles 1000 +performance_schema_max_table_instances 500 +performance_schema_max_thread_classes 50 +performance_schema_max_thread_instances 1000 +performance_schema_setup_actors_size 100 +performance_schema_setup_objects_size 100 +show engine PERFORMANCE_SCHEMA status; +show status like "performance_schema%"; +show status like "performance_schema%"; +Variable_name Value +Performance_schema_cond_classes_lost 0 +Performance_schema_cond_instances_lost 0 +Performance_schema_file_classes_lost 0 +Performance_schema_file_handles_lost 0 +Performance_schema_file_instances_lost 0 +Performance_schema_locker_lost 0 +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_stage_classes_lost 0 +Performance_schema_statement_classes_lost 0 +Performance_schema_table_handles_lost 0 +Performance_schema_table_instances_lost 0 +Performance_schema_thread_classes_lost 0 +Performance_schema_thread_instances_lost 0 === added file 'mysql-test/suite/perfschema/r/start_server_no_stage_class.result' --- a/mysql-test/suite/perfschema/r/start_server_no_stage_class.result 1970-01-01 00:00:00 +0000 +++ b/mysql-test/suite/perfschema/r/start_server_no_stage_class.result 2011-02-17 18:10:56 +0000 @@ -0,0 +1,106 @@ +show databases; +Database +information_schema +mtr +mysql +performance_schema +test +select count(*) from performance_schema.performance_timers; +count(*) +5 +select count(*) from performance_schema.setup_consumers; +count(*) +11 +select count(*) > 2 from performance_schema.setup_instruments; +count(*) > 2 +1 +select count(*) from performance_schema.setup_timers; +count(*) +3 +select * from performance_schema.cond_instances; +select * from performance_schema.events_stages_current; +select * from performance_schema.events_stages_history; +select * from performance_schema.events_stages_history_long; +select * from performance_schema.events_stages_summary_by_thread_by_event_name; +select * from performance_schema.events_stages_summary_global_by_event_name; +select * from performance_schema.events_statements_current; +select * from performance_schema.events_statements_history; +select * from performance_schema.events_statements_history_long; +select * from performance_schema.events_statements_summary_by_thread_by_event_name; +select * from performance_schema.events_statements_summary_global_by_event_name; +select * from performance_schema.events_waits_current; +select * from performance_schema.events_waits_history; +select * from performance_schema.events_waits_history_long; +select * from performance_schema.events_waits_summary_by_instance; +select * from performance_schema.events_waits_summary_by_thread_by_event_name; +select * from performance_schema.events_waits_summary_global_by_event_name; +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.mutex_instances; +select * from performance_schema.objects_summary_global_by_type; +select * from performance_schema.performance_timers; +select * from performance_schema.rwlock_instances; +select * from performance_schema.setup_actors; +select * from performance_schema.setup_consumers; +select * from performance_schema.setup_instruments; +select * from performance_schema.setup_objects; +select * from performance_schema.setup_timers; +select * from performance_schema.table_io_waits_summary_by_index_usage; +select * from performance_schema.table_io_waits_summary_by_table; +select * from performance_schema.table_lock_waits_summary_by_table; +select * from performance_schema.threads; +show variables like "performance_schema%"; +Variable_name Value +performance_schema ON +performance_schema_events_stages_history_long_size 10000 +performance_schema_events_stages_history_size 10 +performance_schema_events_statements_history_long_size 10000 +performance_schema_events_statements_history_size 10 +performance_schema_events_waits_history_long_size 10000 +performance_schema_events_waits_history_size 10 +performance_schema_max_cond_classes 80 +performance_schema_max_cond_instances 1000 +performance_schema_max_file_classes 50 +performance_schema_max_file_handles 32768 +performance_schema_max_file_instances 10000 +performance_schema_max_mutex_classes 200 +performance_schema_max_mutex_instances 10000 +performance_schema_max_rwlock_classes 30 +performance_schema_max_rwlock_instances 10000 +performance_schema_max_stage_classes 0 +performance_schema_max_statement_classes 166 +performance_schema_max_table_handles 1000 +performance_schema_max_table_instances 500 +performance_schema_max_thread_classes 50 +performance_schema_max_thread_instances 1000 +performance_schema_setup_actors_size 100 +performance_schema_setup_objects_size 100 +show engine PERFORMANCE_SCHEMA status; +show status like "performance_schema%"; +show variables like "performance_schema_max_stage_classes"; +Variable_name Value +performance_schema_max_stage_classes 0 +select count(*) from performance_schema.setup_instruments +where name like "stage/%"; +count(*) +0 +select variable_value > 0 from information_schema.global_status +where variable_name like 'PERFORMANCE_SCHEMA_STAGE_CLASSES_LOST'; +variable_value > 0 +1 +select count(*) from performance_schema.events_stages_current; +count(*) +0 +select count(*) from performance_schema.events_stages_history; +count(*) +0 +select count(*) from performance_schema.events_stages_history_long; +count(*) +0 +select count(*) from performance_schema.events_stages_summary_by_thread_by_event_name; +count(*) +0 +select count(*) from performance_schema.events_stages_summary_global_by_event_name; +count(*) +0 === added file 'mysql-test/suite/perfschema/r/start_server_no_stages_history.result' --- a/mysql-test/suite/perfschema/r/start_server_no_stages_history.result 1970-01-01 00:00:00 +0000 +++ b/mysql-test/suite/perfschema/r/start_server_no_stages_history.result 2011-02-17 18:10:56 +0000 @@ -0,0 +1,87 @@ +show databases; +Database +information_schema +mtr +mysql +performance_schema +test +select count(*) from performance_schema.performance_timers; +count(*) +5 +select count(*) from performance_schema.setup_consumers; +count(*) +11 +select count(*) > 2 from performance_schema.setup_instruments; +count(*) > 2 +1 +select count(*) from performance_schema.setup_timers; +count(*) +3 +select * from performance_schema.cond_instances; +select * from performance_schema.events_stages_current; +select * from performance_schema.events_stages_history; +select * from performance_schema.events_stages_history_long; +select * from performance_schema.events_stages_summary_by_thread_by_event_name; +select * from performance_schema.events_stages_summary_global_by_event_name; +select * from performance_schema.events_statements_current; +select * from performance_schema.events_statements_history; +select * from performance_schema.events_statements_history_long; +select * from performance_schema.events_statements_summary_by_thread_by_event_name; +select * from performance_schema.events_statements_summary_global_by_event_name; +select * from performance_schema.events_waits_current; +select * from performance_schema.events_waits_history; +select * from performance_schema.events_waits_history_long; +select * from performance_schema.events_waits_summary_by_instance; +select * from performance_schema.events_waits_summary_by_thread_by_event_name; +select * from performance_schema.events_waits_summary_global_by_event_name; +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.mutex_instances; +select * from performance_schema.objects_summary_global_by_type; +select * from performance_schema.performance_timers; +select * from performance_schema.rwlock_instances; +select * from performance_schema.setup_actors; +select * from performance_schema.setup_consumers; +select * from performance_schema.setup_instruments; +select * from performance_schema.setup_objects; +select * from performance_schema.setup_timers; +select * from performance_schema.table_io_waits_summary_by_index_usage; +select * from performance_schema.table_io_waits_summary_by_table; +select * from performance_schema.table_lock_waits_summary_by_table; +select * from performance_schema.threads; +show variables like "performance_schema%"; +Variable_name Value +performance_schema ON +performance_schema_events_stages_history_long_size 10000 +performance_schema_events_stages_history_size 0 +performance_schema_events_statements_history_long_size 10000 +performance_schema_events_statements_history_size 10 +performance_schema_events_waits_history_long_size 10000 +performance_schema_events_waits_history_size 10 +performance_schema_max_cond_classes 80 +performance_schema_max_cond_instances 1000 +performance_schema_max_file_classes 50 +performance_schema_max_file_handles 32768 +performance_schema_max_file_instances 10000 +performance_schema_max_mutex_classes 200 +performance_schema_max_mutex_instances 10000 +performance_schema_max_rwlock_classes 30 +performance_schema_max_rwlock_instances 10000 +performance_schema_max_stage_classes 100 +performance_schema_max_statement_classes 166 +performance_schema_max_table_handles 1000 +performance_schema_max_table_instances 500 +performance_schema_max_thread_classes 50 +performance_schema_max_thread_instances 1000 +performance_schema_setup_actors_size 100 +performance_schema_setup_objects_size 100 +show engine PERFORMANCE_SCHEMA status; +show status like "performance_schema%"; +show variables like "performance_schema_events_stages_history_size"; +Variable_name Value +performance_schema_events_stages_history_size 0 +select count(*) from performance_schema.events_stages_history; +count(*) +0 +truncate table performance_schema.events_stages_history; === added file 'mysql-test/suite/perfschema/r/start_server_no_stages_history_long.result' --- a/mysql-test/suite/perfschema/r/start_server_no_stages_history_long.result 1970-01-01 00:00:00 +0000 +++ b/mysql-test/suite/perfschema/r/start_server_no_stages_history_long.result 2011-02-17 18:10:56 +0000 @@ -0,0 +1,87 @@ +show databases; +Database +information_schema +mtr +mysql +performance_schema +test +select count(*) from performance_schema.performance_timers; +count(*) +5 +select count(*) from performance_schema.setup_consumers; +count(*) +11 +select count(*) > 2 from performance_schema.setup_instruments; +count(*) > 2 +1 +select count(*) from performance_schema.setup_timers; +count(*) +3 +select * from performance_schema.cond_instances; +select * from performance_schema.events_stages_current; +select * from performance_schema.events_stages_history; +select * from performance_schema.events_stages_history_long; +select * from performance_schema.events_stages_summary_by_thread_by_event_name; +select * from performance_schema.events_stages_summary_global_by_event_name; +select * from performance_schema.events_statements_current; +select * from performance_schema.events_statements_history; +select * from performance_schema.events_statements_history_long; +select * from performance_schema.events_statements_summary_by_thread_by_event_name; +select * from performance_schema.events_statements_summary_global_by_event_name; +select * from performance_schema.events_waits_current; +select * from performance_schema.events_waits_history; +select * from performance_schema.events_waits_history_long; +select * from performance_schema.events_waits_summary_by_instance; +select * from performance_schema.events_waits_summary_by_thread_by_event_name; +select * from performance_schema.events_waits_summary_global_by_event_name; +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.mutex_instances; +select * from performance_schema.objects_summary_global_by_type; +select * from performance_schema.performance_timers; +select * from performance_schema.rwlock_instances; +select * from performance_schema.setup_actors; +select * from performance_schema.setup_consumers; +select * from performance_schema.setup_instruments; +select * from performance_schema.setup_objects; +select * from performance_schema.setup_timers; +select * from performance_schema.table_io_waits_summary_by_index_usage; +select * from performance_schema.table_io_waits_summary_by_table; +select * from performance_schema.table_lock_waits_summary_by_table; +select * from performance_schema.threads; +show variables like "performance_schema%"; +Variable_name Value +performance_schema ON +performance_schema_events_stages_history_long_size 0 +performance_schema_events_stages_history_size 10 +performance_schema_events_statements_history_long_size 10000 +performance_schema_events_statements_history_size 10 +performance_schema_events_waits_history_long_size 10000 +performance_schema_events_waits_history_size 10 +performance_schema_max_cond_classes 80 +performance_schema_max_cond_instances 1000 +performance_schema_max_file_classes 50 +performance_schema_max_file_handles 32768 +performance_schema_max_file_instances 10000 +performance_schema_max_mutex_classes 200 +performance_schema_max_mutex_instances 10000 +performance_schema_max_rwlock_classes 30 +performance_schema_max_rwlock_instances 10000 +performance_schema_max_stage_classes 100 +performance_schema_max_statement_classes 166 +performance_schema_max_table_handles 1000 +performance_schema_max_table_instances 500 +performance_schema_max_thread_classes 50 +performance_schema_max_thread_instances 1000 +performance_schema_setup_actors_size 100 +performance_schema_setup_objects_size 100 +show engine PERFORMANCE_SCHEMA status; +show status like "performance_schema%"; +show variables like "performance_schema_events_stages_history_long_size"; +Variable_name Value +performance_schema_events_stages_history_long_size 0 +select count(*) from performance_schema.events_stages_history_long; +count(*) +0 +truncate table performance_schema.events_stages_history_long; === added file 'mysql-test/suite/perfschema/r/start_server_no_statement_class.result' --- a/mysql-test/suite/perfschema/r/start_server_no_statement_class.result 1970-01-01 00:00:00 +0000 +++ b/mysql-test/suite/perfschema/r/start_server_no_statement_class.result 2011-02-17 18:10:56 +0000 @@ -0,0 +1,106 @@ +show databases; +Database +information_schema +mtr +mysql +performance_schema +test +select count(*) from performance_schema.performance_timers; +count(*) +5 +select count(*) from performance_schema.setup_consumers; +count(*) +11 +select count(*) > 2 from performance_schema.setup_instruments; +count(*) > 2 +1 +select count(*) from performance_schema.setup_timers; +count(*) +3 +select * from performance_schema.cond_instances; +select * from performance_schema.events_stages_current; +select * from performance_schema.events_stages_history; +select * from performance_schema.events_stages_history_long; +select * from performance_schema.events_stages_summary_by_thread_by_event_name; +select * from performance_schema.events_stages_summary_global_by_event_name; +select * from performance_schema.events_statements_current; +select * from performance_schema.events_statements_history; +select * from performance_schema.events_statements_history_long; +select * from performance_schema.events_statements_summary_by_thread_by_event_name; +select * from performance_schema.events_statements_summary_global_by_event_name; +select * from performance_schema.events_waits_current; +select * from performance_schema.events_waits_history; +select * from performance_schema.events_waits_history_long; +select * from performance_schema.events_waits_summary_by_instance; +select * from performance_schema.events_waits_summary_by_thread_by_event_name; +select * from performance_schema.events_waits_summary_global_by_event_name; +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.mutex_instances; +select * from performance_schema.objects_summary_global_by_type; +select * from performance_schema.performance_timers; +select * from performance_schema.rwlock_instances; +select * from performance_schema.setup_actors; +select * from performance_schema.setup_consumers; +select * from performance_schema.setup_instruments; +select * from performance_schema.setup_objects; +select * from performance_schema.setup_timers; +select * from performance_schema.table_io_waits_summary_by_index_usage; +select * from performance_schema.table_io_waits_summary_by_table; +select * from performance_schema.table_lock_waits_summary_by_table; +select * from performance_schema.threads; +show variables like "performance_schema%"; +Variable_name Value +performance_schema ON +performance_schema_events_stages_history_long_size 10000 +performance_schema_events_stages_history_size 10 +performance_schema_events_statements_history_long_size 10000 +performance_schema_events_statements_history_size 10 +performance_schema_events_waits_history_long_size 10000 +performance_schema_events_waits_history_size 10 +performance_schema_max_cond_classes 80 +performance_schema_max_cond_instances 1000 +performance_schema_max_file_classes 50 +performance_schema_max_file_handles 32768 +performance_schema_max_file_instances 10000 +performance_schema_max_mutex_classes 200 +performance_schema_max_mutex_instances 10000 +performance_schema_max_rwlock_classes 30 +performance_schema_max_rwlock_instances 10000 +performance_schema_max_stage_classes 100 +performance_schema_max_statement_classes 0 +performance_schema_max_table_handles 1000 +performance_schema_max_table_instances 500 +performance_schema_max_thread_classes 50 +performance_schema_max_thread_instances 1000 +performance_schema_setup_actors_size 100 +performance_schema_setup_objects_size 100 +show engine PERFORMANCE_SCHEMA status; +show status like "performance_schema%"; +show variables like "performance_schema_max_statement_classes"; +Variable_name Value +performance_schema_max_statement_classes 0 +select count(*) from performance_schema.setup_instruments +where name like "statement/%"; +count(*) +0 +select variable_value > 0 from information_schema.global_status +where variable_name like 'PERFORMANCE_SCHEMA_STATEMENT_CLASSES_LOST'; +variable_value > 0 +1 +select count(*) from performance_schema.events_statements_current; +count(*) +0 +select count(*) from performance_schema.events_statements_history; +count(*) +0 +select count(*) from performance_schema.events_statements_history_long; +count(*) +0 +select count(*) from performance_schema.events_statements_summary_by_thread_by_event_name; +count(*) +0 +select count(*) from performance_schema.events_statements_summary_global_by_event_name; +count(*) +0 === added file 'mysql-test/suite/perfschema/r/start_server_no_statements_history.result' --- a/mysql-test/suite/perfschema/r/start_server_no_statements_history.result 1970-01-01 00:00:00 +0000 +++ b/mysql-test/suite/perfschema/r/start_server_no_statements_history.result 2011-02-17 18:10:56 +0000 @@ -0,0 +1,87 @@ +show databases; +Database +information_schema +mtr +mysql +performance_schema +test +select count(*) from performance_schema.performance_timers; +count(*) +5 +select count(*) from performance_schema.setup_consumers; +count(*) +11 +select count(*) > 2 from performance_schema.setup_instruments; +count(*) > 2 +1 +select count(*) from performance_schema.setup_timers; +count(*) +3 +select * from performance_schema.cond_instances; +select * from performance_schema.events_stages_current; +select * from performance_schema.events_stages_history; +select * from performance_schema.events_stages_history_long; +select * from performance_schema.events_stages_summary_by_thread_by_event_name; +select * from performance_schema.events_stages_summary_global_by_event_name; +select * from performance_schema.events_statements_current; +select * from performance_schema.events_statements_history; +select * from performance_schema.events_statements_history_long; +select * from performance_schema.events_statements_summary_by_thread_by_event_name; +select * from performance_schema.events_statements_summary_global_by_event_name; +select * from performance_schema.events_waits_current; +select * from performance_schema.events_waits_history; +select * from performance_schema.events_waits_history_long; +select * from performance_schema.events_waits_summary_by_instance; +select * from performance_schema.events_waits_summary_by_thread_by_event_name; +select * from performance_schema.events_waits_summary_global_by_event_name; +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.mutex_instances; +select * from performance_schema.objects_summary_global_by_type; +select * from performance_schema.performance_timers; +select * from performance_schema.rwlock_instances; +select * from performance_schema.setup_actors; +select * from performance_schema.setup_consumers; +select * from performance_schema.setup_instruments; +select * from performance_schema.setup_objects; +select * from performance_schema.setup_timers; +select * from performance_schema.table_io_waits_summary_by_index_usage; +select * from performance_schema.table_io_waits_summary_by_table; +select * from performance_schema.table_lock_waits_summary_by_table; +select * from performance_schema.threads; +show variables like "performance_schema%"; +Variable_name Value +performance_schema ON +performance_schema_events_stages_history_long_size 10000 +performance_schema_events_stages_history_size 10 +performance_schema_events_statements_history_long_size 10000 +performance_schema_events_statements_history_size 0 +performance_schema_events_waits_history_long_size 10000 +performance_schema_events_waits_history_size 10 +performance_schema_max_cond_classes 80 +performance_schema_max_cond_instances 1000 +performance_schema_max_file_classes 50 +performance_schema_max_file_handles 32768 +performance_schema_max_file_instances 10000 +performance_schema_max_mutex_classes 200 +performance_schema_max_mutex_instances 10000 +performance_schema_max_rwlock_classes 30 +performance_schema_max_rwlock_instances 10000 +performance_schema_max_stage_classes 100 +performance_schema_max_statement_classes 166 +performance_schema_max_table_handles 1000 +performance_schema_max_table_instances 500 +performance_schema_max_thread_classes 50 +performance_schema_max_thread_instances 1000 +performance_schema_setup_actors_size 100 +performance_schema_setup_objects_size 100 +show engine PERFORMANCE_SCHEMA status; +show status like "performance_schema%"; +show variables like "performance_schema_events_statements_history_size"; +Variable_name Value +performance_schema_events_statements_history_size 0 +select count(*) from performance_schema.events_statements_history; +count(*) +0 +truncate table performance_schema.events_statements_history; === added file 'mysql-test/suite/perfschema/r/start_server_no_statements_history_long.result' --- a/mysql-test/suite/perfschema/r/start_server_no_statements_history_long.result 1970-01-01 00:00:00 +0000 +++ b/mysql-test/suite/perfschema/r/start_server_no_statements_history_long.result 2011-02-17 18:10:56 +0000 @@ -0,0 +1,87 @@ +show databases; +Database +information_schema +mtr +mysql +performance_schema +test +select count(*) from performance_schema.performance_timers; +count(*) +5 +select count(*) from performance_schema.setup_consumers; +count(*) +11 +select count(*) > 2 from performance_schema.setup_instruments; +count(*) > 2 +1 +select count(*) from performance_schema.setup_timers; +count(*) +3 +select * from performance_schema.cond_instances; +select * from performance_schema.events_stages_current; +select * from performance_schema.events_stages_history; +select * from performance_schema.events_stages_history_long; +select * from performance_schema.events_stages_summary_by_thread_by_event_name; +select * from performance_schema.events_stages_summary_global_by_event_name; +select * from performance_schema.events_statements_current; +select * from performance_schema.events_statements_history; +select * from performance_schema.events_statements_history_long; +select * from performance_schema.events_statements_summary_by_thread_by_event_name; +select * from performance_schema.events_statements_summary_global_by_event_name; +select * from performance_schema.events_waits_current; +select * from performance_schema.events_waits_history; +select * from performance_schema.events_waits_history_long; +select * from performance_schema.events_waits_summary_by_instance; +select * from performance_schema.events_waits_summary_by_thread_by_event_name; +select * from performance_schema.events_waits_summary_global_by_event_name; +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.mutex_instances; +select * from performance_schema.objects_summary_global_by_type; +select * from performance_schema.performance_timers; +select * from performance_schema.rwlock_instances; +select * from performance_schema.setup_actors; +select * from performance_schema.setup_consumers; +select * from performance_schema.setup_instruments; +select * from performance_schema.setup_objects; +select * from performance_schema.setup_timers; +select * from performance_schema.table_io_waits_summary_by_index_usage; +select * from performance_schema.table_io_waits_summary_by_table; +select * from performance_schema.table_lock_waits_summary_by_table; +select * from performance_schema.threads; +show variables like "performance_schema%"; +Variable_name Value +performance_schema ON +performance_schema_events_stages_history_long_size 10000 +performance_schema_events_stages_history_size 10 +performance_schema_events_statements_history_long_size 0 +performance_schema_events_statements_history_size 10 +performance_schema_events_waits_history_long_size 10000 +performance_schema_events_waits_history_size 10 +performance_schema_max_cond_classes 80 +performance_schema_max_cond_instances 1000 +performance_schema_max_file_classes 50 +performance_schema_max_file_handles 32768 +performance_schema_max_file_instances 10000 +performance_schema_max_mutex_classes 200 +performance_schema_max_mutex_instances 10000 +performance_schema_max_rwlock_classes 30 +performance_schema_max_rwlock_instances 10000 +performance_schema_max_stage_classes 100 +performance_schema_max_statement_classes 166 +performance_schema_max_table_handles 1000 +performance_schema_max_table_instances 500 +performance_schema_max_thread_classes 50 +performance_schema_max_thread_instances 1000 +performance_schema_setup_actors_size 100 +performance_schema_setup_objects_size 100 +show engine PERFORMANCE_SCHEMA status; +show status like "performance_schema%"; +show variables like "performance_schema_events_statements_history_long_size"; +Variable_name Value +performance_schema_events_statements_history_long_size 0 +select count(*) from performance_schema.events_statements_history_long; +count(*) +0 +truncate table performance_schema.events_statements_history_long; === added file 'mysql-test/suite/perfschema/t/start_server_innodb-master.opt' --- a/mysql-test/suite/perfschema/t/start_server_innodb-master.opt 1970-01-01 00:00:00 +0000 +++ b/mysql-test/suite/perfschema/t/start_server_innodb-master.opt 2011-02-17 18:10:56 +0000 @@ -0,0 +1 @@ +--loose-enable-performance-schema === added file 'mysql-test/suite/perfschema/t/start_server_innodb.test' --- a/mysql-test/suite/perfschema/t/start_server_innodb.test 1970-01-01 00:00:00 +0000 +++ b/mysql-test/suite/perfschema/t/start_server_innodb.test 2011-02-17 18:10:56 +0000 @@ -0,0 +1,26 @@ +# 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, Inc., 59 Temple Place, Suite 330, Boston, MA 02111-1307 USA + +# Tests for PERFORMANCE_SCHEMA + +--source include/not_embedded.inc +--source include/have_perfschema.inc +--source include/have_innodb.inc + +--source ../include/start_server_common.inc + +# Expecting nothing lost with default parameters + +show status like "performance_schema%"; === added file 'mysql-test/suite/perfschema/t/start_server_no_stage_class-master.opt' --- a/mysql-test/suite/perfschema/t/start_server_no_stage_class-master.opt 1970-01-01 00:00:00 +0000 +++ b/mysql-test/suite/perfschema/t/start_server_no_stage_class-master.opt 2011-02-17 18:10:56 +0000 @@ -0,0 +1,2 @@ +--loose-enable-performance-schema +--loose-performance_schema_max_stage_classes=0 === added file 'mysql-test/suite/perfschema/t/start_server_no_stage_class.test' --- a/mysql-test/suite/perfschema/t/start_server_no_stage_class.test 1970-01-01 00:00:00 +0000 +++ b/mysql-test/suite/perfschema/t/start_server_no_stage_class.test 2011-02-17 18:10:56 +0000 @@ -0,0 +1,41 @@ +# Copyright (c) 2008, 2011, Oracle and/or its affiliates. All rights reserved. +# +# This program is free software; you can redistribute it and/or modify +# it under the terms of the GNU General Public License as published by +# the Free Software Foundation; version 2 of the License. +# +# This program is distributed in the hope that it will be useful, +# but WITHOUT ANY WARRANTY; without even the implied warranty of +# MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the +# GNU General Public License for more details. +# +# You should have received a copy of the GNU General Public License +# along with this program; if not, write to the Free Software Foundation, +# 51 Franklin Street, Suite 500, Boston, MA 02110-1335 USA + +# Tests for PERFORMANCE_SCHEMA + +--source include/not_embedded.inc +--source include/have_perfschema.inc + +--source ../include/start_server_common.inc + +# Expect no classes +show variables like "performance_schema_max_stage_classes"; + +select count(*) from performance_schema.setup_instruments + where name like "stage/%"; + +# We lost all the classes +select variable_value > 0 from information_schema.global_status + where variable_name like 'PERFORMANCE_SCHEMA_STAGE_CLASSES_LOST'; + +# Expect no stages +select count(*) from performance_schema.events_stages_current; +select count(*) from performance_schema.events_stages_history; +select count(*) from performance_schema.events_stages_history_long; + +# Expect no stages classes +select count(*) from performance_schema.events_stages_summary_by_thread_by_event_name; +select count(*) from performance_schema.events_stages_summary_global_by_event_name; + === added file 'mysql-test/suite/perfschema/t/start_server_no_stages_history-master.opt' --- a/mysql-test/suite/perfschema/t/start_server_no_stages_history-master.opt 1970-01-01 00:00:00 +0000 +++ b/mysql-test/suite/perfschema/t/start_server_no_stages_history-master.opt 2011-02-17 18:10:56 +0000 @@ -0,0 +1,2 @@ +--loose-enable-performance-schema +--loose-performance_schema_events_stages_history_size=0 === added file 'mysql-test/suite/perfschema/t/start_server_no_stages_history.test' --- a/mysql-test/suite/perfschema/t/start_server_no_stages_history.test 1970-01-01 00:00:00 +0000 +++ b/mysql-test/suite/perfschema/t/start_server_no_stages_history.test 2011-02-17 18:10:56 +0000 @@ -0,0 +1,29 @@ +# Copyright (c) 2008, 2011, Oracle and/or its affiliates. All rights reserved. +# +# This program is free software; you can redistribute it and/or modify +# it under the terms of the GNU General Public License as published by +# the Free Software Foundation; version 2 of the License. +# +# This program is distributed in the hope that it will be useful, +# but WITHOUT ANY WARRANTY; without even the implied warranty of +# MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the +# GNU General Public License for more details. +# +# You should have received a copy of the GNU General Public License +# along with this program; if not, write to the Free Software Foundation, +# 51 Franklin Street, Suite 500, Boston, MA 02110-1335 USA + +# Tests for PERFORMANCE_SCHEMA + +--source include/not_embedded.inc +--source include/have_perfschema.inc + +--source ../include/start_server_common.inc + +# Expect no history +show variables like "performance_schema_events_stages_history_size"; +select count(*) from performance_schema.events_stages_history; + +# Valid operation, edge case +truncate table performance_schema.events_stages_history; + === added file 'mysql-test/suite/perfschema/t/start_server_no_stages_history_long-master.opt' --- a/mysql-test/suite/perfschema/t/start_server_no_stages_history_long-master.opt 1970-01-01 00:00:00 +0000 +++ b/mysql-test/suite/perfschema/t/start_server_no_stages_history_long-master.opt 2011-02-17 18:10:56 +0000 @@ -0,0 +1,2 @@ +--loose-enable-performance-schema +--loose-performance_schema_events_stages_history_long_size=0 === added file 'mysql-test/suite/perfschema/t/start_server_no_stages_history_long.test' --- a/mysql-test/suite/perfschema/t/start_server_no_stages_history_long.test 1970-01-01 00:00:00 +0000 +++ b/mysql-test/suite/perfschema/t/start_server_no_stages_history_long.test 2011-02-17 18:10:56 +0000 @@ -0,0 +1,29 @@ +# Copyright (c) 2008, 2011, Oracle and/or its affiliates. All rights reserved. +# +# This program is free software; you can redistribute it and/or modify +# it under the terms of the GNU General Public License as published by +# the Free Software Foundation; version 2 of the License. +# +# This program is distributed in the hope that it will be useful, +# but WITHOUT ANY WARRANTY; without even the implied warranty of +# MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the +# GNU General Public License for more details. +# +# You should have received a copy of the GNU General Public License +# along with this program; if not, write to the Free Software Foundation, +# 51 Franklin Street, Suite 500, Boston, MA 02110-1335 USA + +# Tests for PERFORMANCE_SCHEMA + +--source include/not_embedded.inc +--source include/have_perfschema.inc + +--source ../include/start_server_common.inc + +# Expect no history long +show variables like "performance_schema_events_stages_history_long_size"; +select count(*) from performance_schema.events_stages_history_long; + +# Valid operation, edge case +truncate table performance_schema.events_stages_history_long; + === added file 'mysql-test/suite/perfschema/t/start_server_no_statement_class-master.opt' --- a/mysql-test/suite/perfschema/t/start_server_no_statement_class-master.opt 1970-01-01 00:00:00 +0000 +++ b/mysql-test/suite/perfschema/t/start_server_no_statement_class-master.opt 2011-02-17 18:10:56 +0000 @@ -0,0 +1,2 @@ +--loose-enable-performance-schema +--loose-performance_schema_max_statement_classes=0 === added file 'mysql-test/suite/perfschema/t/start_server_no_statement_class.test' --- a/mysql-test/suite/perfschema/t/start_server_no_statement_class.test 1970-01-01 00:00:00 +0000 +++ b/mysql-test/suite/perfschema/t/start_server_no_statement_class.test 2011-02-17 18:10:56 +0000 @@ -0,0 +1,41 @@ +# Copyright (c) 2008, 2011, Oracle and/or its affiliates. All rights reserved. +# +# This program is free software; you can redistribute it and/or modify +# it under the terms of the GNU General Public License as published by +# the Free Software Foundation; version 2 of the License. +# +# This program is distributed in the hope that it will be useful, +# but WITHOUT ANY WARRANTY; without even the implied warranty of +# MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the +# GNU General Public License for more details. +# +# You should have received a copy of the GNU General Public License +# along with this program; if not, write to the Free Software Foundation, +# 51 Franklin Street, Suite 500, Boston, MA 02110-1335 USA + +# Tests for PERFORMANCE_SCHEMA + +--source include/not_embedded.inc +--source include/have_perfschema.inc + +--source ../include/start_server_common.inc + +# Expect no classes +show variables like "performance_schema_max_statement_classes"; + +select count(*) from performance_schema.setup_instruments + where name like "statement/%"; + +# We lost all the classes +select variable_value > 0 from information_schema.global_status + where variable_name like 'PERFORMANCE_SCHEMA_STATEMENT_CLASSES_LOST'; + +# Expect no statements +select count(*) from performance_schema.events_statements_current; +select count(*) from performance_schema.events_statements_history; +select count(*) from performance_schema.events_statements_history_long; + +# Expect no statements classes +select count(*) from performance_schema.events_statements_summary_by_thread_by_event_name; +select count(*) from performance_schema.events_statements_summary_global_by_event_name; + === added file 'mysql-test/suite/perfschema/t/start_server_no_statements_history-master.opt' --- a/mysql-test/suite/perfschema/t/start_server_no_statements_history-master.opt 1970-01-01 00:00:00 +0000 +++ b/mysql-test/suite/perfschema/t/start_server_no_statements_history-master.opt 2011-02-17 18:10:56 +0000 @@ -0,0 +1,2 @@ +--loose-enable-performance-schema +--loose-performance_schema_events_statements_history_size=0 === added file 'mysql-test/suite/perfschema/t/start_server_no_statements_history.test' --- a/mysql-test/suite/perfschema/t/start_server_no_statements_history.test 1970-01-01 00:00:00 +0000 +++ b/mysql-test/suite/perfschema/t/start_server_no_statements_history.test 2011-02-17 18:10:56 +0000 @@ -0,0 +1,29 @@ +# Copyright (c) 2008, 2011, Oracle and/or its affiliates. All rights reserved. +# +# This program is free software; you can redistribute it and/or modify +# it under the terms of the GNU General Public License as published by +# the Free Software Foundation; version 2 of the License. +# +# This program is distributed in the hope that it will be useful, +# but WITHOUT ANY WARRANTY; without even the implied warranty of +# MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the +# GNU General Public License for more details. +# +# You should have received a copy of the GNU General Public License +# along with this program; if not, write to the Free Software Foundation, +# 51 Franklin Street, Suite 500, Boston, MA 02110-1335 USA + +# Tests for PERFORMANCE_SCHEMA + +--source include/not_embedded.inc +--source include/have_perfschema.inc + +--source ../include/start_server_common.inc + +# Expect no history +show variables like "performance_schema_events_statements_history_size"; +select count(*) from performance_schema.events_statements_history; + +# Valid operation, edge case +truncate table performance_schema.events_statements_history; + === added file 'mysql-test/suite/perfschema/t/start_server_no_statements_history_long-master.opt' --- a/mysql-test/suite/perfschema/t/start_server_no_statements_history_long-master.opt 1970-01-01 00:00:00 +0000 +++ b/mysql-test/suite/perfschema/t/start_server_no_statements_history_long-master.opt 2011-02-17 18:10:56 +0000 @@ -0,0 +1,2 @@ +--loose-enable-performance-schema +--loose-performance_schema_events_statements_history_long_size=0 === added file 'mysql-test/suite/perfschema/t/start_server_no_statements_history_long.test' --- a/mysql-test/suite/perfschema/t/start_server_no_statements_history_long.test 1970-01-01 00:00:00 +0000 +++ b/mysql-test/suite/perfschema/t/start_server_no_statements_history_long.test 2011-02-17 18:10:56 +0000 @@ -0,0 +1,29 @@ +# Copyright (c) 2008, 2011, Oracle and/or its affiliates. All rights reserved. +# +# This program is free software; you can redistribute it and/or modify +# it under the terms of the GNU General Public License as published by +# the Free Software Foundation; version 2 of the License. +# +# This program is distributed in the hope that it will be useful, +# but WITHOUT ANY WARRANTY; without even the implied warranty of +# MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the +# GNU General Public License for more details. +# +# You should have received a copy of the GNU General Public License +# along with this program; if not, write to the Free Software Foundation, +# 51 Franklin Street, Suite 500, Boston, MA 02110-1335 USA + +# Tests for PERFORMANCE_SCHEMA + +--source include/not_embedded.inc +--source include/have_perfschema.inc + +--source ../include/start_server_common.inc + +# Expect no history long +show variables like "performance_schema_events_statements_history_long_size"; +select count(*) from performance_schema.events_statements_history_long; + +# Valid operation, edge case +truncate table performance_schema.events_statements_history_long; + === modified file 'storage/perfschema/pfs_events_stages.cc' --- a/storage/perfschema/pfs_events_stages.cc 2011-02-14 14:23:55 +0000 +++ b/storage/perfschema/pfs_events_stages.cc 2011-02-17 18:10:56 +0000 @@ -82,6 +82,11 @@ static inline void copy_events_stages(PF */ void insert_events_stages_history(PFS_thread *thread, PFS_events_stages *stage) { + if (unlikely(events_stages_history_per_thread == 0)) + return; + + DBUG_ASSERT(thread->m_stages_history != NULL); + uint index= thread->m_stages_history_index; /* @@ -109,6 +114,11 @@ void insert_events_stages_history(PFS_th */ void insert_events_stages_history_long(PFS_events_stages *stage) { + if (unlikely(events_stages_history_long_size == 0)) + return; + + DBUG_ASSERT(events_stages_history_long_array != NULL); + uint index= PFS_atomic::add_u32(&events_stages_history_long_index, 1); index= index % events_stages_history_long_size; === modified file 'storage/perfschema/pfs_events_statements.cc' --- a/storage/perfschema/pfs_events_statements.cc 2011-02-14 14:23:55 +0000 +++ b/storage/perfschema/pfs_events_statements.cc 2011-02-17 18:10:56 +0000 @@ -82,6 +82,11 @@ static inline void copy_events_statement */ void insert_events_statements_history(PFS_thread *thread, PFS_events_statements *statement) { + if (unlikely(events_statements_history_per_thread == 0)) + return; + + DBUG_ASSERT(thread->m_statements_history != NULL); + uint index= thread->m_statements_history_index; /* @@ -109,6 +114,11 @@ void insert_events_statements_history(PF */ void insert_events_statements_history_long(PFS_events_statements *statement) { + if (unlikely(events_statements_history_long_size == 0)) + return ; + + DBUG_ASSERT(events_statements_history_long_array != NULL); + uint index= PFS_atomic::add_u32(&events_statements_history_long_index, 1); index= index % events_statements_history_long_size; --===============4284055137666823952== MIME-Version: 1.0 Content-Type: text/bzr-bundle; charset="us-ascii"; name="bzr/marc.alff@stripped" Content-Transfer-Encoding: 7bit Content-Disposition: inline # Bazaar merge directive format 2 (Bazaar 0.90) # revision_id: marc.alff@stripped # target_branch: file:///Users/malff/BZR_TREE/mysql-trunk-wl4813/ # testament_sha1: 145f57f0bf913485057d666e7448105b2ce30766 # timestamp: 2011-02-17 19:11:18 +0100 # source_branch: file:///Users/malff/BZR_TREE/mysql-trunk/ # base_revision_id: marc.alff@stripped\ # obpukha4u7tzc8w3 # # Begin bundle IyBCYXphYXIgcmV2aXNpb24gYnVuZGxlIHY0CiMKQlpoOTFBWSZTWSzkXaYAF0tfgEAwevf//3/n 36C////wYBz8ffMpSElJtVmWmYAKAAAAAbRUAlRJjWUhQiIJKGlMSgFaaaKAZA1EbMoy0NCOMmTR iGJpgIGBNMEYJiaaaADCHGTJoxDE0wEDAmmCMExNNNABhDjJk0YhiaYCBgTTBGCYmmmgAwghUJGk EyZT1E8k209RCemkNDQMQ0Mmj1ABNUoQTRoCaaZGk0aCmxTaSe1TPSh4o8pp5TyaQFSiAAgCaI0m JtJqEAZpMZQAAZO0BO87zgHuAPsD3EEShDCyJKECh9S4F8RfsGC+RcDhcLtnouvGDGHjGM4w3TfG 5II/Dx54Oznvv4np2xYxjn6s8uPRk1rHLlxyvwtWVpS1ZjZdc2cPU3Miw+UR8Uy2ZmEjxq/gaHrG TDU4H/McPCe2cD3VYdlV4W40S33lmtodeK13t+/SvDBr4HPQaS92kcApCPdo70TOOXflzD4S3RWc p19K5z2r/ldL+C/sxD6MScTEOMSYAlgXzmhoYYZrk00ydEylelXdVR2Vd+NEzjGM5zkmcYx8S9y9 hk4LwMHlDkdWV4cgD+t5rFjfFdy+TjVVk0HiDuB76wG4caV2HX61oKNT6hel8LnYrLLSvwr+v1L/ ZPR0b9RHhbEWQ+DA9C0vJfg8V5rt0kG/bgx0J0VkND6h6t9cAg5l1d+595D1i/wX+S+PmdR1npWF 9Z/A5TXDwmUaH8UuHnyS3GpuPStDcdB8/nwOwz7Uus0j6/Gcj380uie/Sv5H0GivcfM1tTpNDDma m4/ubVu32l999xtQ/wf03G87K2NxsLSy+72ZX4w+lfVLBLJLSzLSwSyS0swIksiSywfnXAuFlV2H XXQe6vxNDarB/aVh4HWepzo2q67L37Rx1r8RcJfcb+EcTtONeZy48lTqAOmoSigQqhKKREdwWh6m htU9D0Nx33yy9ytDWq3wsjY7zvS43KOZ6HA6zCyukr2HceMaA8F0vnWXQfj9/2/D7a+XnnXPbja2 22xn17fPw3OUW2Nt9cOW3Hlvy1y3+U7ETWk4YsRJVFw8ypjX/V3tjrW2mjTXTHfCuNelv4CP7Z8l B4KqqlJOVoeyjEyySyyPykP536XerLD8qvPIRKSV+ylFaqH6T9MQ7eJKyB3NFvFH+1SfOfWcT9nA 2qz1nj2TasO8Ffh4/V+FltLLK28lqZZpcWYVpWv4SZpO7FVdHsYGEhggweQMmTIg+Jb1+JfWIOMl kXBmpqnxO8B5nvL2dHcfvR59Pqx2ZvZ8j2hdKdFhv6IvTcl5X6+NcDuOqr+Jh5dlfE9xy8t1Rvro qPOkXiZOjOkyPQyOfDjXeaAUxjVrNpd/fryKmAPIvTvkV6ST2VkpEcBHs+79tVaPuW9q9dn28ZST 1Y24WW1MQ0voXZfiWXisOxC5WF6s1NURGFg5L6Z6bEJcOre6DWwbjtpeo1oBa9WhsazQ4mGkaTSp aUl0WOy3G6132bs2Kq3i06NReNtdBundZKnKvejKEsari9cJXG9kWKKITCNlVZdo2Z4rZ8ljV6Oa 6FWitVG6n8/79HODhQUl7dxZLuBhuxvWNjeXNr5mwiMGZoJ8ovppq6JbJ1hVbtapytzThkl9HSsn Gzjh2kLOlt6fndBFkkW3lvW+ITeULM2iEvW/Nz5/jk36SYK7pXolYhKmui2OF0kb+F9LbKUpmCtE Y7b9mbg22pTCSKKUo8OfDPr2v0z8uXiy+67wpw8tc78cq9r7uUlFeszhM2S6rOSL2r/zrxdlvFlu xZLJIcdFTV364rokWcaeaV3Ojg4MEJ5bd2/7vutQlfb6aGno7KPc9GikkXLVVhwfee8td2bw/i7e PPRwYuE7Pu0Y46ODmfxTO6Lzu51+cZkcdWvbm3rfA0q3CyYlNkj1Xtmlq2R5LqvCkCanuVnZwZvC 5kzWZKYMVrPOX/r7q5PDdx12Xm7dkvWPLy7OEnO7M5K10aszE+GHN0eNb0uRPviOLmo6tmSroyeG bs4s+j6sjW9i/kZoTzUWVd6/STnvdDVnSnEomIrEZe6TGt6vFsvd7ujNSeKqaaSd9XdCUeHkq1cE zavTu82CXMDa15uCjRp632KOnVRoq6Fq5h3E4dqKKUW3U8K82SWLVrisWUXOTJRecDZzc1y5+xmc leOi94QmKqjFuJapZZjvZUt13upgFu+E0l2isJz7OPFlllg6e/ozclzVsw687BvbbVkss3ZL2bVp oqVcI0YOikxYNN7cYilGjI0lrB6/TbTk2aLZzcb3Dh4YGQlVXd1YOLNYo14YMmLizdVpVe22uZPn EVnfy58exyiPWTlyTC3Hpz81WD1SUpJmmLJzcvMuTPLq492r4LfJqecbZuegmS+zXZcNl7y1eOPl opeC9ir5c0JnYaKOTBppoe6X8WD6WOVjdRW7lwvN3DNuydi5zXtyjXmq2XMHNY1XtFjN0XP1ITza 7c9sefOTiuxUQmhTLXVpaWRFDdwW23TBREbOCtjJcs1uXs2K1a1mDecnJZowrp76JdorbmsWsmHs sWLlzaTXBRjksbrmuS5i8Xwlhg4uLNqxyVUasGByUbKETRYsoxdmr5uvLDVyK8Nt9OOW210wyxMl 8v8+vBCZNHF2YtODocVWC5tYybMd2K6S5errwzcMVVt2DJgxZTZy6KuvKEuo5OW+KtbnHz2bsOLB YzZKLHFllcscmS99n7Z3dL5L6b2b43qt5LBPWS9oo3vkJ2d3Zq4sHVqua4M+evoXaOLxEYWtqYW1 sXN8S3Sndczo2MVMGGamWLvyeVrm5quzdm2ZN9zbFVqdJ832eXTfnuU5SmVtb77tJgde11q5tZXE 3WMcfRwc2DPS+nVzXqMVKOLTTDy05PLBrfs7vJU6OSwzcFy9cyeSxV0clmbdkscVFHXVRhVvy0YM 8d6hWklulV2dL700sEtushKYUvEvRLsKa+j7MfpD5/CPt2rhV2uMVg/MsLuenbbOc5zozmtlq3Gp qbo1NTU1jU1NTVLYyJZZAZE222xmznGbQsPA+hd1+peC+wB6foD7Q97r4JiJkpkiKgqA3VPO5ilo iEkJCQhY64tw6/2qmKXP6r4VH7z+o3GVforKX9D+BsfuP+D/pf+BkNzcPg4geVcMjUUIRR/Rf8B+ /cf70uZ2Uuqv7m4uRscu2lzuauylurpMr+9/alyU50slXbYl/SsS2Jyj9h7D+54m+1tK4HCu80rw rfR7DDFdVLJofr/4Oul1mRuuxLfWp+h2E8DsrxN8PtrmaHuqsi5nI2OomtLtNjWsPE1O6luNatxu q1rata4FW831wr2mlcbwNjI2VvixL214mldpsdRld8dcaRnjpbzxjQ8a7da7AwCdgfuF+Y/WHrQl llll9q4IFcL+T0UVVDD96/zXK8BbVFi1rGtfcu4/dhnKP1Kbzko0bRYylbjMMxbIAbgGgBD28DJL IkLpd0zBiOiNTicjQ1MNTU1tdddOUrAuW+pXKccVqqOBmGbpXQo3ROEcLY4fw4nHDNjpMFTKylS6 Iq1llTr3oqlDcXApiirKpYr7kTdThwB9unCMwCwhE6U1kTWnCMyo7K6DSMMFXCOBwwznaqamuGcz fGGxsazeVcTDDrNI5UdpMvy/G0Qj8n7H9b/J+bZ+6Izyz8oS9SSLF61+T8qsH4/PdowbPzWvyUfi 3mD7nBqbmH5qXqtFyrJwnFRuudYQlFV7dy5as3S//McmDynpFjJ2mQOayg/aonI5+nmqv1gP0knk e96tVkI5qcVqsnYtNXbtSlmL1fCTmL6KsHbJhFpYeSK1S+FK/lUf4ry4q0j/eb0vOKZ0eJzr6DWM qoKEhbik+YVTVST4+78sRJxiLIJuOtGp77qireVOo6TrWHrRW1XWb5Wn7z6DurjVuongb9x31hoW 1L09hOBpJLoJMH7MH2fhlSmYq+r2erAvXUpT4PkfVR3dGS96w0aLmSxcvdmye2a+5gwZsX0bvwXq Pb2tWMG7g3fVasbWMsvsQ2YJKNnJg1bubgsMTmq5LXN90ljnzbPOTR02Xaloifzo7bV3+26j4xvS 0PpoPqkf2RPhfEe53/3k9FjC8SeGglr349XR0XMFjydXditWLPP0aMsTBexaMXaYLlHo9GbyJzFx m/QYr3Xkscmj5RGJ9To7pHbeTPiydLUkQd6yeCSwkPg4vJqvYl+H6USrq0+Ieqj3TE2Bvi8qj47R aGDcfGiyhvqdMorIxLZT0S1tY+4xXTWG21pHKPW8b8LzvdU25Zzs/k7undrq81eL1YL1i9VuW3vD p5tzNa9XWE4uzpCYNXBfVi0kkWgtFKSUkpJSlFrd4ktSeg0bNXFao5vv69Gj+nGTJ6xfKvGXZ2Hd oaGtreFl310V+NTvNDicarhKcD2b/qofZHr8z4nbhiZX30r3n3HG3TgnAq5n1dsYcj8q3W82Fsax yHI6qv/NwrhV9xyN9XE3ew2NjxNq7KunqORk0MNKjne2rQWR6XvvkwzeFl77qMq4+9k+Kq5lVRfa 9z7Poxav5cEpRJrTF1cTRq0YPi9m6rIoxuWWtnuQXSUSw9x3nXG15HkLQWVzK92d2VnAuBjMwV6Y laSYpocpSq0jKSibNnVrEj0pJycmq9yYXyeGcghzRlZ7Uus6jr7jh8jcaHndN5H01zo/afB9vw8c zdPK8rxufG+J8vA+fw+jOX+NLgKV9deaJV956UT/r6H4H+qXmdlH2XtyxTBgt6jTGKLJUslZUaKe w6DPsxoA64UeZ4IkHYBACJ9ZCLBJRlZGTBd3CrpkuBtsJdR8zKNKWhkaGH22TNStFwNWhtRlooBj FaxiqMYxkQ9fYvLird65XwHyrreStq7zxofrKvy0qzGYWkrGFWmlWYzC0FZGJbSd9XSLoMBl7pNj 7UkrEd30cFzF+j5LXV+gufFao+9T6Ks3zZPwejV7KND2Ubs0JRkzWOCjhUSXL15c4W5/ZWu7Je3X MGrgsZNRM3w5NGlR7Kmh/yL/IXwqviLD1MyORzS+vdHxFKsv16lpCV85srtlPVR1kw4SYk4IUT3F ED0LJ9VJEGa8bjtqrtrpR8qvLJTPnVPk31Wx3n/urSJdu84IlX51bF9sYcLjZZCr9KtDgbGSWUn1 x9t76q1vL2XsovUyMS/nRp461+PWFmhx5l5hwjapfFQ7zpOEOFW6Ye6LB7Tyk6jvO6rdXHvzdEfq +Xnw2j2m8ssMqYXGOKXM++TSkrwjZL/Q9h4KtTwRX4eZ1Kp0/bfglxS6qt18ffnolkPUT4iK+zlO yJqYp8HvP1ydIjkGMlnOu7tW7WvnXClf59lFdB92h3C8RpUaKnQiZFwBLAUKywEAkLD0ClecaFZf t5VG42S0riedK767puN284Gl68/ppXeL21dNvNKleKZCyXspKDriOaRiR7zmfUsSUkEX4yxdtkpp Gpp+y3IlW8Uq+pfZfnUwWn2fMqeBvjwVHE6YphXdRRELIiS9yJLLytW+lAesDvNTKt2+pw4Hyrkf ZfCU9xzH3GfK7Ktjp5dhy0nMw5m0rWsVsyS1OiOusQwW+L+PKrjKqWsWRknAGUTC5AJc8UTAOCZV DC+XbYYNpcJcYnxloewzfcaN8i5ZK5R0VJsqq1yCW40fZuuiXeaBfmlpKaxN0etK5x4HY1DdL2nd y7aPzj5nGrdQV8aquqOZi6DCWovLqVLSP85TROH6jqrTsN5/E2PA90Yf/qjrk66tUirSPuwSvBOZ X7jxGv4n9TuP/kdtSeUWqpz5XrJXdfRgsU2qdJ0n/cvha17z6Y+yq6CQqKrKiqtRVWoqrWIiqtRV WqI80li+S+vilKMx32ziNsJKyfaVSe9zG97jYq+n6jmZVzrCV/I3Slol96W/p858jdWWyjti9Kmk cTdWZWh6UndHGPidk3clMqm48j+1ePntU6aoq+NwJadEenwN5+J/pXckVcDwrj8Eu4Urlp0q3Kb0 cDIww1irNOFGiK3jtM2qm4qYKbEm7uw4mXEkYJcXyLLLkyssD5lyicV3G1fC+RorXLWsOKWpoloY ZGkZd1+ZdOpYWvIOMUVFVVUsLVFVFVVUsLVVDCxVVVUMjVVK2yyIDilhaqpcRW/efpcz6DIcbKRY ZSpcPE6iyOxMOJ7RSvLecIq6UONWK7zUwVhkbldODUXce06JLtLES2BP7nI50iMJMkjwNk3okHIG FipeQh6SV4kApnuEU9S7VTVVVVVVQlVVVVVQmgSIbmSLKrgcDtk65UuJXQdVTDSOJU3ed4C9T4ij p9ptdJm1DU6XAnm2XAS7ZW+EqKiLpAR6h8i9sa3RKx77/K0U1wbjKpe6KvrhbR7KvCHvS5lX6skX Mwor9twruPA0q0OWprRNx5dJx2PU16TgLSDrmOaEsk/fEUgLRa52SVk4vxUhGUml/O0k9HXxfEn7 2knNCdIFyShfQpSsypV2ntmka4V4VfHWdxmx7zQcVgNLIEsgSyEsjLPZlcCEtaMqwyWGhoqXjU1+ mU8oV20tEtx3n1PZHuf6pfE7Uu2p9XvkvYbnUdBn3XXxPArFR+VWlW+PM09a1qT0krfpFpXkplLw OByNxkeiRoJi9jmxTE9ykkXyHnJvJ5gecoRNIq3Gkq6bnJdL52tXSiuxLge2s55mZmYPCw7ku3mL U9brq7irBkKw67/0WgXtOg42+xczyOuvaltV/tZSnBRlVYlgpkL9KvzE4SZSZSdRiXuzWfFhPNBO bqXOfyf/i7kinChIFnIu0wA= --===============4284055137666823952==--