Files
percona-toolkit/t/pt-table-sync/diff_where.t
2012-01-05 11:46:38 -07:00

64 lines
1.6 KiB
Perl

#!/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 tests => 1;
use PerconaTest;
use Sandbox;
require "$trunk/bin/pt-table-sync";
my $q = new Quoter();
my $tp = new TableParser(Quoter => $q);
my $tn = new TableNibbler(Quoter => $q, TableParser => $tp);
my $sample = "t/pt-table-sync/samples";
sub test_diff_where {
my (%args) = @_;
my $ddl = load_file($args{file});
my $tbl_struct = $tp->parse($ddl);
my $where = pt_table_sync::diff_where(
tbl_struct => $tbl_struct,
diff => $args{diff},
TableNibbler => $tn,
);
is(
$where,
$args{where},
$args{name},
);
}
test_diff_where(
name => "Single int col",
file => "$sample/simple-tbl-ddl.sql",
diff => {
chunk => '3',
chunk_index => 'PRIMARY',
cnt_diff => '-1',
crc_diff => '1',
lower_boundary => '7',
master_cnt => '3',
master_crc => '1ddd6c71',
table => 'test.mt1',
this_cnt => '2',
this_crc => '4a57d814',
upper_boundary => '9'
},
where => "((`id` >= '7')) AND ((`id` <= '9'))",
);
# #############################################################################
# Done.
# #############################################################################
exit;