diff options
author | Eric Wong <e@80x24.org> | 2021-03-21 15:50:45 +0600 |
---|---|---|
committer | Eric Wong <e@80x24.org> | 2021-03-21 10:35:11 +0000 |
commit | 47d21e78be57a8f4615be5872e08ec4539423d1f (patch) | |
tree | aac2f06ea9c24b4a616702e849bcbaf024597dc5 /lib/PublicInbox/Import.pm | |
parent | 076543017b7646a7324156ed5d5245d467d53c1c (diff) | |
download | public-inbox-47d21e78be57a8f4615be5872e08ec4539423d1f.tar.gz |
Keyword storage for external-only messages was preventing messages from being explicitly imported. Teach lei_store to vivify keyword-only entries into fully-indexed messages on import.
Diffstat (limited to 'lib/PublicInbox/Import.pm')
-rw-r--r-- | lib/PublicInbox/Import.pm | 14 |
1 files changed, 13 insertions, 1 deletions
diff --git a/lib/PublicInbox/Import.pm b/lib/PublicInbox/Import.pm index b8fa5c21..34738279 100644 --- a/lib/PublicInbox/Import.pm +++ b/lib/PublicInbox/Import.pm @@ -413,7 +413,19 @@ sub add { $smsg->{blob} = $self->get_mark(":$blob"); $smsg->set_bytes($raw_email, $n); if (my $oidx = delete $smsg->{-oidx}) { # used by LeiStore - return if $oidx->blob_exists($smsg->{blob}); + my @docids = $oidx->blob_exists($smsg->{blob}); + my @vivify_xvmd; + for my $id (@docids) { + if (my $cur = $oidx->get_art($id)) { + # already imported if bytes > 0 + return if $cur->{bytes} > 0; + push @vivify_xvmd, $id; + } else { + warn "W: $smsg->{blob} ", + "#$id gone (bug?)\n"; + } + } + $smsg->{-vivify_xvmd} = \@vivify_xvmd; } } my $ref = $self->{ref}; |