Skip to content

Commit cc9d712

Browse files
committed
pass pool preference
1 parent d682d7f commit cc9d712

File tree

1 file changed

+21
-5
lines changed

1 file changed

+21
-5
lines changed

Sources/FluentPostgresDriver/PostgresConnection+Database.swift

Lines changed: 21 additions & 5 deletions
Original file line numberDiff line numberDiff line change
@@ -19,16 +19,20 @@ final class PostgresDatabaseDriver: DatabaseDriver {
1919
sql = PostgresReturning(sql)
2020
default: break
2121
}
22-
return self.pool.execute(sql: sql) { row in
23-
onRow(row as! PostgresRow)
22+
return self.pool.withConnection(eventLoop: database.eventLoopPreference.pool) { conn in
23+
conn.execute(sql: sql) { row in
24+
onRow(row as! PostgresRow)
25+
}
2426
}
2527
}
2628

2729
func execute(schema: DatabaseSchema, database: Database) -> EventLoopFuture<Void> {
2830
let sql = SQLSchemaConverter(delegate: PostgresConverterDelegate())
2931
.convert(schema)
30-
return self.pool.execute(sql: sql) { row in
31-
fatalError("unexpected output")
32+
return self.pool.withConnection(eventLoop: database.eventLoopPreference.pool) { conn in
33+
conn.execute(sql: sql) { row in
34+
fatalError("unexpected output")
35+
}
3236
}
3337
}
3438

@@ -43,7 +47,7 @@ extension PostgresDatabaseDriver: PostgresClient {
4347
}
4448

4549
func send(_ request: PostgresRequest) -> EventLoopFuture<Void> {
46-
return self.pool.withConnection { $0.send(request) }
50+
return self.pool.withConnection(eventLoop: .indifferent) { $0.send(request) }
4751
}
4852
}
4953

@@ -58,3 +62,15 @@ private struct PostgresReturning: SQLExpression {
5862
serializer.write(#" RETURNING id as "fluentID""#)
5963
}
6064
}
65+
66+
67+
extension EventLoopPreference {
68+
var pool: ConnectionPoolEventLoopPreference {
69+
switch self {
70+
case .delegate(on: let eventLoop):
71+
return .delegate(on: eventLoop)
72+
case .indifferent:
73+
return .indifferent
74+
}
75+
}
76+
}

0 commit comments

Comments
 (0)