~percona-toolkit-dev/percona-toolkit/pt-query-advisor-docs-2

« back to all changes in this revision

Viewing changes to bin/pt-fk-error-logger

Merge fix-password-comma-bug-886077.

Show diffs side-by-side

added added

removed removed

Lines of Context:
1130
1130
$Data::Dumper::Indent    = 0;
1131
1131
$Data::Dumper::Quotekeys = 0;
1132
1132
 
 
1133
my $dsn_sep = qr/(?<!\\),/;
 
1134
 
1133
1135
eval {
1134
1136
   require DBI;
1135
1137
};
1184
1186
   my %final_props;
1185
1187
   my $opts = $self->{opts};
1186
1188
 
1187
 
   foreach my $dsn_part ( split(/,/, $dsn) ) {
 
1189
   foreach my $dsn_part ( split($dsn_sep, $dsn) ) {
 
1190
      $dsn_part =~ s/\\,/,/g;
1188
1191
      if ( my ($prop_key, $prop_val) = $dsn_part =~  m/^(.)=(.*)$/ ) {
1189
1192
         $given_props{$prop_key} = $prop_val;
1190
1193
      }
1243
1246
sub as_string {
1244
1247
   my ( $self, $dsn, $props ) = @_;
1245
1248
   return $dsn unless ref $dsn;
1246
 
   my %allowed = $props ? map { $_=>1 } @$props : ();
 
1249
   my @keys = $props ? @$props : sort keys %$dsn;
1247
1250
   return join(',',
1248
 
      map  { "$_=" . ($_ eq 'p' ? '...' : $dsn->{$_})  }
1249
 
      grep { defined $dsn->{$_} && $self->{opts}->{$_} }
1250
 
      grep { !$props || $allowed{$_}                   }
1251
 
      sort keys %$dsn );
 
1251
      map  { "$_=" . ($_ eq 'p' ? '...' : $dsn->{$_}) }
 
1252
      grep {
 
1253
         exists $self->{opts}->{$_}
 
1254
         && exists $dsn->{$_}
 
1255
         && defined $dsn->{$_}
 
1256
      } @keys);
1252
1257
}
1253
1258
 
1254
1259
sub usage {