diff options
Diffstat (limited to 'mysql-test/suite/perfschema/include/socket_event_dbg.inc')
-rw-r--r-- | mysql-test/suite/perfschema/include/socket_event_dbg.inc | 130 |
1 files changed, 130 insertions, 0 deletions
diff --git a/mysql-test/suite/perfschema/include/socket_event_dbg.inc b/mysql-test/suite/perfschema/include/socket_event_dbg.inc new file mode 100644 index 00000000..75c4d480 --- /dev/null +++ b/mysql-test/suite/perfschema/include/socket_event_dbg.inc @@ -0,0 +1,130 @@ +# include/socket_event.inc +# +# Auxiliary routine +# - running some statement in connection con1 +# and checking the changes for the client_connction" entry belonging to con1 +# within socket_summary_by_instance and +# - checking if the changes to values caused by the statement execution are +# reasonable and stable +# +# Requirements: +# 1. Have socket_summary_by_instance_func running +# 2. Have a connection con1 +# @con1_object_instance_begin needs to be the OBJECT_INSTANCE_BEGIN +# value of the "client_connction" entry belonging to con1 within +# socket_summary_by_instance. +# 3. $statement needs to contain the statement to be executed by con1. +# + +let $my_errno= 0; + +let $loop_round= 1; +while($loop_round <= $loop_rounds) +{ + +if (!$my_socket_debug) +{ + --disable_query_log +} + +# Collect the current state +#========================== +eval $truncate; +eval $insert_before; + +# Run the operation +#================== +if($is_connect) +{ + let $statement= Connect (con1,$connect_host,$connect_user,,$connect_db,,); + # Some statements fail with ER_ACCESS_DENIED_ERROR + --disable_abort_on_error + --connect (con1,$connect_host,$connect_user,,$connect_db,,) + --enable_abort_on_error + let $my_errno= $mysql_errno; +} +if(!$is_connect) +{ + --connection con1 + # Print the statement outcome once. + if($loop_round == 1) + { + --enable_query_log + --enable_result_log + --horizontal_results + } + # One of the statements to be checked is expected to fail with ER_NO_SUCH_TABLE. + --disable_abort_on_error + eval $statement; + --enable_abort_on_error + + if (!$my_socket_debug) + { + --disable_query_log + --disable_result_log + } +} + +# Wait till the operation is really finished. We expect that there will be no +# changes to the statistics of the additional connection after this point of time. +#================================================================================= + +--connection default +if($my_errno) +{ + # Wait a bit and hope that the counter maintenence is finished. + --sleep 3 +} +if(!$my_errno) +{ + --source ../include/wait_till_sleep.inc +} + +# Various checks +#=============== +# 1. Check statistics in general +#------------------------------- +# ../include/socket_summary_check.inc also inserts the 'After' state into +# mysqltest.my_socket_summary_by_instance. +--source ../include/socket_summary_check_dbg.inc + +if (!$my_socket_debug) +{ + --disable_query_log + --disable_result_log +} + +if($is_connect) +{ + eval $get_object_instance_begin; + eval $insert_pseudo_before; +} + +eval $insert_delta; +# Correct the values of the columns statement and run +eval +UPDATE mysqltest.socket_summary_by_instance_detail +SET statement = '$statement' +WHERE statement IS NULL; +eval +UPDATE mysqltest.socket_summary_by_instance_detail +SET run = $loop_round +WHERE run IS NULL; + +if($is_connect) +{ + if(!$my_errno) + { + --connection con1 + --disconnect con1 + --source include/wait_until_disconnected.inc + --connection default + } +} +inc $loop_round; + +} + +--enable_query_log +--enable_result_log + |