Finish updating resume.t to handle OobNibbleIterator.

This commit is contained in:
Daniel Nichter
2011-11-16 11:15:18 -07:00
parent 42bd00c4d6
commit ef61f734cf
4 changed files with 183 additions and 76 deletions
+43 -13
View File
@@ -3552,20 +3552,30 @@ sub new {
my $from = $q->quote(@{$tbl}{qw(db tbl)}) . " FORCE INDEX(`$index`)"; my $from = $q->quote(@{$tbl}{qw(db tbl)}) . " FORCE INDEX(`$index`)";
my $order_by = join(', ', map {$q->quote($_)} @{$index_cols}); my $order_by = join(', ', map {$q->quote($_)} @{$index_cols});
my $first_lb_where = $where ? "($where)" : '';
if ( $args{resume} ) {
$first_lb_where .= ($where ? " AND " : '') . $asc->{boundaries}->{'>'};
}
my $first_lb_sql my $first_lb_sql
= "SELECT /*!40001 SQL_NO_CACHE */ " = "SELECT /*!40001 SQL_NO_CACHE */ "
. join(', ', map { $q->quote($_) } @{$asc->{scols}}) . join(', ', map { $q->quote($_) } @{$asc->{scols}})
. " FROM $from" . " FROM $from"
. ($first_lb_where ? " WHERE $first_lb_where" : '') . ($where ? " WHERE $where" : '')
. " ORDER BY $order_by" . " ORDER BY $order_by"
. " LIMIT 1" . " LIMIT 1"
. " /*first lower boundary*/"; . " /*first lower boundary*/";
MKDEBUG && _d('First lower boundary statement:', $first_lb_sql); MKDEBUG && _d('First lower boundary statement:', $first_lb_sql);
my $resume_lb_sql;
if ( $args{resume} ) {
$resume_lb_sql
= "SELECT /*!40001 SQL_NO_CACHE */ "
. join(', ', map { $q->quote($_) } @{$asc->{scols}})
. " FROM $from"
. " WHERE " . $asc->{boundaries}->{'>'}
. ($where ? " AND ($where)" : '')
. " ORDER BY $order_by"
. " LIMIT 1"
. " /*resume lower boundary*/";
MKDEBUG && _d('Resume lower boundary statement:', $resume_lb_sql);
}
my $last_ub_sql my $last_ub_sql
= "SELECT /*!40001 SQL_NO_CACHE */ " = "SELECT /*!40001 SQL_NO_CACHE */ "
. join(', ', map { $q->quote($_) } @{$asc->{scols}}) . join(', ', map { $q->quote($_) } @{$asc->{scols}})
@@ -3626,6 +3636,7 @@ sub new {
explain_ub_sql => "EXPLAIN $ub_sql", explain_ub_sql => "EXPLAIN $ub_sql",
explain_nibble_sql => $explain_nibble_sql, explain_nibble_sql => $explain_nibble_sql,
resume => $args{resume}, resume => $args{resume},
resume_lb_sql => $resume_lb_sql,
sql => { sql => {
columns => $asc->{scols}, columns => $asc->{scols},
from => $from, from => $from,
@@ -3930,19 +3941,27 @@ sub _get_bounds {
my $dbh = $self->{Cxn}->dbh(); my $dbh = $self->{Cxn}->dbh();
$self->{first_lower} = $dbh->selectrow_arrayref($self->{first_lb_sql});
MKDEBUG && _d('First lower boundary:', Dumper($self->{first_lower}));
if ( my $nibble = $self->{resume} ) { if ( my $nibble = $self->{resume} ) {
my $sth = $dbh->prepare($self->{first_lb_sql}); if ( defined $nibble->{upper_boundary} ) {
my $sth = $dbh->prepare($self->{resume_lb_sql});
my @ub = split ',', $nibble->{upper_boundary}; my @ub = split ',', $nibble->{upper_boundary};
MKDEBUG && _d($sth->{Statement}, 'params:', @ub); MKDEBUG && _d($sth->{Statement}, 'params:', @ub);
$sth->execute(@ub); $sth->execute(@ub);
$self->{first_lower} = $sth->fetchrow_arrayref(); $self->{next_lower} = $sth->fetchrow_arrayref();
$sth->finish(); $sth->finish();
} }
else { else {
$self->{first_lower} = $dbh->selectrow_arrayref($self->{first_lb_sql}); MKDEBUG && _d('No more boundaries to resume');
$self->{no_more_boundaries} = 1;
} }
}
else {
$self->{next_lower} = $self->{first_lower}; $self->{next_lower} = $self->{first_lower};
MKDEBUG && _d('First lower boundary:', Dumper($self->{next_lower})); }
MKDEBUG && _d('Next lower boundary:', Dumper($self->{next_lower}));
$self->{last_upper} = $dbh->selectrow_arrayref($self->{last_ub_sql}); $self->{last_upper} = $dbh->selectrow_arrayref($self->{last_ub_sql});
MKDEBUG && _d('Last upper boundary:', Dumper($self->{last_upper})); MKDEBUG && _d('Last upper boundary:', Dumper($self->{last_upper}));
@@ -4152,7 +4171,18 @@ sub new {
$self->{past_upper_sql} = $past_upper_sql; $self->{past_upper_sql} = $past_upper_sql;
$self->{explain_past_lower_sql} = $explain_past_lower_sql; $self->{explain_past_lower_sql} = $explain_past_lower_sql;
$self->{explain_past_upper_sql} = $explain_past_upper_sql; $self->{explain_past_upper_sql} = $explain_past_upper_sql;
$self->{past_nibbles} = [qw(lower upper)]; # what we nibble
my @past_nibbles = qw(lower upper);
if ( my $nibble = $args{resume} ) {
if ( !defined $nibble->{lower_boundary} ) {
$self->{past_nibbles} = [qw(upper)];
}
elsif ( !defined $nibble->{upper_boundary} ) {
$self->{past_nibbles} = [];
}
}
MKDEBUG && _d('Nibble past', @past_nibbles);
$self->{past_nibbles} = \@past_nibbles,
} }
return bless $self, $class; return bless $self, $class;
@@ -4177,7 +4207,7 @@ sub statements {
sub _prepare_sths { sub _prepare_sths {
my ($self) = @_; my ($self) = @_;
MKDEBUG && _d('Preparing boundless statement handles'); MKDEBUG && _d('Preparing out-of-bound statement handles');
if ( !$self->{one_nibble} ) { if ( !$self->{one_nibble} ) {
my $dbh = $self->{Cxn}->dbh(); my $dbh = $self->{Cxn}->dbh();
@@ -6288,8 +6318,8 @@ sub main {
# --explain level 2: print chunk,lower boundary values,upper # --explain level 2: print chunk,lower boundary values,upper
# boundary values. # boundary values.
if ( $o->get('explain') > 1 ) { if ( $o->get('explain') > 1 ) {
my $lb_quoted = join(',', @{$boundary->{lower}}); my $lb_quoted = join(',', @{$boundary->{lower} || []});
my $ub_quoted = join(',', @{$boundary->{upper}}); my $ub_quoted = join(',', @{$boundary->{upper} || []});
my $chunk = $nibble_iter->nibble_number(); my $chunk = $nibble_iter->nibble_number();
printf "%d %s %s\n", printf "%d %s %s\n",
$chunk, $chunk,
+107 -44
View File
@@ -29,7 +29,7 @@ elsif ( !$slave1_dbh ) {
plan skip_all => 'Cannot connect to sandbox slave'; plan skip_all => 'Cannot connect to sandbox slave';
} }
else { else {
plan tests => 21; plan tests => 33;
} }
# The sandbox servers run with lock_wait_timeout=3 and it's not dynamic # The sandbox servers run with lock_wait_timeout=3 and it's not dynamic
@@ -132,7 +132,6 @@ is_deeply(
$output = output( $output = output(
sub { pt_table_checksum::main(@args, qw(-d sakila --resume)) }, sub { pt_table_checksum::main(@args, qw(-d sakila --resume)) },
trf => sub { return PerconaTest::normalize_checksum_results(@_) },
); );
$row = $master_dbh->selectall_arrayref('select db, tbl from percona.checksums order by db, tbl'); $row = $master_dbh->selectall_arrayref('select db, tbl from percona.checksums order by db, tbl');
@@ -142,27 +141,31 @@ is_deeply(
"Resume finished sakila" "Resume finished sakila"
); );
# XXX This may not be a stable test if your machine isn't fast enough my (undef, $first_tbl) = split /\n/, $output;
# to do these remaining tables as single chunks. like(
is( $first_tbl,
$output, qr/sakila.country$/,
"ERRORS DIFFS ROWS CHUNKS SKIPPED TABLE
0 0 109 1 0 sakila.country
0 0 599 1 0 sakila.customer
0 0 1000 1 0 sakila.film
0 0 5462 1 0 sakila.film_actor
0 0 1000 1 0 sakila.film_category
0 0 1000 1 0 sakila.film_text
0 0 4581 1 0 sakila.inventory
0 0 6 1 0 sakila.language
0 0 16049 1 0 sakila.payment
0 0 16044 1 0 sakila.rental
0 0 2 1 0 sakila.staff
0 0 2 1 0 sakila.store
",
"Resumed from next table" "Resumed from next table"
); );
is(
PerconaTest::count_checksum_results($output, 'errors'),
0,
"Resumed 0 errors"
);
is(
PerconaTest::count_checksum_results($output, 'diffs'),
0,
"Resumed 0 diffs"
);
is(
PerconaTest::count_checksum_results($output, 'rows'),
45_854,
"Resumed 45,854 rows"
);
# ############################################################################ # ############################################################################
# Resume from the middle of a table that was being chunked. # Resume from the middle of a table that was being chunked.
# ############################################################################ # ############################################################################
@@ -183,6 +186,8 @@ my $first_half = [
[qw(sakila film_actor 4 1000 )], [qw(sakila film_actor 4 1000 )],
[qw(sakila film_actor 5 1000 )], [qw(sakila film_actor 5 1000 )],
[qw(sakila film_actor 6 462 )], [qw(sakila film_actor 6 462 )],
[qw(sakila film_actor 7 0 )], # lower oob
[qw(sakila film_actor 8 0 )], # upper oob
[qw(sakila film_category 1 1000 )], [qw(sakila film_category 1 1000 )],
[qw(sakila film_text 1 1000 )], [qw(sakila film_text 1 1000 )],
[qw(sakila inventory 1 1000 )], [qw(sakila inventory 1 1000 )],
@@ -190,6 +195,8 @@ my $first_half = [
[qw(sakila inventory 3 1000 )], [qw(sakila inventory 3 1000 )],
[qw(sakila inventory 4 1000 )], [qw(sakila inventory 4 1000 )],
[qw(sakila inventory 5 581 )], [qw(sakila inventory 5 581 )],
[qw(sakila inventory 6 0 )], # lower oob
[qw(sakila inventory 7 0 )], # upper oob
[qw(sakila language 1 6 )], [qw(sakila language 1 6 )],
[qw(sakila payment 1 1000 )], [qw(sakila payment 1 1000 )],
[qw(sakila payment 2 1000 )], [qw(sakila payment 2 1000 )],
@@ -210,6 +217,8 @@ my $second_half = [
[qw(sakila payment 15 1000 )], [qw(sakila payment 15 1000 )],
[qw(sakila payment 16 1000 )], [qw(sakila payment 16 1000 )],
[qw(sakila payment 17 49 )], [qw(sakila payment 17 49 )],
[qw(sakila payment 18 0 )], # lower oob
[qw(sakila payment 19 0 )], # upper oob
[qw(sakila rental 1 1000 )], [qw(sakila rental 1 1000 )],
[qw(sakila rental 2 1000 )], [qw(sakila rental 2 1000 )],
[qw(sakila rental 3 1000 )], [qw(sakila rental 3 1000 )],
@@ -227,6 +236,8 @@ my $second_half = [
[qw(sakila rental 15 1000 )], [qw(sakila rental 15 1000 )],
[qw(sakila rental 16 1000 )], [qw(sakila rental 16 1000 )],
[qw(sakila rental 17 44 )], [qw(sakila rental 17 44 )],
[qw(sakila rental 18 0 )], # lower oob
[qw(sakila rental 19 0 )], # upper oob
[qw(sakila staff 1 2 )], [qw(sakila staff 1 2 )],
[qw(sakila store 1 2 )], [qw(sakila store 1 2 )],
]; ];
@@ -241,7 +252,6 @@ is_deeply(
$output = output( $output = output(
sub { pt_table_checksum::main(@args, qw(-d sakila --resume), sub { pt_table_checksum::main(@args, qw(-d sakila --resume),
qw(--chunk-time 0)) }, qw(--chunk-time 0)) },
trf => sub { return PerconaTest::normalize_checksum_results(@_) },
); );
$row = $master_dbh->selectall_arrayref('select db, tbl, chunk, master_cnt from percona.checksums order by db, tbl'); $row = $master_dbh->selectall_arrayref('select db, tbl, chunk, master_cnt from percona.checksums order by db, tbl');
@@ -254,18 +264,43 @@ is_deeply(
"Resume finished sakila" "Resume finished sakila"
); );
is( (undef, undef, $first_tbl) = split /\n/, $output;
like(
$first_tbl,
qr/sakila.payment$/,
"Resumed from sakila.payment"
);
like(
$output, $output,
"Resuming from sakila.payment chunk 7, timestamp 2011-10-15 13:00:28 qr/^Resuming from sakila.payment chunk 7, timestamp 2011-10-15 13:00:28\n/,
ERRORS DIFFS ROWS CHUNKS SKIPPED TABLE
0 0 9049 10 0 sakila.payment
0 0 16044 17 0 sakila.rental
0 0 2 1 0 sakila.staff
0 0 2 1 0 sakila.store
",
"Resumed from sakila.payment chunk 7" "Resumed from sakila.payment chunk 7"
); );
is(
PerconaTest::count_checksum_results($output, 'errors'),
0,
"Resumed 0 errors"
);
is(
PerconaTest::count_checksum_results($output, 'diffs'),
0,
"Resumed 0 diffs"
);
is(
PerconaTest::count_checksum_results($output, 'skipped'),
0,
"Resumed 0 skipped"
);
is(
PerconaTest::count_checksum_results($output, 'rows'),
25_097,
"Resumed 25,097 rows"
);
# ############################################################################ # ############################################################################
# Resume from the end of a finished table that was being chunked. # Resume from the end of a finished table that was being chunked.
# ############################################################################ # ############################################################################
@@ -287,6 +322,8 @@ is_deeply(
[qw(sakila payment 15 1000 )], [qw(sakila payment 15 1000 )],
[qw(sakila payment 16 1000 )], [qw(sakila payment 16 1000 )],
[qw(sakila payment 17 49 )], [qw(sakila payment 17 49 )],
[qw(sakila payment 18 0 )], # lower oob
[qw(sakila payment 19 0 )], # upper oob
], ],
"Checksum results through sakila.payment" "Checksum results through sakila.payment"
); );
@@ -294,7 +331,6 @@ is_deeply(
$output = output( $output = output(
sub { pt_table_checksum::main(@args, qw(-d sakila --resume), sub { pt_table_checksum::main(@args, qw(-d sakila --resume),
qw(--chunk-time 0)) }, qw(--chunk-time 0)) },
trf => sub { return PerconaTest::normalize_checksum_results(@_) },
); );
$row = $master_dbh->selectall_arrayref('select db, tbl, chunk, master_cnt from percona.checksums order by db, tbl'); $row = $master_dbh->selectall_arrayref('select db, tbl, chunk, master_cnt from percona.checksums order by db, tbl');
@@ -307,14 +343,35 @@ is_deeply(
"Resume finished sakila" "Resume finished sakila"
); );
(undef, $first_tbl) = split /\n/, $output;
like(
$first_tbl,
qr/sakila.rental$/,
"Resumed from sakila.rental"
);
is( is(
$output, PerconaTest::count_checksum_results($output, 'errors'),
"ERRORS DIFFS ROWS CHUNKS SKIPPED TABLE 0,
0 0 16044 17 0 sakila.rental "Resumed 0 errors"
0 0 2 1 0 sakila.staff );
0 0 2 1 0 sakila.store
", is(
"Resumed from end of sakila.payment" PerconaTest::count_checksum_results($output, 'diffs'),
0,
"Resumed 0 diffs"
);
is(
PerconaTest::count_checksum_results($output, 'skipped'),
0,
"Resumed 0 skipped"
);
is(
PerconaTest::count_checksum_results($output, 'rows'),
16_048,
"Resumed 16,048 rows"
); );
# ############################################################################ # ############################################################################
@@ -384,7 +441,7 @@ is(
$output, $output,
"Resuming from sakila.rental chunk 11, timestamp 2011-10-15 13:00:49 "Resuming from sakila.rental chunk 11, timestamp 2011-10-15 13:00:49
ERRORS DIFFS ROWS CHUNKS SKIPPED TABLE ERRORS DIFFS ROWS CHUNKS SKIPPED TABLE
0 0 5044 6 0 sakila.rental 0 0 5044 8 0 sakila.rental
0 0 2 1 0 sakila.staff 0 0 2 1 0 sakila.staff
0 0 2 1 0 sakila.store 0 0 2 1 0 sakila.store
", ",
@@ -407,9 +464,9 @@ ok(
# Resume with --ignore-table. # Resume with --ignore-table.
# ############################################################################ # ############################################################################
$sb->load_file('master', "t/pt-table-checksum/samples/3tbl-resume.sql"); $sb->load_file('master', "t/pt-table-checksum/samples/3tbl-resume.sql");
load_data_infile("3tbl-resume", "ts='2011-11-08 00:00:18'"); load_data_infile("3tbl-resume", "ts='2011-11-08 00:00:24'");
$master_dbh->do("delete from percona.checksums where ts > '2011-11-08 00:00:09'"); $master_dbh->do("delete from percona.checksums where ts > '2011-11-08 00:00:11'");
my $before = $master_dbh->selectall_arrayref("select db, tbl, chunk, ts from percona.checksums where tbl='t1' or tbl='t2' order by db, tbl"); my $before = $master_dbh->selectall_arrayref("select db, tbl, chunk, ts from percona.checksums where tbl='t1' or tbl='t2' order by db, tbl");
is_deeply( is_deeply(
$before, $before,
@@ -420,9 +477,11 @@ is_deeply(
[qw( test t1 4 ), '2011-11-08 00:00:04'], [qw( test t1 4 ), '2011-11-08 00:00:04'],
[qw( test t1 5 ), '2011-11-08 00:00:05'], [qw( test t1 5 ), '2011-11-08 00:00:05'],
[qw( test t1 6 ), '2011-11-08 00:00:06'], [qw( test t1 6 ), '2011-11-08 00:00:06'],
[qw( test t2 1 ), '2011-11-08 00:00:07'], [qw( test t1 7 ), '2011-11-08 00:00:07'], # lower oob
[qw( test t2 2 ), '2011-11-08 00:00:08'], [qw( test t1 8 ), '2011-11-08 00:00:08'], # upper oob
[qw( test t2 3 ), '2011-11-08 00:00:09'], [qw( test t2 1 ), '2011-11-08 00:00:09'],
[qw( test t2 2 ), '2011-11-08 00:00:10'],
[qw( test t2 3 ), '2011-11-08 00:00:11'],
], ],
"Checksum results through tbl2 chunk 3" "Checksum results through tbl2 chunk 3"
); );
@@ -436,7 +495,7 @@ $output = output(
is( is(
$output, $output,
"ERRORS DIFFS ROWS CHUNKS SKIPPED TABLE "ERRORS DIFFS ROWS CHUNKS SKIPPED TABLE
0 0 26 6 0 test.t3 0 0 26 8 0 test.t3
", ",
"Resumed from t3" "Resumed from t3"
); );
@@ -451,6 +510,8 @@ is_deeply(
[qw( test t1 4 )], [qw( test t1 4 )],
[qw( test t1 5 )], [qw( test t1 5 )],
[qw( test t1 6 )], [qw( test t1 6 )],
[qw( test t1 7 )],
[qw( test t1 8 )],
[qw( test t2 1 )], [qw( test t2 1 )],
[qw( test t2 2 )], [qw( test t2 2 )],
[qw( test t2 3 )], [qw( test t2 3 )],
@@ -461,6 +522,8 @@ is_deeply(
[qw( test t3 4 )], [qw( test t3 4 )],
[qw( test t3 5 )], [qw( test t3 5 )],
[qw( test t3 6 )], [qw( test t3 6 )],
[qw( test t3 7 )],
[qw( test t3 8 )],
], ],
"--resume and --ignore-table" "--resume and --ignore-table"
); );
@@ -4,15 +4,21 @@ test t1 3 0.000890 PRIMARY 11 15 28b300ce 5 28b300ce 5 2011-11-08 00:00:03
test t1 4 0.000874 PRIMARY 16 20 b6ccc8e2 5 b6ccc8e2 5 2011-11-08 00:00:04 test t1 4 0.000874 PRIMARY 16 20 b6ccc8e2 5 b6ccc8e2 5 2011-11-08 00:00:04
test t1 5 0.000915 PRIMARY 21 25 c0099243 5 c0099243 5 2011-11-08 00:00:05 test t1 5 0.000915 PRIMARY 21 25 c0099243 5 c0099243 5 2011-11-08 00:00:05
test t1 6 0.001000 PRIMARY 26 26 55f99957 1 55f99957 1 2011-11-08 00:00:06 test t1 6 0.001000 PRIMARY 26 26 55f99957 1 55f99957 1 2011-11-08 00:00:06
test t2 1 0.000983 PRIMARY 1 5 5ef4701a 5 5ef4701a 5 2011-11-08 00:00:07 test t1 7 0.000789 PRIMARY \N 1 0 0 0 0 2011-11-08 00:00:07
test t2 2 0.000734 PRIMARY 6 10 5e765a6f 5 5e765a6f 5 2011-11-08 00:00:08 test t1 8 0.000826 PRIMARY 26 \N 0 0 0 0 2011-11-08 00:00:08
test t2 3 0.000938 PRIMARY 11 15 28b300ce 5 28b300ce 5 2011-11-08 00:00:09 test t2 1 0.000983 PRIMARY 1 5 5ef4701a 5 5ef4701a 5 2011-11-08 00:00:09
test t2 4 0.000889 PRIMARY 16 20 b6ccc8e2 5 b6ccc8e2 5 2011-11-08 00:00:10 test t2 2 0.000734 PRIMARY 6 10 5e765a6f 5 5e765a6f 5 2011-11-08 00:00:10
test t2 5 0.000916 PRIMARY 21 25 c0099243 5 c0099243 5 2011-11-08 00:00:11 test t2 3 0.000938 PRIMARY 11 15 28b300ce 5 28b300ce 5 2011-11-08 00:00:11
test t2 6 0.000908 PRIMARY 26 26 55f99957 1 55f99957 1 2011-11-08 00:00:12 test t2 4 0.000889 PRIMARY 16 20 b6ccc8e2 5 b6ccc8e2 5 2011-11-08 00:00:12
test t3 1 0.000920 PRIMARY 1 5 5ef4701a 5 5ef4701a 5 2011-11-08 00:00:13 test t2 5 0.000916 PRIMARY 21 25 c0099243 5 c0099243 5 2011-11-08 00:00:13
test t3 2 0.000880 PRIMARY 6 10 5e765a6f 5 5e765a6f 5 2011-11-08 00:00:14 test t2 6 0.000908 PRIMARY 26 26 55f99957 1 55f99957 1 2011-11-08 00:00:14
test t3 3 0.002164 PRIMARY 11 15 28b300ce 5 28b300ce 5 2011-11-08 00:00:15 test t2 7 0.000662 PRIMARY \N 1 0 0 0 0 2011-11-08 00:00:15
test t3 4 0.000957 PRIMARY 16 20 b6ccc8e2 5 b6ccc8e2 5 2011-11-08 00:00:16 test t2 8 0.000855 PRIMARY 26 \N 0 0 0 0 2011-11-08 00:00:16
test t3 5 0.000708 PRIMARY 21 25 c0099243 5 c0099243 5 2011-11-08 00:00:17 test t3 1 0.000920 PRIMARY 1 5 5ef4701a 5 5ef4701a 5 2011-11-08 00:00:17
test t3 6 0.000834 PRIMARY 26 26 55f99957 1 55f99957 1 2011-11-08 00:00:18 test t3 2 0.000880 PRIMARY 6 10 5e765a6f 5 5e765a6f 5 2011-11-08 00:00:18
test t3 3 0.002164 PRIMARY 11 15 28b300ce 5 28b300ce 5 2011-11-08 00:00:19
test t3 4 0.000957 PRIMARY 16 20 b6ccc8e2 5 b6ccc8e2 5 2011-11-08 00:00:20
test t3 5 0.000708 PRIMARY 21 25 c0099243 5 c0099243 5 2011-11-08 00:00:21
test t3 6 0.000834 PRIMARY 26 26 55f99957 1 55f99957 1 2011-11-08 00:00:22
test t3 7 0.000806 PRIMARY \N 1 0 0 0 0 2011-11-08 00:00:23
test t3 8 0.000689 PRIMARY 26 \N 0 0 0 0 2011-11-08 00:00:24
@@ -11,6 +11,8 @@ sakila film_actor 3 0.008531 PRIMARY 76,76,251 110,110,513 ae8105fe 1000 ae8105f
sakila film_actor 4 0.005418 PRIMARY 110,110,525 146,146,278 95cd606d 1000 95cd606d 1000 2011-10-15 13:00:11 sakila film_actor 4 0.005418 PRIMARY 110,110,525 146,146,278 95cd606d 1000 95cd606d 1000 2011-10-15 13:00:11
sakila film_actor 5 0.006011 PRIMARY 146,146,296 183,183,862 6e0ab29c 1000 6e0ab29c 1000 2011-10-15 13:00:12 sakila film_actor 5 0.006011 PRIMARY 146,146,296 183,183,862 6e0ab29c 1000 6e0ab29c 1000 2011-10-15 13:00:12
sakila film_actor 6 0.005747 PRIMARY 183,183,914 200,200,993 916417a4 462 916417a4 462 2011-10-15 13:00:13 sakila film_actor 6 0.005747 PRIMARY 183,183,914 200,200,993 916417a4 462 916417a4 462 2011-10-15 13:00:13
sakila film_actor 7 0.000957 PRIMARY \N 1,1,1 0 0 0 0 2011-10-15 13:00:13
sakila film_actor 8 0.000944 PRIMARY 200,200,993 \N 0 0 0 0 2011-10-15 13:00:13
sakila film_category 1 0.005813 \N \N \N afa46d51 1000 afa46d51 1000 2011-10-15 13:00:14 sakila film_category 1 0.005813 \N \N \N afa46d51 1000 afa46d51 1000 2011-10-15 13:00:14
sakila film_text 1 0.00244 \N \N \N 186d7573 1000 186d7573 1000 2011-10-15 13:00:15 sakila film_text 1 0.00244 \N \N \N 186d7573 1000 186d7573 1000 2011-10-15 13:00:15
sakila inventory 1 0.00611 PRIMARY 1 1000 823e0cc1 1000 823e0cc1 1000 2011-10-15 13:00:16 sakila inventory 1 0.00611 PRIMARY 1 1000 823e0cc1 1000 823e0cc1 1000 2011-10-15 13:00:16
@@ -18,6 +20,8 @@ sakila inventory 2 0.007018 PRIMARY 1001 2000 dc2e044d 1000 dc2e044d 1000 2011-1
sakila inventory 3 0.008906 PRIMARY 2001 3000 b4d210dc 1000 b4d210dc 1000 2011-10-15 13:00:18 sakila inventory 3 0.008906 PRIMARY 2001 3000 b4d210dc 1000 b4d210dc 1000 2011-10-15 13:00:18
sakila inventory 4 0.00614 PRIMARY 3001 4000 2ac7ec19 1000 2ac7ec19 1000 2011-10-15 13:00:19 sakila inventory 4 0.00614 PRIMARY 3001 4000 2ac7ec19 1000 2ac7ec19 1000 2011-10-15 13:00:19
sakila inventory 5 0.005256 PRIMARY 4001 4581 297c82ce 581 297c82ce 581 2011-10-15 13:00:20 sakila inventory 5 0.005256 PRIMARY 4001 4581 297c82ce 581 297c82ce 581 2011-10-15 13:00:20
sakila inventory 6 0.000852 PRIMARY \N 1 0 0 0 0 2011-10-15 13:00:20
sakila inventory 7 0.000715 PRIMARY 4581 \N 0 0 0 0 2011-10-15 13:00:20
sakila language 1 0.001054 \N \N \N 7e7df3f 6 7e7df3f 6 2011-10-15 13:00:21 sakila language 1 0.001054 \N \N \N 7e7df3f 6 7e7df3f 6 2011-10-15 13:00:21
sakila payment 1 0.006943 PRIMARY 1 1000 8eddd82a 1000 8eddd82a 1000 2011-10-15 13:00:22 sakila payment 1 0.006943 PRIMARY 1 1000 8eddd82a 1000 8eddd82a 1000 2011-10-15 13:00:22
sakila payment 2 0.013493 PRIMARY 1001 2000 cf5f0276 1000 cf5f0276 1000 2011-10-15 13:00:23 sakila payment 2 0.013493 PRIMARY 1001 2000 cf5f0276 1000 cf5f0276 1000 2011-10-15 13:00:23
@@ -36,6 +40,8 @@ sakila payment 14 0.007389 PRIMARY 13001 14000 ad58fd5c 1000 ad58fd5c 1000 2011-
sakila payment 15 0.009497 PRIMARY 14001 15000 37ceaf5e 1000 37ceaf5e 1000 2011-10-15 13:00:36 sakila payment 15 0.009497 PRIMARY 14001 15000 37ceaf5e 1000 37ceaf5e 1000 2011-10-15 13:00:36
sakila payment 16 0.007292 PRIMARY 15001 16000 88fa3a22 1000 88fa3a22 1000 2011-10-15 13:00:37 sakila payment 16 0.007292 PRIMARY 15001 16000 88fa3a22 1000 88fa3a22 1000 2011-10-15 13:00:37
sakila payment 17 0.001262 PRIMARY 16001 16049 d5ec0985 49 d5ec0985 49 2011-10-15 13:00:38 sakila payment 17 0.001262 PRIMARY 16001 16049 d5ec0985 49 d5ec0985 49 2011-10-15 13:00:38
sakila payment 18 0.000673 PRIMARY \N 1 0 0 0 0 2011-10-15 13:00:38
sakila payment 19 0.000626 PRIMARY 16049 \N 0 0 0 0 2011-10-15 13:00:38
sakila rental 1 0.006666 PRIMARY 1 1001 880ffc22 1000 880ffc22 1000 2011-10-15 13:00:39 sakila rental 1 0.006666 PRIMARY 1 1001 880ffc22 1000 880ffc22 1000 2011-10-15 13:00:39
sakila rental 2 0.007498 PRIMARY 1002 2001 b32e3664 1000 b32e3664 1000 2011-10-15 13:00:40 sakila rental 2 0.007498 PRIMARY 1002 2001 b32e3664 1000 b32e3664 1000 2011-10-15 13:00:40
sakila rental 3 0.01027 PRIMARY 2002 3002 1acd2a86 1000 1acd2a86 1000 2011-10-15 13:00:41 sakila rental 3 0.01027 PRIMARY 2002 3002 1acd2a86 1000 1acd2a86 1000 2011-10-15 13:00:41
@@ -53,5 +59,7 @@ sakila rental 14 0.008716 PRIMARY 13005 14004 ea862225 1000 ea862225 1000 2011-1
sakila rental 15 0.006528 PRIMARY 14005 15004 dc7ca09f 1000 dc7ca09f 1000 2011-10-15 13:00:53 sakila rental 15 0.006528 PRIMARY 14005 15004 dc7ca09f 1000 dc7ca09f 1000 2011-10-15 13:00:53
sakila rental 16 0.0096 PRIMARY 15005 16005 113818d1 1000 113818d1 1000 2011-10-15 13:00:54 sakila rental 16 0.0096 PRIMARY 15005 16005 113818d1 1000 113818d1 1000 2011-10-15 13:00:54
sakila rental 17 0.001746 PRIMARY 16006 16049 dc02888c 44 dc02888c 44 2011-10-15 13:00:55 sakila rental 17 0.001746 PRIMARY 16006 16049 dc02888c 44 dc02888c 44 2011-10-15 13:00:55
sakila rental 18 0.001069 PRIMARY \N 1 0 0 0 0 2011-10-15 13:00:55
sakila rental 19 0.000857 PRIMARY 16049 \N 0 0 0 0 2011-10-15 13:00:55
sakila staff 1 0.001279 \N \N \N 233668ae 2 233668ae 2 2011-10-15 13:00:56 sakila staff 1 0.001279 \N \N \N 233668ae 2 233668ae 2 2011-10-15 13:00:56
sakila store 1 0.000905 \N \N \N 6ce7245a 2 6ce7245a 2 2011-10-15 13:00:57 sakila store 1 0.000905 \N \N \N 6ce7245a 2 6ce7245a 2 2011-10-15 13:00:57