diff --git a/bin/pt-online-schema-change b/bin/pt-online-schema-change index 6a82b497..e4450d94 100755 --- a/bin/pt-online-schema-change +++ b/bin/pt-online-schema-change @@ -4451,9 +4451,6 @@ sub _get_bounds { $self->{no_more_boundaries} = 1; } - $self->{last_upper} = $dbh->selectrow_arrayref($self->{last_ub_sql}); - PTDEBUG && _d('Last upper boundary:', Dumper($self->{last_upper})); - return; } @@ -4509,19 +4506,21 @@ sub _next_boundaries { my $boundary = $self->{ub_sth}->fetchall_arrayref(); PTDEBUG && _d('Next boundary:', Dumper($boundary)); if ( $boundary && @$boundary ) { - $self->{upper} = $boundary->[0]; # this nibble + $self->{upper} = $boundary->[0]; + if ( $boundary->[1] ) { - $self->{next_lower} = $boundary->[1]; # next nibble + $self->{next_lower} = $boundary->[1]; } else { + PTDEBUG && _d('End of table boundary:', Dumper($boundary->[0])); $self->{no_more_boundaries} = 1; # for next call - PTDEBUG && _d('Last upper boundary:', Dumper($boundary->[0])); } } else { - $self->{no_more_boundaries} = 1; # for next call - $self->{upper} = $self->{last_upper}; + my $dbh = $self->{Cxn}->dbh(); + $self->{upper} = $dbh->selectrow_arrayref($self->{last_ub_sql}); PTDEBUG && _d('Last upper boundary:', Dumper($self->{upper})); + $self->{no_more_boundaries} = 1; # for next call } $self->{ub_sth}->finish(); @@ -5592,7 +5591,12 @@ sub main { . ($nibble_iter->nibble_index() || '?') . " index, but MySQL EXPLAIN reports that " . ($expl->{key} ? "the $expl->{key}" : "no") - . " index will be used.\n"; + . " index will be used for " + . $sth->{upper_boundary}->{Statement} + . " with values " + . join(", ", map { defined $_ ? $_ : "NULL" } + (@{$boundary->{lower}}, $nibble_iter->chunk_size())) + . "\n"; die $msg; } @@ -5635,7 +5639,12 @@ sub main { . ($nibble_iter->nibble_index() || '?') . " index, but MySQL EXPLAIN reports that " . ($expl->{key} ? "the $expl->{key}" : "no") - . " index will be used.\n"; + . " index will be used for " + . $sth->{explain_nibble}->{Statement} + . " with values " + . join(", ", map { defined $_ ? $_ : "NULL" } + (@{$boundary->{lower}}, @{$boundary->{upper}})) + . "\n"; die $msg; } diff --git a/lib/NibbleIterator.pm b/lib/NibbleIterator.pm index 2f761103..80fe254b 100644 --- a/lib/NibbleIterator.pm +++ b/lib/NibbleIterator.pm @@ -639,11 +639,6 @@ sub _get_bounds { $self->{no_more_boundaries} = 1; } - # Get the real last upper boundary, i.e. the last row of the table - # at this moment. If rows are inserted after, we won't see them. - $self->{last_upper} = $dbh->selectrow_arrayref($self->{last_ub_sql}); - PTDEBUG && _d('Last upper boundary:', Dumper($self->{last_upper})); - return; } @@ -699,25 +694,70 @@ sub _next_boundaries { } } + # Two boundaries are being fetched: the upper boundary for this nibble, + # i.e. the nibble the caller is trying to exec, and the next_lower boundary + # for the next nibble that the caller will try to exec. For example, + # if chunking the alphabet, a-z, with chunk size 3, the first call will + # fetch: + # + # a <- lower + # b + # c <- upper ($boundary->[0]) + # d <- next_lower ($boundary->[1]) + # + # Then the second call will fetch: + # + # d <- lower + # e + # f <- upper + # g <- next_lower + # + # Why fetch both upper and next_lower? We wanted to keep nibbling simple, + # i.e. one nibble statment, not one for the first nibble, one for "middle" + # nibbles, and another for the end (this is how older code worked). So the + # nibble statement is inclusive, but this requires both boundaries for + # reasons explained in a comment above my $ub_sql in new(). PTDEBUG && _d($self->{ub_sth}->{Statement}, 'params:', join(', ', @{$self->{lower}}), $self->{limit}); $self->{ub_sth}->execute(@{$self->{lower}}, $self->{limit}); my $boundary = $self->{ub_sth}->fetchall_arrayref(); PTDEBUG && _d('Next boundary:', Dumper($boundary)); if ( $boundary && @$boundary ) { - $self->{upper} = $boundary->[0]; # this nibble + # upper boundary for the current nibble. + $self->{upper} = $boundary->[0]; + if ( $boundary->[1] ) { - $self->{next_lower} = $boundary->[1]; # next nibble + # next_lower boundary for the next nibble (will become the lower + # boundary when that nibble becomes the current nibble). + $self->{next_lower} = $boundary->[1]; } else { + # There's no next_lower boundary, so the upper boundary of + # the current nibble is the end of the table. For example, + # if chunking a-z, then the upper boundary of the current + # nibble ($boundary->[0]) is z. + PTDEBUG && _d('End of table boundary:', Dumper($boundary->[0])); $self->{no_more_boundaries} = 1; # for next call - PTDEBUG && _d('Last upper boundary:', Dumper($boundary->[0])); + + # OobNibbleIterator needs to know the last upper boundary. + $self->{last_upper} = $boundary->[0]; } } else { - $self->{no_more_boundaries} = 1; # for next call - $self->{upper} = $self->{last_upper}; + # This code is reached in cases like chunking a-z and the next_lower + # boundary ($boundary->[1]) falls on z. When called again, no upper + # or next_lower is found past z so if($boundary && @$boundary) is false. + # But there's a problem: between the previous call that made next_lower=z + # and this call, rows might have been inserted, so maybe z is no longer + # the end of the table. To handle this, we fetch the end of the table + # once and make the final nibble z-. + my $dbh = $self->{Cxn}->dbh(); + $self->{upper} = $dbh->selectrow_arrayref($self->{last_ub_sql}); PTDEBUG && _d('Last upper boundary:', Dumper($self->{upper})); + $self->{no_more_boundaries} = 1; # for next call + + # OobNibbleIterator needs to know the last upper boundary. + $self->{last_upper} = $self->{upper}; } $self->{ub_sth}->finish(); diff --git a/lib/OobNibbleIterator.pm b/lib/OobNibbleIterator.pm index c7fef322..a98b5cc8 100644 --- a/lib/OobNibbleIterator.pm +++ b/lib/OobNibbleIterator.pm @@ -58,7 +58,7 @@ sub new { my $q = $self->{Quoter}; my $o = $self->{OptionParser}; - my $where = $o->get('where'); + my $where = $o->has('where') ? $o->get('where') : undef; # If it's not a single nibble table, init our special statements. if ( !$self->one_nibble() ) { diff --git a/t/lib/OobNibbleIterator.t b/t/lib/OobNibbleIterator.t index 8741b693..888c9e24 100644 --- a/t/lib/OobNibbleIterator.t +++ b/t/lib/OobNibbleIterator.t @@ -191,7 +191,6 @@ $ni = make_nibble_iter( argv => [qw(--databases test --chunk-size 8)], ); - $dbh->do("delete from test.t where c='a' or c='z'"); @rows = (); @@ -204,8 +203,6 @@ is_deeply( 'a-z nibble 1 with oob' ) or print Dumper(\@rows); -$dbh->do("insert into test.t values ('a'), ('z')"); - @rows = (); for (1..8) { push @rows, $ni->next(); @@ -226,6 +223,13 @@ is_deeply( 'a-z nibble 3 with oob' ) or print Dumper(\@rows); +# NibbleIterator is done (b-y), now insert a row on the low end (a), +# and one on the high end (z), past what NibbleIterator originally +# saw as the first and last boundaries. OobNibbleIterator should kick +# in and see a and z. +$dbh->do("insert into test.t values ('a'), ('z')"); + +# OobNibbleIterator checks the low end first. @rows = (); push @rows, $ni->next(); is_deeply( @@ -234,6 +238,7 @@ is_deeply( 'a-z nibble 4 lower oob' ) or print Dumper(\@rows); +# Then it checks the high end. @rows = (); push @rows, $ni->next(); is_deeply( diff --git a/t/pt-online-schema-change/alter_active_table.t b/t/pt-online-schema-change/alter_active_table.t index fc2cc66c..148d4d26 100644 --- a/t/pt-online-schema-change/alter_active_table.t +++ b/t/pt-online-schema-change/alter_active_table.t @@ -13,34 +13,37 @@ use Test::More; use PerconaTest; use Sandbox; +require "$trunk/bin/pt-online-schema-change"; + use Time::HiRes qw(usleep); use Data::Dumper; $Data::Dumper::Indent = 1; $Data::Dumper::Sortkeys = 1; $Data::Dumper::Quotekeys = 0; -require "$trunk/bin/pt-online-schema-change"; -my $dp = new DSNParser(opts=>$dsn_opts); -my $sb = new Sandbox(basedir => '/tmp', DSNParser => $dp); -my $dbh = $sb->get_dbh_for('master'); +my $dp = new DSNParser(opts=>$dsn_opts); +my $sb = new Sandbox(basedir => '/tmp', DSNParser => $dp); +my $master_dbh = $sb->get_dbh_for('master'); +my $slave_dbh = $sb->get_dbh_for('slave1'); -if ( !$dbh ) { +if ( !$master_dbh ) { plan skip_all => 'Cannot connect to sandbox master'; } +elsif ( !$slave_dbh ) { + plan skip_all => 'Cannot connect to sandbox slave'; +} else { plan tests => 7; } -my $output = ""; -my $cnf = '/tmp/12345/my.sandbox.cnf'; -my @args = ('-F', $cnf, '--execute'); -my $exit = 0; +my $output; +my $master_dsn = "h=127.1,P=12345,u=msandbox,p=msandbox"; +my $sample = "t/pt-online-schema-change/samples"; +my $exit; my $rows; -my $query_table_stop = '/tmp/query_table.stop'; -my $query_table_output = '/tmp/query_table.output'; -diag(`rm -rf $query_table_stop`); -diag(`rm -rf $query_table_output`); +my $query_table_stop = "/tmp/query_table.$PID.stop"; +my $query_table_output = "/tmp/query_table.$PID.output"; sub start_query_table { my ($db, $tbl, $pkcol) = @_; @@ -48,8 +51,8 @@ sub start_query_table { diag(`rm -rf $query_table_stop`); diag(`echo > $query_table_output`); - my $cmd = "$trunk/t/pt-online-schema-change/samples/query_table.pl"; - system("$cmd 127.1 12345 $db $tbl $pkcol >$query_table_output &"); + my $cmd = "$trunk/$sample/query_table.pl"; + system("$cmd 127.1 12345 $db $tbl $pkcol $query_table_stop >$query_table_output &"); return; } @@ -89,7 +92,7 @@ sub check_ids { $n_deleted++ if $n_deleted; $n_inserted++; - $rows = $dbh->selectrow_arrayref( + $rows = $master_dbh->selectrow_arrayref( "SELECT COUNT($pkcol) FROM $db.$tbl"); is( $rows->[0], @@ -97,7 +100,7 @@ sub check_ids { "New table row count: 500 original + $n_inserted inserted - $n_deleted deleted" ) or print Dumper($rows); - $rows = $dbh->selectall_arrayref( + $rows = $master_dbh->selectall_arrayref( "SELECT $pkcol FROM $db.$tbl WHERE $pkcol > 500 AND $pkcol NOT IN ($ids->{inserted})"); is_deeply( $rows, @@ -106,7 +109,7 @@ sub check_ids { ) or print Dumper($rows); if ( $n_deleted ) { - $rows = $dbh->selectall_arrayref( + $rows = $master_dbh->selectall_arrayref( "SELECT $pkcol FROM $db.$tbl WHERE $pkcol IN ($ids->{deleted})"); is_deeply( $rows, @@ -122,9 +125,9 @@ sub check_ids { }; if ( $n_updated ) { - $rows = $dbh->selectall_arrayref( - "SELECT $pkcol FROM $db.$tbl WHERE $pkcol IN ($ids->{updated}) " - . "AND c <> 'updated'"); + my $sql = "SELECT $pkcol FROM $db.$tbl WHERE $pkcol IN ($ids->{updated}) " + . "AND c NOT LIKE 'updated%'"; + $rows = $master_dbh->selectall_arrayref($sql); is_deeply( $rows, [], @@ -144,27 +147,39 @@ sub check_ids { # ############################################################################# # Attempt to alter a table while another process is changing it. # ############################################################################# -$sb->load_file('master', "t/pt-online-schema-change/samples/small_table.sql"); -$dbh->do('use mkosc'); -$dbh->do('truncate table a'); -diag(`cp $trunk/t/pt-online-schema-change/samples/a.outfile /tmp/`); -$dbh->do("load data local infile '/tmp/a.outfile' into table mkosc.a"); -diag(`rm -rf /tmp/a.outfile`); -start_query_table(qw(mkosc a i)); +# Load 500 rows. +$sb->load_file('master', "$sample/basic_no_fks.sql"); +PerconaTest::wait_for_table($slave_dbh, "pt_osc.t"); +$master_dbh->do("USE pt_osc"); +$master_dbh->do("TRUNCATE TABLE t"); +diag(`cp $trunk/t/pt-online-schema-change/samples/basic_no_fks.data /tmp`); +$master_dbh->do("LOAD DATA LOCAL INFILE '/tmp/basic_no_fks.data' INTO TABLE pt_osc.t"); +diag(`rm -rf /tmp/basic_no_fks.data`); +PerconaTest::wait_for_table($slave_dbh, "pt_osc.t", "id=500"); +$master_dbh->do("ANALYZE TABLE pt_osc.t"); + +# Start inserting, updating, and deleting rows at random. +start_query_table(qw(pt_osc t id)); + +# While that's ^ happening, alter the table. $output = output( - sub { $exit = pt_online_schema_change::main(@args, - qw(--chunk-size 100), - 'D=mkosc,t=a', qw(--alter ENGINE=InnoDB --drop-old-table)) }, + sub { $exit = pt_online_schema_change::main( + "$master_dsn,D=pt_osc,t=t", + qw(--lock-wait-timeout 5), + qw(--print --execute --chunk-size 100 --alter ENGINE=InnoDB)) }, + stderr => 1, ); + +# Stop altering the table. stop_query_table(); -$rows = $dbh->selectall_hashref('show table status from mkosc', 'name'); +$rows = $master_dbh->selectall_hashref('SHOW TABLE STATUS FROM pt_osc', 'name'); is( - $rows->{a}->{engine}, + $rows->{t}->{engine}, 'InnoDB', "New table ENGINE=InnoDB" -); +) or warn Dumper($rows); is( scalar keys %$rows, @@ -178,17 +193,12 @@ is( "Exit status 0" ); -check_ids('mkosc', 'a', 'i', get_ids()); - -# ############################################################################ -# Alter an active table with foreign keys. -# ############################################################################ - +check_ids(qw(pt_osc t id), get_ids()); # ############################################################################# # Done. # ############################################################################# diag(`rm -rf $query_table_stop`); -diag(`rm -rf $query_table_output`); -$sb->wipe_clean($dbh); +#diag(`rm -rf $query_table_output`); +#$sb->wipe_clean($master_dbh); exit; diff --git a/t/pt-online-schema-change/option_sanity.t b/t/pt-online-schema-change/option_sanity.t index 628b6a78..609b4b4d 100644 --- a/t/pt-online-schema-change/option_sanity.t +++ b/t/pt-online-schema-change/option_sanity.t @@ -19,14 +19,21 @@ my $cmd = "$trunk/bin/pt-online-schema-change"; $output = `$cmd`; like( $output, - qr/A DSN with a t part must be specified/, + qr/DSN must be specified/, "Must specify a DSN with t part" ); -$output = `$cmd h=127.1,P=12345,u=msandbox,p=msandbox`; +$output = `$cmd h=127.1,P=12345,t=tbl`; like( $output, - qr/The DSN must specify a t/, + qr/DSN must specify a database \(D\) and a table \(t\)/, + "DSN must specify a D part" +); + +$output = `$cmd h=127.1,P=12345,u=msandbox,p=msandbox,D=mysql`; +like( + $output, + qr/DSN must specify a database \(D\) and a table \(t\)/, "DSN must specify t part" ); @@ -37,13 +44,6 @@ like( "Only 1 DSN allowed" ); -$output = `$cmd h=127.1,P=12345,t=tbl`; -like( - $output, - qr/No database was specified/, - "Either DSN D part or --database required" -); - $output = `$cmd --help`; like( $output, diff --git a/t/pt-online-schema-change/samples/a.outfile b/t/pt-online-schema-change/samples/a.outfile deleted file mode 100644 index fab22c0c..00000000 --- a/t/pt-online-schema-change/samples/a.outfile +++ /dev/null @@ -1,500 +0,0 @@ -1 loaded 2011-03-17 -2 loaded 2011-03-17 -3 loaded 2011-03-17 -4 loaded 2011-03-17 -5 loaded 2011-03-17 -6 loaded 2011-03-17 -7 loaded 2011-03-17 -8 loaded 2011-03-17 -9 loaded 2011-03-17 -10 loaded 2011-03-17 -11 loaded 2011-03-17 -12 loaded 2011-03-17 -13 loaded 2011-03-17 -14 loaded 2011-03-17 -15 loaded 2011-03-17 -16 loaded 2011-03-17 -17 loaded 2011-03-17 -18 loaded 2011-03-17 -19 loaded 2011-03-17 -20 loaded 2011-03-17 -21 loaded 2011-03-17 -22 loaded 2011-03-17 -23 loaded 2011-03-17 -24 loaded 2011-03-17 -25 loaded 2011-03-17 -26 loaded 2011-03-17 -27 loaded 2011-03-17 -28 loaded 2011-03-17 -29 loaded 2011-03-17 -30 loaded 2011-03-17 -31 loaded 2011-03-17 -32 loaded 2011-03-17 -33 loaded 2011-03-17 -34 loaded 2011-03-17 -35 loaded 2011-03-17 -36 loaded 2011-03-17 -37 loaded 2011-03-17 -38 loaded 2011-03-17 -39 loaded 2011-03-17 -40 loaded 2011-03-17 -41 loaded 2011-03-17 -42 loaded 2011-03-17 -43 loaded 2011-03-17 -44 loaded 2011-03-17 -45 loaded 2011-03-17 -46 loaded 2011-03-17 -47 loaded 2011-03-17 -48 loaded 2011-03-17 -49 loaded 2011-03-17 -50 loaded 2011-03-17 -51 loaded 2011-03-17 -52 loaded 2011-03-17 -53 loaded 2011-03-17 -54 loaded 2011-03-17 -55 loaded 2011-03-17 -56 loaded 2011-03-17 -57 loaded 2011-03-17 -58 loaded 2011-03-17 -59 loaded 2011-03-17 -60 loaded 2011-03-17 -61 loaded 2011-03-17 -62 loaded 2011-03-17 -63 loaded 2011-03-17 -64 loaded 2011-03-17 -65 loaded 2011-03-17 -66 loaded 2011-03-17 -67 loaded 2011-03-17 -68 loaded 2011-03-17 -69 loaded 2011-03-17 -70 loaded 2011-03-17 -71 loaded 2011-03-17 -72 loaded 2011-03-17 -73 loaded 2011-03-17 -74 loaded 2011-03-17 -75 loaded 2011-03-17 -76 loaded 2011-03-17 -77 loaded 2011-03-17 -78 loaded 2011-03-17 -79 loaded 2011-03-17 -80 loaded 2011-03-17 -81 loaded 2011-03-17 -82 loaded 2011-03-17 -83 loaded 2011-03-17 -84 loaded 2011-03-17 -85 loaded 2011-03-17 -86 loaded 2011-03-17 -87 loaded 2011-03-17 -88 loaded 2011-03-17 -89 loaded 2011-03-17 -90 loaded 2011-03-17 -91 loaded 2011-03-17 -92 loaded 2011-03-17 -93 loaded 2011-03-17 -94 loaded 2011-03-17 -95 loaded 2011-03-17 -96 loaded 2011-03-17 -97 loaded 2011-03-17 -98 loaded 2011-03-17 -99 loaded 2011-03-17 -100 loaded 2011-03-17 -101 loaded 2011-03-17 -102 loaded 2011-03-17 -103 loaded 2011-03-17 -104 loaded 2011-03-17 -105 loaded 2011-03-17 -106 loaded 2011-03-17 -107 loaded 2011-03-17 -108 loaded 2011-03-17 -109 loaded 2011-03-17 -110 loaded 2011-03-17 -111 loaded 2011-03-17 -112 loaded 2011-03-17 -113 loaded 2011-03-17 -114 loaded 2011-03-17 -115 loaded 2011-03-17 -116 loaded 2011-03-17 -117 loaded 2011-03-17 -118 loaded 2011-03-17 -119 loaded 2011-03-17 -120 loaded 2011-03-17 -121 loaded 2011-03-17 -122 loaded 2011-03-17 -123 loaded 2011-03-17 -124 loaded 2011-03-17 -125 loaded 2011-03-17 -126 loaded 2011-03-17 -127 loaded 2011-03-17 -128 loaded 2011-03-17 -129 loaded 2011-03-17 -130 loaded 2011-03-17 -131 loaded 2011-03-17 -132 loaded 2011-03-17 -133 loaded 2011-03-17 -134 loaded 2011-03-17 -135 loaded 2011-03-17 -136 loaded 2011-03-17 -137 loaded 2011-03-17 -138 loaded 2011-03-17 -139 loaded 2011-03-17 -140 loaded 2011-03-17 -141 loaded 2011-03-17 -142 loaded 2011-03-17 -143 loaded 2011-03-17 -144 loaded 2011-03-17 -145 loaded 2011-03-17 -146 loaded 2011-03-17 -147 loaded 2011-03-17 -148 loaded 2011-03-17 -149 loaded 2011-03-17 -150 loaded 2011-03-17 -151 loaded 2011-03-17 -152 loaded 2011-03-17 -153 loaded 2011-03-17 -154 loaded 2011-03-17 -155 loaded 2011-03-17 -156 loaded 2011-03-17 -157 loaded 2011-03-17 -158 loaded 2011-03-17 -159 loaded 2011-03-17 -160 loaded 2011-03-17 -161 loaded 2011-03-17 -162 loaded 2011-03-17 -163 loaded 2011-03-17 -164 loaded 2011-03-17 -165 loaded 2011-03-17 -166 loaded 2011-03-17 -167 loaded 2011-03-17 -168 loaded 2011-03-17 -169 loaded 2011-03-17 -170 loaded 2011-03-17 -171 loaded 2011-03-17 -172 loaded 2011-03-17 -173 loaded 2011-03-17 -174 loaded 2011-03-17 -175 loaded 2011-03-17 -176 loaded 2011-03-17 -177 loaded 2011-03-17 -178 loaded 2011-03-17 -179 loaded 2011-03-17 -180 loaded 2011-03-17 -181 loaded 2011-03-17 -182 loaded 2011-03-17 -183 loaded 2011-03-17 -184 loaded 2011-03-17 -185 loaded 2011-03-17 -186 loaded 2011-03-17 -187 loaded 2011-03-17 -188 loaded 2011-03-17 -189 loaded 2011-03-17 -190 loaded 2011-03-17 -191 loaded 2011-03-17 -192 loaded 2011-03-17 -193 loaded 2011-03-17 -194 loaded 2011-03-17 -195 loaded 2011-03-17 -196 loaded 2011-03-17 -197 loaded 2011-03-17 -198 loaded 2011-03-17 -199 loaded 2011-03-17 -200 loaded 2011-03-17 -201 loaded 2011-03-17 -202 loaded 2011-03-17 -203 loaded 2011-03-17 -204 loaded 2011-03-17 -205 loaded 2011-03-17 -206 loaded 2011-03-17 -207 loaded 2011-03-17 -208 loaded 2011-03-17 -209 loaded 2011-03-17 -210 loaded 2011-03-17 -211 loaded 2011-03-17 -212 loaded 2011-03-17 -213 loaded 2011-03-17 -214 loaded 2011-03-17 -215 loaded 2011-03-17 -216 loaded 2011-03-17 -217 loaded 2011-03-17 -218 loaded 2011-03-17 -219 loaded 2011-03-17 -220 loaded 2011-03-17 -221 loaded 2011-03-17 -222 loaded 2011-03-17 -223 loaded 2011-03-17 -224 loaded 2011-03-17 -225 loaded 2011-03-17 -226 loaded 2011-03-17 -227 loaded 2011-03-17 -228 loaded 2011-03-17 -229 loaded 2011-03-17 -230 loaded 2011-03-17 -231 loaded 2011-03-17 -232 loaded 2011-03-17 -233 loaded 2011-03-17 -234 loaded 2011-03-17 -235 loaded 2011-03-17 -236 loaded 2011-03-17 -237 loaded 2011-03-17 -238 loaded 2011-03-17 -239 loaded 2011-03-17 -240 loaded 2011-03-17 -241 loaded 2011-03-17 -242 loaded 2011-03-17 -243 loaded 2011-03-17 -244 loaded 2011-03-17 -245 loaded 2011-03-17 -246 loaded 2011-03-17 -247 loaded 2011-03-17 -248 loaded 2011-03-17 -249 loaded 2011-03-17 -250 loaded 2011-03-17 -251 loaded 2011-03-17 -252 loaded 2011-03-17 -253 loaded 2011-03-17 -254 loaded 2011-03-17 -255 loaded 2011-03-17 -256 loaded 2011-03-17 -257 loaded 2011-03-17 -258 loaded 2011-03-17 -259 loaded 2011-03-17 -260 loaded 2011-03-17 -261 loaded 2011-03-17 -262 loaded 2011-03-17 -263 loaded 2011-03-17 -264 loaded 2011-03-17 -265 loaded 2011-03-17 -266 loaded 2011-03-17 -267 loaded 2011-03-17 -268 loaded 2011-03-17 -269 loaded 2011-03-17 -270 loaded 2011-03-17 -271 loaded 2011-03-17 -272 loaded 2011-03-17 -273 loaded 2011-03-17 -274 loaded 2011-03-17 -275 loaded 2011-03-17 -276 loaded 2011-03-17 -277 loaded 2011-03-17 -278 loaded 2011-03-17 -279 loaded 2011-03-17 -280 loaded 2011-03-17 -281 loaded 2011-03-17 -282 loaded 2011-03-17 -283 loaded 2011-03-17 -284 loaded 2011-03-17 -285 loaded 2011-03-17 -286 loaded 2011-03-17 -287 loaded 2011-03-17 -288 loaded 2011-03-17 -289 loaded 2011-03-17 -290 loaded 2011-03-17 -291 loaded 2011-03-17 -292 loaded 2011-03-17 -293 loaded 2011-03-17 -294 loaded 2011-03-17 -295 loaded 2011-03-17 -296 loaded 2011-03-17 -297 loaded 2011-03-17 -298 loaded 2011-03-17 -299 loaded 2011-03-17 -300 loaded 2011-03-17 -301 loaded 2011-03-17 -302 loaded 2011-03-17 -303 loaded 2011-03-17 -304 loaded 2011-03-17 -305 loaded 2011-03-17 -306 loaded 2011-03-17 -307 loaded 2011-03-17 -308 loaded 2011-03-17 -309 loaded 2011-03-17 -310 loaded 2011-03-17 -311 loaded 2011-03-17 -312 loaded 2011-03-17 -313 loaded 2011-03-17 -314 loaded 2011-03-17 -315 loaded 2011-03-17 -316 loaded 2011-03-17 -317 loaded 2011-03-17 -318 loaded 2011-03-17 -319 loaded 2011-03-17 -320 loaded 2011-03-17 -321 loaded 2011-03-17 -322 loaded 2011-03-17 -323 loaded 2011-03-17 -324 loaded 2011-03-17 -325 loaded 2011-03-17 -326 loaded 2011-03-17 -327 loaded 2011-03-17 -328 loaded 2011-03-17 -329 loaded 2011-03-17 -330 loaded 2011-03-17 -331 loaded 2011-03-17 -332 loaded 2011-03-17 -333 loaded 2011-03-17 -334 loaded 2011-03-17 -335 loaded 2011-03-17 -336 loaded 2011-03-17 -337 loaded 2011-03-17 -338 loaded 2011-03-17 -339 loaded 2011-03-17 -340 loaded 2011-03-17 -341 loaded 2011-03-17 -342 loaded 2011-03-17 -343 loaded 2011-03-17 -344 loaded 2011-03-17 -345 loaded 2011-03-17 -346 loaded 2011-03-17 -347 loaded 2011-03-17 -348 loaded 2011-03-17 -349 loaded 2011-03-17 -350 loaded 2011-03-17 -351 loaded 2011-03-17 -352 loaded 2011-03-17 -353 loaded 2011-03-17 -354 loaded 2011-03-17 -355 loaded 2011-03-17 -356 loaded 2011-03-17 -357 loaded 2011-03-17 -358 loaded 2011-03-17 -359 loaded 2011-03-17 -360 loaded 2011-03-17 -361 loaded 2011-03-17 -362 loaded 2011-03-17 -363 loaded 2011-03-17 -364 loaded 2011-03-17 -365 loaded 2011-03-17 -366 loaded 2011-03-17 -367 loaded 2011-03-17 -368 loaded 2011-03-17 -369 loaded 2011-03-17 -370 loaded 2011-03-17 -371 loaded 2011-03-17 -372 loaded 2011-03-17 -373 loaded 2011-03-17 -374 loaded 2011-03-17 -375 loaded 2011-03-17 -376 loaded 2011-03-17 -377 loaded 2011-03-17 -378 loaded 2011-03-17 -379 loaded 2011-03-17 -380 loaded 2011-03-17 -381 loaded 2011-03-17 -382 loaded 2011-03-17 -383 loaded 2011-03-17 -384 loaded 2011-03-17 -385 loaded 2011-03-17 -386 loaded 2011-03-17 -387 loaded 2011-03-17 -388 loaded 2011-03-17 -389 loaded 2011-03-17 -390 loaded 2011-03-17 -391 loaded 2011-03-17 -392 loaded 2011-03-17 -393 loaded 2011-03-17 -394 loaded 2011-03-17 -395 loaded 2011-03-17 -396 loaded 2011-03-17 -397 loaded 2011-03-17 -398 loaded 2011-03-17 -399 loaded 2011-03-17 -400 loaded 2011-03-17 -401 loaded 2011-03-17 -402 loaded 2011-03-17 -403 loaded 2011-03-17 -404 loaded 2011-03-17 -405 loaded 2011-03-17 -406 loaded 2011-03-17 -407 loaded 2011-03-17 -408 loaded 2011-03-17 -409 loaded 2011-03-17 -410 loaded 2011-03-17 -411 loaded 2011-03-17 -412 loaded 2011-03-17 -413 loaded 2011-03-17 -414 loaded 2011-03-17 -415 loaded 2011-03-17 -416 loaded 2011-03-17 -417 loaded 2011-03-17 -418 loaded 2011-03-17 -419 loaded 2011-03-17 -420 loaded 2011-03-17 -421 loaded 2011-03-17 -422 loaded 2011-03-17 -423 loaded 2011-03-17 -424 loaded 2011-03-17 -425 loaded 2011-03-17 -426 loaded 2011-03-17 -427 loaded 2011-03-17 -428 loaded 2011-03-17 -429 loaded 2011-03-17 -430 loaded 2011-03-17 -431 loaded 2011-03-17 -432 loaded 2011-03-17 -433 loaded 2011-03-17 -434 loaded 2011-03-17 -435 loaded 2011-03-17 -436 loaded 2011-03-17 -437 loaded 2011-03-17 -438 loaded 2011-03-17 -439 loaded 2011-03-17 -440 loaded 2011-03-17 -441 loaded 2011-03-17 -442 loaded 2011-03-17 -443 loaded 2011-03-17 -444 loaded 2011-03-17 -445 loaded 2011-03-17 -446 loaded 2011-03-17 -447 loaded 2011-03-17 -448 loaded 2011-03-17 -449 loaded 2011-03-17 -450 loaded 2011-03-17 -451 loaded 2011-03-17 -452 loaded 2011-03-17 -453 loaded 2011-03-17 -454 loaded 2011-03-17 -455 loaded 2011-03-17 -456 loaded 2011-03-17 -457 loaded 2011-03-17 -458 loaded 2011-03-17 -459 loaded 2011-03-17 -460 loaded 2011-03-17 -461 loaded 2011-03-17 -462 loaded 2011-03-17 -463 loaded 2011-03-17 -464 loaded 2011-03-17 -465 loaded 2011-03-17 -466 loaded 2011-03-17 -467 loaded 2011-03-17 -468 loaded 2011-03-17 -469 loaded 2011-03-17 -470 loaded 2011-03-17 -471 loaded 2011-03-17 -472 loaded 2011-03-17 -473 loaded 2011-03-17 -474 loaded 2011-03-17 -475 loaded 2011-03-17 -476 loaded 2011-03-17 -477 loaded 2011-03-17 -478 loaded 2011-03-17 -479 loaded 2011-03-17 -480 loaded 2011-03-17 -481 loaded 2011-03-17 -482 loaded 2011-03-17 -483 loaded 2011-03-17 -484 loaded 2011-03-17 -485 loaded 2011-03-17 -486 loaded 2011-03-17 -487 loaded 2011-03-17 -488 loaded 2011-03-17 -489 loaded 2011-03-17 -490 loaded 2011-03-17 -491 loaded 2011-03-17 -492 loaded 2011-03-17 -493 loaded 2011-03-17 -494 loaded 2011-03-17 -495 loaded 2011-03-17 -496 loaded 2011-03-17 -497 loaded 2011-03-17 -498 loaded 2011-03-17 -499 loaded 2011-03-17 -500 loaded 2011-03-17 diff --git a/t/pt-online-schema-change/samples/basic_no_fks.data b/t/pt-online-schema-change/samples/basic_no_fks.data new file mode 100644 index 00000000..4f2ef627 --- /dev/null +++ b/t/pt-online-schema-change/samples/basic_no_fks.data @@ -0,0 +1,500 @@ +1 original row 1 2012-03-29 +2 original row 2 2012-03-29 +3 original row 3 2012-03-29 +4 original row 4 2012-03-29 +5 original row 5 2012-03-29 +6 original row 6 2012-03-29 +7 original row 7 2012-03-29 +8 original row 8 2012-03-29 +9 original row 9 2012-03-29 +10 original row 10 2012-03-29 +11 original row 11 2012-03-29 +12 original row 12 2012-03-29 +13 original row 13 2012-03-29 +14 original row 14 2012-03-29 +15 original row 15 2012-03-29 +16 original row 16 2012-03-29 +17 original row 17 2012-03-29 +18 original row 18 2012-03-29 +19 original row 19 2012-03-29 +20 original row 20 2012-03-29 +21 original row 21 2012-03-29 +22 original row 22 2012-03-29 +23 original row 23 2012-03-29 +24 original row 24 2012-03-29 +25 original row 25 2012-03-29 +26 original row 26 2012-03-29 +27 original row 27 2012-03-29 +28 original row 28 2012-03-29 +29 original row 29 2012-03-29 +30 original row 30 2012-03-29 +31 original row 31 2012-03-29 +32 original row 32 2012-03-29 +33 original row 33 2012-03-29 +34 original row 34 2012-03-29 +35 original row 35 2012-03-29 +36 original row 36 2012-03-29 +37 original row 37 2012-03-29 +38 original row 38 2012-03-29 +39 original row 39 2012-03-29 +40 original row 40 2012-03-29 +41 original row 41 2012-03-29 +42 original row 42 2012-03-29 +43 original row 43 2012-03-29 +44 original row 44 2012-03-29 +45 original row 45 2012-03-29 +46 original row 46 2012-03-29 +47 original row 47 2012-03-29 +48 original row 48 2012-03-29 +49 original row 49 2012-03-29 +50 original row 50 2012-03-29 +51 original row 51 2012-03-29 +52 original row 52 2012-03-29 +53 original row 53 2012-03-29 +54 original row 54 2012-03-29 +55 original row 55 2012-03-29 +56 original row 56 2012-03-29 +57 original row 57 2012-03-29 +58 original row 58 2012-03-29 +59 original row 59 2012-03-29 +60 original row 60 2012-03-29 +61 original row 61 2012-03-29 +62 original row 62 2012-03-29 +63 original row 63 2012-03-29 +64 original row 64 2012-03-29 +65 original row 65 2012-03-29 +66 original row 66 2012-03-29 +67 original row 67 2012-03-29 +68 original row 68 2012-03-29 +69 original row 69 2012-03-29 +70 original row 70 2012-03-29 +71 original row 71 2012-03-29 +72 original row 72 2012-03-29 +73 original row 73 2012-03-29 +74 original row 74 2012-03-29 +75 original row 75 2012-03-29 +76 original row 76 2012-03-29 +77 original row 77 2012-03-29 +78 original row 78 2012-03-29 +79 original row 79 2012-03-29 +80 original row 80 2012-03-29 +81 original row 81 2012-03-29 +82 original row 82 2012-03-29 +83 original row 83 2012-03-29 +84 original row 84 2012-03-29 +85 original row 85 2012-03-29 +86 original row 86 2012-03-29 +87 original row 87 2012-03-29 +88 original row 88 2012-03-29 +89 original row 89 2012-03-29 +90 original row 90 2012-03-29 +91 original row 91 2012-03-29 +92 original row 92 2012-03-29 +93 original row 93 2012-03-29 +94 original row 94 2012-03-29 +95 original row 95 2012-03-29 +96 original row 96 2012-03-29 +97 original row 97 2012-03-29 +98 original row 98 2012-03-29 +99 original row 99 2012-03-29 +100 original row 100 2012-03-29 +101 original row 101 2012-03-29 +102 original row 102 2012-03-29 +103 original row 103 2012-03-29 +104 original row 104 2012-03-29 +105 original row 105 2012-03-29 +106 original row 106 2012-03-29 +107 original row 107 2012-03-29 +108 original row 108 2012-03-29 +109 original row 109 2012-03-29 +110 original row 110 2012-03-29 +111 original row 111 2012-03-29 +112 original row 112 2012-03-29 +113 original row 113 2012-03-29 +114 original row 114 2012-03-29 +115 original row 115 2012-03-29 +116 original row 116 2012-03-29 +117 original row 117 2012-03-29 +118 original row 118 2012-03-29 +119 original row 119 2012-03-29 +120 original row 120 2012-03-29 +121 original row 121 2012-03-29 +122 original row 122 2012-03-29 +123 original row 123 2012-03-29 +124 original row 124 2012-03-29 +125 original row 125 2012-03-29 +126 original row 126 2012-03-29 +127 original row 127 2012-03-29 +128 original row 128 2012-03-29 +129 original row 129 2012-03-29 +130 original row 130 2012-03-29 +131 original row 131 2012-03-29 +132 original row 132 2012-03-29 +133 original row 133 2012-03-29 +134 original row 134 2012-03-29 +135 original row 135 2012-03-29 +136 original row 136 2012-03-29 +137 original row 137 2012-03-29 +138 original row 138 2012-03-29 +139 original row 139 2012-03-29 +140 original row 140 2012-03-29 +141 original row 141 2012-03-29 +142 original row 142 2012-03-29 +143 original row 143 2012-03-29 +144 original row 144 2012-03-29 +145 original row 145 2012-03-29 +146 original row 146 2012-03-29 +147 original row 147 2012-03-29 +148 original row 148 2012-03-29 +149 original row 149 2012-03-29 +150 original row 150 2012-03-29 +151 original row 151 2012-03-29 +152 original row 152 2012-03-29 +153 original row 153 2012-03-29 +154 original row 154 2012-03-29 +155 original row 155 2012-03-29 +156 original row 156 2012-03-29 +157 original row 157 2012-03-29 +158 original row 158 2012-03-29 +159 original row 159 2012-03-29 +160 original row 160 2012-03-29 +161 original row 161 2012-03-29 +162 original row 162 2012-03-29 +163 original row 163 2012-03-29 +164 original row 164 2012-03-29 +165 original row 165 2012-03-29 +166 original row 166 2012-03-29 +167 original row 167 2012-03-29 +168 original row 168 2012-03-29 +169 original row 169 2012-03-29 +170 original row 170 2012-03-29 +171 original row 171 2012-03-29 +172 original row 172 2012-03-29 +173 original row 173 2012-03-29 +174 original row 174 2012-03-29 +175 original row 175 2012-03-29 +176 original row 176 2012-03-29 +177 original row 177 2012-03-29 +178 original row 178 2012-03-29 +179 original row 179 2012-03-29 +180 original row 180 2012-03-29 +181 original row 181 2012-03-29 +182 original row 182 2012-03-29 +183 original row 183 2012-03-29 +184 original row 184 2012-03-29 +185 original row 185 2012-03-29 +186 original row 186 2012-03-29 +187 original row 187 2012-03-29 +188 original row 188 2012-03-29 +189 original row 189 2012-03-29 +190 original row 190 2012-03-29 +191 original row 191 2012-03-29 +192 original row 192 2012-03-29 +193 original row 193 2012-03-29 +194 original row 194 2012-03-29 +195 original row 195 2012-03-29 +196 original row 196 2012-03-29 +197 original row 197 2012-03-29 +198 original row 198 2012-03-29 +199 original row 199 2012-03-29 +200 original row 200 2012-03-29 +201 original row 201 2012-03-29 +202 original row 202 2012-03-29 +203 original row 203 2012-03-29 +204 original row 204 2012-03-29 +205 original row 205 2012-03-29 +206 original row 206 2012-03-29 +207 original row 207 2012-03-29 +208 original row 208 2012-03-29 +209 original row 209 2012-03-29 +210 original row 210 2012-03-29 +211 original row 211 2012-03-29 +212 original row 212 2012-03-29 +213 original row 213 2012-03-29 +214 original row 214 2012-03-29 +215 original row 215 2012-03-29 +216 original row 216 2012-03-29 +217 original row 217 2012-03-29 +218 original row 218 2012-03-29 +219 original row 219 2012-03-29 +220 original row 220 2012-03-29 +221 original row 221 2012-03-29 +222 original row 222 2012-03-29 +223 original row 223 2012-03-29 +224 original row 224 2012-03-29 +225 original row 225 2012-03-29 +226 original row 226 2012-03-29 +227 original row 227 2012-03-29 +228 original row 228 2012-03-29 +229 original row 229 2012-03-29 +230 original row 230 2012-03-29 +231 original row 231 2012-03-29 +232 original row 232 2012-03-29 +233 original row 233 2012-03-29 +234 original row 234 2012-03-29 +235 original row 235 2012-03-29 +236 original row 236 2012-03-29 +237 original row 237 2012-03-29 +238 original row 238 2012-03-29 +239 original row 239 2012-03-29 +240 original row 240 2012-03-29 +241 original row 241 2012-03-29 +242 original row 242 2012-03-29 +243 original row 243 2012-03-29 +244 original row 244 2012-03-29 +245 original row 245 2012-03-29 +246 original row 246 2012-03-29 +247 original row 247 2012-03-29 +248 original row 248 2012-03-29 +249 original row 249 2012-03-29 +250 original row 250 2012-03-29 +251 original row 251 2012-03-29 +252 original row 252 2012-03-29 +253 original row 253 2012-03-29 +254 original row 254 2012-03-29 +255 original row 255 2012-03-29 +256 original row 256 2012-03-29 +257 original row 257 2012-03-29 +258 original row 258 2012-03-29 +259 original row 259 2012-03-29 +260 original row 260 2012-03-29 +261 original row 261 2012-03-29 +262 original row 262 2012-03-29 +263 original row 263 2012-03-29 +264 original row 264 2012-03-29 +265 original row 265 2012-03-29 +266 original row 266 2012-03-29 +267 original row 267 2012-03-29 +268 original row 268 2012-03-29 +269 original row 269 2012-03-29 +270 original row 270 2012-03-29 +271 original row 271 2012-03-29 +272 original row 272 2012-03-29 +273 original row 273 2012-03-29 +274 original row 274 2012-03-29 +275 original row 275 2012-03-29 +276 original row 276 2012-03-29 +277 original row 277 2012-03-29 +278 original row 278 2012-03-29 +279 original row 279 2012-03-29 +280 original row 280 2012-03-29 +281 original row 281 2012-03-29 +282 original row 282 2012-03-29 +283 original row 283 2012-03-29 +284 original row 284 2012-03-29 +285 original row 285 2012-03-29 +286 original row 286 2012-03-29 +287 original row 287 2012-03-29 +288 original row 288 2012-03-29 +289 original row 289 2012-03-29 +290 original row 290 2012-03-29 +291 original row 291 2012-03-29 +292 original row 292 2012-03-29 +293 original row 293 2012-03-29 +294 original row 294 2012-03-29 +295 original row 295 2012-03-29 +296 original row 296 2012-03-29 +297 original row 297 2012-03-29 +298 original row 298 2012-03-29 +299 original row 299 2012-03-29 +300 original row 300 2012-03-29 +301 original row 301 2012-03-29 +302 original row 302 2012-03-29 +303 original row 303 2012-03-29 +304 original row 304 2012-03-29 +305 original row 305 2012-03-29 +306 original row 306 2012-03-29 +307 original row 307 2012-03-29 +308 original row 308 2012-03-29 +309 original row 309 2012-03-29 +310 original row 310 2012-03-29 +311 original row 311 2012-03-29 +312 original row 312 2012-03-29 +313 original row 313 2012-03-29 +314 original row 314 2012-03-29 +315 original row 315 2012-03-29 +316 original row 316 2012-03-29 +317 original row 317 2012-03-29 +318 original row 318 2012-03-29 +319 original row 319 2012-03-29 +320 original row 320 2012-03-29 +321 original row 321 2012-03-29 +322 original row 322 2012-03-29 +323 original row 323 2012-03-29 +324 original row 324 2012-03-29 +325 original row 325 2012-03-29 +326 original row 326 2012-03-29 +327 original row 327 2012-03-29 +328 original row 328 2012-03-29 +329 original row 329 2012-03-29 +330 original row 330 2012-03-29 +331 original row 331 2012-03-29 +332 original row 332 2012-03-29 +333 original row 333 2012-03-29 +334 original row 334 2012-03-29 +335 original row 335 2012-03-29 +336 original row 336 2012-03-29 +337 original row 337 2012-03-29 +338 original row 338 2012-03-29 +339 original row 339 2012-03-29 +340 original row 340 2012-03-29 +341 original row 341 2012-03-29 +342 original row 342 2012-03-29 +343 original row 343 2012-03-29 +344 original row 344 2012-03-29 +345 original row 345 2012-03-29 +346 original row 346 2012-03-29 +347 original row 347 2012-03-29 +348 original row 348 2012-03-29 +349 original row 349 2012-03-29 +350 original row 350 2012-03-29 +351 original row 351 2012-03-29 +352 original row 352 2012-03-29 +353 original row 353 2012-03-29 +354 original row 354 2012-03-29 +355 original row 355 2012-03-29 +356 original row 356 2012-03-29 +357 original row 357 2012-03-29 +358 original row 358 2012-03-29 +359 original row 359 2012-03-29 +360 original row 360 2012-03-29 +361 original row 361 2012-03-29 +362 original row 362 2012-03-29 +363 original row 363 2012-03-29 +364 original row 364 2012-03-29 +365 original row 365 2012-03-29 +366 original row 366 2012-03-29 +367 original row 367 2012-03-29 +368 original row 368 2012-03-29 +369 original row 369 2012-03-29 +370 original row 370 2012-03-29 +371 original row 371 2012-03-29 +372 original row 372 2012-03-29 +373 original row 373 2012-03-29 +374 original row 374 2012-03-29 +375 original row 375 2012-03-29 +376 original row 376 2012-03-29 +377 original row 377 2012-03-29 +378 original row 378 2012-03-29 +379 original row 379 2012-03-29 +380 original row 380 2012-03-29 +381 original row 381 2012-03-29 +382 original row 382 2012-03-29 +383 original row 383 2012-03-29 +384 original row 384 2012-03-29 +385 original row 385 2012-03-29 +386 original row 386 2012-03-29 +387 original row 387 2012-03-29 +388 original row 388 2012-03-29 +389 original row 389 2012-03-29 +390 original row 390 2012-03-29 +391 original row 391 2012-03-29 +392 original row 392 2012-03-29 +393 original row 393 2012-03-29 +394 original row 394 2012-03-29 +395 original row 395 2012-03-29 +396 original row 396 2012-03-29 +397 original row 397 2012-03-29 +398 original row 398 2012-03-29 +399 original row 399 2012-03-29 +400 original row 400 2012-03-29 +401 original row 401 2012-03-29 +402 original row 402 2012-03-29 +403 original row 403 2012-03-29 +404 original row 404 2012-03-29 +405 original row 405 2012-03-29 +406 original row 406 2012-03-29 +407 original row 407 2012-03-29 +408 original row 408 2012-03-29 +409 original row 409 2012-03-29 +410 original row 410 2012-03-29 +411 original row 411 2012-03-29 +412 original row 412 2012-03-29 +413 original row 413 2012-03-29 +414 original row 414 2012-03-29 +415 original row 415 2012-03-29 +416 original row 416 2012-03-29 +417 original row 417 2012-03-29 +418 original row 418 2012-03-29 +419 original row 419 2012-03-29 +420 original row 420 2012-03-29 +421 original row 421 2012-03-29 +422 original row 422 2012-03-29 +423 original row 423 2012-03-29 +424 original row 424 2012-03-29 +425 original row 425 2012-03-29 +426 original row 426 2012-03-29 +427 original row 427 2012-03-29 +428 original row 428 2012-03-29 +429 original row 429 2012-03-29 +430 original row 430 2012-03-29 +431 original row 431 2012-03-29 +432 original row 432 2012-03-29 +433 original row 433 2012-03-29 +434 original row 434 2012-03-29 +435 original row 435 2012-03-29 +436 original row 436 2012-03-29 +437 original row 437 2012-03-29 +438 original row 438 2012-03-29 +439 original row 439 2012-03-29 +440 original row 440 2012-03-29 +441 original row 441 2012-03-29 +442 original row 442 2012-03-29 +443 original row 443 2012-03-29 +444 original row 444 2012-03-29 +445 original row 445 2012-03-29 +446 original row 446 2012-03-29 +447 original row 447 2012-03-29 +448 original row 448 2012-03-29 +449 original row 449 2012-03-29 +450 original row 450 2012-03-29 +451 original row 451 2012-03-29 +452 original row 452 2012-03-29 +453 original row 453 2012-03-29 +454 original row 454 2012-03-29 +455 original row 455 2012-03-29 +456 original row 456 2012-03-29 +457 original row 457 2012-03-29 +458 original row 458 2012-03-29 +459 original row 459 2012-03-29 +460 original row 460 2012-03-29 +461 original row 461 2012-03-29 +462 original row 462 2012-03-29 +463 original row 463 2012-03-29 +464 original row 464 2012-03-29 +465 original row 465 2012-03-29 +466 original row 466 2012-03-29 +467 original row 467 2012-03-29 +468 original row 468 2012-03-29 +469 original row 469 2012-03-29 +470 original row 470 2012-03-29 +471 original row 471 2012-03-29 +472 original row 472 2012-03-29 +473 original row 473 2012-03-29 +474 original row 474 2012-03-29 +475 original row 475 2012-03-29 +476 original row 476 2012-03-29 +477 original row 477 2012-03-29 +478 original row 478 2012-03-29 +479 original row 479 2012-03-29 +480 original row 480 2012-03-29 +481 original row 481 2012-03-29 +482 original row 482 2012-03-29 +483 original row 483 2012-03-29 +484 original row 484 2012-03-29 +485 original row 485 2012-03-29 +486 original row 486 2012-03-29 +487 original row 487 2012-03-29 +488 original row 488 2012-03-29 +489 original row 489 2012-03-29 +490 original row 490 2012-03-29 +491 original row 491 2012-03-29 +492 original row 492 2012-03-29 +493 original row 493 2012-03-29 +494 original row 494 2012-03-29 +495 original row 495 2012-03-29 +496 original row 496 2012-03-29 +497 original row 497 2012-03-29 +498 original row 498 2012-03-29 +499 original row 499 2012-03-29 +500 original row 500 2012-03-29 diff --git a/t/pt-online-schema-change/samples/basic_no_fks.sql b/t/pt-online-schema-change/samples/basic_no_fks.sql index f0928b42..ee9b672e 100644 --- a/t/pt-online-schema-change/samples/basic_no_fks.sql +++ b/t/pt-online-schema-change/samples/basic_no_fks.sql @@ -3,9 +3,9 @@ CREATE DATABASE pt_osc; USE pt_osc; CREATE TABLE t ( id int auto_increment primary key, - c char(16), + c char(32), d date, - unique index (c(16)) + unique index (c(32)) ) ENGINE=MyISAM; INSERT INTO pt_osc.t VALUES (null, 'a', now()), diff --git a/t/pt-online-schema-change/samples/query_table.pl b/t/pt-online-schema-change/samples/query_table.pl index 55e01642..5762135c 100755 --- a/t/pt-online-schema-change/samples/query_table.pl +++ b/t/pt-online-schema-change/samples/query_table.pl @@ -4,9 +4,10 @@ use strict; use warnings FATAL => 'all'; use English qw(-no_match_vars); use DBI; -use Time::HiRes qw(usleep); +use Time::HiRes qw(usleep time); -my ($host, $port, $db, $tbl, $pkcol, $sleep_time) = @ARGV; +my ($host, $port, $db, $tbl, $pkcol, $stop_file, $sleep_time) = @ARGV; +die "I need a stop_file argument" unless $stop_file; my $dbh = DBI->connect( "DBI:mysql:$db;host=$host;port=$port;mysql_read_default_group=client", 'msandbox', 'msandbox', @@ -23,7 +24,7 @@ my $start_xa = "START TRANSACTION /*!40108 WITH CONSISTENT SNAPSHOT */"; $dbh->do($start_xa); for my $i ( 1..5_000 ) { - last if -f '/tmp/query_table.stop'; + last if -f $stop_file; eval { # We do roughly 25% DELETE, 25% UPDATE and 50% INSERT. @@ -39,13 +40,15 @@ for my $i ( 1..5_000 ) { elsif ($x == 2) { my $id = int(rand(500)) || 1; if ( !grep { $_ == $id } @del ) { - $dbh->do("update $db.$tbl set c='updated' where $pkcol=$id"); + my $t=time; + $dbh->do("update $db.$tbl set c='updated row $t' where $pkcol=$id"); push @upd, $id; } } else { my $id = 500 + $i; - $dbh->do("insert ignore into $db.$tbl ($pkcol, c) values ($id, 'inserted')"); + my $t=time; + $dbh->do("insert ignore into $db.$tbl ($pkcol, c) values ($id, 'new row $t')"); push @ins, $id; }