sqlite3: Fix documentation errors concerning Cursor.rowcount

Closes #13995.
This commit is contained in:
Petri Lehtinen 2012-02-16 21:39:03 +02:00
parent f670ca5e70
commit b3890226b3
3 changed files with 8 additions and 10 deletions

View File

@ -17,5 +17,4 @@ con.executemany("insert into person(firstname, lastname) values (?, ?)", persons
for row in con.execute("select firstname, lastname from person"):
print(row)
# Using a dummy WHERE clause to not let SQLite take the shortcut table deletes.
print("I just deleted", con.execute("delete from person where 1=1").rowcount, "rows")
print("I just deleted", con.execute("delete from person").rowcount, "rows")

View File

@ -543,18 +543,17 @@ Cursor Objects
attribute, the database engine's own support for the determination of "rows
affected"/"rows selected" is quirky.
For ``DELETE`` statements, SQLite reports :attr:`rowcount` as 0 if you make a
``DELETE FROM table`` without any condition.
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".
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.
This includes ``SELECT`` statements because we cannot determine the number of
rows a query produced until all rows were fetched.
With SQLite versions before 3.6.5, :attr:`rowcount` is set to 0 if
you make a ``DELETE FROM table`` without any condition.
.. attribute:: Cursor.lastrowid

View File

@ -528,8 +528,8 @@ Extension Modules
Documentation
-------------
- Issue #13491: Fix many errors in sqlite3 documentation. Initial
patch by Johannes Vogel.
- Issues #13491 and #13995: Fix many errors in sqlite3 documentation.
Initial patch for #13491 by Johannes Vogel.
- Issue #13402: Document absoluteness of sys.executable.