gh-81040: Improve sqlite3.Cursor.rowcount docs (GH-94940)

(cherry picked from commit f9b3706df6)

Co-authored-by: Erlend Egeberg Aasland <erlend.aasland@protonmail.com>
This commit is contained in:
Miss Islington (bot) 2022-07-22 00:43:12 -07:00 committed by GitHub
parent a61aa52965
commit 12b56e4b78
No known key found for this signature in database
GPG key ID: 4AEE18F83AFDEB23

View file

@ -956,18 +956,11 @@ Cursor Objects
.. attribute:: rowcount
Although the :class:`Cursor` class of the :mod:`sqlite3` module implements this
attribute, the database engine's own support for the determination of "rows
affected"/"rows selected" is quirky.
For :meth:`executemany` statements, the number of modifications are summed up
into :attr:`rowcount`.
As required by the Python DB API Spec, the :attr:`rowcount` attribute "is -1 in
case no ``executeXX()`` has been performed on the cursor or the rowcount of the
last operation is not determinable by the interface". This includes ``SELECT``
statements because we cannot determine the number of rows a query produced
until all rows were fetched.
Read-only attribute that provides the number of modified rows for
``INSERT``, ``UPDATE``, ``DELETE``, and ``REPLACE`` statements;
is ``-1`` for other statements,
including :abbr:`CTE (Common Table Expression)` queries.
It is only updated by the :meth:`execute` and :meth:`executemany` methods.
.. attribute:: lastrowid