Merge branch '3.0' into PT-204

This commit is contained in:
Carlos Salguero
2017-12-06 15:01:47 -03:00
49 changed files with 758 additions and 39 deletions

View File

@@ -1161,7 +1161,7 @@ SKIP: {
},
engine => 'InnoDB',
is_autoinc => { column2 => 0, column3 => 0, id => 0 },
is_col => { column2 => 1, column3 => 1, id => 1 },
is_col => { column2 => 1, id => 1 },
is_generated => { column3 => 1 },
is_nullable => { column2 => 1, column3 => 1 },
is_numeric => { column2 => 1, column3 => 1, id => 1 },

View File

@@ -0,0 +1,89 @@
#!/usr/bin/env perl
BEGIN {
die "The PERCONA_TOOLKIT_BRANCH environment variable is not set.\n"
unless $ENV{PERCONA_TOOLKIT_BRANCH} && -d $ENV{PERCONA_TOOLKIT_BRANCH};
unshift @INC, "$ENV{PERCONA_TOOLKIT_BRANCH}/lib";
};
use strict;
use warnings FATAL => 'all';
use threads;
use English qw(-no_match_vars);
use Test::More;
use Data::Dumper;
use PerconaTest;
use Sandbox;
use SqlModes;
use File::Temp qw/ tempdir /;
require "$trunk/bin/pt-online-schema-change";
my $dp = new DSNParser(opts=>$dsn_opts);
my $sb = new Sandbox(basedir => '/tmp', DSNParser => $dp);
my $master_dbh = $sb->get_dbh_for('master');
my $master_dsn = 'h=127.1,P=12345,u=msandbox,p=msandbox';
if ( !$master_dbh ) {
plan skip_all => 'Cannot connect to sandbox master';
}
if ($sandbox_version lt '5.7') {
plan skip_all => "RocksDB is only available on Percona Server 5.7.19+";
}
my $rows = $master_dbh->selectall_arrayref('SHOW ENGINES', {Slice=>{}});
my $rocksdb_enabled;
for my $row (@$rows) {
if ($row->{engine} eq 'ROCKSDB') {
$rocksdb_enabled = 1;
last;
}
}
if (!$rocksdb_enabled) {
plan skip_all => "RocksDB engine is not available";
}
plan tests => 3;
# The sandbox servers run with lock_wait_timeout=3 and it's not dynamic
# so we need to specify --set-vars innodb_lock_wait_timeout=3 else the
# tool will die.
my @args = (qw(--set-vars innodb_lock_wait_timeout=3));
my $output;
my $exit_status;
my $sample = "t/pt-online-schema-change/samples/";
$sb->load_file('master', "$sample/pt-209.sql");
($output, $exit_status) = full_output(
sub { pt_online_schema_change::main(@args, "$master_dsn,D=test,t=t1",
'--execute',
'--alter', "ADD CONSTRAINT fk_some_id FOREIGN KEY (some_id) REFERENCES some(id)`",
),
},
);
isnt(
$exit_status,
0,
"PT-209 Altering RocksDB table adding a foreign key exit status != 0",
);
like(
$output,
qr/FOREIGN KEYS are not supported by the RocksDB engine/s,
"PT-209 Message cannot add FKs to a RocksDB table",
);
$master_dbh->do("DROP DATABASE IF EXISTS test");
# #############################################################################
# Done.
# #############################################################################
$sb->wipe_clean($master_dbh);
ok($sb->ok(), "Sandbox servers") or BAIL_OUT(__FILE__ . " broke the sandbox");
done_testing;

View File

@@ -0,0 +1,8 @@
CREATE SCHEMA IF NOT EXISTS test;
USE test;
DROP TABLE IF EXISTS t1;
CREATE TABLE `test`.`t1` (
`ID` int(11) NOT NULL,
`Column2` int(11) DEFAULT NULL,
PRIMARY KEY (`ID`)
) ENGINE=RocksDB DEFAULT CHARSET=utf8mb4 COLLATE=utf8mb4_unicode_ci;

View File

@@ -0,0 +1,75 @@
#!/usr/bin/env perl
BEGIN {
die "The PERCONA_TOOLKIT_BRANCH environment variable is not set.\n"
unless $ENV{PERCONA_TOOLKIT_BRANCH} && -d $ENV{PERCONA_TOOLKIT_BRANCH};
unshift @INC, "$ENV{PERCONA_TOOLKIT_BRANCH}/lib";
};
use strict;
use warnings FATAL => 'all';
use English qw(-no_match_vars);
use Test::More;
use PerconaTest;
use Sandbox;
use SqlModes;
require "$trunk/bin/pt-table-checksum";
my $dp = new DSNParser(opts=>$dsn_opts);
my $sb = new Sandbox(basedir => '/tmp', DSNParser => $dp);
my $dbh = $sb->get_dbh_for('master');
if ( !$dbh ) {
plan skip_all => 'Cannot connect to sandbox master';
}
else {
plan tests => 3;
}
diag("loading samples");
$sb->load_file('master', 't/pt-table-checksum/samples/pt-225.sql');
# The sandbox servers run with lock_wait_timeout=3 and it's not dynamic
# so we need to specify --set-vars innodb_lock_wait_timeout=3 else the tool will die.
# And --max-load "" prevents waiting for status variables.
my $master_dsn = $sb->dsn_for('master');
diag("setting up the slaves");
my $slave_dbh = $sb->get_dbh_for('slave1');
# Create differences
$slave_dbh->do('DELETE FROM `test`.`sbtest1` WHERE id > 15');
$slave_dbh->do('FLUSH TABLES');
my @args = ($master_dsn, "--set-vars", "innodb_lock_wait_timeout=50",
"--ignore-databases", "mysql,sys,sakila,percona_test",
"--nocheck-replication-filters");
my $output;
my $exit_status;
# Test #1
$output = output(
sub { $exit_status = pt_table_checksum::main(@args) },
stderr => 1,
);
isnt(
$exit_status,
0,
"PT-225 virtual/generated columns are ignored - exit status",
);
like(
$output,
qr/1\s+\d+\s+\d+\s+\d+\s+.*test.sbtest1/,
"PT-225 virtual/generated columns were ignored",
);
# #############################################################################
# Done.
# #############################################################################
$sb->wipe_clean($dbh);
ok($sb->ok(), "Sandbox servers") or BAIL_OUT(__FILE__ . " broke the sandbox");
exit;

View File

@@ -0,0 +1,77 @@
#!/usr/bin/env perl
BEGIN {
die "The PERCONA_TOOLKIT_BRANCH environment variable is not set.\n"
unless $ENV{PERCONA_TOOLKIT_BRANCH} && -d $ENV{PERCONA_TOOLKIT_BRANCH};
unshift @INC, "$ENV{PERCONA_TOOLKIT_BRANCH}/lib";
};
use strict;
use warnings FATAL => 'all';
use English qw(-no_match_vars);
use Test::More;
use PerconaTest;
use Sandbox;
use SqlModes;
require "$trunk/bin/pt-table-checksum";
my $dp = new DSNParser(opts=>$dsn_opts);
my $sb = new Sandbox(basedir => '/tmp', DSNParser => $dp);
my $dbh = $sb->get_dbh_for('master');
if ( !$dbh ) {
plan skip_all => 'Cannot connect to sandbox master';
}
else {
plan tests => 3;
}
diag("loading samples");
#$sb->load_file('master', 't/pt-table-checksum/samples/pt-226.sql');
$sb->load_file('master', 't/pt-table-checksum/samples/pt-226.sql');
# The sandbox servers run with lock_wait_timeout=3 and it's not dynamic
# so we need to specify --set-vars innodb_lock_wait_timeout=3 else the tool will die.
# And --max-load "" prevents waiting for status variables.
my $master_dsn = $sb->dsn_for('master');
diag("setting up the slaves");
my $slave_dbh = $sb->get_dbh_for('slave1');
# Create differences
$slave_dbh->do('DELETE FROM `test`.`joinit` WHERE i > 90');
$slave_dbh->do('FLUSH TABLES');
$dbh->do('SET GLOBAL binlog_format="ROW"');
my @args = ($master_dsn, "--set-vars", "innodb_lock_wait_timeout=50",
"--ignore-databases", "mysql",
"--nocheck-replication-filters");
my $output;
my $exit_status;
# Test #1
$output = output(
sub { $exit_status = pt_table_checksum::main(@args) },
stderr => 1,
);
isnt(
$exit_status,
0,
"PT-226 SET binlog_format='STATEMENT' exit status",
);
like(
$output,
qr/1\s+100\s+1\s+0\s+.*test.joinit/,
"PT-226 table joinit has differences",
);
$dbh->do('SET GLOBAL binlog_format="STATEMENT"');
# #############################################################################
# Done.
# #############################################################################
$sb->wipe_clean($dbh);
ok($sb->ok(), "Sandbox servers") or BAIL_OUT(__FILE__ . " broke the sandbox");
exit;

View File

@@ -0,0 +1,42 @@
DROP DATABASE IF EXISTS test;
CREATE DATABASE test;
USE test;
CREATE TABLE `sbtest1` (
`id` int(11) NOT NULL AUTO_INCREMENT,
`k` int(11) NOT NULL DEFAULT '0',
`c` char(120) NOT NULL DEFAULT '',
`pad` char(60) NOT NULL DEFAULT '',
`json_test_v` json GENERATED ALWAYS AS (json_array(`k`,`c`,`pad`)) VIRTUAL,
`json_test_s` json GENERATED ALWAYS AS (json_array(`k`,`c`,`pad`)) STORED,
`json_test_index` varchar(255) GENERATED ALWAYS AS (json_array(`k`,`c`,`pad`)) STORED,
PRIMARY KEY (`id`),
KEY `k_1` (`k`),
KEY `json_test_index` (`json_test_index`)
) ENGINE=InnoDB AUTO_INCREMENT=1001 DEFAULT CHARSET=latin1 COMPRESSION='lz4';
/*!40000 ALTER TABLE `sbtest1` DISABLE KEYS */;
INSERT INTO `sbtest1` (`id`, `k`, `c`, `pad`) VALUES
(01,583532949,'at non eaque sint velit enim facilis quisquam nam quaerat.','impedit quae hic possimus ullam est eos totam qui.'),
(02,583532949,'eos exercitationem quisquam saepe totam dolore consequatur.','sit commodi consequatur neque qui.'),
(03,1342458479,'et quia sunt eum eveniet non eum nobis quia est mollitia.','corrupti minima et quibusdam.'),
(04,280366509,'ab minima laudantium!','est sed autem quia nobis suscipit pariatur modi!'),
(05,1801160058,'perspiciatis tenetur minima accusantium consequatur in et.','rerum quo molestiae voluptates harum aspernatur sunt.'),
(06,914091476,'quas aut nostrum a.','harum tempora adipisci et et.'),
(07,1022430181,'qui voluptates inventore voluptatem voluptas numquam blanditiis corporis illum doloremque aut!','dicta neque laboriosam voluptatibus.'),
(08,165910161,'voluptas molestiae harum quis quod.','voluptatem deleniti dolor blanditiis est earum.'),
(09,1255569388,'consequuntur nihil non veniam et possimus sunt.','est est possimus recusandae ab.'),
(10,1375471152,'doloribus quasi quasi eum hic et laborum autem laudantium saepe veritatis.','enim earum et placeat animi ut.'),
(11,1705409249,'eveniet recusandae expedita est consectetur ut laudantium temporibus.','et asperiores porro id sunt totam maiores eum quidem.'),
(12,2003588754,'debitis molestias voluptatibus quia.','sint est voluptatem nihil et.'),
(13,1714682759,'voluptas officiis culpa quaerat sit quis.','vitae omnis repellat rerum consectetur ex.'),
(14,1898674299,'et est quibusdam!','aut est labore.'),
(15,1698116023,'similique nisi quisquam pariatur minus repudiandae ducimus.','eveniet rem nihil voluptatibus voluptatem non.'),
(16,1310715836,'expedita ipsum aut veniam!','incidunt at officia nisi.'),
(17,472875023,'numquam et quaerat voluptatibus.','commodi natus consequatur reiciendis adipisci ut.'),
(18,1153628287,'aut quam quia vel molestiae qui.','eos voluptas quod doloremque!'),
(19,525456967,'dignissimos quibusdam aut et.','laborum reprehenderit eius consequatur qui.'),
(20,1396416465,'aperiam sint et.','fugiat neque impedit cumque soluta.'),
(21,1640670520,'nisi repellendus et velit ab.','incidunt quo eligendi.');

View File

@@ -0,0 +1,115 @@
DROP DATABASE IF EXISTS test;
CREATE DATABASE test;
USE test;
CREATE TABLE `joinit` (
`i` int(11) NOT NULL AUTO_INCREMENT,
`s` varchar(64) DEFAULT NULL,
`t` time NOT NULL,
`g` int(11) NOT NULL,
PRIMARY KEY (`i`)
) ENGINE=InnoDB DEFAULT CHARSET=latin1;
INSERT INTO `joinit` VALUES (1,'dicta ipsa molestiae sit aut sunt nesciunt.','07:21:11',914091476),
(2,'id quia ut reprehenderit rerum.','06:08:56',1705409249),
(3,'voluptates dolore repudiandae voluptas.','15:34:36',1310715836),
(4,'aliquam error qui et rerum.','08:31:50',1640670520),
(5,'accusamus sequi eos porro pariatur possimus.','20:51:37',2011751560),
(6,NULL,'00:10:28',1657080267),
(7,'culpa porro necessitatibus recusandae recusandae.','11:03:59',1406095383),
(8,'beatae voluptatum odio.','19:47:12',1134860842),
(9,'ea soluta et occaecati facilis.','04:00:31',1777484703),
(10,NULL,'15:22:10',1933032615),
(11,NULL,'09:37:52',950391508),
(12,'ad est optio esse.','05:25:06',1947188364),
(13,'accusamus necessitatibus qui corrupti quae soluta adipisci.','21:04:30',341275526),
(14,'rem doloremque et nobis.','13:59:09',1897356779),
(15,'ab consequatur vel porro ut.','19:12:02',2131804237),
(16,'quas molestiae saepe voluptatem rerum quis.','03:41:59',1480121891),
(17,'assumenda ipsa facere et porro voluptas.','17:08:41',663551763),
(18,'est reprehenderit expedita magnam suscipit sunt et.','07:15:01',363238924),
(19,'rerum qui laudantium.','09:51:18',419864978),
(20,'ut qui temporibus vel.','08:40:00',284706965),
(21,'laboriosam ratione aliquid consectetur quidem ab assumenda qui.','15:21:45',1408072633),
(22,'at qui delectus quos sit.','12:43:10',1124985924),
(23,'doloremque odio eos accusantium praesentium officia molestiae ad','01:31:02',1874543227),
(24,'eaque suscipit ullam.','04:07:37',1442092269),
(25,'ut consectetur sit incidunt nostrum occaecati in similique.','20:12:29',1138469771),
(26,'maiores in ipsum.','12:34:46',156229088),
(27,'corporis et reiciendis velit veritatis eaque.','15:51:48',271447457),
(28,NULL,'14:48:19',1508837206),
(29,'rerum quod incidunt ut.','22:59:07',915259646),
(30,'nulla recusandae qui quisquam ut animi culpa rem dolor.','16:58:10',1648444437),
(31,'ipsa qui porro aliquam ab quisquam odio.','01:31:24',1928855257),
(32,'occaecati et officia quod unde.','23:40:12',2094599137),
(33,'molestiae ipsum animi illo incidunt sit fugiat.','20:27:01',682166125),
(34,'sed rerum tenetur ut maxime cumque et.','07:59:16',402527489),
(35,'quasi qui deleniti et quia aspernatur eum harum.','09:44:45',1875752492),
(36,'molestias deserunt sit.','04:47:40',1621124315),
(37,'ut sit dolorem praesentium voluptatem numquam vel est repellendu','04:27:29',1929299726),
(38,'nesciunt officia qui expedita officia!','14:12:17',1871749515),
(39,'molestias fugit qui quas aut quis quis.','02:20:50',133250776),
(40,'nemo voluptas nostrum quae at nesciunt aut.','05:30:16',1977544176),
(41,'neque at nemo laudantium.','18:49:09',1160495982),
(42,NULL,'01:53:15',238269571),
(43,'placeat sit magnam quasi officiis rem.','01:32:17',2050374349),
(44,'harum magnam repellendus natus molestias.','02:31:36',266881561),
(45,'corrupti optio aliquid et eum.','11:27:58',1057706898),
(46,'et aut a at alias quod.','20:27:16',1803439254),
(47,'eum enim voluptatem fugit ipsam iure.','10:00:56',465971914),
(48,'sapiente quis nemo est aperiam corporis exercitationem velit.','03:55:59',1754471891),
(49,'consequuntur aspernatur fugiat est sit autem est.','22:25:20',454377625),
(50,'aut sed consequatur amet.','21:59:00',1580210933),
(51,'autem eius delectus autem ut.','05:42:06',694812007),
(52,'magnam nisi ipsum sit quae reprehenderit eius.','10:57:48',1705595462),
(53,'qui sit ut est voluptatibus earum.','08:43:27',1756643709),
(54,'dolore enim at eum deserunt excepturi omnis!','15:32:25',1793291857),
(55,'nesciunt perferendis omnis quia perspiciatis.','00:53:16',439848412),
(56,'voluptas laboriosam commodi inventore.','12:17:27',502769231),
(57,'non nihil inventore qui.','12:23:29',2010474512),
(58,NULL,'07:59:58',195539887),
(59,NULL,'01:03:13',185293657),
(60,'sunt et perferendis.','01:41:52',593397986),
(61,'qui nemo magni explicabo iure corrupti exercitationem quas!','13:12:36',158590428),
(62,'fugiat optio omnis quisquam.','15:34:07',249619147),
(63,'suscipit dicta incidunt eaque vel officia.','00:12:54',884057050),
(64,'at qui reprehenderit quod est optio.','11:44:52',1888470232),
(65,NULL,'17:28:01',1631026724),
(66,'eius sunt omnis quibusdam autem ut.','08:24:17',91435374),
(67,'doloremque cum cupiditate dolorem omnis.','06:29:20',1151045825),
(68,'iure facilis qui illum aliquam sed asperiores sed!','11:18:27',86548934),
(69,'eos nisi ipsam molestiae ut.','03:13:29',1033200673),
(70,'ex sint aut et cumque et facilis et amet!','01:45:19',1258514903),
(71,'nihil sit assumenda voluptatibus explicabo!','21:36:39',185971679),
(72,'amet vero perferendis atque.','12:01:35',2040594002),
(73,'earum molestiae asperiores ut.','19:18:16',1165023000),
(74,'consequatur rerum similique quasi.','14:44:12',713361001),
(75,'pariatur voluptatibus omnis ipsum iure sint veritatis at cupidit','18:06:16',1550033064),
(76,'exercitationem maxime dolor totam velit sit provident.','15:33:33',979765860),
(77,'sed reiciendis aut id adipisci error!','05:17:42',542662142),
(78,'eaque quod distinctio nihil iste qui aspernatur et accusantium.','10:35:44',1134356103),
(79,'molestias deleniti deleniti perspiciatis.','19:16:57',1360205808),
(80,'architecto enim nulla.','09:28:24',531569080),
(81,'porro aut at quisquam commodi vel molestias.','22:49:27',1154086856),
(82,'libero in et in mollitia.','08:35:21',1945863708),
(83,'voluptates sequi ut enim in fuga debitis.','09:11:07',1987718992),
(84,'voluptatum neque voluptates minus.','21:44:27',1928647112),
(85,'maxime similique consectetur.','14:01:49',1808357109),
(86,'nesciunt aspernatur et mollitia aut labore.','00:48:27',1645832522),
(87,'alias quasi ut eveniet vero necessitatibus velit nesciunt nam!','18:22:59',740680075),
(88,'et totam est voluptas odit rem illum saepe.','02:35:28',980905093),
(89,'porro cupiditate assumenda et non magni deserunt qui repellendus','04:18:30',1965305195),
(90,'vitae quis ullam eos in debitis laudantium!','22:39:14',535565611),
(91,'quo consequatur expedita.','12:33:03',1037848256),
(92,'ipsum at ea consequatur tempore natus!','12:40:38',1216234763),
(93,'numquam repellendus modi culpa corporis aut.','07:46:22',984113837),
(94,'minima in sed modi maxime est iusto.','20:48:55',1026183968),
(95,NULL,'10:48:23',1418133890),
(96,'nesciunt similique fugiat quae repudiandae et eveniet.','17:44:07',583744287),
(97,'libero voluptatibus quibusdam.','09:09:23',1292950444),
(98,'id quasi distinctio molestiae eaque exercitationem id.','18:17:07',625537546),
(99,'veritatis ab quibusdam omnis eum dolor quasi doloremque quia.','02:10:52',1042143012),
(100,'vel accusamus nisi praesentium et.','04:15:54',661815870);

102
t/pt-table-sync/pt_221.t Normal file
View File

@@ -0,0 +1,102 @@
#!/usr/bin/env perl
BEGIN {
die "The PERCONA_TOOLKIT_BRANCH environment variable is not set.\n"
unless $ENV{PERCONA_TOOLKIT_BRANCH} && -d $ENV{PERCONA_TOOLKIT_BRANCH};
unshift @INC, "$ENV{PERCONA_TOOLKIT_BRANCH}/lib";
};
use strict;
use warnings FATAL => 'all';
use English qw(-no_match_vars);
use Test::More;
use PerconaTest;
use Sandbox;
require "$trunk/bin/pt-table-sync";
sub set_binlog_format {
my ($sb, $format) = @_;
my $master_dbh = $sb->get_dbh_for('master');
my $slave1_dbh = $sb->get_dbh_for('slave1');
my $slave2_dbh = $sb->get_dbh_for('slave2');
$slave2_dbh->do("STOP SLAVE");
$slave1_dbh->do("STOP SLAVE");
$slave2_dbh->do("SET GLOBAL binlog_format='$format'");
$slave1_dbh->do("SET GLOBAL binlog_format='$format'");
$master_dbh->do("SET GLOBAL binlog_format='$format'");
$slave2_dbh->do("START SLAVE");
$slave1_dbh->do("START SLAVE");
}
my $dp = new DSNParser(opts=>$dsn_opts);
my $sb = new Sandbox(basedir => '/tmp', DSNParser => $dp, env => q/BINLOG_FORMAT="ROW"/);
my $master_dbh = $sb->get_dbh_for('master');
my $master_dsn = $sb->dsn_for('master');
my $slave_dsn = $sb->dsn_for('slave1');
if ( !$master_dbh ) {
plan skip_all => 'Cannot connect to sandbox master';
} elsif ($sb->has_engine('master', 'rocksdb') != 1) {
plan skip_all => 'This test needs RocksDB engine';
} else {
plan tests => 4;
}
set_binlog_format($sb, 'ROW');
$master_dbh->disconnect();
$master_dbh = $sb->get_dbh_for('master');
$sb->load_file('master', 't/pt-table-sync/samples/pt_221.sql');
my @args = ('--sync-to-master', $slave_dsn, qw(-t test.t1 --print --execute));
my ($output, $exit) = full_output(
sub { pt_table_sync::main(@args, qw()) },
stderr => 1,
);
isnt(
$exit,
0,
"PT-221 fails if using --sync-to-master with RocksDB",
);
like(
$output,
qr/Cannot sync using --sync-to-master with test.t1 due to the limitations of the RocksDB engine/,
"PT-221 Cannot use --sync-to-master with RockSDB",
);
$sb->wait_for_slaves();
@args = ('--replicate', 'test.checksums', $master_dsn, qw(-t test.t1 --print --execute));
($output, $exit) = full_output(
sub { pt_table_sync::main(@args, qw()) },
stderr => 1,
);
is(
$exit,
0,
"PT-221 Doesn't fail if using --replicate with RocksDB",
);
set_binlog_format($sb, 'STATEMENT');
# #############################################################################
# Done.
# #############################################################################
$sb->wipe_clean($master_dbh);
ok($sb->ok(), "Sandbox servers") or BAIL_OUT(__FILE__ . " broke the sandbox");
exit;

View File

@@ -0,0 +1,135 @@
DROP DATABASE IF EXISTS test;
CREATE DATABASE test;
USE test;
CREATE TABLE `test`.`t1` (
id INT AUTO_INCREMENT PRIMARY KEY,
f2 VARCHAR(25) NOT NULL,
f3 INT,
f4 timestamp
) Engine=RocksDB;
INSERT INTO `t1` VALUES
(1,'Henry Stanley',583532949,'2017-02-07 12:12:54'),
(2,'Kathy Franklin',960400044,'2017-10-10 18:06:57'),
(3,'Mr. Dr. Anthony Howard',174461349,'2017-11-16 06:06:11'),
(4,'Janice Foster I II III IV',443038240,'2016-12-07 13:01:35'),
(5,'Sharon Daniels',169641627,'2017-01-09 15:03:40'),
(6,'Alice Tucker',1012579941,'2017-06-16 06:06:28'),
(7,'Theresa Allen',894954174,'2017-07-17 10:10:00'),
(8,'Elizabeth Fowler',1938641144,'2017-03-27 14:02:24'),
(9,'Rebecca Lee',1279764421,'2017-03-06 10:10:08'),
(10,'Anne Kennedy I II III IV ',159121576,'2017-08-15 09:09:16'),
(11,'Christina Arnold',1113045364,'2017-08-18 19:07:02'),
(12,'Mrs. Ms. Miss Cheryl Garc',278843827,'2017-07-23 00:12:00'),
(13,'Louis Harvey',161885407,'2016-12-23 08:08:21'),
(14,'Julie Bishop',1592388661,'2016-11-28 01:01:03'),
(15,'Todd Ramirez',362850921,'2017-02-20 04:04:26'),
(16,'Gary Kennedy',1795393312,'2017-03-25 23:11:43'),
(17,'Roger Hart',1400528216,'2017-04-24 10:10:17'),
(18,'Lois Henry',1104948011,'2017-08-29 10:10:25'),
(19,'Debra Stanley',1103860241,'2017-08-30 16:04:47'),
(20,'Amy Cook',2001779440,'2017-03-04 14:02:36'),
(21,'Rose Vasquez I II III IV ',1025398331,'2017-01-15 05:05:04'),
(22,'David Flores',540200823,'2017-05-13 09:09:48'),
(23,'Brian Crawford',1617053422,'2017-10-14 07:07:47'),
(24,'Kelly Freeman',1361426130,'2017-04-01 04:04:17'),
(25,'Sarah Palmer',1139691470,'2017-10-23 18:06:49'),
(26,'Dorothy Shaw',900404079,'2017-10-17 10:10:01'),
(27,'Kelly Wagner',1982163577,'2016-12-01 04:04:37'),
(28,'Diane Hall',369511081,'2017-07-28 01:01:18'),
(29,'Mr. Dr. Harold Dean',811105176,'2017-11-19 13:01:31'),
(30,'Edward Ferguson',1914574524,'2017-10-14 03:03:49'),
(31,'Dorothy Arnold',1899568350,'2017-08-29 14:02:41'),
(32,'Judith Cox',17691206,'2016-12-11 04:04:20'),
(33,'Elizabeth Johnson',1685990258,'2017-06-22 20:08:50'),
(34,'Carolyn Edwards',1168962838,'2017-04-08 18:06:00'),
(35,'Ruby Chapman',1688473058,'2017-04-16 04:04:24'),
(36,'Amanda Welch I II III IV ',193262041,'2017-04-13 14:02:18'),
(37,'Larry Porter Jr. Sr. I II',75666836,'2017-04-16 16:04:09'),
(38,'Kevin George',887309316,'2017-06-13 12:12:47'),
(39,'Maria Brown',1751136810,'2017-06-08 17:05:37'),
(40,'Tammy Ramos',1588294845,'2017-07-22 11:11:24'),
(41,'Denise Ellis',1545291805,'2017-08-20 10:10:45'),
(42,'Kelly Williamson',861653714,'2017-10-10 03:03:38'),
(43,'Carolyn Patterson',2114635136,'2017-07-03 16:04:20'),
(44,'Amanda Sullivan',505888065,'2017-04-09 18:06:10'),
(45,'Scott White',2053562943,'2017-04-16 02:02:03'),
(46,'Mrs. Ms. Miss Janet Richa',273248685,'2017-01-23 14:02:17'),
(47,'Henry Davis Jr. Sr. I II ',1807469649,'2017-07-20 22:10:52'),
(48,'Sandra Powell',425895561,'2017-05-16 06:06:02'),
(49,'Roger Morrison',519405919,'2017-07-25 20:08:28'),
(50,'Henry Murray Jr. Sr. I II',2095628347,'2017-09-09 02:02:44'),
(51,'Bonnie Wood',632299815,'2017-01-21 09:09:43'),
(52,'Kevin Riley',1337811955,'2017-09-01 00:12:01'),
(53,'Cheryl Lewis',1183760979,'2017-07-10 04:04:41'),
(54,'Craig Oliver',415886351,'2017-08-27 14:02:11'),
(55,'Peter Elliott',1441905738,'2017-01-25 16:04:06'),
(56,'Sarah Henderson',1398808230,'2017-09-14 18:06:22'),
(57,'Angela Olson',73529235,'2017-02-11 19:07:04'),
(58,'Martin Hunt',828130434,'2017-04-11 23:11:01'),
(59,'Ann Grant I II III IV V M',960124334,'2017-08-01 22:10:52'),
(60,'Joe Hudson',1729961064,'2017-10-10 13:01:00'),
(61,'Mrs. Ms. Miss Shirley Rod',2124381773,'2017-05-27 20:08:23'),
(62,'Stephen Long',374271961,'2017-09-08 12:12:02'),
(63,'Gerald Butler',165044727,'2017-10-23 00:12:06'),
(64,'Tammy Hernandez',805042592,'2016-12-17 06:06:23'),
(65,'Marie Armstrong I II III ',342177736,'2017-03-16 01:01:52'),
(66,'Michelle Perry',1879564383,'2017-09-28 15:03:25'),
(67,'Albert Stevens Jr. Sr. I ',294854430,'2016-11-30 00:12:59'),
(68,'Jason Tucker',725774075,'2016-11-28 00:12:17'),
(69,'Philip Parker',482904842,'2017-08-13 06:06:22'),
(70,'Heather Stone',651794709,'2017-02-27 18:06:37'),
(71,'Mr. Dr. Keith Stone',581063673,'2017-10-31 21:09:54'),
(72,'Joseph Hicks',776452583,'2017-07-17 20:08:21'),
(73,'Judith Martinez',2056678762,'2017-04-01 06:06:00'),
(74,'Roger Fields',1025075771,'2017-09-11 03:03:03'),
(75,'Russell Alvarez',2058724771,'2017-08-28 21:09:05'),
(76,'Judith Shaw',439257644,'2016-12-06 09:09:25'),
(77,'Louis Johnston Jr. Sr. I ',1887594525,'2017-06-24 19:07:06'),
(78,'Richard Butler',39227130,'2017-07-05 16:04:22'),
(79,'Wayne Watkins Jr. Sr. I I',503442129,'2017-01-24 14:02:10'),
(80,'Patricia Stewart',286838439,'2017-11-16 06:06:24'),
(81,'Kelly Oliver',1069073876,'2017-02-24 02:02:17'),
(82,'Mrs. Ms. Miss Phyllis Fre',1053443872,'2017-05-31 04:04:19'),
(83,'Wanda Spencer',1685359738,'2017-09-27 08:08:33'),
(84,'William Harris Jr. Sr. I ',1117708440,'2017-07-24 03:03:22'),
(85,'Eugene Sanders',1605154172,'2017-09-29 13:01:06'),
(86,'Peter Sims Jr. Sr. I II I',213620615,'2017-09-06 18:06:19'),
(87,'Melissa Riley',923001454,'2017-09-30 10:10:47'),
(88,'Mr. Dr. Jonathan Lee',137651089,'2017-07-29 07:07:59'),
(89,'Donald Burke',1268762182,'2017-08-30 15:03:35'),
(90,'Adam Long',971993341,'2017-10-27 23:11:26'),
(91,'Theresa Taylor',20073496,'2017-07-26 21:09:23'),
(92,'Heather Matthews',910759132,'2017-02-19 19:07:58'),
(93,'Jerry King Jr. Sr. I II I',2055915105,'2017-06-25 15:03:29'),
(94,'Sara Hawkins',1178751968,'2017-03-29 22:10:59'),
(95,'Ruby Long',998718314,'2017-07-29 16:04:18'),
(96,'Billy Cooper',190019474,'2017-02-04 12:12:41'),
(97,'Jose Wheeler',1922987914,'2017-11-02 21:09:08'),
(98,'Clarence Weaver',364986423,'2017-09-10 00:12:31'),
(99,'Gary Riley',524227310,'2017-09-03 16:04:16'),
(100,'Melissa Parker',1833910235,'2017-10-03 05:05:26');
DROP TABLE IF EXISTS test.checksums;
CREATE TABLE test.checksums (
db CHAR(64) NOT NULL,
tbl CHAR(64) NOT NULL,
chunk INT NOT NULL,
chunk_time FLOAT NULL,
chunk_index VARCHAR(200) NULL,
lower_boundary TEXT NULL,
upper_boundary TEXT NULL,
this_crc CHAR(40) NOT NULL,
this_cnt INT NOT NULL,
master_crc CHAR(40) NULL,
master_cnt INT NULL,
ts TIMESTAMP NOT NULL DEFAULT CURRENT_TIMESTAMP ON UPDATE CURRENT_TIMESTAMP,
PRIMARY KEY (db, tbl, chunk),
INDEX ts_db_tbl (ts, db, tbl)
) ENGINE=InnoDB DEFAULT CHARSET=utf8;
INSERT INTO test.checksums VALUES('test', 't1', 1,0,'','','100', '', 0,'',0,NOW());