diff options
author | Andrew Chow <achow101-github@achow101.com> | 2020-06-16 14:57:30 -0400 |
---|---|---|
committer | Andrew Chow <achow101-github@achow101.com> | 2020-10-14 11:28:18 -0400 |
commit | 6636a2608a4e5906ee8092d5731595542261e0ad (patch) | |
tree | c68cd3445b812937eac78554f13c810b8b20b1b9 | |
parent | 93825352a36456283bf87e39b5888363ee242f21 (diff) |
Implement SQLiteBatch::Close
-rw-r--r-- | src/wallet/sqlite.cpp | 8 |
1 files changed, 8 insertions, 0 deletions
diff --git a/src/wallet/sqlite.cpp b/src/wallet/sqlite.cpp index 7d96575a64..d89508c9df 100644 --- a/src/wallet/sqlite.cpp +++ b/src/wallet/sqlite.cpp @@ -182,6 +182,14 @@ SQLiteBatch::SQLiteBatch(SQLiteDatabase& database) void SQLiteBatch::Close() { + // If m_db is in a transaction (i.e. not in autocommit mode), then abort the transaction in progress + if (m_database.m_db && sqlite3_get_autocommit(m_database.m_db) == 0) { + if (TxnAbort()) { + LogPrintf("SQLiteBatch: Batch closed unexpectedly without the transaction being explicitly committed or aborted\n"); + } else { + LogPrintf("SQLiteBatch: Batch closed and failed to abort transaction\n"); + } + } } bool SQLiteBatch::ReadKey(CDataStream&& key, CDataStream& value) |