forked from qt-creator/qt-creator
Sqlite: Use implicit transactions for ranges
Change-Id: I190835d1235deb9add51cc31bd730d18fdecddd3 Reviewed-by: Thomas Hartmann <thomas.hartmann@qt.io>
This commit is contained in:
@@ -576,7 +576,7 @@ public:
|
||||
const source_location &sourceLocation,
|
||||
const QueryTypes &...queryValues)
|
||||
: BaseSqliteResultRange<ResultType>{statement, sourceLocation}
|
||||
, m_transaction{statement.database(), sourceLocation}
|
||||
, m_transaction{statement.database()}
|
||||
, resetter{&statement}
|
||||
, sourceLocation{sourceLocation}
|
||||
{
|
||||
@@ -586,14 +586,10 @@ public:
|
||||
~SqliteResultRangeWithTransaction()
|
||||
{
|
||||
resetter.reset();
|
||||
|
||||
if (!std::uncaught_exceptions()) {
|
||||
m_transaction.commit(sourceLocation);
|
||||
}
|
||||
}
|
||||
|
||||
private:
|
||||
DeferredTransaction<typename BaseStatement::Database> m_transaction;
|
||||
ImplicitTransaction<typename BaseStatement::Database> m_transaction;
|
||||
Resetter resetter;
|
||||
source_location sourceLocation;
|
||||
};
|
||||
|
@@ -1385,9 +1385,7 @@ TEST_F(SqliteStatement, get_range_with_transaction_without_arguments_calls)
|
||||
MockSqliteStatement<1, 0> mockStatement{databaseMock};
|
||||
|
||||
EXPECT_CALL(databaseMock, lock());
|
||||
EXPECT_CALL(databaseMock, deferredBegin(_));
|
||||
EXPECT_CALL(mockStatement, reset());
|
||||
EXPECT_CALL(databaseMock, commit(_));
|
||||
EXPECT_CALL(databaseMock, unlock());
|
||||
|
||||
mockStatement.rangeWithTransaction<int>();
|
||||
@@ -1421,9 +1419,7 @@ TEST_F(SqliteStatement, get_range_with_transaction_without_arguments_calls_reset
|
||||
ON_CALL(mockStatement, next(_)).WillByDefault(Throw(Sqlite::StatementHasError("")));
|
||||
|
||||
EXPECT_CALL(databaseMock, lock());
|
||||
EXPECT_CALL(databaseMock, deferredBegin(_));
|
||||
EXPECT_CALL(mockStatement, reset());
|
||||
EXPECT_CALL(databaseMock, rollback(_));
|
||||
EXPECT_CALL(databaseMock, unlock());
|
||||
|
||||
EXPECT_THROW(
|
||||
|
Reference in New Issue
Block a user