From: Eric Wong <e@80x24.org> To: meta@public-inbox.org Subject: [PATCH 04/11] search: remove special case for blank query Date: Wed, 2 Sep 2020 11:04:14 +0000 Message-ID: <20200902110421.30905-5-e@80x24.org> (raw) In-Reply-To: <20200902110421.30905-1-e@80x24.org> The special case (if any) belongs at a higher-level, and this is another step towards removing {over_ro}-dependence in our Search object. --- lib/PublicInbox/Search.pm | 13 ++++--------- t/v2mda.t | 6 +++--- t/watch_maildir_v2.t | 19 +++++++++---------- 3 files changed, 16 insertions(+), 22 deletions(-) diff --git a/lib/PublicInbox/Search.pm b/lib/PublicInbox/Search.pm index b739faf1..546884a9 100644 --- a/lib/PublicInbox/Search.pm +++ b/lib/PublicInbox/Search.pm @@ -282,15 +282,10 @@ sub reopen { sub query { my ($self, $query_string, $opts) = @_; $opts ||= {}; - if ($query_string eq '' && !$opts->{mset}) { - $self->{over_ro}->recent($opts); - } else { - my $qp = $self->{qp} //= qparse_new($self); - my $qp_flags = $self->{qp_flags}; - my $query = $qp->parse_query($query_string, $qp_flags); - $opts->{relevance} = 1 unless exists $opts->{relevance}; - _do_enquire($self, $query, $opts); - } + my $qp = $self->{qp} //= qparse_new($self); + my $query = $qp->parse_query($query_string, $self->{qp_flags}); + $opts->{relevance} = 1 unless exists $opts->{relevance}; + _do_enquire($self, $query, $opts); } sub retry_reopen { diff --git a/t/v2mda.t b/t/v2mda.t index 7666eb2d..2262c3ad 100644 --- a/t/v2mda.t +++ b/t/v2mda.t @@ -50,7 +50,7 @@ $ibx = PublicInbox::Inbox->new($ibx); if ($V == 1) { ok(run_script([ '-index', "$tmpdir/inbox" ]), 'v1 indexed'); } -my $msgs = $ibx->search->query(''); +my $msgs = $ibx->over->recent; is(scalar(@$msgs), 1, 'only got one message'); my $eml = $ibx->smsg_eml($msgs->[0]); is($eml->as_string, $mime->as_string, 'injected message'); @@ -64,7 +64,7 @@ is($eml->as_string, $mime->as_string, 'injected message'); ok(run_script(['-mda'], undef, $rdr), 'mda did not die on "spam"'); @new = glob("$faildir/new/*"); is(scalar(@new), 1, 'got a message in faildir'); - $msgs = $ibx->search->reopen->query(''); + $msgs = $ibx->over->recent; is(scalar(@$msgs), 1, 'no new message'); my $config = "$ENV{PI_DIR}/config"; @@ -76,7 +76,7 @@ is($eml->as_string, $mime->as_string, 'injected message'); ok(run_script(['-mda'], undef, $rdr), 'mda did not die'); my @again = glob("$faildir/new/*"); is_deeply(\@again, \@new, 'no new message in faildir'); - $msgs = $ibx->search->reopen->query(''); + $msgs = $ibx->over->recent; is(scalar(@$msgs), 2, 'new message added OK'); } diff --git a/t/watch_maildir_v2.t b/t/watch_maildir_v2.t index ca1cf965..c2c096ae 100644 --- a/t/watch_maildir_v2.t +++ b/t/watch_maildir_v2.t @@ -47,10 +47,9 @@ EOF my $config = PublicInbox::Config->new(\$orig); my $ibx = $config->lookup_name('test'); ok($ibx, 'found inbox by name'); -my $srch = $ibx->search; PublicInbox::Watch->new($config)->scan('full'); -my $total = scalar @{$srch->reopen->query('')}; +my $total = scalar @{$ibx->over->recent}; is($total, 1, 'got one revision'); # my $git = PublicInbox::Git->new("$inboxdir/git/0.git"); @@ -70,7 +69,7 @@ my $write_spam = sub { $write_spam->(); is(unlink(glob("$maildir/new/*")), 1, 'unlinked old spam'); PublicInbox::Watch->new($config)->scan('full'); -is_deeply($srch->reopen->query(''), [], 'deleted file'); +is_deeply($ibx->over->recent, [], 'deleted file'); is(unlink(glob("$spamdir/cur/*")), 1, 'unlinked trained spam'); # check with scrubbing @@ -81,7 +80,7 @@ the body of a message to majordomo\@vger.kernel.org More majordomo info at http://vger.kernel.org/majordomo-info.html\n); PublicInbox::Emergency->new($maildir)->prepare(\$msg); PublicInbox::Watch->new($config)->scan('full'); - my $msgs = $srch->reopen->query(''); + my $msgs = $ibx->over->recent; is(scalar(@$msgs), 1, 'got one file back'); my $mref = $ibx->msg_by_smsg($msgs->[0]); like($$mref, qr/something\n\z/s, 'message scrubbed on import'); @@ -89,7 +88,7 @@ More majordomo info at http://vger.kernel.org/majordomo-info.html\n); is(unlink(glob("$maildir/new/*")), 1, 'unlinked spam'); $write_spam->(); PublicInbox::Watch->new($config)->scan('full'); - $msgs = $srch->reopen->query(''); + $msgs = $ibx->over->recent; is(scalar(@$msgs), 0, 'inbox is empty again'); is(unlink(glob("$spamdir/cur/*")), 1, 'unlinked trained spam'); } @@ -105,7 +104,7 @@ More majordomo info at http://vger.kernel.org/majordomo-info.html\n); local $SIG{__WARN__} = sub {}; # quiet spam check warning PublicInbox::Watch->new($config)->scan('full'); } - my $msgs = $srch->reopen->query(''); + my $msgs = $ibx->over->recent; is(scalar(@$msgs), 0, 'inbox is still empty'); is(unlink(glob("$maildir/new/*")), 1); } @@ -118,7 +117,7 @@ More majordomo info at http://vger.kernel.org/majordomo-info.html\n); PublicInbox::Emergency->new($maildir)->prepare(\$msg); $config->{'publicinboxwatch.spamcheck'} = 'spamc'; PublicInbox::Watch->new($config)->scan('full'); - my $msgs = $srch->reopen->query(''); + my $msgs = $ibx->over->recent; is(scalar(@$msgs), 1, 'inbox has one mail after spamc OK-ed a message'); my $mref = $ibx->msg_by_smsg($msgs->[0]); like($$mref, qr/something\n\z/s, 'message scrubbed on import'); @@ -131,10 +130,10 @@ More majordomo info at http://vger.kernel.org/majordomo-info.html\n); $msg = do { local $/; <$fh> }; PublicInbox::Emergency->new($maildir)->prepare(\$msg); PublicInbox::Watch->new($config)->scan('full'); - my $msgs = $srch->reopen->query('dfpost:6e006fd7'); + my $msgs = $ibx->search->reopen->query('dfpost:6e006fd7'); is(scalar(@$msgs), 1, 'diff postimage found'); my $post = $msgs->[0]; - $msgs = $srch->query('dfpre:090d998b6c2c'); + $msgs = $ibx->search->query('dfpre:090d998b6c2c'); is(scalar(@$msgs), 1, 'diff preimage found'); is($post->{blob}, $msgs->[0]->{blob}, 'same message'); } @@ -162,7 +161,7 @@ both EOF PublicInbox::Emergency->new($maildir)->prepare(\$both); PublicInbox::Watch->new($config)->scan('full'); - my $msgs = $srch->reopen->query('m:both@b.com'); + my $msgs = $ibx->search->reopen->query('m:both@b.com'); my $v1 = $config->lookup_name('v1'); my $msg = $v1->git->cat_file($msgs->[0]->{blob}); is($both, $$msg, 'got original message back from v1');
next prev parent reply other threads:[~2020-09-02 11:04 UTC|newest] Thread overview: 12+ messages / expand[flat|nested] mbox.gz Atom feed top 2020-09-02 11:04 [PATCH 00/11] cleanups, mostly indexing related Eric Wong 2020-09-02 11:04 ` [PATCH 01/11] msgmap: note how we use ->created_at Eric Wong 2020-09-02 11:04 ` [PATCH 02/11] disambiguate OverIdx and Over by field name Eric Wong 2020-09-02 11:04 ` [PATCH 03/11] use more idiomatic internal API for ->over access Eric Wong 2020-09-02 11:04 ` Eric Wong [this message] 2020-09-02 11:04 ` [PATCH 05/11] tests: add "use strict" and declare v5.10.1 compatibility Eric Wong 2020-09-02 11:04 ` [PATCH 06/11] search: replace ->query with ->mset Eric Wong 2020-09-02 11:04 ` [PATCH 07/11] search: remove {over_ro} field Eric Wong 2020-09-02 11:04 ` [PATCH 08/11] imap: drop old, pre-Parse::RecDescent search parser Eric Wong 2020-09-02 11:04 ` [PATCH 09/11] wwwaltid: drop unused sqlite3_missing function Eric Wong 2020-09-02 11:04 ` [PATCH 10/11] overidx: document column uses Eric Wong 2020-09-02 11:04 ` [PATCH 11/11] v2writable: reuse read-only shard counting code Eric Wong
Reply instructions: You may reply publicly to this message via plain-text email using any one of the following methods: * Save the following mbox file, import it into your mail client, and reply-to-all from there: mbox Avoid top-posting and favor interleaved quoting: https://en.wikipedia.org/wiki/Posting_style#Interleaved_style List information: http://public-inbox.org/README * Reply using the --to, --cc, and --in-reply-to switches of git-send-email(1): git send-email \ --in-reply-to=20200902110421.30905-5-e@80x24.org \ --to=e@80x24.org \ --cc=meta@public-inbox.org \ /path/to/YOUR_REPLY https://kernel.org/pub/software/scm/git/docs/git-send-email.html * If your mail client supports setting the In-Reply-To header via mailto: links, try the mailto: link
user/dev discussion of public-inbox itself This inbox may be cloned and mirrored by anyone: git clone --mirror http://public-inbox.org/meta git clone --mirror http://czquwvybam4bgbro.onion/meta git clone --mirror http://hjrcffqmbrq6wope.onion/meta git clone --mirror http://ou63pmih66umazou.onion/meta # If you have public-inbox 1.1+ installed, you may # initialize and index your mirror using the following commands: public-inbox-init -V1 meta meta/ http://public-inbox.org/meta \ meta@public-inbox.org public-inbox-index meta Example config snippet for mirrors. Newsgroups are available over NNTP: nntp://news.public-inbox.org/inbox.comp.mail.public-inbox.meta nntp://ou63pmih66umazou.onion/inbox.comp.mail.public-inbox.meta nntp://czquwvybam4bgbro.onion/inbox.comp.mail.public-inbox.meta nntp://hjrcffqmbrq6wope.onion/inbox.comp.mail.public-inbox.meta nntp://news.gmane.io/gmane.mail.public-inbox.general note: .onion URLs require Tor: https://www.torproject.org/ code repositories for the project(s) associated with this inbox: https://80x24.org/public-inbox.git AGPL code for this site: git clone https://public-inbox.org/public-inbox.git