From: Eric Wong (Contractor, The Linux Foundation) Date: Mon, 26 Feb 2018 23:42:14 +0000 (+0000) Subject: search: use different Enquire object for skeleton queries X-Git-Tag: v1.1.0-pre1~211 X-Git-Url: http://www.git.stargrave.org/?a=commitdiff_plain;h=5abd4b9a1013f5cf3859dbd6e02044757fb98489;p=public-inbox.git search: use different Enquire object for skeleton queries A different Xapian DB requires the use of a different Enquire object. This is necessary for get_thread and thread skeleton to work in the PSGI UI. --- diff --git a/lib/PublicInbox/Search.pm b/lib/PublicInbox/Search.pm index 3a27512b..0f102dac 100644 --- a/lib/PublicInbox/Search.pm +++ b/lib/PublicInbox/Search.pm @@ -207,7 +207,7 @@ sub get_thread { # always sort threads by timestamp, this makes life easier # for the threading algorithm (in SearchThread.pm) $opts->{asc} = 1; - + $opts->{enquire} = enquire_skel($self); _do_enquire($self, $qtid, $opts); } @@ -235,7 +235,7 @@ sub _do_enquire { sub _enquire_once { my ($self, $query, $opts) = @_; - my $enquire = $self->enquire; + my $enquire = $opts->{enquire} || enquire($self); if (defined $query) { $query = Search::Xapian::Query->new(OP_AND,$query,$mail_query); } else { @@ -423,6 +423,15 @@ sub enquire { $self->{enquire} ||= Search::Xapian::Enquire->new($self->{xdb}); } +sub enquire_skel { + my ($self) = @_; + if (my $skel = $self->{skel}) { + $self->{enquire_skel} ||= Search::Xapian::Enquire->new($skel); + } else { + enquire($self); + } +} + sub help { my ($self) = @_; $self->qp; # parse altids