mirror of
https://github.com/percona/percona-toolkit.git
synced 2025-09-11 13:40:07 +00:00
Update TableChunker in pt-table-checksum. Include COUNT in test samples.
This commit is contained in:
@@ -2863,7 +2863,7 @@ sub _chunk_numeric {
|
|||||||
|
|
||||||
sub _chunk_char {
|
sub _chunk_char {
|
||||||
my ( $self, %args ) = @_;
|
my ( $self, %args ) = @_;
|
||||||
my @required_args = qw(dbh db tbl tbl_struct chunk_col rows_in_range chunk_size);
|
my @required_args = qw(dbh db tbl tbl_struct chunk_col min max rows_in_range chunk_size);
|
||||||
foreach my $arg ( @required_args ) {
|
foreach my $arg ( @required_args ) {
|
||||||
die "I need a $arg argument" unless defined $args{$arg};
|
die "I need a $arg argument" unless defined $args{$arg};
|
||||||
}
|
}
|
||||||
@@ -2874,12 +2874,7 @@ sub _chunk_char {
|
|||||||
my $row;
|
my $row;
|
||||||
my $sql;
|
my $sql;
|
||||||
|
|
||||||
$sql = "SELECT MIN($chunk_col), MAX($chunk_col) FROM $db_tbl "
|
my ($min_col, $max_col) = @{args}{qw(min max)};
|
||||||
. "ORDER BY `$chunk_col`";
|
|
||||||
MKDEBUG && _d($dbh, $sql);
|
|
||||||
$row = $dbh->selectrow_arrayref($sql);
|
|
||||||
my ($min_col, $max_col) = ($row->[0], $row->[1]);
|
|
||||||
|
|
||||||
$sql = "SELECT ORD(?) AS min_col_ord, ORD(?) AS max_col_ord";
|
$sql = "SELECT ORD(?) AS min_col_ord, ORD(?) AS max_col_ord";
|
||||||
MKDEBUG && _d($dbh, $sql);
|
MKDEBUG && _d($dbh, $sql);
|
||||||
my $ord_sth = $dbh->prepare($sql); # avoid quoting issues
|
my $ord_sth = $dbh->prepare($sql); # avoid quoting issues
|
||||||
@@ -2950,7 +2945,9 @@ sub _chunk_char {
|
|||||||
MKDEBUG && _d("Base", $base, "chars:", @chars);
|
MKDEBUG && _d("Base", $base, "chars:", @chars);
|
||||||
|
|
||||||
|
|
||||||
$sql = "SELECT MAX(LENGTH($chunk_col)) FROM $db_tbl ORDER BY `$chunk_col`";
|
$sql = "SELECT MAX(LENGTH($chunk_col)) FROM $db_tbl "
|
||||||
|
. ($args{where} ? "WHERE $args{where} " : "")
|
||||||
|
. "ORDER BY `$chunk_col`";
|
||||||
MKDEBUG && _d($dbh, $sql);
|
MKDEBUG && _d($dbh, $sql);
|
||||||
$row = $dbh->selectrow_arrayref($sql);
|
$row = $dbh->selectrow_arrayref($sql);
|
||||||
my $max_col_len = $row->[0];
|
my $max_col_len = $row->[0];
|
||||||
|
@@ -132,7 +132,7 @@ ok(
|
|||||||
qw(--no-zero-chunk --chunk-size 5), '--where', "date = '2011-03-03'");
|
qw(--no-zero-chunk --chunk-size 5), '--where', "date = '2011-03-03'");
|
||||||
},
|
},
|
||||||
"t/pt-table-checksum/samples/where01.out",
|
"t/pt-table-checksum/samples/where01.out",
|
||||||
trf => "awk '{print \$1 \" \" \$2 \" \" \$3}'",
|
trf => "awk '{print \$1 \" \" \$2 \" \" \$3 \" \" \$6}'",
|
||||||
),
|
),
|
||||||
"--where affects int range stats (bug 821673)"
|
"--where affects int range stats (bug 821673)"
|
||||||
);
|
);
|
||||||
@@ -150,7 +150,7 @@ ok(
|
|||||||
qw(--no-zero-chunk --chunk-size 5), '--where', "date = '2011-03-03'");
|
qw(--no-zero-chunk --chunk-size 5), '--where', "date = '2011-03-03'");
|
||||||
},
|
},
|
||||||
"t/pt-table-checksum/samples/where02.out",
|
"t/pt-table-checksum/samples/where02.out",
|
||||||
trf => "awk '{print \$1 \" \" \$2 \" \" \$3}'",
|
trf => "awk '{print \$1 \" \" \$2 \" \" \$3 \" \" \$6}'",
|
||||||
),
|
),
|
||||||
"--where affects char range stats (bug 821673)"
|
"--where affects char range stats (bug 821673)"
|
||||||
);
|
);
|
||||||
|
@@ -1,3 +1,3 @@
|
|||||||
DATABASE TABLE CHUNK
|
DATABASE TABLE CHUNK COUNT
|
||||||
test checksum_test 0
|
test checksum_test 0 2
|
||||||
test checksum_test 1
|
test checksum_test 1 3
|
||||||
|
@@ -0,0 +1,4 @@
|
|||||||
|
DATABASE TABLE CHUNK COUNT
|
||||||
|
test checksum_test 0 1
|
||||||
|
test checksum_test 1 4
|
||||||
|
test checksum_test 2 0
|
||||||
|
Reference in New Issue
Block a user