From d7ceeaadbab7034eccb88b0c53b9538c1c92b25a Mon Sep 17 00:00:00 2001 From: Eric Wong Date: Tue, 8 Jan 2019 11:13:31 +0000 Subject: searchmsg: remove unused fields for PSGI in Xapian results These fields are only necessary in NNTP and not even stored in Xapian; so keeping them around for the PSGI web UI search results wastes nearly 80K when loading large result sets. --- lib/PublicInbox/SearchMsg.pm | 13 ++++++++++++- 1 file changed, 12 insertions(+), 1 deletion(-) (limited to 'lib/PublicInbox/SearchMsg.pm') diff --git a/lib/PublicInbox/SearchMsg.pm b/lib/PublicInbox/SearchMsg.pm index 65e085f4..292efcee 100644 --- a/lib/PublicInbox/SearchMsg.pm +++ b/lib/PublicInbox/SearchMsg.pm @@ -57,11 +57,14 @@ sub load_from_data ($$) { # To: and Cc: are stored to optimize HDR/XHDR in NNTP since # some NNTP clients will use that for message displays. + # NNTP only, and only stored in Over(view), not Xapian $self->{to}, $self->{cc}, $self->{blob}, $self->{mid}, + + # NNTP only $self->{bytes}, $self->{lines} ) = split(/\n/, $_[1]); @@ -79,10 +82,18 @@ sub load_expand { $self; } +# Only called by PSGI interface, not NNTP sub load_doc { my ($class, $doc) = @_; my $self = bless {}, $class; - load_expand($self, $doc); + my $smsg = load_expand($self, $doc); + + from_name($smsg); # fill in {from_name} so we can delete {from} + + # drop NNTP-only fields which aren't relevant to PSGI results: + # saves ~80K on a 200 item search result: + delete @$smsg{qw(from ts to cc bytes lines)}; + $smsg; } # :bytes and :lines metadata in RFC 3977 -- cgit v1.2.3-24-ge0c7