]> Sergey Matveev's repositories - public-inbox.git/blobdiff - lib/PublicInbox/SearchIdx.pm
extsearchidx: simplify reindex code paths
[public-inbox.git] / lib / PublicInbox / SearchIdx.pm
index cd8f4dd763b7bc20e1ee4ca0abe11ba1386e475d..c6d2a0e88ba61dc9f7310aa40f2aab92966e621e 100644 (file)
@@ -1008,68 +1008,4 @@ SELECT COUNT(*) FROM over WHERE num = ?
        }
 }
 
-sub reindex_xap { # git->cat_async callback
-       my ($bref, $oid, $type, $size, $ary) = @_;
-       my ($ibx_id, $oidhex, $req, $more) = @$ary;
-       my $self = $req->{self} // die 'BUG: {self} missing';
-       my $eidx = $self->{eidx} // die 'BUG: {eidx} missing';
-       my $eidx_key = $self->{-eidx_key_for}->{$ibx_id} //
-                       die "BUG: bad ibx_id=$ibx_id ($oid)";
-
-       my $docid = $req->{docid};
-       local $eidx->{current_info} = "#$docid $oid";
-       return if is_bad_blob($oid, $type, $size, $oidhex);
-       if (my $doc = $req->{doc}) { # modify existing doc
-               $req->{tg_isset} //= do { # for existing documents in {xdb}
-                       term_generator($self)->set_document($doc);
-                       1;
-               };
-               $doc->add_boolean_term('O'.$eidx_key);
-               index_list_id($self, $doc, PublicInbox::Eml->new($bref));
-       } else { # first time seeing this doc
-               my $smsg = $self->{eidx}->over->get_art($docid) //
-                       die "BUG: #$docid ($oid) not in over";
-               $smsg->{bytes} = $size + crlf_adjust($$bref);
-               $smsg->{eidx_key} = $eidx_key;
-               my $eml = PublicInbox::Eml->new($bref);
-               $req->{doc} = eml2doc($self, $eml, $smsg);
-               $req->{tg_isset} = 1; # eml2doc calls $tg->set_document
-       }
-       return if $more;
-       my $doc = delete($req->{doc}) or return; # all bad blobs!
-       $eidx->{transact_bytes} += $size;
-       $self->{xdb}->replace_document($req->{docid}, $doc);
-}
-
-sub reindex_docid {
-       my ($self, $docid) = @_;
-       my $eidx = $self->{eidx} // die 'BUG: {eidx} missing';
-       my $eidx_key_for = $self->{-eidx_key_for} //= do {
-               my %eidx_key_for = map {
-                       $_->[0] => $_->[1];
-               } @{$eidx->over->dbh->selectall_arrayref(<<'')};
-SELECT ibx_id,eidx_key FROM inboxes
-
-               \%eidx_key_for;
-       };
-
-       begin_txn_lazy($self);
-       my $doc = eval { $self->{xdb}->get_document($docid) };
-       my $req = { doc => $doc, self => $self, docid => $docid };
-       my $sth = $eidx->over->dbh->prepare_cached(<<'', undef, 1);
-SELECT ibx_id,oidbin FROM xref3 WHERE docid = ? ORDER BY ibx_id ASC
-
-       $sth->execute($docid);
-       my $rows = $sth->fetchall_arrayref;
-       while (my $row = shift(@$rows)) {
-               my ($ibx_id, $oidbin) = @$row;
-               my $oidhex = unpack('H*', $oidbin);
-               $eidx->git->cat_async($oidhex, \&reindex_xap,
-                               [ $ibx_id, $oidhex, $req, scalar(@$rows) ]);
-       }
-       if ($eidx->{transact_bytes} >= $eidx->{batch_bytes}) {
-               commit_txn_lazy($self);
-       }
-}
-
 1;