From: Eric Wong Date: Thu, 1 Apr 2021 12:10:40 +0000 (+0500) Subject: lei_store: set_xvmd: don't add if no vmd at all X-Git-Tag: v1.7.0~843 X-Git-Url: http://www.git.stargrave.org/?a=commitdiff_plain;h=4a132f960e04201bcf4dcc06eb34d9c47ec13457;p=public-inbox.git lei_store: set_xvmd: don't add if no vmd at all 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. --- 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); }