about summary refs log tree commit homepage
path: root/lib/PublicInbox/SearchIdx.pm
diff options
context:
space:
mode:
Diffstat (limited to 'lib/PublicInbox/SearchIdx.pm')
-rw-r--r--lib/PublicInbox/SearchIdx.pm32
1 files changed, 9 insertions, 23 deletions
diff --git a/lib/PublicInbox/SearchIdx.pm b/lib/PublicInbox/SearchIdx.pm
index e5c872d5..78db329d 100644
--- a/lib/PublicInbox/SearchIdx.pm
+++ b/lib/PublicInbox/SearchIdx.pm
@@ -637,14 +637,21 @@ sub update_vmd {
 
 sub xdb_remove {
         my ($self, @docids) = @_;
-        $self->begin_txn_lazy;
-        my $xdb = $self->{xdb} or return;
+        begin_txn_lazy($self);
+        my $xdb = $self->{xdb} // die 'BUG: missing {xdb}';
         for my $docid (@docids) {
                 eval { $xdb->delete_document($docid) };
                 warn "E: #$docid not in in Xapian? $@\n" if $@;
         }
 }
 
+sub xdb_remove_quiet {
+        my ($self, $docid) = @_;
+        begin_txn_lazy($self);
+        my $xdb = $self->{xdb} // die 'BUG: missing {xdb}';
+        eval { $xdb->delete_document($docid) };
+}
+
 sub index_git_blob_id {
         my ($doc, $pfx, $objid) = @_;
 
@@ -1098,25 +1105,4 @@ sub eidx_shard_new {
         $self;
 }
 
-# ensure there's no stale Xapian docs by treating $over as canonical
-sub over_check {
-        my ($self, $over) = @_;
-        begin_txn_lazy($self);
-        my $sth = $over->dbh->prepare(<<'');
-SELECT COUNT(*) FROM over WHERE num = ?
-
-        my $xdb = $self->{xdb};
-        my $cur = $xdb->postlist_begin('');
-        my $end = $xdb->postlist_end('');
-        my $xdir = $self->xdir;
-        for (; $cur != $end; $cur++) {
-                my $docid = $cur->get_docid;
-                $sth->execute($docid);
-                my $x = $sth->fetchrow_array;
-                next if $x > 0;
-                warn "I: removing $xdir #$docid, not in `over'\n";
-                $xdb->delete_document($docid);
-        }
-}
-
 1;