Skip to content

Commit

Permalink
gh-93925: Improve clarity of sqlite3 commit/rollback, and close docs (#…
Browse files Browse the repository at this point in the history
…93926)

Co-authored-by: CAM Gerlach <CAM.Gerlach@Gerlach.CAM>
  • Loading branch information
Erlend Egeberg Aasland and CAM-Gerlach authored Jun 19, 2022
1 parent 62363bf commit 6446592
Show file tree
Hide file tree
Showing 3 changed files with 30 additions and 19 deletions.
17 changes: 8 additions & 9 deletions Doc/library/sqlite3.rst
Original file line number Diff line number Diff line change
Expand Up @@ -423,21 +423,20 @@ Connection Objects

.. method:: commit()

This method commits the current transaction. If you don't call this method,
anything you did since the last call to ``commit()`` is not visible from
other database connections. If you wonder why you don't see the data you've
written to the database, please check you didn't forget to call this method.
Commit any pending transaction to the database.
If there is no open transaction, this method is a no-op.

.. method:: rollback()

This method rolls back any changes to the database since the last call to
:meth:`commit`.
Roll back to the start of any pending transaction.
If there is no open transaction, this method is a no-op.

.. method:: close()

This closes the database connection. Note that this does not automatically
call :meth:`commit`. If you just close your database connection without
calling :meth:`commit` first, your changes will be lost!
Close the database connection.
Any pending transaction is not committed implicitly;
make sure to :meth:`commit` before closing
to avoid losing pending changes.

.. method:: execute(sql[, parameters])

Expand Down
14 changes: 10 additions & 4 deletions Modules/_sqlite/clinic/connection.c.h

Some generated files are not rendered by default. Learn more about how customized files appear on GitHub.

18 changes: 12 additions & 6 deletions Modules/_sqlite/connection.c
Original file line number Diff line number Diff line change
Expand Up @@ -470,12 +470,14 @@ blobopen_impl(pysqlite_Connection *self, const char *table, const char *col,
/*[clinic input]
_sqlite3.Connection.close as pysqlite_connection_close
Closes the connection.
Close the database connection.
Any pending transaction is not committed implicitly.
[clinic start generated code]*/

static PyObject *
pysqlite_connection_close_impl(pysqlite_Connection *self)
/*[clinic end generated code: output=a546a0da212c9b97 input=3d58064bbffaa3d3]*/
/*[clinic end generated code: output=a546a0da212c9b97 input=b3ed5b74f6fefc06]*/
{
if (!pysqlite_check_thread(self)) {
return NULL;
Expand Down Expand Up @@ -522,12 +524,14 @@ int pysqlite_check_connection(pysqlite_Connection* con)
/*[clinic input]
_sqlite3.Connection.commit as pysqlite_connection_commit
Commit the current transaction.
Commit any pending transaction to the database.
If there is no open transaction, this method is a no-op.
[clinic start generated code]*/

static PyObject *
pysqlite_connection_commit_impl(pysqlite_Connection *self)
/*[clinic end generated code: output=3da45579e89407f2 input=39c12c04dda276a8]*/
/*[clinic end generated code: output=3da45579e89407f2 input=c8793c97c3446065]*/
{
if (!pysqlite_check_thread(self) || !pysqlite_check_connection(self)) {
return NULL;
Expand Down Expand Up @@ -557,12 +561,14 @@ pysqlite_connection_commit_impl(pysqlite_Connection *self)
/*[clinic input]
_sqlite3.Connection.rollback as pysqlite_connection_rollback
Roll back the current transaction.
Roll back to the start of any pending transaction.
If there is no open transaction, this method is a no-op.
[clinic start generated code]*/

static PyObject *
pysqlite_connection_rollback_impl(pysqlite_Connection *self)
/*[clinic end generated code: output=b66fa0d43e7ef305 input=12d4e8d068942830]*/
/*[clinic end generated code: output=b66fa0d43e7ef305 input=7f60a2f1076f16b3]*/
{
if (!pysqlite_check_thread(self) || !pysqlite_check_connection(self)) {
return NULL;
Expand Down

0 comments on commit 6446592

Please sign in to comment.