mirror of
https://github.com/MariaDB/server.git
synced 2025-01-18 04:53:01 +01:00
1a6373e8e2
Open issues: - A better fix for #57688; Igor is working on this - Test failure in index_merge_innodb.test ; Igor promised to look at this - Some Innodb tests fails (need to merge with latest xtradb) ; Kristian promised to look at this. - Failing tests: innodb_plugin.innodb_bug56143 innodb_plugin.innodb_bug56632 innodb_plugin.innodb_bug56680 innodb_plugin.innodb_bug57255 - Werror is disabled; Should be enabled after merge with xtradb.
69 lines
2.2 KiB
PHP
69 lines
2.2 KiB
PHP
# ==== Purpose ====
|
|
#
|
|
# Waits until a variable from SHOW STATUS has returned a specified
|
|
# value, or until a timeout is reached.
|
|
#
|
|
# ==== Usage ====
|
|
#
|
|
# let $status_var= Threads_connected;
|
|
# let $status_var_value= 1;
|
|
# --source include/wait_for_status_var.inc
|
|
#
|
|
# Parameters:
|
|
#
|
|
# $status_var, $status_var_value
|
|
# This macro will wait until the variable of SHOW STATUS
|
|
# named $status_var gets the value $status_var_value. See
|
|
# the example above.
|
|
#
|
|
# $status_type= GLOBAL|SESSION
|
|
# To specify the type (attribute) of status variable and
|
|
# run either SHOW GLOBAL STATUS or SHOW SESSION STATUS.
|
|
#
|
|
# $status_var_comparsion
|
|
# By default, this file waits until $status_var becomes equal to
|
|
# $status_var_value. If you want to wait until $status_var
|
|
# becomes *unequal* to $status_var_value, set this parameter to the
|
|
# string '!=', like this:
|
|
# let $status_var_comparsion= !=;
|
|
#
|
|
# $status_timeout
|
|
# The default timeout is 1 minute. You can change the timeout by
|
|
# setting $status_timeout. The unit is tenths of seconds.
|
|
#
|
|
|
|
if (`SELECT STRCMP('$status_type', '') * STRCMP(UPPER('$status_type'), 'SESSION') * STRCMP(UPPER('$status_type'), 'GLOBAL')`)
|
|
{
|
|
--echo **** ERROR: Unknown type of variable status_type: allowed values are: SESSION or GLOBAL ****
|
|
die;
|
|
}
|
|
|
|
let $_status_timeout_counter= $status_timeout;
|
|
if (!$_status_timeout_counter)
|
|
{
|
|
let $_status_timeout_counter= 600;
|
|
}
|
|
|
|
let $_status_var_comparsion= $status_var_comparsion;
|
|
if (!$_status_var_comparsion)
|
|
{
|
|
let $_status_var_comparsion= =;
|
|
}
|
|
|
|
let $_show_status_value= query_get_value("SHOW $status_type STATUS LIKE '$status_var'", Value, 1);
|
|
|
|
while (`SELECT NOT('$_show_status_value' $_status_var_comparsion '$status_var_value')`)
|
|
{
|
|
if (!$_status_timeout_counter)
|
|
{
|
|
--echo **** ERROR: failed while waiting for '$status_type' '$status_var' $_status_var_comparsion '$status_var_value' ****
|
|
--echo Note: the following output may have changed since the failure was detected
|
|
--echo **** Showing STATUS, PROCESSLIST ****
|
|
eval SHOW $status_type STATUS LIKE '$status_var';
|
|
SHOW PROCESSLIST;
|
|
die;
|
|
}
|
|
dec $_status_timeout_counter;
|
|
sleep 0.1;
|
|
let $_show_status_value= query_get_value("SHOW $status_type STATUS LIKE '$status_var'", Value, 1);
|
|
}
|