From unknown Tue Aug 19 10:09:07 2025 X-Loop: help-debbugs@gnu.org Subject: bug#56442: gnus-search-run-search: Hits notmuch command line length limits Resent-From: Sean Whitton Original-Sender: "Debbugs-submit" Resent-CC: notmuch@notmuchmail.org, eric@ericabrahamsen.net, bug-gnu-emacs@gnu.org Resent-Date: Thu, 07 Jul 2022 16:57:02 +0000 Resent-Message-ID: Resent-Sender: help-debbugs@gnu.org X-GNU-PR-Message: report 56442 X-GNU-PR-Package: emacs X-GNU-PR-Keywords: To: 56442@debbugs.gnu.org Cc: notmuch@notmuchmail.org, Eric Abrahamsen X-Debbugs-Original-To: bug-gnu-emacs@gnu.org X-Debbugs-Original-Xcc: notmuch@notmuchmail.org, Eric Abrahamsen Received: via spool by submit@debbugs.gnu.org id=B.16572129809434 (code B ref -1); Thu, 07 Jul 2022 16:57:02 +0000 Received: (at submit) by debbugs.gnu.org; 7 Jul 2022 16:56:20 +0000 Received: from localhost ([127.0.0.1]:57746 helo=debbugs.gnu.org) by debbugs.gnu.org with esmtp (Exim 4.84_2) (envelope-from ) id 1o9Unb-0002S5-V2 for submit@debbugs.gnu.org; Thu, 07 Jul 2022 12:56:20 -0400 Received: from lists.gnu.org ([209.51.188.17]:42762) by debbugs.gnu.org with esmtp (Exim 4.84_2) (envelope-from ) id 1o9UnW-0002Rt-C9 for submit@debbugs.gnu.org; Thu, 07 Jul 2022 12:56:18 -0400 Received: from eggs.gnu.org ([2001:470:142:3::10]:55146) by lists.gnu.org with esmtps (TLS1.2:ECDHE_RSA_AES_256_GCM_SHA384:256) (Exim 4.90_1) (envelope-from ) id 1o9UnW-0005P6-3S for bug-gnu-emacs@gnu.org; Thu, 07 Jul 2022 12:56:14 -0400 Received: from wout3-smtp.messagingengine.com ([64.147.123.19]:46581) by eggs.gnu.org with esmtps (TLS1.2:ECDHE_RSA_AES_256_GCM_SHA384:256) (Exim 4.90_1) (envelope-from ) id 1o9UnU-0003RN-3L for bug-gnu-emacs@gnu.org; Thu, 07 Jul 2022 12:56:13 -0400 Received: from compute5.internal (compute5.nyi.internal [10.202.2.45]) by mailout.west.internal (Postfix) with ESMTP id E9E553200302 for ; Thu, 7 Jul 2022 12:56:08 -0400 (EDT) Received: from mailfrontend1 ([10.202.2.162]) by compute5.internal (MEProxy); Thu, 07 Jul 2022 12:56:09 -0400 DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=spwhitton.name; h=cc:content-type:date:date:from:from:in-reply-to:message-id :mime-version:reply-to:sender:subject:subject:to:to; s=fm2; t= 1657212968; x=1657299368; bh=OxU+Ily5TkckCY4kzVnSzv4SklrY5aEasGb SUEhThfM=; b=JgleLBUhQtZYGiLCVq/a2K8uHcyRcpLm09nplOT4IzPjqbALVQc TlpLeiWlXUqRWnKnWG3mYy7pYb+ej8DrXRxkSU2lZUNtT3WL5ihkWV/evmat71IY SK4rrlDhECyUm5HGpyK93EzJpkd12eIBAST/iOca1T5CBAz0T3t5Ks+zWyfc/pnR TTrm1Q+5awXU5Zl8ynladXdFhto0J8S143ctS9rscHNrtlW6wNwUac41UQXokI4A Jx3+K4dL9gHEVnM5cZMy8vJFQMGBrhz9bnZ0JmdlmLoj8YorsS1cvli39CKwl7Ii Onvbnz0SDGiBf0VZ+zKUwixHVeEPVdicjYA== DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d= messagingengine.com; h=cc:content-type:date:date:feedback-id :feedback-id:from:from:in-reply-to:message-id:mime-version :reply-to:sender:subject:subject:to:to:x-me-proxy:x-me-proxy :x-me-sender:x-me-sender:x-sasl-enc; s=fm3; t=1657212968; x= 1657299368; bh=OxU+Ily5TkckCY4kzVnSzv4SklrY5aEasGbSUEhThfM=; b=U nQT3JdKFr3GEq3iEodCwo7GbtiySEvoOcYQEQg8+f2BEOdONXgc5RI37JKEHMxEp IE/eTbGJ/0Zsfqo1JzhgApC9FVgNUVC8lCVEg64RaHfZ/zLi/g8RdayZ+Jrwt6vI aYnEkYqHWBw/BnUs0b5hPPxRWZd3U3rv00YJh9Ry6IffktdhYYEtVH1IsMZH/4H6 NIo5UAZaEdkPSjc0SvSka2mEVwJ91d/msivTP+TTglY2mscEhBsl/kspweno5CHn aaiUdo091XVauMcmOCcqzUXdae37wFILfMP2HeadCRyPbHiDxeu01cfzeIiMHfSG c/77GRTMAiynreYptdwOQ== X-ME-Sender: X-ME-Received: X-ME-Proxy-Cause: gggruggvucftvghtrhhoucdtuddrgedvfedrudeihedguddthecutefuodetggdotefrod ftvfcurfhrohhfihhlvgemucfhrghsthforghilhdpqfgfvfdpuffrtefokffrpgfnqfgh necuuegrihhlohhuthemuceftddtnecunecujfgurhephffvufffkfgfgggtsehmtddtre dtreejnecuhfhrohhmpefuvggrnhcuhghhihhtthhonhcuoehsphifhhhithhtohhnsehs phifhhhithhtohhnrdhnrghmvgeqnecuggftrfgrthhtvghrnhepveeiheehuedtveehge dvfffgkeffuedtffevvefgtddugeehjedvteejteefffegnecuffhomhgrihhnpeguvggs ihgrnhdrohhrghenucevlhhushhtvghrufhiiigvpedtnecurfgrrhgrmhepmhgrihhlfh hrohhmpehsphifhhhithhtohhnsehsphifhhhithhtohhnrdhnrghmvg X-ME-Proxy: Feedback-ID: i23c04076:Fastmail Received: by mail.messagingengine.com (Postfix) with ESMTPA for ; Thu, 7 Jul 2022 12:56:08 -0400 (EDT) Received: by athena.silentflame.com (Postfix, from userid 1000) id E68C61B5A61; Thu, 7 Jul 2022 16:56:05 +0000 (UTC) From: Sean Whitton Date: Thu, 07 Jul 2022 09:56:05 -0700 Message-ID: <875yk850be.fsf@athena.silentflame.com> User-Agent: Gnus/5.13 (Gnus v5.13) Emacs/29.0.50 (gnu/linux) MIME-Version: 1.0 Content-Type: multipart/mixed; boundary="=-=-=" Received-SPF: pass client-ip=64.147.123.19; envelope-from=spwhitton@spwhitton.name; helo=wout3-smtp.messagingengine.com X-Spam_score_int: -27 X-Spam_score: -2.8 X-Spam_bar: -- X-Spam_report: (-2.8 / 5.0 requ) BAYES_00=-1.9, DKIM_SIGNED=0.1, DKIM_VALID=-0.1, DKIM_VALID_AU=-0.1, DKIM_VALID_EF=-0.1, RCVD_IN_DNSWL_LOW=-0.7, SPF_HELO_PASS=-0.001, SPF_PASS=-0.001, T_SCC_BODY_TEXT_LINE=-0.01 autolearn=ham autolearn_force=no X-Spam_action: no action X-Spam-Score: -2.3 (--) X-BeenThere: debbugs-submit@debbugs.gnu.org X-Mailman-Version: 2.1.18 Precedence: list List-Id: List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , Errors-To: debbugs-submit-bounces@debbugs.gnu.org Sender: "Debbugs-submit" X-Spam-Score: -2.7 (--) --=-=-= Content-Type: text/plain; charset=utf-8 Content-Transfer-Encoding: quoted-printable Hello, I'm running a pretty innocent notmuch query over a fairly small Maildir: "((List:debian-devel.lists.debian.org) or ... or (List:debian-haskell.lists.debian.org) or (List:debconf-discuss.lists.debian.org)) and (not path:annex/**)" but gnus-search-run-search fails to return any results. The reason is that Gnus first runs the query with --output=3Dthreads to obtain a list of thread ids, and then runs another query with --output=3Dfiles and a query constructed from the output of the first query: "thread:000000000000d9d0 or thread:000000000000d9e0 or thread:000000000000d268 or ..." The resulting command fails completely: emacs: /usr/bin/notmuch: Argument list too long Instead of running two searches like this, we can just surround the whole query like this: "thread:{QUERY}". The manual says it's exactly equivalent: ... the user should think of the query thread:{} as expanding to all of the thread IDs which match ; not=E2=80=90 much then performs a second search using the expanded query. This should be faster, too, with only running a single external command. Here is the patch I'm thinking I'll apply, if anyone has comments. --=20 Sean Whitton --=-=-= Content-Type: text/x-diff Content-Disposition: attachment; filename=0001-Use-notmuch-thread-operator-instead-of-performing-tw.patch >From d62398cc27abd317d31d8f07e151a82081444217 Mon Sep 17 00:00:00 2001 From: Sean Whitton Date: Thu, 7 Jul 2022 09:34:04 -0700 Subject: [PATCH] Use notmuch thread:{} operator instead of performing two searches This also avoids some command line length limit problems. * gnus-search.el (gnus-search-run-search (engine gnus-search-notmuch)): Delete method. (gnus-search-indexed-search-command (engine gnus-search-notmuch)): When searching for threads, wrap whole query in thread:{} operator. Always use --output=files, never --output=threads. --- lisp/gnus/gnus-search.el | 46 +++++----------------------------------- 1 file changed, 5 insertions(+), 41 deletions(-) diff --git a/lisp/gnus/gnus-search.el b/lisp/gnus/gnus-search.el index 369df81d9b..53b6d1b4c6 100644 --- a/lisp/gnus/gnus-search.el +++ b/lisp/gnus/gnus-search.el @@ -1672,43 +1672,6 @@ gnus-search-transform-expression (format "date:%s.." (notmuch-date (cdr expr)))) (t (ignore-errors (cl-call-next-method)))))) -(cl-defmethod gnus-search-run-search :around ((engine gnus-search-notmuch) - server query groups) - "Handle notmuch's thread-search routine." - ;; Notmuch allows for searching threads, but only using its own - ;; thread ids. That means a thread search is a \"double-bounce\": - ;; once to find the relevant thread ids, and again to find the - ;; actual messages. This method performs the first \"bounce\". - (if (alist-get 'thread query) - (with-slots (program proc-buffer) engine - (let* ((qstring - (gnus-search-make-query-string engine query)) - (cp-list (gnus-search-indexed-search-command - engine qstring query groups)) - thread-ids proc) - (with-current-buffer proc-buffer - (erase-buffer) - (setq proc (apply #'start-process (format "search-%s" server) - proc-buffer program cp-list)) - (while (process-live-p proc) - (accept-process-output proc)) - (goto-char (point-min)) - (while (re-search-forward - "^thread:\\([^[:space:]\n]+\\)" - (point-max) t) - (cl-pushnew (match-string 1) thread-ids :test #'equal))) - (cl-call-next-method - engine server - ;; If we found threads, completely replace the query with - ;; our new thread-based one. - (if thread-ids - `((query . ,(mapconcat (lambda (thrd) - (concat "thread:" thrd)) - thread-ids " or "))) - query) - nil))) - (cl-call-next-method engine server query groups))) - (cl-defmethod gnus-search-indexed-search-command ((engine gnus-search-notmuch) (qstring string) query &optional _groups) @@ -1721,13 +1684,14 @@ gnus-search-indexed-search-command (append (list (format "--config=%s" config-file) "search" - (if thread - "--output=threads" - "--output=files")) + "--output=files") (unless thread '("--duplicate=1")) (when limit (list (format "--limit=%d" limit))) switches - (list qstring))))) + (list (if thread + (format "thread:\"{%s}\"" + (string-replace "\"" "\"\"" qstring)) + qstring)))))) ;;; Mairix interface -- 2.30.2 --=-=-=-- From unknown Tue Aug 19 10:09:07 2025 X-Loop: help-debbugs@gnu.org Subject: bug#56442: gnus-search-run-search: Hits notmuch command line length limits Resent-From: Eric Abrahamsen Original-Sender: "Debbugs-submit" Resent-CC: bug-gnu-emacs@gnu.org Resent-Date: Sat, 09 Jul 2022 16:12:02 +0000 Resent-Message-ID: Resent-Sender: help-debbugs@gnu.org X-GNU-PR-Message: followup 56442 X-GNU-PR-Package: emacs X-GNU-PR-Keywords: To: Sean Whitton Cc: notmuch@notmuchmail.org, 56442@debbugs.gnu.org Received: via spool by 56442-submit@debbugs.gnu.org id=B56442.165738309215599 (code B ref 56442); Sat, 09 Jul 2022 16:12:02 +0000 Received: (at 56442) by debbugs.gnu.org; 9 Jul 2022 16:11:32 +0000 Received: from localhost ([127.0.0.1]:35801 helo=debbugs.gnu.org) by debbugs.gnu.org with esmtp (Exim 4.84_2) (envelope-from ) id 1oAD3L-00043X-V0 for submit@debbugs.gnu.org; Sat, 09 Jul 2022 12:11:32 -0400 Received: from mail.ericabrahamsen.net ([52.70.2.18]:60416) by debbugs.gnu.org with esmtp (Exim 4.84_2) (envelope-from ) id 1oAD3K-00043K-Hq for 56442@debbugs.gnu.org; Sat, 09 Jul 2022 12:11:31 -0400 Received: from localhost (c-71-197-232-41.hsd1.wa.comcast.net [71.197.232.41]) (Authenticated sender: eric@ericabrahamsen.net) by mail.ericabrahamsen.net (Postfix) with ESMTPSA id 51706FA0C3; Sat, 9 Jul 2022 16:11:24 +0000 (UTC) DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=ericabrahamsen.net; s=mail; t=1657383084; bh=zslbbM/yc4WBcPvKy3KB8MW5FomvNWlxtyF9wb3lw28=; h=From:To:Cc:Subject:In-Reply-To:References:Date:From; b=ZSX6N6rauG8q0Nw6O3tyht7AGWwPJmLVTrXCYdI+y9CaZZiVpJbDIIIQujQDc2cSc pQxay9lhMGlyE7dXe6eG1UGPj0MfSs9lQ5J95ViOMb8gbTuJNbVxfEWTwcHdFbwuf6 TwaPQuIeG2zHU1Gs9OhWC2A59FJuPCta75RJd8Io= From: Eric Abrahamsen In-Reply-To: <875yk850be.fsf__40907.3059143097$1657213041$gmane$org@athena.silentflame.com> (Sean Whitton's message of "Thu, 07 Jul 2022 09:56:05 -0700") References: <875yk850be.fsf__40907.3059143097$1657213041$gmane$org@athena.silentflame.com> Date: Sat, 09 Jul 2022 09:11:22 -0700 Message-ID: <87czeeuuz9.fsf@ericabrahamsen.net> User-Agent: Gnus/5.13 (Gnus v5.13) Emacs/29.0.50 (gnu/linux) MIME-Version: 1.0 Content-Type: text/plain; charset=utf-8 Content-Transfer-Encoding: quoted-printable X-Spam-Score: -2.3 (--) X-BeenThere: debbugs-submit@debbugs.gnu.org X-Mailman-Version: 2.1.18 Precedence: list List-Id: List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , Errors-To: debbugs-submit-bounces@debbugs.gnu.org Sender: "Debbugs-submit" X-Spam-Score: -3.3 (---) Sean Whitton writes: > Hello, > > I'm running a pretty innocent notmuch query over a fairly small Maildir: > > "((List:debian-devel.lists.debian.org) or ... or > (List:debian-haskell.lists.debian.org) or > (List:debconf-discuss.lists.debian.org)) and (not path:annex/**)" > > but gnus-search-run-search fails to return any results. The reason is > that Gnus first runs the query with --output=3Dthreads to obtain a list of > thread ids, and then runs another query with --output=3Dfiles and a query > constructed from the output of the first query: "thread:000000000000d9d0 > or thread:000000000000d9e0 or thread:000000000000d268 or ..." > > The resulting command fails completely: > > emacs: /usr/bin/notmuch: Argument list too long > > Instead of running two searches like this, we can just surround the > whole query like this: "thread:{QUERY}". The manual says it's exactly > equivalent: > > ... the user should think of the query thread:{} as > expanding to all of the thread IDs which match ; not=E2=80= =90 > much then performs a second search using the expanded query. > > This should be faster, too, with only running a single external command. > Here is the patch I'm thinking I'll apply, if anyone has comments. Huh, I tried this a couple months ago with a more complicated query, like: thread:{from:bob or from:jane} and I remember notmuch barking at me about spaces or the "or" or something -- anyway I got the impression that it couldn't accept multi-part queries inside the "thread:{}" syntax. But looking at your patch maybe I just needed to quote differently? Anyway I'll give this a test this weekend. It would be *very* nice if we could use this syntax rather than the ugly home-grown one. Thanks for the report! Eric From unknown Tue Aug 19 10:09:07 2025 X-Loop: help-debbugs@gnu.org Subject: bug#56442: gnus-search-run-search: Hits notmuch command line length limits Resent-From: Sean Whitton Original-Sender: "Debbugs-submit" Resent-CC: bug-gnu-emacs@gnu.org Resent-Date: Sat, 09 Jul 2022 18:02:02 +0000 Resent-Message-ID: Resent-Sender: help-debbugs@gnu.org X-GNU-PR-Message: followup 56442 X-GNU-PR-Package: emacs X-GNU-PR-Keywords: To: Eric Abrahamsen Cc: notmuch@notmuchmail.org, 56442@debbugs.gnu.org Received: via spool by 56442-submit@debbugs.gnu.org id=B56442.1657389711434 (code B ref 56442); Sat, 09 Jul 2022 18:02:02 +0000 Received: (at 56442) by debbugs.gnu.org; 9 Jul 2022 18:01:51 +0000 Received: from localhost ([127.0.0.1]:35878 helo=debbugs.gnu.org) by debbugs.gnu.org with esmtp (Exim 4.84_2) (envelope-from ) id 1oAEm7-00006l-KX for submit@debbugs.gnu.org; Sat, 09 Jul 2022 14:01:51 -0400 Received: from out5-smtp.messagingengine.com ([66.111.4.29]:38751) by debbugs.gnu.org with esmtp (Exim 4.84_2) (envelope-from ) id 1oAEm5-0008TA-NK for 56442@debbugs.gnu.org; Sat, 09 Jul 2022 14:01:50 -0400 Received: from compute4.internal (compute4.nyi.internal [10.202.2.44]) by mailout.nyi.internal (Postfix) with ESMTP id 462425C0099; Sat, 9 Jul 2022 14:01:44 -0400 (EDT) Received: from mailfrontend2 ([10.202.2.163]) by compute4.internal (MEProxy); Sat, 09 Jul 2022 14:01:44 -0400 DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=spwhitton.name; h=cc:cc:content-type:date:date:from:from:in-reply-to :in-reply-to:message-id:mime-version:references:reply-to:sender :subject:subject:to:to; s=fm2; t=1657389704; x=1657476104; bh=gq yysJ5xMb8cFNyB3Q8GFYXNmMc1IpIjs6iUW8gNnGc=; b=TSQpSTysxru1SiXdJh 1l3D1TXdLlh6Gc2VWUV24RTpvtzbTLPZhWs5BpGdUodnlk12xT8sLEHQwrcN26i3 myzOwaaX9sF30A71Zc7/h6qVgL5aypBIwwX81/2Jjoult/qdCnLqZcOs2y8aMJRV Ut4dT+4K1rR1w5l7nwh6T1nb2mnva7hKdaSd05sGC/7oc0OiBKQ7ZV5HRcKPfJdf WKIdx33dE2uaaYWyHQvoxnbr/SHrvqsyKZaYOzAKHNCXXLSj1CdjXerPHv6Uvb1c Tf+fTVQtNu6ZKWLav0pVBzgDSPaIKDqjgs5Pgrh6E2z1vdSbl7yzt4V5uHA+cT5O nAzw== DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d= messagingengine.com; h=cc:cc:content-type:date:date:feedback-id :feedback-id:from:from:in-reply-to:in-reply-to:message-id :mime-version:references:reply-to:sender:subject:subject:to:to :x-me-proxy:x-me-proxy:x-me-sender:x-me-sender:x-sasl-enc; s= fm3; t=1657389704; x=1657476104; bh=gqyysJ5xMb8cFNyB3Q8GFYXNmMc1 IpIjs6iUW8gNnGc=; b=KlPSVIcEHEz2YgsoVQ75Yjt9jyGAkle22Wf0JFopMZH4 JvCzi9aVv+YY6m691YoAPEFOe8Sgb023BzgBSV1eLzpkPtTeCH0rx8RK4QsfO6aw EX6lLNFas9lYXPcocxxd7WwSU4vrM5NpcdkmwWKo46vN+9UFWbPECAx4fNEwSlnJ HYPQ2GRKK4lOrf1YOTqAxW/l/llqbVW927g2Jldka8g+yzSnXhkY8KTTBAXk8Fqd UQhyrx4OQOPeGxcDUNQQmBgE/6bGGz1cl1/aUb22aRT10AD03JEP1xHkIwsQTDFL 4Xo3RLG5mw2pkPdIOb7PzHDgMDb5csB/xBr6spoA3A== X-ME-Sender: X-ME-Received: X-ME-Proxy-Cause: gggruggvucftvghtrhhoucdtuddrgedvfedrudeiledguddvudcutefuodetggdotefrod ftvfcurfhrohhfihhlvgemucfhrghsthforghilhdpqfgfvfdpuffrtefokffrpgfnqfgh necuuegrihhlohhuthemuceftddtnecusecvtfgvtghiphhivghnthhsucdlqddutddtmd enucfjughrpefhvfevufgjfhffkfgfgggtsehttddttddtredtnecuhfhrohhmpefuvggr nhcuhghhihhtthhonhcuoehsphifhhhithhtohhnsehsphifhhhithhtohhnrdhnrghmvg eqnecuggftrfgrthhtvghrnheptdffvdffueeluedvteekvdevhefghedvgeevgffhvedu keeggeelveegjeekteeknecuvehluhhsthgvrhfuihiivgeptdenucfrrghrrghmpehmrg hilhhfrhhomhepshhpfihhihhtthhonhesshhpfihhihhtthhonhdrnhgrmhgv X-ME-Proxy: Feedback-ID: i23c04076:Fastmail Received: by mail.messagingengine.com (Postfix) with ESMTPA; Sat, 9 Jul 2022 14:01:43 -0400 (EDT) Received: by athena.silentflame.com (Postfix, from userid 1000) id 1C1E11B58C0; Sat, 9 Jul 2022 18:01:42 +0000 (UTC) From: Sean Whitton In-Reply-To: <87czeeuuz9.fsf@ericabrahamsen.net> (Eric Abrahamsen's message of "Sat, 09 Jul 2022 09:11:22 -0700") References: <875yk850be.fsf__40907.3059143097$1657213041$gmane$org@athena.silentflame.com> <87czeeuuz9.fsf@ericabrahamsen.net> Date: Sat, 09 Jul 2022 11:01:42 -0700 Message-ID: <87bkty88s9.fsf@athena.silentflame.com> User-Agent: Gnus/5.13 (Gnus v5.13) Emacs/29.0.50 (gnu/linux) MIME-Version: 1.0 Content-Type: text/plain X-Spam-Score: -0.7 (/) X-BeenThere: debbugs-submit@debbugs.gnu.org X-Mailman-Version: 2.1.18 Precedence: list List-Id: List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , Errors-To: debbugs-submit-bounces@debbugs.gnu.org Sender: "Debbugs-submit" X-Spam-Score: -1.7 (-) Hello, On Sat 09 Jul 2022 at 09:11AM -07, Eric Abrahamsen wrote: > But looking at your patch maybe I just needed to quote differently? Right, notmuch has this unusual " -> "" quoting thing. > Anyway I'll give this a test this weekend. It would be *very* nice if > we could use this syntax rather than the ugly home-grown one. Let me know the results of your test, and if it's also continuing to work for me by then, I'll install the change. Thanks for taking a look. -- Sean Whitton From unknown Tue Aug 19 10:09:07 2025 MIME-Version: 1.0 X-Mailer: MIME-tools 5.505 (Entity 5.505) X-Loop: help-debbugs@gnu.org From: help-debbugs@gnu.org (GNU bug Tracking System) To: Sean Whitton Subject: bug#56442: closed (Re: bug#56442: gnus-search-run-search: Hits notmuch command line length limits) Message-ID: References: <87cze7ttp6.fsf@athena.silentflame.com> <875yk850be.fsf@athena.silentflame.com> X-Gnu-PR-Message: they-closed 56442 X-Gnu-PR-Package: emacs Reply-To: 56442@debbugs.gnu.org Date: Thu, 14 Jul 2022 18:51:02 +0000 Content-Type: multipart/mixed; boundary="----------=_1657824662-9563-1" This is a multi-part message in MIME format... ------------=_1657824662-9563-1 Content-Disposition: inline Content-Transfer-Encoding: quoted-printable Content-Type: text/plain; charset="utf-8" Your bug report #56442: gnus-search-run-search: Hits notmuch command line length limits which was filed against the emacs package, has been closed. The explanation is attached below, along with your original report. If you require more details, please reply to 56442@debbugs.gnu.org. --=20 56442: https://debbugs.gnu.org/cgi/bugreport.cgi?bug=3D56442 GNU Bug Tracking System Contact help-debbugs@gnu.org with problems ------------=_1657824662-9563-1 Content-Type: message/rfc822 Content-Disposition: inline Content-Transfer-Encoding: 7bit Received: (at 56442-done) by debbugs.gnu.org; 14 Jul 2022 18:50:25 +0000 Received: from localhost ([127.0.0.1]:38879 helo=debbugs.gnu.org) by debbugs.gnu.org with esmtp (Exim 4.84_2) (envelope-from ) id 1oC3uq-0002TM-VS for submit@debbugs.gnu.org; Thu, 14 Jul 2022 14:50:25 -0400 Received: from wout4-smtp.messagingengine.com ([64.147.123.20]:55139) by debbugs.gnu.org with esmtp (Exim 4.84_2) (envelope-from ) id 1oC3un-0002Sv-Fs for 56442-done@debbugs.gnu.org; Thu, 14 Jul 2022 14:50:23 -0400 Received: from compute3.internal (compute3.nyi.internal [10.202.2.43]) by mailout.west.internal (Postfix) with ESMTP id 653993200918; Thu, 14 Jul 2022 14:50:15 -0400 (EDT) Received: from mailfrontend1 ([10.202.2.162]) by compute3.internal (MEProxy); Thu, 14 Jul 2022 14:50:15 -0400 DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=spwhitton.name; h=cc:content-type:date:date:from:from:in-reply-to:in-reply-to :message-id:mime-version:references:reply-to:sender:subject :subject:to:to; s=fm2; t=1657824614; x=1657911014; bh=sJerrTJkaj Dj7HsOUfEdRtyxUrJCL/huYmTHt3GMVaE=; b=DKrCqv9yJl1cZwZ/xmUXpFEXwy HatuypMcIg/qcjnbB/oSOtB8iVPQM2e3NuslHGtiR8iJkBdnqZJcuVAG0AnvMByU CJtMZqr4t856IUecvBvszafj3C5/ieTI/rJEjmGIOyTmhpQSd2oEM+Y6Yu6csF1x Oya2Me9f/CjKRjzZ+5kDgNa5SYQ6ZbwnGZgEYQ1DKLxjRDWQL3TCrkN9z7FizAmz wv7WdYP9Ixa7rGGv7GSDQ/sgyigb+Wklax8RvMbjZsDLgW2SwKtOC7dz0wpCMTGW bWYUH9bm6jBHxOI8T342qKW7fQ2mTrnbZba1M8GWIauPvYE5xrok7vbfj2rA== DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d= messagingengine.com; h=cc:content-type:date:date:feedback-id :feedback-id:from:from:in-reply-to:in-reply-to:message-id :mime-version:references:reply-to:sender:subject:subject:to:to :x-me-proxy:x-me-proxy:x-me-sender:x-me-sender:x-sasl-enc; s= fm3; t=1657824614; x=1657911014; bh=sJerrTJkajDj7HsOUfEdRtyxUrJC L/huYmTHt3GMVaE=; b=LA+nAmplOIgyuh3qzpU9dNHMaVDEjb2TqeCqO6QRurLT anAqPElRZ7W4btsWsXoq2E/+F1x0kqC8tfavqZb40CW/n5jQCrZX9gKKX/Ks/aCc 8i72Ro4B8P/onvYYpo7b0as/uubI/G7Y5SgWuv7pdMvH7az/IwH8JG35btJ/OSf9 nzPDF/XfHSgqCSpcQ4fKVvrhUj+a8hepgNQTYSbzXoMFEiVKvSrMTCQjTNz74P3h 7v80vpehnXCxZaL8v+NLO6pNJdQXiKwDfAxLFwsDfvLFHWSTF4OOjrI/YTiu7gXQ t5vlDS0pimKKvf0oC7FCtcyvU4tHlvXv71lBZ1HGvg== X-ME-Sender: X-ME-Received: X-ME-Proxy-Cause: gggruggvucftvghtrhhoucdtuddrgedvfedrudejledgudefvdcutefuodetggdotefrod ftvfcurfhrohhfihhlvgemucfhrghsthforghilhdpqfgfvfdpuffrtefokffrpgfnqfgh necuuegrihhlohhuthemuceftddtnecusecvtfgvtghiphhivghnthhsucdlqddutddtmd enucfjughrpefhvffujghffffkfgggtgesthdttddttdertdenucfhrhhomhepufgvrghn ucghhhhithhtohhnuceoshhpfihhihhtthhonhesshhpfihhihhtthhonhdrnhgrmhgvqe enucggtffrrghtthgvrhhnpeffueettdefvddtteevgfeufeejgfegudfgfedutdegfeet keehuddvfeejjeeifeenucevlhhushhtvghrufhiiigvpedtnecurfgrrhgrmhepmhgrih hlfhhrohhmpehsphifhhhithhtohhnsehsphifhhhithhtohhnrdhnrghmvg X-ME-Proxy: Feedback-ID: i23c04076:Fastmail Received: by mail.messagingengine.com (Postfix) with ESMTPA; Thu, 14 Jul 2022 14:50:14 -0400 (EDT) Received: by athena.silentflame.com (Postfix, from userid 1000) id 12E701B5947; Thu, 14 Jul 2022 18:50:13 +0000 (UTC) From: Sean Whitton To: 56442-done@debbugs.gnu.org, Eric Abrahamsen Subject: Re: bug#56442: gnus-search-run-search: Hits notmuch command line length limits In-Reply-To: <87bkty88s9.fsf@athena.silentflame.com> (Sean Whitton's message of "Sat, 09 Jul 2022 11:01:42 -0700") References: <875yk850be.fsf__40907.3059143097$1657213041$gmane$org@athena.silentflame.com> <87czeeuuz9.fsf@ericabrahamsen.net> <87bkty88s9.fsf@athena.silentflame.com> Date: Thu, 14 Jul 2022 11:50:13 -0700 Message-ID: <87cze7ttp6.fsf@athena.silentflame.com> User-Agent: Gnus/5.13 (Gnus v5.13) Emacs/29.0.50 (gnu/linux) MIME-Version: 1.0 Content-Type: text/plain X-Spam-Score: -0.7 (/) X-Debbugs-Envelope-To: 56442-done X-BeenThere: debbugs-submit@debbugs.gnu.org X-Mailman-Version: 2.1.18 Precedence: list List-Id: List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , Errors-To: debbugs-submit-bounces@debbugs.gnu.org Sender: "Debbugs-submit" X-Spam-Score: -1.7 (-) Hello, On Sat 09 Jul 2022 at 11:01AM -07, Sean Whitton wrote: > On Sat 09 Jul 2022 at 09:11AM -07, Eric Abrahamsen wrote: > >> Anyway I'll give this a test this weekend. It would be *very* nice if >> we could use this syntax rather than the ugly home-grown one. > > Let me know the results of your test, and if it's also continuing to > work for me by then, I'll install the change. Thanks for taking a look. I've been testing it with a variety of complex queries for a week now, and you indicated you were happy with making a change like this, so I've gone ahead and pushed to master. -- Sean Whitton ------------=_1657824662-9563-1 Content-Type: message/rfc822 Content-Disposition: inline Content-Transfer-Encoding: 7bit Received: (at submit) by debbugs.gnu.org; 7 Jul 2022 16:56:20 +0000 Received: from localhost ([127.0.0.1]:57746 helo=debbugs.gnu.org) by debbugs.gnu.org with esmtp (Exim 4.84_2) (envelope-from ) id 1o9Unb-0002S5-V2 for submit@debbugs.gnu.org; Thu, 07 Jul 2022 12:56:20 -0400 Received: from lists.gnu.org ([209.51.188.17]:42762) by debbugs.gnu.org with esmtp (Exim 4.84_2) (envelope-from ) id 1o9UnW-0002Rt-C9 for submit@debbugs.gnu.org; Thu, 07 Jul 2022 12:56:18 -0400 Received: from eggs.gnu.org ([2001:470:142:3::10]:55146) by lists.gnu.org with esmtps (TLS1.2:ECDHE_RSA_AES_256_GCM_SHA384:256) (Exim 4.90_1) (envelope-from ) id 1o9UnW-0005P6-3S for bug-gnu-emacs@gnu.org; Thu, 07 Jul 2022 12:56:14 -0400 Received: from wout3-smtp.messagingengine.com ([64.147.123.19]:46581) by eggs.gnu.org with esmtps (TLS1.2:ECDHE_RSA_AES_256_GCM_SHA384:256) (Exim 4.90_1) (envelope-from ) id 1o9UnU-0003RN-3L for bug-gnu-emacs@gnu.org; Thu, 07 Jul 2022 12:56:13 -0400 Received: from compute5.internal (compute5.nyi.internal [10.202.2.45]) by mailout.west.internal (Postfix) with ESMTP id E9E553200302 for ; Thu, 7 Jul 2022 12:56:08 -0400 (EDT) Received: from mailfrontend1 ([10.202.2.162]) by compute5.internal (MEProxy); Thu, 07 Jul 2022 12:56:09 -0400 DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=spwhitton.name; h=cc:content-type:date:date:from:from:in-reply-to:message-id :mime-version:reply-to:sender:subject:subject:to:to; s=fm2; t= 1657212968; x=1657299368; bh=OxU+Ily5TkckCY4kzVnSzv4SklrY5aEasGb SUEhThfM=; b=JgleLBUhQtZYGiLCVq/a2K8uHcyRcpLm09nplOT4IzPjqbALVQc TlpLeiWlXUqRWnKnWG3mYy7pYb+ej8DrXRxkSU2lZUNtT3WL5ihkWV/evmat71IY SK4rrlDhECyUm5HGpyK93EzJpkd12eIBAST/iOca1T5CBAz0T3t5Ks+zWyfc/pnR TTrm1Q+5awXU5Zl8ynladXdFhto0J8S143ctS9rscHNrtlW6wNwUac41UQXokI4A Jx3+K4dL9gHEVnM5cZMy8vJFQMGBrhz9bnZ0JmdlmLoj8YorsS1cvli39CKwl7Ii Onvbnz0SDGiBf0VZ+zKUwixHVeEPVdicjYA== DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d= messagingengine.com; h=cc:content-type:date:date:feedback-id :feedback-id:from:from:in-reply-to:message-id:mime-version :reply-to:sender:subject:subject:to:to:x-me-proxy:x-me-proxy :x-me-sender:x-me-sender:x-sasl-enc; s=fm3; t=1657212968; x= 1657299368; bh=OxU+Ily5TkckCY4kzVnSzv4SklrY5aEasGbSUEhThfM=; b=U nQT3JdKFr3GEq3iEodCwo7GbtiySEvoOcYQEQg8+f2BEOdONXgc5RI37JKEHMxEp IE/eTbGJ/0Zsfqo1JzhgApC9FVgNUVC8lCVEg64RaHfZ/zLi/g8RdayZ+Jrwt6vI aYnEkYqHWBw/BnUs0b5hPPxRWZd3U3rv00YJh9Ry6IffktdhYYEtVH1IsMZH/4H6 NIo5UAZaEdkPSjc0SvSka2mEVwJ91d/msivTP+TTglY2mscEhBsl/kspweno5CHn aaiUdo091XVauMcmOCcqzUXdae37wFILfMP2HeadCRyPbHiDxeu01cfzeIiMHfSG c/77GRTMAiynreYptdwOQ== X-ME-Sender: X-ME-Received: X-ME-Proxy-Cause: gggruggvucftvghtrhhoucdtuddrgedvfedrudeihedguddthecutefuodetggdotefrod ftvfcurfhrohhfihhlvgemucfhrghsthforghilhdpqfgfvfdpuffrtefokffrpgfnqfgh necuuegrihhlohhuthemuceftddtnecunecujfgurhephffvufffkfgfgggtsehmtddtre dtreejnecuhfhrohhmpefuvggrnhcuhghhihhtthhonhcuoehsphifhhhithhtohhnsehs phifhhhithhtohhnrdhnrghmvgeqnecuggftrfgrthhtvghrnhepveeiheehuedtveehge dvfffgkeffuedtffevvefgtddugeehjedvteejteefffegnecuffhomhgrihhnpeguvggs ihgrnhdrohhrghenucevlhhushhtvghrufhiiigvpedtnecurfgrrhgrmhepmhgrihhlfh hrohhmpehsphifhhhithhtohhnsehsphifhhhithhtohhnrdhnrghmvg X-ME-Proxy: Feedback-ID: i23c04076:Fastmail Received: by mail.messagingengine.com (Postfix) with ESMTPA for ; Thu, 7 Jul 2022 12:56:08 -0400 (EDT) Received: by athena.silentflame.com (Postfix, from userid 1000) id E68C61B5A61; Thu, 7 Jul 2022 16:56:05 +0000 (UTC) From: Sean Whitton To: bug-gnu-emacs@gnu.org Subject: gnus-search-run-search: Hits notmuch command line length limits X-debbugs-cc: notmuch@notmuchmail.org, Eric Abrahamsen Date: Thu, 07 Jul 2022 09:56:05 -0700 Message-ID: <875yk850be.fsf@athena.silentflame.com> User-Agent: Gnus/5.13 (Gnus v5.13) Emacs/29.0.50 (gnu/linux) MIME-Version: 1.0 Content-Type: multipart/mixed; boundary="=-=-=" Received-SPF: pass client-ip=64.147.123.19; envelope-from=spwhitton@spwhitton.name; helo=wout3-smtp.messagingengine.com X-Spam_score_int: -27 X-Spam_score: -2.8 X-Spam_bar: -- X-Spam_report: (-2.8 / 5.0 requ) BAYES_00=-1.9, DKIM_SIGNED=0.1, DKIM_VALID=-0.1, DKIM_VALID_AU=-0.1, DKIM_VALID_EF=-0.1, RCVD_IN_DNSWL_LOW=-0.7, SPF_HELO_PASS=-0.001, SPF_PASS=-0.001, T_SCC_BODY_TEXT_LINE=-0.01 autolearn=ham autolearn_force=no X-Spam_action: no action X-Spam-Score: -2.3 (--) X-Debbugs-Envelope-To: submit X-BeenThere: debbugs-submit@debbugs.gnu.org X-Mailman-Version: 2.1.18 Precedence: list List-Id: List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , Errors-To: debbugs-submit-bounces@debbugs.gnu.org Sender: "Debbugs-submit" X-Spam-Score: -2.7 (--) --=-=-= Content-Type: text/plain; charset=utf-8 Content-Transfer-Encoding: quoted-printable Hello, I'm running a pretty innocent notmuch query over a fairly small Maildir: "((List:debian-devel.lists.debian.org) or ... or (List:debian-haskell.lists.debian.org) or (List:debconf-discuss.lists.debian.org)) and (not path:annex/**)" but gnus-search-run-search fails to return any results. The reason is that Gnus first runs the query with --output=3Dthreads to obtain a list of thread ids, and then runs another query with --output=3Dfiles and a query constructed from the output of the first query: "thread:000000000000d9d0 or thread:000000000000d9e0 or thread:000000000000d268 or ..." The resulting command fails completely: emacs: /usr/bin/notmuch: Argument list too long Instead of running two searches like this, we can just surround the whole query like this: "thread:{QUERY}". The manual says it's exactly equivalent: ... the user should think of the query thread:{} as expanding to all of the thread IDs which match ; not=E2=80=90 much then performs a second search using the expanded query. This should be faster, too, with only running a single external command. Here is the patch I'm thinking I'll apply, if anyone has comments. --=20 Sean Whitton --=-=-= Content-Type: text/x-diff Content-Disposition: attachment; filename=0001-Use-notmuch-thread-operator-instead-of-performing-tw.patch >From d62398cc27abd317d31d8f07e151a82081444217 Mon Sep 17 00:00:00 2001 From: Sean Whitton Date: Thu, 7 Jul 2022 09:34:04 -0700 Subject: [PATCH] Use notmuch thread:{} operator instead of performing two searches This also avoids some command line length limit problems. * gnus-search.el (gnus-search-run-search (engine gnus-search-notmuch)): Delete method. (gnus-search-indexed-search-command (engine gnus-search-notmuch)): When searching for threads, wrap whole query in thread:{} operator. Always use --output=files, never --output=threads. --- lisp/gnus/gnus-search.el | 46 +++++----------------------------------- 1 file changed, 5 insertions(+), 41 deletions(-) diff --git a/lisp/gnus/gnus-search.el b/lisp/gnus/gnus-search.el index 369df81d9b..53b6d1b4c6 100644 --- a/lisp/gnus/gnus-search.el +++ b/lisp/gnus/gnus-search.el @@ -1672,43 +1672,6 @@ gnus-search-transform-expression (format "date:%s.." (notmuch-date (cdr expr)))) (t (ignore-errors (cl-call-next-method)))))) -(cl-defmethod gnus-search-run-search :around ((engine gnus-search-notmuch) - server query groups) - "Handle notmuch's thread-search routine." - ;; Notmuch allows for searching threads, but only using its own - ;; thread ids. That means a thread search is a \"double-bounce\": - ;; once to find the relevant thread ids, and again to find the - ;; actual messages. This method performs the first \"bounce\". - (if (alist-get 'thread query) - (with-slots (program proc-buffer) engine - (let* ((qstring - (gnus-search-make-query-string engine query)) - (cp-list (gnus-search-indexed-search-command - engine qstring query groups)) - thread-ids proc) - (with-current-buffer proc-buffer - (erase-buffer) - (setq proc (apply #'start-process (format "search-%s" server) - proc-buffer program cp-list)) - (while (process-live-p proc) - (accept-process-output proc)) - (goto-char (point-min)) - (while (re-search-forward - "^thread:\\([^[:space:]\n]+\\)" - (point-max) t) - (cl-pushnew (match-string 1) thread-ids :test #'equal))) - (cl-call-next-method - engine server - ;; If we found threads, completely replace the query with - ;; our new thread-based one. - (if thread-ids - `((query . ,(mapconcat (lambda (thrd) - (concat "thread:" thrd)) - thread-ids " or "))) - query) - nil))) - (cl-call-next-method engine server query groups))) - (cl-defmethod gnus-search-indexed-search-command ((engine gnus-search-notmuch) (qstring string) query &optional _groups) @@ -1721,13 +1684,14 @@ gnus-search-indexed-search-command (append (list (format "--config=%s" config-file) "search" - (if thread - "--output=threads" - "--output=files")) + "--output=files") (unless thread '("--duplicate=1")) (when limit (list (format "--limit=%d" limit))) switches - (list qstring))))) + (list (if thread + (format "thread:\"{%s}\"" + (string-replace "\"" "\"\"" qstring)) + qstring)))))) ;;; Mairix interface -- 2.30.2 --=-=-=-- ------------=_1657824662-9563-1-- From unknown Tue Aug 19 10:09:07 2025 X-Loop: help-debbugs@gnu.org Subject: bug#56442: gnus-search-run-search: Hits notmuch command line length limits Resent-From: Eric Abrahamsen Original-Sender: "Debbugs-submit" Resent-CC: bug-gnu-emacs@gnu.org Resent-Date: Thu, 14 Jul 2022 22:12:02 +0000 Resent-Message-ID: Resent-Sender: help-debbugs@gnu.org X-GNU-PR-Message: followup 56442 X-GNU-PR-Package: emacs X-GNU-PR-Keywords: To: Sean Whitton Cc: 56442-done@debbugs.gnu.org Received: via spool by 56442-done@debbugs.gnu.org id=D56442.165783667629640 (code D ref 56442); Thu, 14 Jul 2022 22:12:02 +0000 Received: (at 56442-done) by debbugs.gnu.org; 14 Jul 2022 22:11:16 +0000 Received: from localhost ([127.0.0.1]:39040 helo=debbugs.gnu.org) by debbugs.gnu.org with esmtp (Exim 4.84_2) (envelope-from ) id 1oC73D-0007i0-UR for submit@debbugs.gnu.org; Thu, 14 Jul 2022 18:11:16 -0400 Received: from mail.ericabrahamsen.net ([52.70.2.18]:59078) by debbugs.gnu.org with esmtp (Exim 4.84_2) (envelope-from ) id 1oC738-0007hk-UM for 56442-done@debbugs.gnu.org; Thu, 14 Jul 2022 18:11:14 -0400 Received: from localhost (c-71-197-232-41.hsd1.wa.comcast.net [71.197.232.41]) (Authenticated sender: eric@ericabrahamsen.net) by mail.ericabrahamsen.net (Postfix) with ESMTPSA id 13247FA011; Thu, 14 Jul 2022 22:11:03 +0000 (UTC) DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=ericabrahamsen.net; s=mail; t=1657836665; bh=ghG6MnZzXUYYTgpBllblehBA99FEAU7sAqsQ1hO4g+Q=; h=From:To:Cc:Subject:In-Reply-To:References:Date:From; b=lk0vyxdSReyFxxVaFZIlm44kRl6xi6xQz7bJcm9zO0ijyaqkVmnaH0obEHwmQa3fP OJaTABnme5DSfxiHC8EwLNuU8uH7ADfwYf9DAPxIU8EpKessAUngfBwfTKY3jGwcve oRjAaepSooLF7t0EEL4z1obhlHOyjhlkvk29X5kU= From: Eric Abrahamsen In-Reply-To: <87cze7ttp6.fsf@athena.silentflame.com> (Sean Whitton's message of "Thu, 14 Jul 2022 11:50:13 -0700") References: <875yk850be.fsf__40907.3059143097$1657213041$gmane$org@athena.silentflame.com> <87czeeuuz9.fsf@ericabrahamsen.net> <87bkty88s9.fsf@athena.silentflame.com> <87cze7ttp6.fsf@athena.silentflame.com> Date: Thu, 14 Jul 2022 15:11:02 -0700 Message-ID: <87r12nbb0p.fsf@ericabrahamsen.net> User-Agent: Gnus/5.13 (Gnus v5.13) Emacs/29.0.50 (gnu/linux) MIME-Version: 1.0 Content-Type: text/plain X-Spam-Score: -2.3 (--) X-BeenThere: debbugs-submit@debbugs.gnu.org X-Mailman-Version: 2.1.18 Precedence: list List-Id: List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , Errors-To: debbugs-submit-bounces@debbugs.gnu.org Sender: "Debbugs-submit" X-Spam-Score: -3.3 (---) On 07/14/22 11:50 AM, Sean Whitton wrote: > Hello, > > On Sat 09 Jul 2022 at 11:01AM -07, Sean Whitton wrote: > >> On Sat 09 Jul 2022 at 09:11AM -07, Eric Abrahamsen wrote: >> >>> Anyway I'll give this a test this weekend. It would be *very* nice if >>> we could use this syntax rather than the ugly home-grown one. >> >> Let me know the results of your test, and if it's also continuing to >> work for me by then, I'll install the change. Thanks for taking a look. > > I've been testing it with a variety of complex queries for a week now, > and you indicated you were happy with making a change like this, so I've > gone ahead and pushed to master. Sounds good, thanks!