Raw search queries
This commit is contained in:
parent
9dd449fe1a
commit
4fc06cc527
@ -131,7 +131,17 @@ public class DatabaseController {
|
||||
queue.inDatabase { db in
|
||||
let sortKey = sortDescriptor?.key ?? "rank"
|
||||
let asc = sortDescriptor?.ascending == false ? "DESC" : "ASC"
|
||||
let results = try! db.executeQuery("SELECT * FROM statuses_fts WHERE statuses_fts match ? ORDER BY \(sortKey) \(asc)", values: [query as NSString])
|
||||
let sql: String
|
||||
let queryValue: String
|
||||
if let match = query.wholeMatch(of: #/"(.+)"/#) {
|
||||
sql = "SELECT * FROM statuses WHERE status_content || ' ' || coalesce(summary, '') LIKE ? ESCAPE '\\' ORDER BY \(sortKey) \(asc)"
|
||||
let escaped = match.output.1.replacing("%", with: "\\%").replacing("_", with: "\\_")
|
||||
queryValue = "%\(escaped)%"
|
||||
} else {
|
||||
sql = "SELECT * FROM statuses_fts WHERE statuses_fts match ? ORDER BY \(sortKey) \(asc)"
|
||||
queryValue = query
|
||||
}
|
||||
let results = try! db.executeQuery(sql, values: [queryValue as NSString])
|
||||
let sequence = StatusSequence(results: results)
|
||||
completion(sequence)
|
||||
}
|
||||
|
Loading…
x
Reference in New Issue
Block a user