Skip to content

Commit b527003

Browse files
Merge pull request #36 from WiktorKryzia/transaction-isolation-level
feat: add support for setting transaction isolation level
2 parents 8e50521 + 4c74f42 commit b527003

File tree

1 file changed

+7
-3
lines changed

1 file changed

+7
-3
lines changed

src/index.ts

+7-3
Original file line numberDiff line numberDiff line change
@@ -12,6 +12,7 @@ import {
1212
MysqlQueryCompiler,
1313
QueryCompiler,
1414
QueryResult,
15+
TransactionSettings,
1516
} from 'kysely'
1617

1718
/**
@@ -89,8 +90,8 @@ class PlanetScaleDriver implements Driver {
8990
return new PlanetScaleConnection(this.#client)
9091
}
9192

92-
async beginTransaction(conn: PlanetScaleConnection): Promise<void> {
93-
return await conn.beginTransaction()
93+
async beginTransaction(conn: PlanetScaleConnection, settings: TransactionSettings): Promise<void> {
94+
return await conn.beginTransaction(settings)
9495
}
9596

9697
async commitTransaction(conn: PlanetScaleConnection): Promise<void> {
@@ -159,8 +160,11 @@ class PlanetScaleConnection implements DatabaseConnection {
159160
}
160161
}
161162

162-
async beginTransaction() {
163+
async beginTransaction(settings: TransactionSettings) {
163164
this.#transactionConn = this.#transactionConn ?? this.#client.connection()
165+
if (settings.isolationLevel) {
166+
await this.#transactionConn.execute(`SET TRANSACTION ISOLATION LEVEL ${settings.isolationLevel}`)
167+
}
164168
await this.#transactionConn.execute('BEGIN')
165169
}
166170

0 commit comments

Comments
 (0)