Done
Details
Assignee
UnassignedUnassignedReporter
lpjirasynclpjirasync(Deactivated)Priority
High
Details
Details
Assignee
Unassigned
UnassignedReporter
lpjirasync
lpjirasync(Deactivated)Priority
Smart Checklist
Smart Checklist
Smart Checklist
Created January 24, 2018 at 2:26 PM
Updated January 24, 2018 at 2:26 PM
Resolved January 24, 2018 at 2:26 PM
**Reported in Launchpad by Daniel Nichter last update 02-08-2013 19:14:12
If there are only non-unique index, pt-table-checksum should choose the one with the highest cardinality, but it doesn't. In NIbbleIterator.pm:
if ( !$best_index && @possible_indexes ) {
PTDEBUG && _d('No PRIMARY or unique indexes;',
'will use index with highest cardinality');
foreach my $index ( @possible_indexes ) {
$indexes->{$index}->{cardinality} = _get_index_cardinality(
%args,
index => $index,
);
}
@possible_indexes = sort {
Prefer the index with the highest cardinality.
my $cmp
= $indexes->{$b}>{cardinality} <=> $indexes>{$b}->{cardinality};
if ( $cmp == 0 ) {
Indexes have the same cardinality; prefer the one with
more columns.
$cmp = scalar @{$indexes->{$b}->{cols}}
<=> scalar @{$indexes->{$a}->{cols}};
}
$cmp;
} @possible_indexes;
$best_index = $possible_indexes[0];
}
We need to test that block.