diff options
Diffstat (limited to 'lib/PublicInbox/SearchIdxPart.pm')
-rw-r--r-- | lib/PublicInbox/SearchIdxPart.pm | 8 |
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); |