mirror of
https://github.com/percona/percona-toolkit.git
synced 2025-12-11 02:04:38 +08:00
Updated TableNibbler
This commit is contained in:
@@ -3220,7 +3220,7 @@ sub generate_cmp_where {
|
||||
push @clause, "($val IS NULL OR $quo $type $val)";
|
||||
}
|
||||
elsif ( $type =~ m/>/ ) {
|
||||
push @clause, "(($val IS NULL AND $quo IS NOT NULL) OR ($quo $cmp $val)";
|
||||
push @clause, "($val IS NULL AND $quo IS NOT NULL) OR ($quo $cmp $val)";
|
||||
}
|
||||
else { # If $type =~ m/</ ) {
|
||||
push @clauses, "(($val IS NOT NULL AND $quo IS NULL) OR ($quo $cmp $val))";
|
||||
@@ -3234,7 +3234,7 @@ sub generate_cmp_where {
|
||||
push @clause, ($type =~ m/=/ && $end ? "$quo $type $val" : "$quo $cmp $val");
|
||||
}
|
||||
|
||||
push @clauses, '(' . join(' AND ', @clause) . ')';
|
||||
push @clauses, '(' . join(' AND ', @clause) . ')' if @clause;
|
||||
}
|
||||
my $result = '(' . join(' OR ', @clauses) . ')';
|
||||
my $where = {
|
||||
|
||||
@@ -2999,7 +2999,7 @@ sub generate_asc_stmt {
|
||||
|
||||
die "Index '$index' does not exist in table"
|
||||
unless exists $tbl_struct->{keys}->{$index};
|
||||
PTDEBUG && _d('Will ascend index', $index);
|
||||
PTDEBUG && _d('Will ascend index', $index);
|
||||
|
||||
my @asc_cols = @{$tbl_struct->{keys}->{$index}->{cols}};
|
||||
if ( $args{asc_first} ) {
|
||||
@@ -3102,7 +3102,7 @@ sub generate_cmp_where {
|
||||
push @clause, "($val IS NULL OR $quo $type $val)";
|
||||
}
|
||||
elsif ( $type =~ m/>/ ) {
|
||||
push @clause, "(($val IS NULL AND $quo IS NOT NULL) OR ($quo $cmp $val)";
|
||||
push @clause, "($val IS NULL AND $quo IS NOT NULL) OR ($quo $cmp $val)";
|
||||
}
|
||||
else { # If $type =~ m/</ ) {
|
||||
push @clauses, "(($val IS NOT NULL AND $quo IS NULL) OR ($quo $cmp $val))";
|
||||
@@ -3116,7 +3116,7 @@ sub generate_cmp_where {
|
||||
push @clause, ($type =~ m/=/ && $end ? "$quo $type $val" : "$quo $cmp $val");
|
||||
}
|
||||
|
||||
push @clauses, '(' . join(' AND ', @clause) . ')';
|
||||
push @clauses, '(' . join(' AND ', @clause) . ')' if @clause;
|
||||
}
|
||||
my $result = '(' . join(' OR ', @clauses) . ')';
|
||||
my $where = {
|
||||
|
||||
@@ -4872,7 +4872,7 @@ sub generate_asc_stmt {
|
||||
|
||||
die "Index '$index' does not exist in table"
|
||||
unless exists $tbl_struct->{keys}->{$index};
|
||||
PTDEBUG && _d('Will ascend index', $index);
|
||||
PTDEBUG && _d('Will ascend index', $index);
|
||||
|
||||
my @asc_cols = @{$tbl_struct->{keys}->{$index}->{cols}};
|
||||
if ( $args{asc_first} ) {
|
||||
@@ -4975,7 +4975,7 @@ sub generate_cmp_where {
|
||||
push @clause, "($val IS NULL OR $quo $type $val)";
|
||||
}
|
||||
elsif ( $type =~ m/>/ ) {
|
||||
push @clause, "(($val IS NULL AND $quo IS NOT NULL) OR ($quo $cmp $val)";
|
||||
push @clause, "($val IS NULL AND $quo IS NOT NULL) OR ($quo $cmp $val)";
|
||||
}
|
||||
else { # If $type =~ m/</ ) {
|
||||
push @clauses, "(($val IS NOT NULL AND $quo IS NULL) OR ($quo $cmp $val))";
|
||||
@@ -4989,7 +4989,7 @@ sub generate_cmp_where {
|
||||
push @clause, ($type =~ m/=/ && $end ? "$quo $type $val" : "$quo $cmp $val");
|
||||
}
|
||||
|
||||
push @clauses, '(' . join(' AND ', @clause) . ')';
|
||||
push @clauses, '(' . join(' AND ', @clause) . ')' if @clause;
|
||||
}
|
||||
my $result = '(' . join(' OR ', @clauses) . ')';
|
||||
my $where = {
|
||||
|
||||
@@ -6505,7 +6505,7 @@ sub generate_cmp_where {
|
||||
push @clause, "($val IS NULL OR $quo $type $val)";
|
||||
}
|
||||
elsif ( $type =~ m/>/ ) {
|
||||
push @clause, "(($val IS NULL AND $quo IS NOT NULL) OR ($quo $cmp $val)";
|
||||
push @clause, "($val IS NULL AND $quo IS NOT NULL) OR ($quo $cmp $val)";
|
||||
}
|
||||
else { # If $type =~ m/</ ) {
|
||||
push @clauses, "(($val IS NOT NULL AND $quo IS NULL) OR ($quo $cmp $val))";
|
||||
@@ -6519,7 +6519,7 @@ sub generate_cmp_where {
|
||||
push @clause, ($type =~ m/=/ && $end ? "$quo $type $val" : "$quo $cmp $val");
|
||||
}
|
||||
|
||||
push @clauses, '(' . join(' AND ', @clause) . ')';
|
||||
push @clauses, '(' . join(' AND ', @clause) . ')' if @clause;
|
||||
}
|
||||
my $result = '(' . join(' OR ', @clauses) . ')';
|
||||
my $where = {
|
||||
|
||||
@@ -197,7 +197,7 @@ sub generate_cmp_where {
|
||||
push @clause, "($val IS NULL OR $quo $type $val)";
|
||||
}
|
||||
elsif ( $type =~ m/>/ ) {
|
||||
push @clause, "(($val IS NULL AND $quo IS NOT NULL) OR ($quo $cmp $val)";
|
||||
push @clause, "($val IS NULL AND $quo IS NOT NULL) OR ($quo $cmp $val)";
|
||||
}
|
||||
else { # If $type =~ m/</ ) {
|
||||
push @clauses, "(($val IS NOT NULL AND $quo IS NULL) OR ($quo $cmp $val))";
|
||||
@@ -212,7 +212,7 @@ sub generate_cmp_where {
|
||||
}
|
||||
|
||||
# Add the clause to the larger WHERE clause.
|
||||
push @clauses, '(' . join(' AND ', @clause) . ')';
|
||||
push @clauses, '(' . join(' AND ', @clause) . ')' if @clause;
|
||||
}
|
||||
my $result = '(' . join(' OR ', @clauses) . ')';
|
||||
my $where = {
|
||||
|
||||
@@ -6,9 +6,9 @@ Starting checksum ...
|
||||
|
||||
REPLACE INTO `percona`.`checksums` (db, tbl, chunk, chunk_index, lower_boundary, upper_boundary, this_cnt, this_crc) SELECT ?, ?, ?, ?, ?, ?, COUNT(*) AS cnt, COALESCE(LOWER(CONV(BIT_XOR(CAST(CRC32(CONCAT_WS('#', convert(`c` using utf8mb4), CONCAT(ISNULL(`c`)))) AS UNSIGNED)), 10, 16)), 0) AS crc FROM `osc`.`t2` FORCE INDEX(`c`) WHERE (((? IS NULL OR `c` >= ?))) AND (((? IS NULL OR `c` <= ?))) /*checksum chunk*/
|
||||
|
||||
REPLACE INTO `percona`.`checksums` (db, tbl, chunk, chunk_index, lower_boundary, upper_boundary, this_cnt, this_crc) SELECT ?, ?, ?, ?, ?, ?, COUNT(*), '0' FROM `osc`.`t2` FORCE INDEX(`c`) WHERE ((((? IS NOT NULL AND `c` IS NULL) OR (`c` < ?)))) ORDER BY `c` /*past lower chunk*/
|
||||
REPLACE INTO `percona`.`checksums` (db, tbl, chunk, chunk_index, lower_boundary, upper_boundary, this_cnt, this_crc) SELECT ?, ?, ?, ?, ?, ?, COUNT(*), '0' FROM `osc`.`t2` FORCE INDEX(`c`) WHERE (((? IS NOT NULL AND `c` IS NULL) OR (`c` < ?))) ORDER BY `c` /*past lower chunk*/
|
||||
|
||||
REPLACE INTO `percona`.`checksums` (db, tbl, chunk, chunk_index, lower_boundary, upper_boundary, this_cnt, this_crc) SELECT ?, ?, ?, ?, ?, ?, COUNT(*), '0' FROM `osc`.`t2` FORCE INDEX(`c`) WHERE ((((? IS NULL AND `c` IS NOT NULL) OR (`c` > ?)))) ORDER BY `c` /*past upper chunk*/
|
||||
REPLACE INTO `percona`.`checksums` (db, tbl, chunk, chunk_index, lower_boundary, upper_boundary, this_cnt, this_crc) SELECT ?, ?, ?, ?, ?, ?, COUNT(*), '0' FROM `osc`.`t2` FORCE INDEX(`c`) WHERE (((? IS NULL AND `c` IS NOT NULL) OR (`c` > ?))) ORDER BY `c` /*past upper chunk*/
|
||||
|
||||
SELECT /*!40001 SQL_NO_CACHE */ `c`, `c` FROM `osc`.`t2` FORCE INDEX(`c`) WHERE (((? IS NULL OR `c` >= ?))) ORDER BY `c` LIMIT ?, 2 /*next chunk boundary*/
|
||||
|
||||
|
||||
Reference in New Issue
Block a user