summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorMiss Islington (bot) <31488909+miss-islington@users.noreply.github.com>2021-10-28 12:57:35 -0700
committerGitHub <noreply@github.com>2021-10-28 21:57:35 +0200
commit020aa06ec8b0f473a682f4ae74af5833035b054b (patch)
treed345bd3b50b2755f0b02d7b78d7074118c57328f
parent193504acf3bfb7cff1edf7f568c2405b857fa1f7 (diff)
downloadcpython-git-020aa06ec8b0f473a682f4ae74af5833035b054b.tar.gz
bpo-45608: Document missing `sqlite3` DB-API attributes and methods (GH-29219) (GH-29282)
(cherry picked from commit 88d8a1a340fb09c54d47f354f5fd7d4fbc5f0c78) Co-authored-by: Erlend Egeberg Aasland <erlend.aasland@innova.no>
-rw-r--r--Doc/library/sqlite3.rst46
1 files changed, 46 insertions, 0 deletions
diff --git a/Doc/library/sqlite3.rst b/Doc/library/sqlite3.rst
index aeedcbeffc..b9436daaeb 100644
--- a/Doc/library/sqlite3.rst
+++ b/Doc/library/sqlite3.rst
@@ -116,6 +116,24 @@ Module functions and constants
------------------------------
+.. data:: apilevel
+
+ String constant stating the supported DB-API level. Required by the DB-API.
+ Hard-coded to ``"2.0"``.
+
+.. data:: paramstyle
+
+ String constant stating the type of parameter marker formatting expected by
+ the :mod:`sqlite3` module. Required by the DB-API. Hard-coded to
+ ``"qmark"``.
+
+ .. note::
+
+ The :mod:`sqlite3` module supports both ``qmark`` and ``numeric`` DB-API
+ parameter styles, because that is what the underlying SQLite library
+ supports. However, the DB-API does not allow multiple values for
+ the ``paramstyle`` attribute.
+
.. data:: version
The version number of this module, as a string. This is not the version of
@@ -138,6 +156,26 @@ Module functions and constants
The version number of the run-time SQLite library, as a tuple of integers.
+.. data:: threadsafety
+
+ Integer constant required by the DB-API, stating the level of thread safety
+ the :mod:`sqlite3` module supports. Currently hard-coded to ``1``, meaning
+ *"Threads may share the module, but not connections."* However, this may not
+ always be true. You can check the underlying SQLite library's compile-time
+ threaded mode using the following query::
+
+ import sqlite3
+ con = sqlite3.connect(":memory:")
+ con.execute("""
+ select * from pragma_compile_options
+ where compile_options like 'THREADSAFE=%'
+ """).fetchall()
+
+ Note that the `SQLITE_THREADSAFE levels
+ <https://sqlite.org/compile.html#threadsafe>`_ do not match the DB-API 2.0
+ ``threadsafety`` levels.
+
+
.. data:: PARSE_DECLTYPES
This constant is meant to be used with the *detect_types* parameter of the
@@ -688,6 +726,14 @@ Cursor Objects
The cursor will be unusable from this point forward; a :exc:`ProgrammingError`
exception will be raised if any operation is attempted with the cursor.
+ .. method:: setinputsizes(sizes)
+
+ Required by the DB-API. Is a no-op in :mod:`sqlite3`.
+
+ .. method:: setoutputsize(size [, column])
+
+ Required by the DB-API. Is a no-op in :mod:`sqlite3`.
+
.. attribute:: rowcount
Although the :class:`Cursor` class of the :mod:`sqlite3` module implements this