From: Eric Wong <e@80x24.org>
Date: Fri, 1 Jan 2021 05:47:47 +0000 (-1200)
Subject: search: do not use $QP_FLAGS until Xapian is loaded
X-Git-Tag: v1.7.0~1431
X-Git-Url: http://www.git.stargrave.org/?a=commitdiff_plain;h=86851a5a264bc0e14e925982b09337ab32e20795;p=public-inbox.git

search: do not use $QP_FLAGS until Xapian is loaded

The default $QP_FLAGS won't be set until after Xapian is
loaded, duh...

This fixes t/imapd.t with TEST_RUN_MODE=0
---

diff --git a/lib/PublicInbox/Search.pm b/lib/PublicInbox/Search.pm
index 547b6fbe..0bdf6fc6 100644
--- a/lib/PublicInbox/Search.pm
+++ b/lib/PublicInbox/Search.pm
@@ -196,6 +196,7 @@ sub xdb_shards_flat ($) {
 	my $xpfx = $self->{xpfx};
 	my (@xdb, $slow_phrase);
 	load_xapian();
+	$self->{qp_flags} //= $QP_FLAGS;
 	if ($xpfx =~ m/xapian${\SCHEMA_VERSION}\z/) {
 		@xdb = ($X{Database}->new($xpfx));
 		$self->{qp_flags} |= FLAG_PHRASE() if !-f "$xpfx/iamchert";
@@ -232,7 +233,6 @@ sub mset_to_artnums {
 sub xdb ($) {
 	my ($self) = @_;
 	$self->{xdb} //= do {
-		$self->{qp_flags} //= $QP_FLAGS;
 		my @xdb = $self->xdb_shards_flat or return;
 		$self->{nshard} = scalar(@xdb);
 		my $xdb = shift @xdb;