mirror of
https://github.com/percona/percona-toolkit.git
synced 2025-09-10 13:11:32 +00:00
Merged fix-1059732-ptc-hash-functions
This commit is contained in:
@@ -5291,6 +5291,7 @@ sub _get_hash_func {
|
||||
if ( $EVAL_ERROR && $EVAL_ERROR =~ m/failed: (.*?) at \S+ line/ ) {
|
||||
$error .= qq{$func cannot be used because "$1"\n};
|
||||
PTDEBUG && _d($func, 'cannot be used because', $1);
|
||||
next;
|
||||
}
|
||||
PTDEBUG && _d('Chosen hash func:', $result);
|
||||
return $func;
|
||||
|
@@ -274,7 +274,7 @@ sub _get_hash_func {
|
||||
}
|
||||
my ($dbh) = @args{@required_args};
|
||||
my $o = $self->{OptionParser};
|
||||
my @funcs = qw(CRC32 FNV1A_64 FNV_64 MD5 SHA1);
|
||||
my @funcs = qw(CRC32 FNV1A_64 FNV_64 MURMUR_HASH MD5 SHA1);
|
||||
|
||||
if ( my $func = $o->get('function') ) {
|
||||
unshift @funcs, $func;
|
||||
@@ -290,11 +290,12 @@ sub _get_hash_func {
|
||||
if ( $EVAL_ERROR && $EVAL_ERROR =~ m/failed: (.*?) at \S+ line/ ) {
|
||||
$error .= qq{$func cannot be used because "$1"\n};
|
||||
PTDEBUG && _d($func, 'cannot be used because', $1);
|
||||
next;
|
||||
}
|
||||
PTDEBUG && _d('Chosen hash func:', $result);
|
||||
return $func;
|
||||
}
|
||||
die $error || 'No hash functions (CRC32, MD5, etc.) are available';
|
||||
die($error || 'No hash functions (CRC32, MD5, etc.) are available');
|
||||
}
|
||||
|
||||
# Returns how wide/long, in characters, a CRC function is.
|
||||
|
@@ -461,6 +461,22 @@ like(
|
||||
'Dies if all columns are ignored by --columns'
|
||||
);
|
||||
|
||||
# #############################################################################
|
||||
# pt-table-checksum doesn't test all hash functions
|
||||
# https://bugs.launchpad.net/percona-toolkit/+bug/1059732
|
||||
# #############################################################################
|
||||
|
||||
@ARGV = qw(--function FALSEFUNC);
|
||||
$o->get_opts();
|
||||
|
||||
unlike(
|
||||
$c->_get_hash_func(
|
||||
dbh => $dbh,
|
||||
),
|
||||
qr/FALSEFUNC/,
|
||||
"_get_hash_func doesn't return failed functions",
|
||||
);
|
||||
|
||||
# ############################################################################
|
||||
# Done.
|
||||
# ############################################################################
|
||||
|
Reference in New Issue
Block a user