From mboxrd@z Thu Jan 1 00:00:00 1970 Return-Path: X-Spam-Checker-Version: SpamAssassin 3.4.2 (2018-09-13) on dcvr.yhbt.net X-Spam-Level: X-Spam-ASN: X-Spam-Status: No, score=-4.0 required=3.0 tests=ALL_TRUSTED,BAYES_00 shortcircuit=no autolearn=ham autolearn_force=no version=3.4.2 Received: from localhost (dcvr.yhbt.net [127.0.0.1]) by dcvr.yhbt.net (Postfix) with ESMTP id E95BB1F9F4 for ; Tue, 31 Aug 2021 11:21:26 +0000 (UTC) From: Eric Wong To: meta@public-inbox.org Subject: [PATCH 04/10] lei_mail_sync: make rename_folder more robust Date: Tue, 31 Aug 2021 11:21:20 +0000 Message-Id: <20210831112126.13406-5-e@80x24.org> In-Reply-To: <20210831112126.13406-1-e@80x24.org> References: <20210831112126.13406-1-e@80x24.org> MIME-Version: 1.0 Content-Transfer-Encoding: 8bit List-Id: We need to account for past canonicalization errors and deal with cases which violate uniqueness constraints in mail_sync.sqlite3 --- lib/PublicInbox/LeiMailSync.pm | 17 +++++++++++++++-- 1 file changed, 15 insertions(+), 2 deletions(-) diff --git a/lib/PublicInbox/LeiMailSync.pm b/lib/PublicInbox/LeiMailSync.pm index 56468c78..275e0cc4 100644 --- a/lib/PublicInbox/LeiMailSync.pm +++ b/lib/PublicInbox/LeiMailSync.pm @@ -412,11 +412,24 @@ sub forget_folder { # only used for changing canonicalization errors sub rename_folder { my ($self, $old, $new) = @_; - my $fid = delete($self->{fmap}->{$old}) // + my $ofid = delete($self->{fmap}->{$old}) // fid_for($self, $old) // return; - $self->{dbh}->do(<{dbh}->do(<{fmap}->{$new} // fid_for($self, $new); + for my $t (qw(blob2name blob2num)) { + $self->{dbh}->do(<{dbh}->do(<