From mboxrd@z Thu Jan 1 00:00:00 1970 Return-Path: Received: from mp10.migadu.com ([2001:41d0:2:4a6f::]) (using TLSv1.3 with cipher TLS_AES_256_GCM_SHA384 (256/256 bits)) by ms5.migadu.com with LMTPS id MI0wIdv3rWOovwAAbAwnHQ (envelope-from ) for ; Thu, 29 Dec 2022 21:26:03 +0100 Received: from aspmx1.migadu.com ([2001:41d0:2:4a6f::]) (using TLSv1.3 with cipher TLS_AES_256_GCM_SHA384 (256/256 bits)) by mp10.migadu.com with LMTPS id cGlWINv3rWP6sQAAG6o9tA (envelope-from ) for ; Thu, 29 Dec 2022 21:26:03 +0100 Received: from lists.gnu.org (lists.gnu.org [209.51.188.17]) (using TLSv1.2 with cipher ECDHE-RSA-AES256-GCM-SHA384 (256/256 bits)) (No client certificate requested) by aspmx1.migadu.com (Postfix) with ESMTPS id 519631FD6 for ; Thu, 29 Dec 2022 21:26:03 +0100 (CET) Received: from localhost ([::1] helo=lists1p.gnu.org) by lists.gnu.org with esmtp (Exim 4.90_1) (envelope-from ) id 1pAzSc-000749-Fx; Thu, 29 Dec 2022 15:25:06 -0500 Received: from eggs.gnu.org ([2001:470:142:3::10]) by lists.gnu.org with esmtps (TLS1.2:ECDHE_RSA_AES_256_GCM_SHA384:256) (Exim 4.90_1) (envelope-from ) id 1pAzSa-00073d-Ps for guix-patches@gnu.org; Thu, 29 Dec 2022 15:25:04 -0500 Received: from debbugs.gnu.org ([209.51.188.43]) by eggs.gnu.org with esmtps (TLS1.2:ECDHE_RSA_AES_128_GCM_SHA256:128) (Exim 4.90_1) (envelope-from ) id 1pAzSa-0005j1-GI for guix-patches@gnu.org; Thu, 29 Dec 2022 15:25:04 -0500 Received: from Debian-debbugs by debbugs.gnu.org with local (Exim 4.84_2) (envelope-from ) id 1pAzSa-0007SH-Bp for guix-patches@gnu.org; Thu, 29 Dec 2022 15:25:04 -0500 X-Loop: help-debbugs@gnu.org Subject: [bug#60410] [PATCH 7/7] xapian: Preserve order of search results. Resent-From: Arun Isaac Original-Sender: "Debbugs-submit" Resent-CC: guix-patches@gnu.org Resent-Date: Thu, 29 Dec 2022 20:25:04 +0000 Resent-Message-ID: Resent-Sender: help-debbugs@gnu.org X-GNU-PR-Message: followup 60410 X-GNU-PR-Package: guix-patches X-GNU-PR-Keywords: patch To: 60410@debbugs.gnu.org, Ricardo Wurmus Cc: Arun Isaac Received: via spool by 60410-submit@debbugs.gnu.org id=B60410.167234547328573 (code B ref 60410); Thu, 29 Dec 2022 20:25:04 +0000 Received: (at 60410) by debbugs.gnu.org; 29 Dec 2022 20:24:33 +0000 Received: from localhost ([127.0.0.1]:33008 helo=debbugs.gnu.org) by debbugs.gnu.org with esmtp (Exim 4.84_2) (envelope-from ) id 1pAzS5-0007Qn-83 for submit@debbugs.gnu.org; Thu, 29 Dec 2022 15:24:33 -0500 Received: from mugam.systemreboot.net ([139.59.75.54]:51358) by debbugs.gnu.org with esmtp (Exim 4.84_2) (envelope-from ) id 1pAzRp-0007Q8-9f for 60410@debbugs.gnu.org; Thu, 29 Dec 2022 15:24:17 -0500 DKIM-Signature: v=1; a=rsa-sha256; q=dns/txt; c=relaxed/relaxed; d=systemreboot.net; s=default; h=Content-Transfer-Encoding:MIME-Version: References:In-Reply-To:Message-Id:Date:Subject:Cc:To:From:Sender:Reply-To: Content-Type:Content-ID:Content-Description:Resent-Date:Resent-From: Resent-Sender:Resent-To:Resent-Cc:Resent-Message-ID:List-Id:List-Help: List-Unsubscribe:List-Subscribe:List-Post:List-Owner:List-Archive; bh=lBP7dpGu5sh1cldj46SDOEo9gkGoDzs6S6162/abQGI=; b=cyaYoAJZ6v995IrrsikTrA0PGw c7HmrXGC799XV1lMxhzpog665MkNWB+BUUnVfsPtzZGrx1lZVp+YiiDGK5rblhpWxm24X08CEEa5K tIQRGGk69Ut1wPbTRVKOFMjXJQowfgjjmi1H+1sk0bf5ZtJfkPKhS+ha45U1cIa2H8Y5eGyhoWzRk I6tTv6dBOQIcdVuScUTUUel4a9Jk3AJG8LIM/bsQ0GZ3FRFYgJiSgfDn+klBycTeScE69Nmm+J8AY 3iEZOhbihGhoR4vw+OOWeR/n+L/4iH58OdqY+HsSx3tteXgmnZ/m+TVnbqwXtrokdITsNSganP2Hw R6yeTvdg==; Received: from [192.168.2.1] (port=38338 helo=localhost.localdomain) by systemreboot.net with esmtpsa (TLS1.3) tls TLS_ECDHE_RSA_WITH_AES_256_GCM_SHA384 (Exim 4.96) (envelope-from ) id 1pAzRm-000oIe-2b; Fri, 30 Dec 2022 01:54:15 +0530 From: Arun Isaac Date: Thu, 29 Dec 2022 20:24:00 +0000 Message-Id: <20221229202400.28565-7-arunisaac@systemreboot.net> X-Mailer: git-send-email 2.38.1 In-Reply-To: <20221229201809.27997-1-arunisaac@systemreboot.net> References: <20221229201809.27997-1-arunisaac@systemreboot.net> MIME-Version: 1.0 Content-Transfer-Encoding: 8bit X-BeenThere: debbugs-submit@debbugs.gnu.org X-Mailman-Version: 2.1.18 Precedence: list X-BeenThere: guix-patches@gnu.org List-Id: List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , Errors-To: guix-patches-bounces+larch=yhetil.org@gnu.org Sender: guix-patches-bounces+larch=yhetil.org@gnu.org X-Migadu-Country: US X-Migadu-Flow: FLOW_IN ARC-Seal: i=1; s=key1; d=yhetil.org; t=1672345563; a=rsa-sha256; cv=none; b=iRHN+ybDLtSmGA7fbzf2AdXhRKVgKyBXVqz15+TlEcl8nwU+GiJ/dHtZVKcBUXVezs5Tdj kyo/yd1FzWLljiHmoN8b9CW7vMFE5a8K+DjeeixCaxMzQf61++Y+jL9tmWs97UmvpBJN6b yXLNmSvTbaR3ARtpPciP480T+SVLhrjQFvJGOOc/CfXDOG386oord36KXcvorZVEdV5hmT siYpPtbbqswp/K/I6UYiyWajMvfT76MKWkib9rLWTwba6OMoYcpVlrzQoqaBwE/KV9FdkC lg8O4WQPjgUgFzmhQBcR1o6jLxJA46ML3XOIJv5g/MwiVWPco/qj49mxSEYtDQ== ARC-Authentication-Results: i=1; aspmx1.migadu.com; dkim=fail ("headers rsa verify failed") header.d=systemreboot.net header.s=default header.b=cyaYoAJZ; spf=pass (aspmx1.migadu.com: domain of "guix-patches-bounces+larch=yhetil.org@gnu.org" designates 209.51.188.17 as permitted sender) smtp.mailfrom="guix-patches-bounces+larch=yhetil.org@gnu.org"; dmarc=fail reason="SPF not aligned (relaxed)" header.from=systemreboot.net (policy=none) ARC-Message-Signature: i=1; a=rsa-sha256; c=relaxed/relaxed; d=yhetil.org; s=key1; t=1672345563; h=from:from:sender:sender:reply-to:subject:subject:date:date: message-id:message-id:to:to:cc:cc:mime-version:mime-version: content-transfer-encoding:content-transfer-encoding:resent-cc: resent-from:resent-sender:resent-message-id:in-reply-to:in-reply-to: references:references:list-id:list-help:list-unsubscribe: list-subscribe:list-post:dkim-signature; bh=lBP7dpGu5sh1cldj46SDOEo9gkGoDzs6S6162/abQGI=; b=SWjH8/2y/QVpCIiyK9ffuk78IbFhA+6pvnz/GnxUfUUu7TRpHhQiGWlDNgVYtiKQNlOUDr ZicY6tttEnUWYI9wBZhJkZrSlYNmVdIExgYM+yBed6KtHgxg2gK73JgldvDv6CYCHlwf2f GVrkae1J9XcHOHFSG1gg+7wkzBcejNKHZScgV/1968aEOjmQMC6kOoYO5dvH8Oc+DJnI+9 1DMBZ6Mc+HVowL4IBh4vjwlv8WyccZ16+Ifa7zKWh2XqdqpsyfDp86IDyxjw7OG3ZwugSe OMtJ6y5CnzCCG5k1HtT7NlVcFp5wHWYv/fQ6BnTxjTqmbSUfiLjzn7vHbLsPlg== X-Spam-Score: -0.23 X-Migadu-Queue-Id: 519631FD6 Authentication-Results: aspmx1.migadu.com; dkim=fail ("headers rsa verify failed") header.d=systemreboot.net header.s=default header.b=cyaYoAJZ; spf=pass (aspmx1.migadu.com: domain of "guix-patches-bounces+larch=yhetil.org@gnu.org" designates 209.51.188.17 as permitted sender) smtp.mailfrom="guix-patches-bounces+larch=yhetil.org@gnu.org"; dmarc=fail reason="SPF not aligned (relaxed)" header.from=systemreboot.net (policy=none) X-Migadu-Scanner: scn0.migadu.com X-Migadu-Spam-Score: -0.23 X-TUID: Rp2SMwzPJjPX Xapian orders search results by relevance. Preserve this order. * mumi/xapian.scm (search): Reverse search results after consing to preserve the original order. * mumi/messages.scm (status-with-cache): Do not sort bugs by their bug number. Preserve the order of bugs passed to this function. --- mumi/messages.scm | 13 ++++--------- mumi/xapian.scm | 21 +++++++++++---------- 2 files changed, 15 insertions(+), 19 deletions(-) diff --git a/mumi/messages.scm b/mumi/messages.scm index b3ae962..fd52571 100644 --- a/mumi/messages.scm +++ b/mumi/messages.scm @@ -64,15 +64,10 @@ (define (status-with-cache ids) "Invoke GET-STATUS, but only on those IDS that have not been cached yet. Return new results alongside cached results." - (let* ((cached (filter-map cached? ids)) - (uncached-ids (lset-difference eq? - ids - (map bug-num cached))) - (new (filter-map bug-status uncached-ids ))) - ;; Cache new things - (map (lambda (bug) (cache! (bug-num bug) bug)) new) - ;; Return everything from cache - (sort (append cached new) (lambda (a b) (< (bug-num a) (bug-num b)))))) + (map (lambda (id) + (or (cached? id) + (cache! id (bug-status id)))) + ids)) (define (extract-name address) (or (assoc-ref address 'name) diff --git a/mumi/xapian.scm b/mumi/xapian.scm index ae01acc..7ca5bb8 100644 --- a/mumi/xapian.scm +++ b/mumi/xapian.scm @@ -339,16 +339,17 @@ intact." ;; Collapse on mergedwith value (Enquire-set-collapse-key enq 2 1) ;; Fold over the results, return bug id. - (mset-fold (lambda (item acc) - (cons - (document-data (mset-item-document item)) - acc)) - '() - ;; Get an Enquire object from the database with the - ;; search results. Then, extract the MSet from the - ;; Enquire object. - (enquire-mset enq - #:maximum-items pagesize)))))) + (reverse + (mset-fold (lambda (item acc) + (cons + (document-data (mset-item-document item)) + acc)) + '() + ;; Get an Enquire object from the database with the + ;; search results. Then, extract the MSet from the + ;; Enquire object. + (enquire-mset enq + #:maximum-items pagesize))))))) (define* (index! #:key full?) "Index all Debbugs log files corresponding to the selected -- 2.38.1