]> Sergey Matveev's repositories - public-inbox.git/commitdiff
searchidx: reindex clobbers old thread IDs
authorEric Wong <e@80x24.org>
Mon, 6 Feb 2017 21:08:13 +0000 (21:08 +0000)
committerEric Wong <e@80x24.org>
Mon, 6 Feb 2017 21:08:35 +0000 (21:08 +0000)
We cannot always reuse thread IDs since our threading
logic may change as bugs are fixed.

lib/PublicInbox/SearchIdx.pm

index 1142ca7a0f4c83a6aa4103edc79d91bd04944e5a..bc003c6ca88be15b58ae96e28ee0e2cb700fd151 100644 (file)
@@ -157,6 +157,10 @@ sub add_message {
                        # it will also clobber any existing regular message
                        $doc_id = $smsg->{doc_id};
                        $old_tid = $smsg->thread_id;
+
+                       # no need to remove_term for old_tid, we use a new
+                       # doc to replace the old one when reindexing:
+                       $old_tid = undef if $self->{reindex};
                }
                $smsg = PublicInbox::SearchMsg->new($mime);
                my $doc = $smsg->{doc};
@@ -464,7 +468,7 @@ sub _git_log {
 sub _index_sync {
        my ($self, $opts) = @_;
        my $tip = $opts->{ref} || 'HEAD';
-       my $reindex = $opts->{reindex};
+       $self->{reindex} = $opts->{reindex};
        my ($mkey, $last_commit, $lx, $xlog);
        $self->{git}->batch_prepare;
        my $xdb = _xdb_acquire($self);
@@ -474,7 +478,7 @@ sub _index_sync {
                $mkey = 'last_commit';
                $last_commit = $xdb->get_metadata('last_commit');
                $lx = $last_commit;
-               if ($reindex) {
+               if ($self->{reindex}) {
                        $lx = '';
                        $mkey = undef if $last_commit ne '';
                }