@@ -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