]> Sergey Matveev's repositories - public-inbox.git/blobdiff - lib/PublicInbox/Search.pm
mbox: disable "&t" on existing Xapian until full reindex
[public-inbox.git] / lib / PublicInbox / Search.pm
index bc820b648a46205d36f9fc8567e4e687483169de..01bbe73de2090b4bdbd539abb109edc33bb5fece 100644 (file)
@@ -311,6 +311,12 @@ sub _do_enquire {
        retry_reopen($self, \&_enquire_once, [ $self, $query, $opts ]);
 }
 
+# returns true if all docs have the THREADID value
+sub has_threadid ($) {
+       my ($self) = @_;
+       (xdb($self)->get_metadata('has_threadid') // '') eq '1';
+}
+
 sub _enquire_once { # retry_reopen callback
        my ($self, $query, $opts) = @{$_[0]};
        my $xdb = xdb($self);
@@ -328,7 +334,9 @@ sub _enquire_once { # retry_reopen callback
        }
 
        # `mairix -t / --threads' or JMAP collapseThreads
-       $enquire->set_collapse_key(THREADID) if $opts->{thread};
+       if ($opts->{thread} && has_threadid($self)) {
+               $enquire->set_collapse_key(THREADID);
+       }
 
        my $offset = $opts->{offset} || 0;
        my $limit = $opts->{limit} || 50;