diff options
author | mkanat%bugzilla.org <> | 2006-12-30 08:16:22 +0100 |
---|---|---|
committer | mkanat%bugzilla.org <> | 2006-12-30 08:16:22 +0100 |
commit | 0ee02c0279517257feecad7ae787b9c49d8710da (patch) | |
tree | 7745328e17a9c6cb7c0d6860b725ed28d24c7241 | |
parent | c712d457006fbf7c29bd621549db7a732131ecb8 (diff) | |
download | bugzilla-0ee02c0279517257feecad7ae787b9c49d8710da.tar.gz bugzilla-0ee02c0279517257feecad7ae787b9c49d8710da.tar.xz |
Bug 363371: It is hard to determine which row has a failed encoding, with recode.pl --guess
Patch By Max Kanat-Alexander <mkanat@bugzilla.org> r=justdave, a=justdave
-rwxr-xr-x | contrib/recode.pl | 13 |
1 files changed, 11 insertions, 2 deletions
diff --git a/contrib/recode.pl b/contrib/recode.pl index 741c62e2a..49e824f6d 100755 --- a/contrib/recode.pl +++ b/contrib/recode.pl @@ -251,6 +251,13 @@ foreach my $table ($dbh->bz_table_list_real) { my $data = shift @result; my $digest = md5_base64($data); + my @primary_keys = reverse split(',', $pk); + # We copy the array so that we can pop things from it without + # affecting the original. + my @pk_data = @result; + my $pk_line = join (', ', + map { "$_ = " . pop @pk_data } @primary_keys); + my $encoding; if ($switch{'guess'}) { $encoding = do_guess($data); @@ -261,7 +268,8 @@ foreach my $table ($dbh->bz_table_list_real) { && !is_valid_utf8($data)) { my $truncated = trunc($data); - print "Failed to guess: Key: $digest", + print "Row: [$pk_line]\n", + "Failed to guess: Key: $digest", " DATA: $truncated\n"; } @@ -283,7 +291,8 @@ foreach my $table ($dbh->bz_table_list_real) { if ($encoding && !grep($_ eq $encoding, IGNORE_ENCODINGS)) { my $decoded = encode('utf8', decode($encoding, $data)); if ($switch{'dry-run'} && $data ne $decoded) { - print "From: [" . trunc($data) . "] Key: $digest\n", + print "Row: [$pk_line]\n", + "From: [" . trunc($data) . "] Key: $digest\n", "To: [" . trunc($decoded) . "]", " Encoding : $encoding\n"; } |