From eb48e7d6675babdda9a36be1a490c29a2ccddbdc Mon Sep 17 00:00:00 2001 From: "Eric Wong (Contractor, The Linux Foundation)" Date: Mon, 19 Mar 2018 08:14:39 +0000 Subject: v2writable: implement remove correctly We need to hide removals from anybody hitting the search engine. --- lib/PublicInbox/SearchIdxPart.pm | 8 ++++++++ 1 file changed, 8 insertions(+) (limited to 'lib/PublicInbox/SearchIdxPart.pm') 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); -- cgit v1.2.3-24-ge0c7