]> git.ipfire.org Git - thirdparty/Python/cpython.git/commitdiff
[3.10] gh-95273: Improve sqlite3.complete_statement docs (GH-95840) (#95918)
authorErlend E. Aasland <erlend.aasland@protonmail.com>
Fri, 12 Aug 2022 07:37:45 +0000 (09:37 +0200)
committerGitHub <noreply@github.com>
Fri, 12 Aug 2022 07:37:45 +0000 (09:37 +0200)
Co-authored-by: Ezio Melotti <ezio.melotti@gmail.com>
Co-authored-by: CAM Gerlach <CAM.Gerlach@Gerlach.CAM>.
(cherry picked from commit e6623e7083ce08a247e5df169bcc749f99327823)

Co-authored-by: Erlend E. Aasland <erlend.aasland@protonmail.com>
Doc/includes/sqlite3/complete_statement.py [deleted file]
Doc/library/sqlite3.rst

diff --git a/Doc/includes/sqlite3/complete_statement.py b/Doc/includes/sqlite3/complete_statement.py
deleted file mode 100644 (file)
index cd38d73..0000000
+++ /dev/null
@@ -1,30 +0,0 @@
-# A minimal SQLite shell for experiments
-
-import sqlite3
-
-con = sqlite3.connect(":memory:")
-con.isolation_level = None
-cur = con.cursor()
-
-buffer = ""
-
-print("Enter your SQL commands to execute in sqlite3.")
-print("Enter a blank line to exit.")
-
-while True:
-    line = input()
-    if line == "":
-        break
-    buffer += line
-    if sqlite3.complete_statement(buffer):
-        try:
-            buffer = buffer.strip()
-            cur.execute(buffer)
-
-            if buffer.lstrip().upper().startswith("SELECT"):
-                print(cur.fetchall())
-        except sqlite3.Error as e:
-            print("An error occurred:", e.args[0])
-        buffer = ""
-
-con.close()
index 219c41e2b1975b02381019fefa2caf71a9b9e235..ff90feb471c3c3d051cd647cd5f4ef3168fc513d 100644 (file)
@@ -222,14 +222,22 @@ Module functions
 
 .. function:: complete_statement(statement)
 
-   Returns ``True`` if the string *statement* contains one or more complete SQL
-   statements terminated by semicolons. It does not verify that the SQL is
-   syntactically correct, only that there are no unclosed string literals and the
-   statement is terminated by a semicolon.
-
-   This can be used to build a shell for SQLite, as in the following example:
-
-   .. literalinclude:: ../includes/sqlite3/complete_statement.py
+   Return ``True`` if the string *statement* appears to contain
+   one or more complete SQL statements.
+   No syntactic verification or parsing of any kind is performed,
+   other than checking that there are no unclosed string literals
+   and the statement is terminated by a semicolon.
+
+   For example::
+
+      >>> sqlite3.complete_statement("SELECT foo FROM bar;")
+      True
+      >>> sqlite3.complete_statement("SELECT foo")
+      False
+
+   This function may be useful during command-line input
+   to determine if the entered text seems to form a complete SQL statement,
+   or if additional input is needed before calling :meth:`~Cursor.execute`.
 
 .. function:: enable_callback_tracebacks(flag, /)