mirror of
https://github.com/percona/percona-toolkit.git
synced 2025-09-06 04:17:55 +00:00
Handle resume in NibbleIterator.
This commit is contained in:
@@ -39,7 +39,7 @@ if ( !$dbh ) {
|
||||
plan skip_all => 'Cannot connect to sandbox master';
|
||||
}
|
||||
else {
|
||||
plan tests => 42;
|
||||
plan tests => 44;
|
||||
}
|
||||
|
||||
my $q = new Quoter();
|
||||
@@ -92,6 +92,7 @@ sub make_nibble_iter {
|
||||
callbacks => $args{callbacks},
|
||||
select => $args{select},
|
||||
one_nibble => $args{one_nibble},
|
||||
resume => $args{resume},
|
||||
%common_modules,
|
||||
);
|
||||
|
||||
@@ -720,6 +721,47 @@ is_deeply(
|
||||
"--chunk-size-limit 0 on empty table"
|
||||
);
|
||||
|
||||
# ############################################################################
|
||||
# Resume.
|
||||
# ############################################################################
|
||||
$ni = make_nibble_iter(
|
||||
sql_file => "a-z.sql",
|
||||
db => 'test',
|
||||
tbl => 't',
|
||||
argv => [qw(--databases test --chunk-size 5)],
|
||||
resume => { upper_boundary => 'j' },
|
||||
);
|
||||
|
||||
@rows = ();
|
||||
while (my $row = $ni->next()) {
|
||||
push @rows, @$row;
|
||||
}
|
||||
|
||||
is_deeply(
|
||||
\@rows,
|
||||
[ ('k'..'z') ],
|
||||
"Resume from middle"
|
||||
);
|
||||
|
||||
$ni = make_nibble_iter(
|
||||
sql_file => "a-z.sql",
|
||||
db => 'test',
|
||||
tbl => 't',
|
||||
argv => [qw(--databases test --chunk-size 5)],
|
||||
resume => { upper_boundary => 'z' },
|
||||
);
|
||||
|
||||
@rows = ();
|
||||
while (my $row = $ni->next()) {
|
||||
push @rows, @$row;
|
||||
}
|
||||
|
||||
is_deeply(
|
||||
\@rows,
|
||||
[ ],
|
||||
"Resume from end"
|
||||
);
|
||||
|
||||
# #############################################################################
|
||||
# Done.
|
||||
# #############################################################################
|
||||
|
Reference in New Issue
Block a user