]> Sergey Matveev's repositories - public-inbox.git/blobdiff - lib/PublicInbox/OverIdx.pm
index: allow search/lookups on X-Alt-Message-ID
[public-inbox.git] / lib / PublicInbox / OverIdx.pm
index e8df01c4e325d40c3fb9b5c53e4436224d787f87..189bd21d93bc6731192dd26a333cc79f04b89c3e 100644 (file)
@@ -13,7 +13,7 @@ use warnings;
 use base qw(PublicInbox::Over);
 use IO::Handle;
 use DBI qw(:sql_types); # SQL_BLOB
-use PublicInbox::MID qw/id_compress mids references/;
+use PublicInbox::MID qw/id_compress mids_for_index references/;
 use PublicInbox::SearchMsg qw(subject_normalized);
 use Compress::Zlib qw(compress);
 use PublicInbox::Search;
@@ -256,7 +256,7 @@ sub add_overview {
                lines => $lines,
                blob => $oid,
        }, 'PublicInbox::SearchMsg';
-       my $mids = mids($mime->header_obj);
+       my $mids = mids_for_index($mime->header_obj);
        my $refs = parse_references($smsg, $mid0, $mids);
        my $subj = $smsg->subject;
        my $xpath;
@@ -337,6 +337,20 @@ sub remove_oid {
        $nr;
 }
 
+sub num_mid0_for_oid {
+       my ($self, $oid, $mid) = @_;
+       my ($num, $mid0);
+       $self->begin_lazy;
+       each_by_mid($self, $mid, ['ddd'], sub {
+               my ($smsg) = @_;
+               my $blob = $smsg->{blob};
+               return 1 if (!defined($blob) || $blob ne $oid); # continue;
+               ($num, $mid0) = ($smsg->{num}, $smsg->{mid});
+               0; # done
+       });
+       ($num, $mid0);
+}
+
 sub create_tables {
        my ($dbh) = @_;