]> Sergey Matveev's repositories - public-inbox.git/blobdiff - lib/PublicInbox/SearchIdx.pm
view: improve readability around walk_thread
[public-inbox.git] / lib / PublicInbox / SearchIdx.pm
index 47537ed47b1b69eb7b03c2f7db46277f748f733c..4349d127762a29504387d6c828dc4b33691b9032 100644 (file)
@@ -12,7 +12,7 @@ use warnings;
 use base qw(PublicInbox::Search PublicInbox::Lock);
 use PublicInbox::MIME;
 use PublicInbox::InboxWritable;
-use PublicInbox::MID qw/mid_clean id_compress mid_mime mids_for_index/;
+use PublicInbox::MID qw/mid_clean mid_mime mids_for_index/;
 use PublicInbox::MsgIter;
 use Carp qw(croak);
 use POSIX qw(strftime);
@@ -34,7 +34,7 @@ sub new {
        ref $ibx or die "BUG: expected PublicInbox::Inbox object: $ibx";
        my $levels = qr/\A(?:full|medium|basic)\z/;
        my $inboxdir = $ibx->{inboxdir};
-       my $version = $ibx->{version} || 1;
+       my $version = $ibx->version;
        my $indexlevel = 'full';
        my $altid = $ibx->{altid};
        if ($altid) {
@@ -54,7 +54,7 @@ sub new {
                -inbox => $ibx,
                git => $ibx->git,
                -altid => $altid,
-               version => $version,
+               ibx_ver => $version,
                indexlevel => $indexlevel,
        }, $class;
        $ibx->umask_prepare;
@@ -144,14 +144,14 @@ sub term_generator ($) { # write-only
 }
 
 sub index_text ($$$$) {
-       my ($self, $field, $n, $text) = @_;
-       my $tg = term_generator($self);
+       my ($self, $text, $wdf_inc, $prefix) = @_;
+       my $tg = term_generator($self); # man Search::Xapian::TermGenerator
 
        if ($self->{indexlevel} eq 'full') {
-               $tg->index_text($field, $n, $text);
+               $tg->index_text($text, $wdf_inc, $prefix);
                $tg->increase_termpos;
        } else {
-               $tg->index_text_without_positions($field, $n, $text);
+               $tg->index_text_without_positions($text, $wdf_inc, $prefix);
        }
 }
 
@@ -358,7 +358,7 @@ sub add_xapian ($$$$$$) {
 
 sub _msgmap_init ($) {
        my ($self) = @_;
-       die "BUG: _msgmap_init is only for v1\n" if $self->{version} != 1;
+       die "BUG: _msgmap_init is only for v1\n" if $self->{ibx_ver} != 1;
        $self->{mm} //= eval {
                require PublicInbox::Msgmap;
                PublicInbox::Msgmap->new($self->{inboxdir}, 1);
@@ -433,7 +433,7 @@ sub remove_message {
                batch_do($self, 'Q' . $mid, sub {
                        my ($ids) = @_;
                        $db->delete_document($_) for @$ids;
-                       $nr = scalar @$ids;
+                       $nr += scalar @$ids;
                });
        };
        if ($@) {
@@ -666,7 +666,6 @@ sub is_ancestor ($$$) {
        my $cmd = [ 'git', "--git-dir=$git->{git_dir}",
                qw(merge-base --is-ancestor), $cur, $tip ];
        my $pid = spawn($cmd);
-       defined $pid or die "spawning ".join(' ', @$cmd)." failed: $!";
        waitpid($pid, 0) == $pid or die join(' ', @$cmd) .' did not finish';
        $? == 0;
 }