lib/PublicInbox/Mbox.pm | 10 ++++------ lib/PublicInbox/Msgmap.pm | 11 ----------- lib/PublicInbox/NNTP.pm | 2 +- lib/PublicInbox/Over.pm | 11 +++++++++++ t/extindex-psgi.t | 3 +++ diff --git a/lib/PublicInbox/Mbox.pm b/lib/PublicInbox/Mbox.pm index 844099aa60b99c5ab04a942ba61f9b027b22b5e6..f72af26baeadc9602bbccbd75a6e2395bcf7bdae 100644 --- a/lib/PublicInbox/Mbox.pm +++ b/lib/PublicInbox/Mbox.pm @@ -161,19 +161,17 @@ while ((my $num = shift @$ids)) { my $smsg = $ctx->{over}->get_art($num) or next; return $smsg; } - $ctx->{ids} = $ids = $ctx->{mm}->ids_after(\($ctx->{prev})); + $ctx->{ids} = $ids = $ctx->{over}->ids_after(\($ctx->{prev})); } while (@$ids); } sub mbox_all_ids { my ($ctx) = @_; - my $ibx = $ctx->{ibx}; my $prev = 0; - my $mm = $ctx->{mm} = $ibx->mm; - my $ids = $mm->ids_after(\$prev) or return + $ctx->{over} = $ctx->{ibx}->over or + return PublicInbox::WWW::need($ctx, 'Overview'); + my $ids = $ctx->{over}->ids_after(\$prev) or return [404, [qw(Content-Type text/plain)], ["No results found\n"]]; - $ctx->{over} = $ibx->over or - return PublicInbox::WWW::need($ctx, 'Overview'); $ctx->{ids} = $ids; $ctx->{prev} = $prev; require PublicInbox::MboxGz; diff --git a/lib/PublicInbox/Msgmap.pm b/lib/PublicInbox/Msgmap.pm index 16a9a476407f7ff30b722c7501d85a76d6f5c842..3887a9e6b2c2264a468e9f7903ecf1e68af14b47 100644 --- a/lib/PublicInbox/Msgmap.pm +++ b/lib/PublicInbox/Msgmap.pm @@ -189,17 +189,6 @@ ) } -# used by NNTP.pm -sub ids_after { - my ($self, $num) = @_; - my $ids = $self->{dbh}->selectcol_arrayref(<<'', undef, $$num); -SELECT num FROM msgmap WHERE num > ? -ORDER BY num ASC LIMIT 1000 - - $$num = $ids->[-1] if @$ids; - $ids; -} - sub msg_range { my ($self, $beg, $end, $cols) = @_; $cols //= 'num,mid'; diff --git a/lib/PublicInbox/NNTP.pm b/lib/PublicInbox/NNTP.pm index aea04c05464b28b30d5e8d7a713e5da0446c9282..ea9ce18358f984e546d86b501defde569d8ac4ec 100644 --- a/lib/PublicInbox/NNTP.pm +++ b/lib/PublicInbox/NNTP.pm @@ -210,7 +210,7 @@ } sub listgroup_all_i { my ($self, $num) = @_; - my $ary = $self->{ibx}->mm(1)->ids_after($num); + my $ary = $self->{ibx}->over(1)->ids_after($num); scalar(@$ary) or return; more($self, join("\r\n", @$ary)); 1; diff --git a/lib/PublicInbox/Over.pm b/lib/PublicInbox/Over.pm index 58fdea0e197ce4c54364a0e45befc89560284f6a..19da056a10aff5de4455e80c1e30b03190352258 100644 --- a/lib/PublicInbox/Over.pm +++ b/lib/PublicInbox/Over.pm @@ -371,4 +371,15 @@ } sub blob_exists { oidbin_exists($_[0], pack('H*', $_[1])) } +# used by NNTP.pm +sub ids_after { + my ($self, $num) = @_; + my $ids = dbh($self)->selectcol_arrayref(<<'', undef, $$num); +SELECT num FROM over WHERE num > ? +ORDER BY num ASC LIMIT 1000 + + $$num = $ids->[-1] if @$ids; + $ids; +} + 1; diff --git a/t/extindex-psgi.t b/t/extindex-psgi.t index b9acc9793292b6d3b7a7189853c01b75af186279..d47616417a525b5b48a468141d8e03a25863c0d5 100644 --- a/t/extindex-psgi.t +++ b/t/extindex-psgi.t @@ -52,6 +52,9 @@ close $fh or xbail $!; my $cfg = PublicInbox::Config->git_config_dump($f); is($?, 0, 'no errors from git-config parsing'); ok($cfg->{'extindex.all.topdir'}, 'extindex.topdir defined'); + + $res = $cb->(GET('/all/all.mbox.gz')); + is($res->code, 200, 'all.mbox.gz'); }; test_psgi(sub { $www->call(@_) }, $client); %$env = (%$env, TMPDIR => $tmpdir, PI_CONFIG => $pi_config);