From mboxrd@z Thu Jan 1 00:00:00 1970 Path: news.gmane.io!.POSTED.blaine.gmane.org!not-for-mail From: Helmut Eller Newsgroups: gmane.emacs.bugs Subject: bug#61151: 30.0.50; sqlite-more-p is confusing Date: Sun, 29 Jan 2023 19:20:30 +0100 Message-ID: References: <83mt61747b.fsf@gnu.org> <83edrd70dc.fsf@gnu.org> Mime-Version: 1.0 Content-Type: text/plain Injection-Info: ciao.gmane.io; posting-host="blaine.gmane.org:116.202.254.214"; logging-data="37862"; mail-complaints-to="usenet@ciao.gmane.io" User-Agent: Gnus/5.13 (Gnus v5.13) Cc: 61151@debbugs.gnu.org To: Eli Zaretskii Original-X-From: bug-gnu-emacs-bounces+geb-bug-gnu-emacs=m.gmane-mx.org@gnu.org Sun Jan 29 19:21:17 2023 Return-path: Envelope-to: geb-bug-gnu-emacs@m.gmane-mx.org Original-Received: from lists.gnu.org ([209.51.188.17]) by ciao.gmane.io with esmtps (TLS1.2:ECDHE_RSA_AES_256_GCM_SHA384:256) (Exim 4.92) (envelope-from ) id 1pMCIm-0009cI-Gd for geb-bug-gnu-emacs@m.gmane-mx.org; Sun, 29 Jan 2023 19:21:16 +0100 Original-Received: from localhost ([::1] helo=lists1p.gnu.org) by lists.gnu.org with esmtp (Exim 4.90_1) (envelope-from ) id 1pMCIb-0003Jl-44; Sun, 29 Jan 2023 13:21:05 -0500 Original-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 1pMCIZ-0003Ir-KI for bug-gnu-emacs@gnu.org; Sun, 29 Jan 2023 13:21:03 -0500 Original-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 1pMCIZ-0005Hg-44 for bug-gnu-emacs@gnu.org; Sun, 29 Jan 2023 13:21:03 -0500 Original-Received: from Debian-debbugs by debbugs.gnu.org with local (Exim 4.84_2) (envelope-from ) id 1pMCIY-0006Vm-F2 for bug-gnu-emacs@gnu.org; Sun, 29 Jan 2023 13:21:02 -0500 X-Loop: help-debbugs@gnu.org Resent-From: Helmut Eller Original-Sender: "Debbugs-submit" Resent-CC: bug-gnu-emacs@gnu.org Resent-Date: Sun, 29 Jan 2023 18:21:02 +0000 Resent-Message-ID: Resent-Sender: help-debbugs@gnu.org X-GNU-PR-Message: followup 61151 X-GNU-PR-Package: emacs Original-Received: via spool by 61151-submit@debbugs.gnu.org id=B61151.167501644024976 (code B ref 61151); Sun, 29 Jan 2023 18:21:02 +0000 Original-Received: (at 61151) by debbugs.gnu.org; 29 Jan 2023 18:20:40 +0000 Original-Received: from localhost ([127.0.0.1]:45361 helo=debbugs.gnu.org) by debbugs.gnu.org with esmtp (Exim 4.84_2) (envelope-from ) id 1pMCIC-0006Um-Dv for submit@debbugs.gnu.org; Sun, 29 Jan 2023 13:20:40 -0500 Original-Received: from mail-wm1-f43.google.com ([209.85.128.43]:46723) by debbugs.gnu.org with esmtp (Exim 4.84_2) (envelope-from ) id 1pMCIA-0006UW-BF for 61151@debbugs.gnu.org; Sun, 29 Jan 2023 13:20:38 -0500 Original-Received: by mail-wm1-f43.google.com with SMTP id m5-20020a05600c4f4500b003db03b2559eso6744003wmq.5 for <61151@debbugs.gnu.org>; Sun, 29 Jan 2023 10:20:38 -0800 (PST) DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=gmail.com; s=20210112; h=mime-version:user-agent:message-id:date:references:in-reply-to :subject:cc:to:from:from:to:cc:subject:date:message-id:reply-to; bh=/1OmrTXNLEqPvEEnWfQyZBE0Emv9EmDWPRnClii/3cU=; b=Ku6zpZz48hDU4Ob3yysc19yLxNZLhOggDpMTB/rrGoiHswWOeObJr/smogmWVD96bd oniEg5ddW1pX4tP8ImAqbTPqqKOiQo+FKBDjum7tbqJHt8U2jqcs43vfYrsXUcTcGBcv Io4PRGUOCkEC8mCBunmbyk1+xNfjfmB3+n7dK/UmEKocwXkOTlqCoEMycKIH5ThrPD8I QuidqsY7y/aelJaZyCYD5qTDvIja4gMHyT2JokDFe6PEG1Saz7CI9n/qJMnNvb82mqMi /W8OeSDN1XYBX9bWGxuo0Bn2SnUsIxNLsZCVaTph1DQnnMaXpvy34GcaMj+X0SrYxXts 761w== X-Google-DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=1e100.net; s=20210112; h=mime-version:user-agent:message-id:date:references:in-reply-to :subject:cc:to:from:x-gm-message-state:from:to:cc:subject:date :message-id:reply-to; bh=/1OmrTXNLEqPvEEnWfQyZBE0Emv9EmDWPRnClii/3cU=; b=d3DwFc0MutVRiygYB1I/GN93uZymGs3RZ+L2YP4Ym+Z4peFH243xqAnxpoSM4B/0OB VyZn/MVQojT1w0xhJ5wu8laRER0ba43on+vG8bW0MTq7L3QzCmJVpNl1GXS6q1la2HIk fC65vx6rU7v/N8LWN3KnSgECXmUb4ofWZDiQrrGCGSs9UkDQ3ZtZWc/nR98ny9MT8eB8 207Dz5KGrC7QoUa2y7jvp1yDu/Ou9hMWaQ0e87YPWjht7LRQoUiV4JwScLaLS32bXJXJ mnfugAMvHFlxDJvVI6U/U6rP9qEaBld4nk6SdOMn5qLdT5zUHZib2zJEfrCUq3u74EqV YGWg== X-Gm-Message-State: AFqh2ko0cqOks4p8sNnc/f/cP9M4+ZdT3K2+jzkOTnwA/LK3F+r+phh7 0oOhzOKptXcXCl35GyjNW4b38M12/NI= X-Google-Smtp-Source: AMrXdXu7orPdVM7W2WI5S9eOJwJ45sB42SrmwGPEu9cmVvQJbJi1a2yzOSwPaEh/4N98VqKzm16oVA== X-Received: by 2002:a05:600c:3b1b:b0:3da:11d7:dba3 with SMTP id m27-20020a05600c3b1b00b003da11d7dba3mr45598773wms.5.1675016432328; Sun, 29 Jan 2023 10:20:32 -0800 (PST) Original-Received: from caladan ([185.127.214.178]) by smtp.gmail.com with ESMTPSA id n23-20020a05600c3b9700b003dab77aa911sm16281668wms.23.2023.01.29.10.20.31 (version=TLS1_3 cipher=TLS_AES_256_GCM_SHA384 bits=256/256); Sun, 29 Jan 2023 10:20:31 -0800 (PST) In-Reply-To: <83edrd70dc.fsf@gnu.org> (Eli Zaretskii's message of "Sun, 29 Jan 2023 18:48:31 +0200") X-BeenThere: debbugs-submit@debbugs.gnu.org X-Mailman-Version: 2.1.18 Precedence: list X-BeenThere: bug-gnu-emacs@gnu.org List-Id: "Bug reports for GNU Emacs, the Swiss army knife of text editors" List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , Errors-To: bug-gnu-emacs-bounces+geb-bug-gnu-emacs=m.gmane-mx.org@gnu.org Original-Sender: bug-gnu-emacs-bounces+geb-bug-gnu-emacs=m.gmane-mx.org@gnu.org Xref: news.gmane.io gmane.emacs.bugs:254373 Archived-At: On Sun, Jan 29 2023, Eli Zaretskii wrote: >> However, sqlite-next seems to return nil once, but then it starts over. > > This should be easy to fix. The documentation[1] also says: SQLITE_DONE means that the statement has finished executing successfully. sqlite3_step() should not be called again on this virtual machine without first calling sqlite3_reset() to reset the virtual machine back to its initial state. So this would seems like prudent fix. >> In summary, I think that sqlite-next should signal and error instead of >> returning nil. > > I think we can only signal an error if sqlite-next is called again > after it returned nil, otherwise it is not justified. But I'm not an > expert on databases, so maybe I'm missing something. > >> And sqlite-more-p should be used to detect the end of >> the stream. > > I don't think it's possible without trying to read. If we don't change the way the API works, then maybe the documentation should mention that the proper way to iterate over the results is a bit unusual. E.g.: (let* ((db (sqlite-open)) (stmt (sqlite-select db "values ('a',0), ('b',1)" nil 'set)) (rows '()) row) (while (progn (setq row (sqlite-next stmt)) (sqlite-more-p stmt)) (push row rows)) rows) And perhaps provide a function like sqlite-for-each that hides this peculiarity. Helmut [1] https://sqlite.org/c3ref/step.html