about summary refs log tree commit homepage
path: root/lib/PublicInbox/SearchIdxPart.pm
diff options
context:
space:
mode:
Diffstat (limited to 'lib/PublicInbox/SearchIdxPart.pm')
-rw-r--r--lib/PublicInbox/SearchIdxPart.pm8
1 files changed, 8 insertions, 0 deletions
diff --git a/lib/PublicInbox/SearchIdxPart.pm b/lib/PublicInbox/SearchIdxPart.pm
index dd7ace67..c1660783 100644
--- a/lib/PublicInbox/SearchIdxPart.pm
+++ b/lib/PublicInbox/SearchIdxPart.pm
@@ -54,6 +54,14 @@ sub partition_worker_loop ($$$) {
                         $txn = undef;
                         print { $self->{skeleton}->{w} } "barrier $part\n" or
                                         die "write failed to skeleton: $!\n";
+                } elsif ($line =~ /\AD ([a-f0-9]{40,}) (.+)\n\z/s) {
+                        my ($oid, $mid) = ($1, $2);
+                        $xdb ||= $self->_xdb_acquire;
+                        if (!$txn) {
+                                $xdb->begin_transaction;
+                                $txn = 1;
+                        }
+                        $self->remove_by_oid($oid, $mid);
                 } else {
                         chomp $line;
                         my ($len, $artnum, $oid, $mid0) = split(/ /, $line);