mirror of
https://github.com/percona/percona-toolkit.git
synced 2025-09-10 13:11:32 +00:00
Merged mysql-5.6-test-fixes and resolved conflicts
This commit is contained in:
@@ -126,12 +126,13 @@ sub create_dbs {
|
||||
}
|
||||
|
||||
sub get_dbh_for {
|
||||
my ( $self, $server, $cxn_ops ) = @_;
|
||||
my ( $self, $server, $cxn_ops, $user ) = @_;
|
||||
_check_server($server);
|
||||
$cxn_ops ||= { AutoCommit => 1 };
|
||||
$user ||= 'msandbox';
|
||||
PTDEBUG && _d('dbh for', $server, 'on port', $port_for{$server});
|
||||
my $dp = $self->{DSNParser};
|
||||
my $dsn = $dp->parse('h=127.0.0.1,u=msandbox,p=msandbox,P=' . $port_for{$server});
|
||||
my $dsn = $dp->parse("h=127.0.0.1,u=$user,p=msandbox,P=" . $port_for{$server});
|
||||
my $dbh;
|
||||
# This is primarily for the benefit of CompareResults, but it's
|
||||
# also quite convenient when using an affected OS
|
||||
@@ -335,11 +336,11 @@ sub wait_for_slaves {
|
||||
my $master_dbh = $self->get_dbh_for($args{master} || 'master');
|
||||
my $slave2_dbh = $self->get_dbh_for($args{slave} || 'slave2');
|
||||
my ($ping) = $master_dbh->selectrow_array("SELECT MD5(RAND())");
|
||||
$master_dbh->do("UPDATE percona_test.sentinel SET ping='$ping' WHERE id=1");
|
||||
$master_dbh->do("UPDATE percona_test.sentinel SET ping='$ping' WHERE id=1 /* wait_for_slaves */");
|
||||
PerconaTest::wait_until(
|
||||
sub {
|
||||
my ($pong) = $slave2_dbh->selectrow_array(
|
||||
"SELECT ping FROM percona_test.sentinel WHERE id=1");
|
||||
"SELECT ping FROM percona_test.sentinel WHERE id=1 /* wait_for_slaves */");
|
||||
return $ping eq $pong;
|
||||
}, undef, 300
|
||||
);
|
||||
@@ -542,6 +543,23 @@ sub config_file_for {
|
||||
return "/tmp/$port/my.sandbox.cnf"
|
||||
}
|
||||
|
||||
sub do_as_root {
|
||||
my ($self, $server, @queries) = @_;
|
||||
my $dbh = $self->get_dbh_for($server, undef, 'root');
|
||||
my $ok = 1;
|
||||
eval {
|
||||
foreach my $query ( @queries ) {
|
||||
$dbh->do($query);
|
||||
}
|
||||
};
|
||||
if ( $EVAL_ERROR ) {
|
||||
$ok = 0;
|
||||
warn $EVAL_ERROR;
|
||||
}
|
||||
$dbh->disconnect;
|
||||
return $ok;
|
||||
}
|
||||
|
||||
sub _d {
|
||||
my ($package, undef, $line) = caller 0;
|
||||
@_ = map { (my $temp = $_) =~ s/\n/\n# /g; $temp; }
|
||||
|
@@ -444,9 +444,16 @@ sub table_is_allowed {
|
||||
my $filter = $self->{filters};
|
||||
|
||||
# Always auto-skip these pseudo tables.
|
||||
if ( $db eq 'mysql' && ($tbl eq 'general_log' || $tbl eq 'slow_log') ) {
|
||||
return 0;
|
||||
}
|
||||
return 0 if $db eq 'mysql' && $tbl =~ m/^(?:
|
||||
general_log
|
||||
|slow_log
|
||||
|innodb_index_stats
|
||||
|innodb_table_stats
|
||||
|ndb_binlog_index
|
||||
|slave_master_info
|
||||
|slave_relay_log_info
|
||||
|slave_worker_info
|
||||
)$/x;
|
||||
|
||||
if ( $filter->{'ignore-tables'}->{$tbl}
|
||||
&& ($filter->{'ignore-tables'}->{$tbl} eq '*'
|
||||
|
Reference in New Issue
Block a user