diff --git a/bin/pt-config-diff b/bin/pt-config-diff index d2aa26aa..bb12c274 100755 --- a/bin/pt-config-diff +++ b/bin/pt-config-diff @@ -3511,12 +3511,12 @@ use English qw(-no_match_vars); use constant PTDEBUG => $ENV{PTDEBUG} || 0; my %alt_val_for = ( - ON => 1, - YES => 1, - TRUE => 1, - OFF => 0, - NO => 0, - FALSE => 0, + ON => 1, + YES => 1, + TRUE => 1, + OFF => 0, + NO => 0, + FALSE => 0, ); sub new { @@ -3633,7 +3633,8 @@ sub diff { next CONFIG if $val0 == $valN; } else { - next CONFIG if $ignore_case + + next CONFIG if $ignore_case ? lc($val0) eq lc($valN) : $val0 eq $valN; @@ -3695,7 +3696,7 @@ sub _normalize_value { my ($val, $is_dir, $base_path) = @args{qw(value is_directory base_path)}; $val = defined $val ? $val : ''; - $val = $alt_val_for{$val} if exists $alt_val_for{$val}; + $val = $alt_val_for{lc($val)} if exists $alt_val_for{lc($val)}; if ( $val ) { if ( $is_dir ) { diff --git a/lib/MySQLConfigComparer.pm b/lib/MySQLConfigComparer.pm index a09aefd7..f430a0d3 100644 --- a/lib/MySQLConfigComparer.pm +++ b/lib/MySQLConfigComparer.pm @@ -31,12 +31,12 @@ use constant PTDEBUG => $ENV{PTDEBUG} || 0; # in SHOW VARS as var=TRUE. I.e. there's several synonyms for basic # true (1) and false (0), so we normalize them to make comparisons easier. my %alt_val_for = ( - ON => 1, - YES => 1, - TRUE => 1, - OFF => 0, - NO => 0, - FALSE => 0, + ON => 1, + YES => 1, + TRUE => 1, + OFF => 0, + NO => 0, + FALSE => 0, ); # Sub: new @@ -202,7 +202,8 @@ sub diff { next CONFIG if $val0 == $valN; } else { - next CONFIG if $ignore_case + + next CONFIG if $ignore_case ? lc($val0) eq lc($valN) : $val0 eq $valN; @@ -293,7 +294,7 @@ sub _normalize_value { my ($val, $is_dir, $base_path) = @args{qw(value is_directory base_path)}; $val = defined $val ? $val : ''; - $val = $alt_val_for{$val} if exists $alt_val_for{$val}; + $val = $alt_val_for{lc($val)} if exists $alt_val_for{lc($val)}; if ( $val ) { if ( $is_dir ) { diff --git a/t/pt-config-diff/samples/cnf1 b/t/pt-config-diff/samples/cnf1 new file mode 100644 index 00000000..1dd5f93d --- /dev/null +++ b/t/pt-config-diff/samples/cnf1 @@ -0,0 +1,9 @@ +[mysqld] +log_bin=1 +gtid_mode=on +read_only=off +autocommit=yes +autocommit=no +binlog_format=mixed +skip_name_resolve=true +skip_name_resolve=false diff --git a/t/pt-config-diff/samples/cnf2 b/t/pt-config-diff/samples/cnf2 new file mode 100644 index 00000000..b711b3a7 --- /dev/null +++ b/t/pt-config-diff/samples/cnf2 @@ -0,0 +1,9 @@ +[mysqld] +LOGBIN=1 +gtid_mode=ON +read_only=OFF +autocommit=YES +autocommit=NO +binlog_format=MIXED +skip_name_resolve=TRUE +skip_name_resolve=FALSE