diff --git a/pep-0249.txt b/pep-0249.txt index e9bdd3742..12ecb3621 100644 --- a/pep-0249.txt +++ b/pep-0249.txt @@ -287,7 +287,7 @@ Cursor Objects This read-only attribute specifies the number of rows that the last .execute*() produced (for DQL statements like 'select') or affected (for DML statements like 'update' or - 'insert'). + 'insert'). [9] The attribute is -1 in case no .execute*() has been performed on the cursor or the rowcount of the last @@ -1127,6 +1127,20 @@ Footnotes implement the tp_iter slot on the cursor object instead of the .__iter__() method. + [9] The term "number of affected rows" generally refers to the + number of rows deleted, updated or inserted by the last + statement run on the database cursor. Most databases will + return the total number of rows that were found by the + corresponding WHERE clause of the statement. Some databases + use a different interpretation for UPDATEs and only return the + number of rows that were changed by the UPDATE, even though + the WHERE clause of the statement may have found more matching + rows. Database module authors should try to implement the more + common interpretation of returning the total number of rows + found by the WHERE clause, or clearly document a different + interpretation of the rowcount attribute. + + Acknowledgements Many thanks go to Andrew Kuchling who converted the Python