database/close: remove misleading code / comment

Unfortunately, it doesn't make a difference if we call
cancel_transaction or not, all uncommited changes are discarded if
there is an open (unflushed) transaction.
This commit is contained in:
David Bremner 2021-05-18 08:03:22 -03:00
parent 49893c2c61
commit 65f923219e

View file

@ -502,17 +502,9 @@ notmuch_database_close (notmuch_database_t *notmuch)
* close it. Thus, we explicitly close it here. */ * close it. Thus, we explicitly close it here. */
if (notmuch->open) { if (notmuch->open) {
try { try {
/* If there's an outstanding transaction, it's unclear if
* closing the Xapian database commits everything up to
* that transaction, or may discard committed (but
* unflushed) transactions. To be certain, explicitly
* cancel any outstanding transaction before closing. */
if (_notmuch_database_mode (notmuch) == NOTMUCH_DATABASE_MODE_READ_WRITE &&
notmuch->atomic_nesting)
notmuch->writable_xapian_db->cancel_transaction ();
/* Close the database. This implicitly flushes /* Close the database. This implicitly flushes
* outstanding changes. */ * outstanding changes. If there is an open (non-flushed)
* transaction, ALL pending changes will be discarded */
notmuch->xapian_db->close (); notmuch->xapian_db->close ();
} catch (const Xapian::Error &error) { } catch (const Xapian::Error &error) {
status = NOTMUCH_STATUS_XAPIAN_EXCEPTION; status = NOTMUCH_STATUS_XAPIAN_EXCEPTION;