Remove ndb_binlog_index from auto-skipped sys tables in SchemaIterator because it wasn't previously skipped in 5.1 and 5.5.

This commit is contained in:
Daniel Nichter
2012-12-20 23:05:06 +00:00
parent ca5b2ecfea
commit dad38169bf
8 changed files with 84 additions and 51 deletions

View File

@@ -3026,11 +3026,16 @@ sub next {
if ( !$self->{initialized} ) {
$self->{initialized} = 1;
if ( $self->{resume}->{tbl}
&& !$self->table_is_allowed(@{$self->{resume}}{qw(db tbl)}) ) {
PTDEBUG && _d('Will resume after',
join('.', @{$self->{resume}}{qw(db tbl)}));
$self->{resume}->{after} = 1;
if ( $self->{resume}->{tbl} ) {
if ( !$self->table_is_allowed(@{$self->{resume}}{qw(db tbl)}) ) {
PTDEBUG && _d('Will resume after',
join('.', @{$self->{resume}}{qw(db tbl)}));
$self->{resume}->{after}->{tbl} = 1;
}
if ( !$self->database_is_allowed($self->{resume}->{db}) ) {
PTDEBUG && _d('Will resume after', $self->{resume}->{db});
$self->{resume}->{after}->{db} = 1;
}
}
}
@@ -3128,16 +3133,17 @@ sub _iterate_dbh {
if ( !defined $self->{dbs} ) {
my $sql = 'SHOW DATABASES';
PTDEBUG && _d($sql);
my @dbs = grep { $self->database_is_allowed($_) }
@{$dbh->selectcol_arrayref($sql)};
my @dbs = grep {
$self->_resume_from_database($_)
&&
$self->database_is_allowed($_)
} @{$dbh->selectcol_arrayref($sql)};
PTDEBUG && _d('Found', scalar @dbs, 'databases');
$self->{dbs} = \@dbs;
}
if ( !$self->{db} ) {
do {
$self->{db} = shift @{$self->{dbs}};
} until $self->_resume_from_database($self->{db});
$self->{db} = shift @{$self->{dbs}};
PTDEBUG && _d('Next database:', $self->{db});
return unless $self->{db};
}
@@ -3244,7 +3250,6 @@ sub table_is_allowed {
|slow_log
|innodb_index_stats
|innodb_table_stats
|ndb_binlog_index
|slave_master_info
|slave_relay_log_info
|slave_worker_info
@@ -3317,11 +3322,17 @@ sub _resume_from_database {
my ($self, $db) = @_;
return 1 unless $self->{resume}->{db};
if ( $db eq $self->{resume}->{db} ) {
PTDEBUG && _d('At resume db', $db);
delete $self->{resume}->{db};
return 1;
if ( !$self->{resume}->{after}->{db} ) {
PTDEBUG && _d('Resuming from db', $db);
delete $self->{resume}->{db};
return 1;
}
else {
PTDEBUG && _d('Resuming after db', $db);
delete $self->{resume}->{db};
delete $self->{resume}->{tbl};
}
}
return 0;
@@ -3333,7 +3344,7 @@ sub _resume_from_table {
return 1 unless $self->{resume}->{tbl};
if ( $tbl eq $self->{resume}->{tbl} ) {
if ( !$self->{resume}->{after} ) {
if ( !$self->{resume}->{after}->{tbl} ) {
PTDEBUG && _d('Resuming from table', $tbl);
delete $self->{resume}->{tbl};
return 1;

View File

@@ -3844,11 +3844,16 @@ sub next {
if ( !$self->{initialized} ) {
$self->{initialized} = 1;
if ( $self->{resume}->{tbl}
&& !$self->table_is_allowed(@{$self->{resume}}{qw(db tbl)}) ) {
PTDEBUG && _d('Will resume after',
join('.', @{$self->{resume}}{qw(db tbl)}));
$self->{resume}->{after} = 1;
if ( $self->{resume}->{tbl} ) {
if ( !$self->table_is_allowed(@{$self->{resume}}{qw(db tbl)}) ) {
PTDEBUG && _d('Will resume after',
join('.', @{$self->{resume}}{qw(db tbl)}));
$self->{resume}->{after}->{tbl} = 1;
}
if ( !$self->database_is_allowed($self->{resume}->{db}) ) {
PTDEBUG && _d('Will resume after', $self->{resume}->{db});
$self->{resume}->{after}->{db} = 1;
}
}
}
@@ -3946,16 +3951,17 @@ sub _iterate_dbh {
if ( !defined $self->{dbs} ) {
my $sql = 'SHOW DATABASES';
PTDEBUG && _d($sql);
my @dbs = grep { $self->database_is_allowed($_) }
@{$dbh->selectcol_arrayref($sql)};
my @dbs = grep {
$self->_resume_from_database($_)
&&
$self->database_is_allowed($_)
} @{$dbh->selectcol_arrayref($sql)};
PTDEBUG && _d('Found', scalar @dbs, 'databases');
$self->{dbs} = \@dbs;
}
if ( !$self->{db} ) {
do {
$self->{db} = shift @{$self->{dbs}};
} until $self->_resume_from_database($self->{db});
$self->{db} = shift @{$self->{dbs}};
PTDEBUG && _d('Next database:', $self->{db});
return unless $self->{db};
}
@@ -4062,7 +4068,6 @@ sub table_is_allowed {
|slow_log
|innodb_index_stats
|innodb_table_stats
|ndb_binlog_index
|slave_master_info
|slave_relay_log_info
|slave_worker_info
@@ -4135,11 +4140,17 @@ sub _resume_from_database {
my ($self, $db) = @_;
return 1 unless $self->{resume}->{db};
if ( $db eq $self->{resume}->{db} ) {
PTDEBUG && _d('At resume db', $db);
delete $self->{resume}->{db};
return 1;
if ( !$self->{resume}->{after}->{db} ) {
PTDEBUG && _d('Resuming from db', $db);
delete $self->{resume}->{db};
return 1;
}
else {
PTDEBUG && _d('Resuming after db', $db);
delete $self->{resume}->{db};
delete $self->{resume}->{tbl};
}
}
return 0;
@@ -4151,7 +4162,7 @@ sub _resume_from_table {
return 1 unless $self->{resume}->{tbl};
if ( $tbl eq $self->{resume}->{tbl} ) {
if ( !$self->{resume}->{after} ) {
if ( !$self->{resume}->{after}->{tbl} ) {
PTDEBUG && _d('Resuming from table', $tbl);
delete $self->{resume}->{tbl};
return 1;

View File

@@ -6991,7 +6991,6 @@ sub table_is_allowed {
|slow_log
|innodb_index_stats
|innodb_table_stats
|ndb_binlog_index
|slave_master_info
|slave_relay_log_info
|slave_worker_info

View File

@@ -7521,11 +7521,16 @@ sub next {
if ( !$self->{initialized} ) {
$self->{initialized} = 1;
if ( $self->{resume}->{tbl}
&& !$self->table_is_allowed(@{$self->{resume}}{qw(db tbl)}) ) {
PTDEBUG && _d('Will resume after',
join('.', @{$self->{resume}}{qw(db tbl)}));
$self->{resume}->{after} = 1;
if ( $self->{resume}->{tbl} ) {
if ( !$self->table_is_allowed(@{$self->{resume}}{qw(db tbl)}) ) {
PTDEBUG && _d('Will resume after',
join('.', @{$self->{resume}}{qw(db tbl)}));
$self->{resume}->{after}->{tbl} = 1;
}
if ( !$self->database_is_allowed($self->{resume}->{db}) ) {
PTDEBUG && _d('Will resume after', $self->{resume}->{db});
$self->{resume}->{after}->{db} = 1;
}
}
}
@@ -7623,16 +7628,17 @@ sub _iterate_dbh {
if ( !defined $self->{dbs} ) {
my $sql = 'SHOW DATABASES';
PTDEBUG && _d($sql);
my @dbs = grep { $self->database_is_allowed($_) }
@{$dbh->selectcol_arrayref($sql)};
my @dbs = grep {
$self->_resume_from_database($_)
&&
$self->database_is_allowed($_)
} @{$dbh->selectcol_arrayref($sql)};
PTDEBUG && _d('Found', scalar @dbs, 'databases');
$self->{dbs} = \@dbs;
}
if ( !$self->{db} ) {
do {
$self->{db} = shift @{$self->{dbs}};
} until $self->_resume_from_database($self->{db});
$self->{db} = shift @{$self->{dbs}};
PTDEBUG && _d('Next database:', $self->{db});
return unless $self->{db};
}
@@ -7739,7 +7745,6 @@ sub table_is_allowed {
|slow_log
|innodb_index_stats
|innodb_table_stats
|ndb_binlog_index
|slave_master_info
|slave_relay_log_info
|slave_worker_info
@@ -7812,11 +7817,17 @@ sub _resume_from_database {
my ($self, $db) = @_;
return 1 unless $self->{resume}->{db};
if ( $db eq $self->{resume}->{db} ) {
PTDEBUG && _d('At resume db', $db);
delete $self->{resume}->{db};
return 1;
if ( !$self->{resume}->{after}->{db} ) {
PTDEBUG && _d('Resuming from db', $db);
delete $self->{resume}->{db};
return 1;
}
else {
PTDEBUG && _d('Resuming after db', $db);
delete $self->{resume}->{db};
delete $self->{resume}->{tbl};
}
}
return 0;
@@ -7828,7 +7839,7 @@ sub _resume_from_table {
return 1 unless $self->{resume}->{tbl};
if ( $tbl eq $self->{resume}->{tbl} ) {
if ( !$self->{resume}->{after} ) {
if ( !$self->{resume}->{after}->{tbl} ) {
PTDEBUG && _d('Resuming from table', $tbl);
delete $self->{resume}->{tbl};
return 1;

View File

@@ -449,7 +449,6 @@ sub table_is_allowed {
|slow_log
|innodb_index_stats
|innodb_table_stats
|ndb_binlog_index
|slave_master_info
|slave_relay_log_info
|slave_worker_info

View File

@@ -97,7 +97,7 @@ ok(
"Static chunk size (--chunk-time 0)"
);
my $n_checksums = $sandbox_version eq "5.6" ? 88
my $n_checksums = $sandbox_version eq "5.6" ? 89
: $sandbox_version eq "5.5" ? 90
: $sandbox_version eq "5.1" ? 89
: 85;

View File

@@ -7,6 +7,7 @@ ERRORS DIFFS ROWS SKIPPED TABLE
0 0 461 0 mysql.help_keyword
0 0 1045 0 mysql.help_relation
0 0 324 0 mysql.help_topic
0 0 0 0 mysql.ndb_binlog_index
0 0 0 0 mysql.plugin
0 0 0 0 mysql.proc
0 0 0 0 mysql.procs_priv

View File

@@ -7,6 +7,7 @@ ERRORS DIFFS ROWS CHUNKS SKIPPED TABLE
0 0 461 1 0 mysql.help_keyword
0 0 1045 1 0 mysql.help_relation
0 0 324 1 0 mysql.help_topic
0 0 0 1 0 mysql.ndb_binlog_index
0 0 0 1 0 mysql.plugin
0 0 0 1 0 mysql.proc
0 0 0 1 0 mysql.procs_priv