Skip to content

Commit

Permalink
pass pool preference
Browse files Browse the repository at this point in the history
  • Loading branch information
tanner0101 committed Oct 25, 2019
1 parent d682d7f commit cc9d712
Showing 1 changed file with 21 additions and 5 deletions.
26 changes: 21 additions & 5 deletions Sources/FluentPostgresDriver/PostgresConnection+Database.swift
Original file line number Diff line number Diff line change
Expand Up @@ -19,16 +19,20 @@ final class PostgresDatabaseDriver: DatabaseDriver {
sql = PostgresReturning(sql)
default: break
}
return self.pool.execute(sql: sql) { row in
onRow(row as! PostgresRow)
return self.pool.withConnection(eventLoop: database.eventLoopPreference.pool) { conn in
conn.execute(sql: sql) { row in
onRow(row as! PostgresRow)
}
}
}

func execute(schema: DatabaseSchema, database: Database) -> EventLoopFuture<Void> {
let sql = SQLSchemaConverter(delegate: PostgresConverterDelegate())
.convert(schema)
return self.pool.execute(sql: sql) { row in
fatalError("unexpected output")
return self.pool.withConnection(eventLoop: database.eventLoopPreference.pool) { conn in
conn.execute(sql: sql) { row in
fatalError("unexpected output")
}
}
}

Expand All @@ -43,7 +47,7 @@ extension PostgresDatabaseDriver: PostgresClient {
}

func send(_ request: PostgresRequest) -> EventLoopFuture<Void> {
return self.pool.withConnection { $0.send(request) }
return self.pool.withConnection(eventLoop: .indifferent) { $0.send(request) }
}
}

Expand All @@ -58,3 +62,15 @@ private struct PostgresReturning: SQLExpression {
serializer.write(#" RETURNING id as "fluentID""#)
}
}


extension EventLoopPreference {
var pool: ConnectionPoolEventLoopPreference {
switch self {
case .delegate(on: let eventLoop):
return .delegate(on: eventLoop)
case .indifferent:
return .indifferent
}
}
}

0 comments on commit cc9d712

Please sign in to comment.