mirror of
https://github.com/MariaDB/server.git
synced 2025-07-29 05:21:33 +03:00
Merge 11.0 into 11.1
This commit is contained in:
11
mysql-test/include/aria_log_control_load.inc
Normal file
11
mysql-test/include/aria_log_control_load.inc
Normal file
@ -0,0 +1,11 @@
|
||||
#
|
||||
# This file loads aria_log_control file into a user variable @aria_log_control.
|
||||
# Set $ARIA_DATADIR before including this file
|
||||
#
|
||||
|
||||
--disable_query_log
|
||||
--copy_file $ARIA_DATADIR/aria_log_control $MYSQLTEST_VARDIR/aria_log_control_tmp
|
||||
--chmod 0777 $MYSQLTEST_VARDIR/aria_log_control_tmp
|
||||
--eval SET @aria_log_control=(SELECT LOAD_FILE('$MYSQLTEST_VARDIR/aria_log_control_tmp'))
|
||||
--remove_file $MYSQLTEST_VARDIR/aria_log_control_tmp
|
||||
--enable_query_log
|
@ -32,7 +32,6 @@ if ($tmp)
|
||||
--echo Relay_Master_Log_File #
|
||||
--echo Slave_IO_Running No
|
||||
--echo Slave_SQL_Running No
|
||||
--echo Replicate_Rewrite_DB #
|
||||
--echo Replicate_Do_DB #
|
||||
--echo Replicate_Ignore_DB #
|
||||
--echo Replicate_Do_Table #
|
||||
@ -74,13 +73,22 @@ if ($tmp)
|
||||
--echo Slave_DDL_Groups #
|
||||
--echo Slave_Non_Transactional_Groups #
|
||||
--echo Slave_Transactional_Groups #
|
||||
--echo Replicate_Rewrite_DB #
|
||||
}
|
||||
if (!$tmp) {
|
||||
# Note: after WL#5177, fields 13-18 shall not be filtered-out.
|
||||
--replace_column 4 # 5 # 6 # 7 # 8 # 9 # 10 # 13 # 14 # 15 # 16 # 17 # 18 # 19 # 23 # 24 # 25 # 26 # 27 # 41 # 42 # 43 # 45 # 52 # 53 # 54 #
|
||||
--replace_column 4 # 5 # 6 # 7 # 8 # 9 # 10 # 13 # 14 # 15 # 16 # 17 # 18 # 22 # 23 # 24 # 25 # 26 # 40 # 41 # 42 # 44 # 51 # 52 # 53 # 54 #
|
||||
query_vertical
|
||||
SHOW SLAVE STATUS;
|
||||
}
|
||||
#
|
||||
# Note, we must never, _ever_, add extra rows to this output of SHOW SLAVE
|
||||
# STATUS, except at the very end, as this breaks backwards compatibility
|
||||
# with applications or scripts that parse the output. This also means that
|
||||
# we cannot add _any_ new rows in a GA version if a different row was
|
||||
# already added in a later MariaDB version, as this would make it impossible
|
||||
# to merge the change up while preserving the order of rows.
|
||||
#
|
||||
|
||||
#
|
||||
# Ensure that we don't get warnings from mysql.proc (used by check_mysqld)
|
||||
|
@ -103,7 +103,6 @@ connection con2;
|
||||
|
||||
# The following query should hang because con1 is locking the record
|
||||
update t2 set a=2 where b = 0;
|
||||
select * from t2;
|
||||
--send
|
||||
update t1 set x=2 where id = 0;
|
||||
--sleep 2
|
||||
|
@ -22,7 +22,6 @@ select * from t1;
|
||||
connection con1;
|
||||
begin work;
|
||||
insert into t1 values (5);
|
||||
select * from t1;
|
||||
# Lock wait timeout set to 2 seconds in <THIS TEST>-master.opt; this
|
||||
# statement will time out; in 5.0.13+, it will not roll back transaction.
|
||||
--error ER_LOCK_WAIT_TIMEOUT
|
||||
|
297
mysql-test/include/rpl_clone_slave_using_mariadb-backup.inc
Normal file
297
mysql-test/include/rpl_clone_slave_using_mariadb-backup.inc
Normal file
@ -0,0 +1,297 @@
|
||||
if ($cnf == "galera2_to_mariadb")
|
||||
{
|
||||
--let MASTER_MYPORT= $NODE_MYPORT_1
|
||||
--connect master, 127.0.0.1, root, , test, $NODE_MYPORT_1
|
||||
--connect slave, 127.0.0.1, root, , test, $NODE_MYPORT_3
|
||||
--disable_query_log
|
||||
--replace_result $MASTER_MYPORT ###
|
||||
--eval CHANGE MASTER TO MASTER_HOST='127.0.0.1', MASTER_USER='root', MASTER_PORT=$MASTER_MYPORT, MASTER_USE_GTID=NO;
|
||||
--enable_query_log
|
||||
START SLAVE;
|
||||
--source include/wait_for_slave_to_start.inc
|
||||
|
||||
--let XTRABACKUP_BACKUP_OPTIONS=--no-defaults --user=root --host='127.0.0.1' --port=$NODE_MYPORT_3
|
||||
--let XTRABACKUP_COPY_BACK_OPTIONS= --no-defaults
|
||||
}
|
||||
|
||||
if ($cnf == "mariadb_to_mariadb")
|
||||
{
|
||||
--let XTRABACKUP_BACKUP_OPTIONS=--defaults-file=$MYSQLTEST_VARDIR/my.cnf --defaults-group-suffix=.2
|
||||
--let XTRABACKUP_COPY_BACK_OPTIONS=--defaults-file=$MYSQLTEST_VARDIR/my.cnf --defaults-group-suffix=.2
|
||||
}
|
||||
|
||||
--connection master
|
||||
--let $MYSQLD_DATADIR_MASTER= `select @@datadir`
|
||||
--connection slave
|
||||
--let $MYSQLD_DATADIR_SLAVE= `select @@datadir`
|
||||
|
||||
# This test covers the filename:pos based synchronization
|
||||
# between the master and the slave.
|
||||
# If we ever need to test a GTID based synchronization,
|
||||
# it should be done in a separate test.
|
||||
|
||||
|
||||
--echo ##############################################################
|
||||
--echo ### Initial block with some transactions
|
||||
|
||||
--echo ### Slave: Make sure replication is not using GTID
|
||||
--connection slave
|
||||
--let $value= query_get_value(SHOW SLAVE STATUS, "Using_Gtid", 1)
|
||||
--echo # Using_Gtid=$value
|
||||
|
||||
--echo ### Master: Create and populate t1
|
||||
--connection master
|
||||
CREATE TABLE t1(a TEXT) ENGINE=InnoDB;
|
||||
START TRANSACTION;
|
||||
INSERT INTO t1 VALUES ('tr#00:stmt#00 - slave run#0, before backup');
|
||||
INSERT INTO t1 VALUES ('tr#00:stmt#01 - slave run#0, before backup');
|
||||
INSERT INTO t1 VALUES ('tr#00:stmt#02 - slave run#0, before backup');
|
||||
COMMIT;
|
||||
--sync_slave_with_master
|
||||
|
||||
|
||||
|
||||
--echo ##############################################################
|
||||
--echo ### Run the last transaction before mariadb-backup --backup
|
||||
--echo ### Remember SHOW MASTER STATUS and @@gtid_binlog_pos
|
||||
--echo ### before and after the transaction.
|
||||
|
||||
--echo ### Master: Rember MASTER STATUS and @@gtid_binlog_pos before tr#01
|
||||
--connection master
|
||||
--let $master_before_tr01_show_master_status_file=query_get_value(SHOW MASTER STATUS, File, 1)
|
||||
--let $master_before_tr01_show_master_status_position=query_get_value(SHOW MASTER STATUS, Position, 1)
|
||||
--let $master_before_tr01_gtid_binlog_pos=`SELECT @@global.gtid_binlog_pos`
|
||||
|
||||
--echo ### Slave: Remember MASTER STATUS and @@gtid_binlog_pos before tr#01
|
||||
--connection slave
|
||||
--let $slave_before_tr01_show_master_status_file=query_get_value(SHOW MASTER STATUS, File, 1)
|
||||
--let $slave_before_tr01_show_master_status_position=query_get_value(SHOW MASTER STATUS, Position, 1)
|
||||
--let $slave_before_tr01_gtid_binlog_pos=`SELECT @@global.gtid_binlog_pos`
|
||||
|
||||
--echo ### Master: Run the actual last transaction before the backup
|
||||
--connection master
|
||||
START TRANSACTION;
|
||||
INSERT INTO t1 VALUES ('tr#01:stmt#00 - slave run#0, before backup');
|
||||
INSERT INTO t1 VALUES ('tr#01:stmt#01 - slave run#0, before backup');
|
||||
INSERT INTO t1 VALUES ('tr#01:stmt#02 - slave run#0, before backup');
|
||||
COMMIT;
|
||||
--sync_slave_with_master
|
||||
|
||||
--echo ### Master: Remember MASTER STATUS and @@gtid_binlog_pos after tr#01
|
||||
--connection master
|
||||
--let $master_after_tr01_show_master_status_file=query_get_value(SHOW MASTER STATUS, File, 1)
|
||||
--let $master_after_tr01_show_master_status_position=query_get_value(SHOW MASTER STATUS, Position, 1)
|
||||
--let $master_after_tr01_gtid_binlog_pos=`SELECT @@global.gtid_binlog_pos`
|
||||
|
||||
--echo ### Slave: Remember MASTER STATUS and @@gtid_binlog_pos after tr#01
|
||||
--connection slave
|
||||
--let $slave_after_tr01_show_master_status_file=query_get_value(SHOW MASTER STATUS, File, 1)
|
||||
--let $slave_after_tr01_show_master_status_position=query_get_value(SHOW MASTER STATUS, Position, 1)
|
||||
--let $slave_after_tr01_gtid_binlog_pos=`SELECT @@global.gtid_binlog_pos`
|
||||
|
||||
|
||||
--echo ##############################################################
|
||||
--echo ### Running `mariadb-backup --backup,--prepare` and checking
|
||||
--echo ### that mariadb_backup_slave_info and mariadb_backup_binlog_info are OK
|
||||
|
||||
--echo ### Slave: Create a backup
|
||||
--let $backup_slave=$MYSQLTEST_VARDIR/tmp/backup-slave
|
||||
--disable_result_log
|
||||
--exec $XTRABACKUP $XTRABACKUP_BACKUP_OPTIONS --slave-info --backup --target-dir=$backup_slave
|
||||
--enable_result_log
|
||||
|
||||
--echo ### Slave: Prepare the backup
|
||||
--exec $XTRABACKUP --prepare --target-dir=$backup_slave
|
||||
|
||||
--echo ### Slave: xtrabackup files:
|
||||
--echo ############################ mariadb_backup_slave_info
|
||||
--replace_result $master_after_tr01_show_master_status_file master_after_tr01_show_master_status_file $master_after_tr01_show_master_status_position master_after_tr01_show_master_status_position
|
||||
--cat_file $backup_slave/mariadb_backup_slave_info
|
||||
--echo ############################ mariadb_backup_binlog_info
|
||||
--replace_result $slave_after_tr01_show_master_status_file slave_after_tr01_show_master_status_file $slave_after_tr01_show_master_status_position slave_after_tr01_show_master_status_position $slave_after_tr01_gtid_binlog_pos slave_after_tr01_gtid_binlog_pos
|
||||
--cat_file $backup_slave/mariadb_backup_binlog_info
|
||||
--echo ############################
|
||||
|
||||
|
||||
--echo ##############################################################
|
||||
--echo ### Run more transactions after the backup:
|
||||
--echo ### - while the slave is still running, then
|
||||
--echo ### - while the slave is shut down
|
||||
|
||||
--echo ### Master: Run another transaction while the slave is still running
|
||||
--connection master
|
||||
START TRANSACTION;
|
||||
INSERT INTO t1 VALUES ('tr#02:stmt#00 - slave run#0, after backup');
|
||||
INSERT INTO t1 VALUES ('tr#02:stmt#01 - slave run#0, after backup');
|
||||
INSERT INTO t1 VALUES ('tr#02:stmt@02 - slave run#0, after backup');
|
||||
COMMIT;
|
||||
--sync_slave_with_master
|
||||
|
||||
--echo ### Master: Remember MASTER STATUS and @@gtid_binlog_pos after tr#02
|
||||
--connection master
|
||||
--let $master_after_tr02_show_master_status_file=query_get_value(SHOW MASTER STATUS, File, 1)
|
||||
--let $master_after_tr02_show_master_status_position=query_get_value(SHOW MASTER STATUS, Position, 1)
|
||||
--let $master_after_tr02_gtid_binlog_pos=`SELECT @@global.gtid_binlog_pos`
|
||||
|
||||
--echo ### Slave: Remember MASTER STATUS and @@gtid_binlog_pos after tr#02
|
||||
--connection slave
|
||||
--let $slave_after_tr02_show_master_status_file=query_get_value(SHOW MASTER STATUS, File, 1)
|
||||
--let $slave_after_tr02_show_master_status_position=query_get_value(SHOW MASTER STATUS, Position, 1)
|
||||
--let $slave_after_tr02_gtid_binlog_pos=`SELECT @@global.gtid_binlog_pos`
|
||||
|
||||
|
||||
--echo ### Master: Checking SHOW BINLOG EVENTS
|
||||
|
||||
--connection master
|
||||
--vertical_results
|
||||
### The BEGIN event
|
||||
--replace_column 4 # 5 #
|
||||
--replace_result $master_after_tr01_show_master_status_file master_after_tr01_show_master_status_file $master_after_tr01_show_master_status_position master_after_tr01_show_master_status_position $master_after_tr02_gtid_binlog_pos master_after_tr02_gtid_binlog_pos
|
||||
--eval SHOW BINLOG EVENTS IN '$master_after_tr01_show_master_status_file' FROM $master_after_tr01_show_master_status_position LIMIT 0,1
|
||||
### The INSERT event
|
||||
--replace_column 2 # 4 # 5 #
|
||||
--replace_result $master_after_tr01_show_master_status_file master_after_tr01_show_master_status_file $master_after_tr01_show_master_status_position master_after_tr01_show_master_status_position
|
||||
# Hide the difference between row and stmt binary logging
|
||||
--replace_regex /use `test`; // /(Query|Annotate_rows)/Query_or_Annotate_rows/
|
||||
--eval SHOW BINLOG EVENTS IN '$master_after_tr01_show_master_status_file' FROM $master_after_tr01_show_master_status_position LIMIT 1,1
|
||||
--horizontal_results
|
||||
|
||||
--echo ### Slave: Checking SHOW BINLOG EVENTS
|
||||
--connection slave
|
||||
--vertical_results
|
||||
### The BEGIN event
|
||||
--replace_column 2 # 5 #
|
||||
--replace_result $slave_after_tr01_show_master_status_file slave_after_tr01_show_master_status_file $slave_after_tr01_show_master_status_position slave_after_tr01_show_master_status_position $slave_after_tr02_gtid_binlog_pos slave_after_tr02_gtid_binlog_pos
|
||||
--eval SHOW BINLOG EVENTS IN '$slave_after_tr01_show_master_status_file' FROM $slave_after_tr01_show_master_status_position LIMIT 0,1
|
||||
### The INSERT event
|
||||
--replace_column 2 # 4 # 5 #
|
||||
--replace_result $slave_after_tr01_show_master_status_file slave_after_tr01_show_master_status_file $slave_after_tr01_show_master_status_position slave_after_tr01_show_master_status_position $slave_after_tr02_gtid_binlog_pos slave_after_tr02_gtid_binlog_pos
|
||||
# Hide the difference between row and stmt binary logging
|
||||
--replace_regex /use `test`; // /(Query|Annotate_rows)/Query_or_Annotate_rows/
|
||||
--eval SHOW BINLOG EVENTS IN '$slave_after_tr01_show_master_status_file' FROM $slave_after_tr01_show_master_status_position LIMIT 1,1
|
||||
--horizontal_results
|
||||
|
||||
--echo ### Slave: Stop replication
|
||||
--connection slave
|
||||
STOP SLAVE;
|
||||
--source include/wait_for_slave_to_stop.inc
|
||||
RESET SLAVE;
|
||||
|
||||
--echo ### Slave: Shutdown the server
|
||||
|
||||
if ($cnf == "mariadb_to_mariadb")
|
||||
{
|
||||
--let $rpl_server_number= 2
|
||||
--source include/rpl_stop_server.inc
|
||||
}
|
||||
|
||||
if ($cnf == "galera2_to_mariadb")
|
||||
{
|
||||
--connection slave
|
||||
--source $MYSQL_TEST_DIR/include/shutdown_mysqld.inc
|
||||
}
|
||||
|
||||
--echo ### Master: Run a transaction while the slave is shut down
|
||||
--connection master
|
||||
START TRANSACTION;
|
||||
INSERT INTO t1 VALUES ('tr#03:stmt#00 - after slave run#0, slave is shut down, after backup');
|
||||
INSERT INTO t1 VALUES ('tr#03:stmt#01 - after slave run#0, slave is shut down, after backup');
|
||||
INSERT INTO t1 VALUES ('tr#03:stmt#02 - after slave run#0, slave is shut down, after backup');
|
||||
COMMIT;
|
||||
|
||||
|
||||
--echo ##############################################################
|
||||
--echo ### Emulate starting a new virgin slave
|
||||
|
||||
--echo ### Slave: Remove the data directory
|
||||
--rmdir $MYSQLD_DATADIR_SLAVE
|
||||
|
||||
--echo ### Slave: Copy back the backup
|
||||
--exec $XTRABACKUP $XTRABACKUP_COPY_BACK_OPTIONS --copy-back --datadir=$MYSQLD_DATADIR_SLAVE --target-dir=$backup_slave
|
||||
|
||||
--echo ### Slave: Restart the server
|
||||
if ($cnf == "mariadb_to_mariadb")
|
||||
{
|
||||
--let $rpl_server_number= 2
|
||||
--source include/rpl_start_server.inc
|
||||
--source include/wait_until_connected_again.inc
|
||||
}
|
||||
|
||||
if ($cnf == "galera2_to_mariadb")
|
||||
{
|
||||
--connection slave
|
||||
--source $MYSQL_TEST_DIR/include/start_mysqld.inc
|
||||
}
|
||||
|
||||
--echo ### Slave: Display the restored data before START SLAVE
|
||||
--connection slave
|
||||
SELECT * FROM t1 ORDER BY a;
|
||||
|
||||
--echo ### Slave: Execute the CHANGE MASTER statement to set up the host and port
|
||||
--replace_result $MASTER_MYPORT ###
|
||||
--eval CHANGE MASTER '' TO MASTER_USER='root', MASTER_HOST='127.0.0.1', MASTER_PORT=$MASTER_MYPORT, MASTER_CONNECT_RETRY=1
|
||||
|
||||
--echo ### Slave: Execute the CHANGE MASTER statement from mariadb_backup_slave_info
|
||||
--replace_result $master_after_tr01_show_master_status_file master_after_tr01_show_master_status_file $master_after_tr01_show_master_status_position master_after_tr01_show_master_status_position
|
||||
--source $backup_slave/mariadb_backup_slave_info
|
||||
|
||||
--echo ### Slave: Execute START SLAVE
|
||||
--source include/start_slave.inc
|
||||
|
||||
--echo ### Master: Wait for the slave to apply all master events
|
||||
--connection master
|
||||
--sync_slave_with_master slave
|
||||
|
||||
--echo ### Slave: Make sure replication is not using GTID after the slave restart
|
||||
--connection slave
|
||||
--let $value= query_get_value(SHOW SLAVE STATUS, "Using_Gtid", 1)
|
||||
--echo # Using_Gtid=$value
|
||||
|
||||
--echo ### Slave: Display the restored data after START SLAVE
|
||||
--connection slave
|
||||
SELECT * FROM t1 ORDER BY a;
|
||||
|
||||
|
||||
--echo ##############################################################
|
||||
--echo ### Continue master transactions, check the new slave replicates well.
|
||||
|
||||
--echo ### Master: Run a transaction after restarting replication
|
||||
--connection master
|
||||
START TRANSACTION;
|
||||
INSERT INTO t1 VALUES ('tr#04:stmt#00 - slave run#1');
|
||||
INSERT INTO t1 VALUES ('tr#04:stmt#01 - slave run#1');
|
||||
INSERT INTO t1 VALUES ('tr#04:stmt#02 - slave run#1');
|
||||
COMMIT;
|
||||
--sync_slave_with_master
|
||||
|
||||
--echo ### Slave: Display the restored data + new transactions
|
||||
--connection slave
|
||||
SELECT * FROM t1 ORDER BY a;
|
||||
|
||||
|
||||
--echo ##############################################################
|
||||
--echo ### Cleanup
|
||||
|
||||
--echo ### Removing the backup directory
|
||||
--rmdir $backup_slave
|
||||
|
||||
--connection master
|
||||
DROP TABLE t1;
|
||||
--sync_slave_with_master
|
||||
|
||||
if ($cnf == "mariadb_to_mariadb")
|
||||
{
|
||||
--source include/rpl_end.inc
|
||||
}
|
||||
|
||||
if ($cnf == "galera2_to_mariadb")
|
||||
{
|
||||
STOP SLAVE;
|
||||
--source include/wait_for_slave_to_stop.inc
|
||||
RESET SLAVE ALL;
|
||||
|
||||
--connection master
|
||||
set global wsrep_on=OFF;
|
||||
RESET MASTER;
|
||||
set global wsrep_on=ON;
|
||||
}
|
@ -9,9 +9,6 @@
|
||||
#
|
||||
# The environment variables SEARCH_FILE and SEARCH_PATTERN must be set
|
||||
# before sourcing this routine.
|
||||
# SEARCH_TYPE can also be set to either NULL(default) or _gm_
|
||||
# NULL is equivalent of using m/SEARCH_PATTERN/gs
|
||||
# _gm_ is equivalent of using m/SEARCH_RANGE/gm
|
||||
#
|
||||
# Optionally, SEARCH_RANGE can be set to the max number of bytes of the file
|
||||
# to search. If negative, it will search that many bytes at the end of the
|
||||
@ -25,6 +22,7 @@
|
||||
# Supported formats:
|
||||
# - (default) : "FOUND n /pattern/ in FILE " or "NOT FOUND ..."
|
||||
# - "matches" : Each match is printed, on a separate line
|
||||
# - "count" : "FOUND n matches in FILE" or "NOT FOUND ..." (omit pattern)
|
||||
#
|
||||
# In case of
|
||||
# - SEARCH_FILE and/or SEARCH_PATTERN is not set
|
||||
@ -51,15 +49,12 @@
|
||||
# Created: 2011-11-11 mleich
|
||||
#
|
||||
|
||||
--error 0,1
|
||||
perl;
|
||||
use strict;
|
||||
die "SEARCH_FILE not set" unless $ENV{SEARCH_FILE};
|
||||
my @search_files= glob($ENV{SEARCH_FILE});
|
||||
my $search_pattern= $ENV{SEARCH_PATTERN} or die "SEARCH_PATTERN not set";
|
||||
my $search_range= $ENV{SEARCH_RANGE};
|
||||
my $silent= $ENV{SEARCH_SILENT};
|
||||
my $search_result= 0;
|
||||
my $content;
|
||||
foreach my $search_file (@search_files) {
|
||||
open(FILE, '<', $search_file) || die("Can't open file $search_file: $!");
|
||||
@ -83,48 +78,23 @@ perl;
|
||||
close(FILE);
|
||||
$content.= $file_content;
|
||||
}
|
||||
my @matches;
|
||||
if (not defined($ENV{SEARCH_TYPE}))
|
||||
{
|
||||
@matches=($content =~ /$search_pattern/gs);
|
||||
}
|
||||
elsif($ENV{SEARCH_TYPE} == "_gm_")
|
||||
{
|
||||
@matches=($content =~ /$search_pattern/gm);
|
||||
}
|
||||
my $res;
|
||||
if (@matches)
|
||||
{
|
||||
$res="FOUND " . scalar(@matches);
|
||||
$search_result= 1;
|
||||
}
|
||||
else
|
||||
{
|
||||
$res= "NOT FOUND";
|
||||
}
|
||||
my @matches= ($content =~ /$search_pattern/gs);
|
||||
my $res=@matches ? "FOUND " . scalar(@matches) : "NOT FOUND";
|
||||
|
||||
$ENV{SEARCH_FILE} =~ s{^.*?([^/\\]+)$}{$1};
|
||||
|
||||
if (!$silent || $search_result)
|
||||
{
|
||||
if ($ENV{SEARCH_OUTPUT} eq "matches")
|
||||
{
|
||||
foreach (@matches)
|
||||
{
|
||||
print $_ . "\n";
|
||||
}
|
||||
}
|
||||
else
|
||||
{
|
||||
print "$res /$search_pattern/ in $ENV{SEARCH_FILE}\n";
|
||||
if ($ENV{SEARCH_OUTPUT} eq "matches") {
|
||||
foreach (@matches) {
|
||||
print $_ . "\n";
|
||||
}
|
||||
}
|
||||
die "$ENV{SEARCH_ABORT}\n"
|
||||
if $ENV{SEARCH_ABORT} && $res =~ /^$ENV{SEARCH_ABORT}/;
|
||||
exit($search_result != 1);
|
||||
elsif ($ENV{SEARCH_OUTPUT} eq "count")
|
||||
{
|
||||
print "$res matches in $ENV{SEARCH_FILE}\n";
|
||||
}
|
||||
elsif ($ENV{SEARCH_ABORT} and $res =~ /^$ENV{SEARCH_ABORT}/) {
|
||||
die "$res /$search_pattern/ in $ENV{SEARCH_FILE}\n";
|
||||
} else {
|
||||
print "$res /$search_pattern/ in $ENV{SEARCH_FILE}\n";
|
||||
}
|
||||
EOF
|
||||
|
||||
let $SEARCH_RESULT= 1; # Found pattern
|
||||
if ($errno)
|
||||
{
|
||||
let $SEARCH_RESULT= 0; # Did not find pattern
|
||||
}
|
||||
|
@ -25,23 +25,23 @@ if (!$_timeout)
|
||||
}
|
||||
|
||||
let $_timeout_counter=`SELECT $_timeout * 10`;
|
||||
let SEARCH_SILENT=1;
|
||||
|
||||
let SEARCH_ABORT=NOT FOUND;
|
||||
let $_continue= 1;
|
||||
disable_abort_on_error;
|
||||
while ($_continue)
|
||||
{
|
||||
source include/search_pattern_in_file.inc;
|
||||
if ($SEARCH_RESULT)
|
||||
if (!$errno)
|
||||
{
|
||||
# Found match
|
||||
let $_continue= 0;
|
||||
}
|
||||
if (!$SEARCH_RESULT)
|
||||
if ($errno)
|
||||
{
|
||||
dec $_timeout_counter;
|
||||
if ($_timeout_counter == 1)
|
||||
{
|
||||
let $SEARCH_SILENT= 0;
|
||||
enable_abort_on_error;
|
||||
}
|
||||
if (!$_timeout_counter)
|
||||
{
|
||||
@ -49,8 +49,7 @@ while ($_continue)
|
||||
}
|
||||
}
|
||||
}
|
||||
|
||||
let SEARCH_SILENT=0;
|
||||
enable_abort_on_error;
|
||||
|
||||
--source include/end_include_file.inc
|
||||
--let $keep_include_silent=$wait_save_keep_include_silent
|
||||
|
@ -11,7 +11,7 @@ let $counter= 5000;
|
||||
let $mysql_errno= 9999;
|
||||
while ($mysql_errno)
|
||||
{
|
||||
--error 0,ER_ACCESS_DENIED_ERROR,ER_SERVER_SHUTDOWN,ER_CONNECTION_KILLED,ER_LOCK_WAIT_TIMEOUT,2002,2006,2013,HA_ERR_NO_ENCRYPTION
|
||||
--error 0,ER_ACCESS_DENIED_ERROR,ER_SERVER_SHUTDOWN,ER_CONNECTION_KILLED,ER_LOCK_WAIT_TIMEOUT,2002,2006,2013,HA_ERR_NO_ENCRYPTION,2026
|
||||
select 1;
|
||||
|
||||
dec $counter;
|
||||
|
Reference in New Issue
Block a user