user/dev discussion of public-inbox itself
 help / color / mirror / code / Atom feed
Search results ordered by [date|relevance]  view[summary|nested|Atom feed]
thread overview below | download mbox.gz: |
* [PATCH] lei up: faster non-thread, single-source incremental query
@ 2023-10-02 14:58  7% Eric Wong
  0 siblings, 0 replies; 1+ results
From: Eric Wong @ 2023-10-02 14:58 UTC (permalink / raw)
  To: meta

When using isearch (that is v1/v2 inbox relying on extindex
for search), there's actually no guarantee that IMAP UIDs
are in the correct order with regard to Xapian docids.

Thus we must iterate through every UID(num) to see if it's
suitable to display in a saved search.  The old grep filter
(before commit a6fe84489127) was not effective since it
didn't account for the mset->items correspondence.

Fortunately, this bug merely manifests in reduced performance
as of a6fe84489127.  Prior to that, it could cause incorrect
keywords and labels to be applied.

Unfortunately, this behavior is hard-to-test so no test case
is included.

Followup-to: a6fe84489127 (lei up: fix missing -t/--threads matches w/ saved search)
---
 lib/PublicInbox/LeiXSearch.pm | 3 ++-
 1 file changed, 2 insertions(+), 1 deletion(-)

diff --git a/lib/PublicInbox/LeiXSearch.pm b/lib/PublicInbox/LeiXSearch.pm
index 5f105567..4e0849e8 100644
--- a/lib/PublicInbox/LeiXSearch.pm
+++ b/lib/PublicInbox/LeiXSearch.pm
@@ -211,9 +211,10 @@ sub query_one_mset { # for --threads and l2m w/o sort
 			}
 		} else {
 			$first_ids = $ids;
-			my @items = $mset->items;
+			my @items = $mset->items; # parallel with @$ids
 			for my $n (@$ids) {
 				my $mitem = $items[$i++];
+				next if $n <= $min;
 				my $smsg = $over->get_art($n) or next;
 				next if $smsg->{bytes} == 0;
 				mitem_kw($srch, $smsg, $mitem, $fl) if $can_kw;

^ permalink raw reply related	[relevance 7%]

Results 1-1 of 1 | reverse | options above
-- pct% links below jump to the message on this page, permalinks otherwise --
2023-10-02 14:58  7% [PATCH] lei up: faster non-thread, single-source incremental query Eric Wong

Code repositories for project(s) associated with this public inbox

	https://80x24.org/public-inbox.git

This is a public inbox, see mirroring instructions
for how to clone and mirror all data and code used for this inbox;
as well as URLs for read-only IMAP folder(s) and NNTP newsgroup(s).