Skip to content

Navigation Menu

Sign in
Appearance settings

Search code, repositories, users, issues, pull requests...

Provide feedback

We read every piece of feedback, and take your input very seriously.

Saved searches

Use saved searches to filter your results more quickly

Sign up
Appearance settings

Commit da340d8

Browse files
latest driver updates
1 parent 88f2b00 commit da340d8

File tree

1 file changed

+16
-3
lines changed

1 file changed

+16
-3
lines changed

‎Sources/FluentPostgresDriver/Postgres+Fluent.swift‎

Lines changed: 16 additions & 3 deletions
Original file line numberDiff line numberDiff line change
@@ -49,13 +49,26 @@ extension ConnectionPool: Database where Source.Connection: Database {
4949

5050
extension PostgresError: DatabaseError { }
5151

52+
struct PostgresConverterDelegate: SQLConverterDelegate {
53+
func customDataType(_ dataType: DatabaseSchema.DataType) -> SQLExpression? {
54+
switch dataType {
55+
case .uuid: return SQLRaw("UUID")
56+
default: return nil
57+
}
58+
}
59+
60+
func nestedFieldExpression(_ column: String, _ path: [String]) -> SQLExpression {
61+
return SQLRaw("\(column)->>'\(path[0])'")
62+
}
63+
}
64+
5265
extension PostgresConnection: Database {
5366
public func transaction<T>(_ closure: @escaping (Database) -> EventLoopFuture<T>) -> EventLoopFuture<T> {
5467
return closure(self)
5568
}
5669

5770
public func execute(_ query: DatabaseQuery, _ onOutput: @escaping (DatabaseOutput) throws -> ()) -> EventLoopFuture<Void> {
58-
var sql = SQLQueryConverter().convert(query)
71+
var sql = SQLQueryConverter(delegate:PostgresConverterDelegate()).convert(query)
5972
switch query.action {
6073
case .create:
6174
sql = PostgresReturning(sql)
@@ -67,7 +80,7 @@ extension PostgresConnection: Database {
6780
}
6881

6982
public func execute(_ schema: DatabaseSchema) -> EventLoopFuture<Void> {
70-
return self.sqlQuery(SQLSchemaConverter().convert(schema)) { row in
83+
return self.sqlQuery(SQLSchemaConverter(delegate:PostgresConverterDelegate()).convert(schema)) { row in
7184
fatalError("unexpected output")
7285
}
7386
}
@@ -86,6 +99,6 @@ private struct PostgresReturning: SQLExpression {
8699

87100
func serialize(to serializer: inout SQLSerializer) {
88101
self.base.serialize(to: &serializer)
89-
serializer.write(" RETURNING *")
102+
serializer.write(#" RETURNING id as "fluentID""#)
90103
}
91104
}

0 commit comments

Comments
(0)

AltStyle によって変換されたページ (->オリジナル) /