There's no point in adding vmd information for an external
message if it was never stored and there's no vmd at all.
We also don't need to check _docids_for for similar messages,
either, since we always check lse->kw_changed, first.
---
lib/PublicInbox/LeiStore.pm | 18 +++++-------------
1 file changed, 5 insertions(+), 13 deletions(-)
diff --git a/lib/PublicInbox/LeiStore.pm b/lib/PublicInbox/LeiStore.pm
index 48ab1d76..f2aa45bd 100644
--- a/lib/PublicInbox/LeiStore.pm
+++ b/lib/PublicInbox/LeiStore.pm
@@ -307,19 +307,11 @@ sub set_xvmd {
}
return unless scalar(keys(%$xoids));
- # see if it was indexed, but with different OID(s)
- if (my @docids = _docids_for($self, $eml)) {
- for my $docid (@docids) {
- next if $seen{$docid};
- for my $oid (keys %$xoids) {
- $oidx->add_xref3($docid, -1, $oid, '.');
- }
- my $idx = $eidx->idx_shard($docid);
- $idx->ipc_do('set_vmd', $docid, $vmd);
- }
- return;
- }
- # totally unseen
+ # n.b. we don't do _docids_for here, we expect the caller
+ # already checked $lse->kw_changed before calling this sub
+
+ return unless (@{$vmd->{kw} // []}) || (@{$vmd->{L} // []});
+ # totally unseen:
my ($smsg, $idx) = _external_only($self, $xoids, $eml);
$idx->ipc_do('add_vmd', $smsg->{num}, $vmd);
}
--
unsubscribe: one-click, see List-Unsubscribe header
archive: https://public-inbox.org/meta/