How To Create A Type-safe Custom Function In Sqlite.swift?
I would like to create a simple distance function to order objects while fetched from a SQLite database in Swift2. I’m using the awesome SQLite.swift framework. With the followin
Solution 1:
There's no good way of doing this yet (many of the expression-building helpers are internal to SQLite.swift right now). I encourage you to open an issue as a feature request.
In the meantime, because these are values that don't need to be quoted, you can do the following:
funcdistance(
lat1: Expression<Double>, lng1: Expression<Double>,
lat2: Double, lng2: Double
) -> Expression<Double> {
returnExpression(
literal: "distance(\(lat1.asSQL()), \(lng1.asSQL()), ?, ?)",
lat2, lng2
)
}
Solution 2:
The current documentation gives hope for this issue. However, I can not get the example code to compile with more than one argument (Contextual closure type '([Binding?]) -> Binding?' expects 1 argument, but 2 were used in closure body), it should be possible:
importMobileCoreServiceslettypeConformsTo: (Expression<String>, String) -> Expression<Bool> = (
try db.createFunction("typeConformsTo", deterministic: true) { UTI, conformsToUTI inreturnUTTypeConformsTo(UTI, conformsToUTI)
}
)
https://github.com/stephencelis/SQLite.swift/blob/master/Documentation/Index.md#custom-sql-functions
Post a Comment for "How To Create A Type-safe Custom Function In Sqlite.swift?"