Handle resume in NibbleIterator.

This commit is contained in:
Daniel Nichter
2011-11-15 11:55:07 -07:00
parent 6dd46590e2
commit 619cda713f
2 changed files with 76 additions and 3 deletions

View File

@@ -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.
# #############################################################################