Skip to content

Commit 40303a2

Browse files
authored
Log transaction start and end queries (#95)
Route transaction control queries through the SQLKit interface so they get logged properly.
1 parent 2362c28 commit 40303a2

File tree

1 file changed

+13
-11
lines changed

1 file changed

+13
-11
lines changed

Sources/FluentSQLiteDriver/FluentSQLiteDatabase.swift

+13-11
Original file line numberDiff line numberDiff line change
@@ -95,21 +95,23 @@ struct FluentSQLiteDatabase: Database, SQLDatabase, SQLiteDatabase {
9595
}
9696

9797
return try await self.withConnection { conn in
98-
_ = try await conn.query("BEGIN TRANSACTION")
98+
let db = FluentSQLiteDatabase(
99+
database: conn,
100+
context: self.context,
101+
dataEncoder: self.dataEncoder,
102+
dataDecoder: self.dataDecoder,
103+
queryLogLevel: self.queryLogLevel,
104+
inTransaction: true
105+
)
106+
107+
try await db.raw("BEGIN TRANSACTION").run()
99108
do {
100-
let result = try await closure(FluentSQLiteDatabase(
101-
database: conn,
102-
context: self.context,
103-
dataEncoder: self.dataEncoder,
104-
dataDecoder: self.dataDecoder,
105-
queryLogLevel: self.queryLogLevel,
106-
inTransaction: true
107-
))
109+
let result = try await closure(db)
108110

109-
_ = try await conn.query("COMMIT TRANSACTION")
111+
try await db.raw("COMMIT TRANSACTION").run()
110112
return result
111113
} catch {
112-
_ = try? await conn.query("ROLLBACK TRANSACTION")
114+
try? await db.raw("ROLLBACK TRANSACTION").run()
113115
throw error
114116
}
115117
}

0 commit comments

Comments
 (0)