diff --git a/Postbox/SqliteInterface.swift b/Postbox/SqliteInterface.swift index bf02131ae9..13364ea5f1 100644 --- a/Postbox/SqliteInterface.swift +++ b/Postbox/SqliteInterface.swift @@ -110,6 +110,23 @@ public final class SqliteInterface { } } + public func selectWithKey(_ query: String, index: Int, key: Data, _ f: (SqliteStatementCursor) -> Bool) { + var statement: OpaquePointer? = nil + sqlite3_prepare_v2(database.handle, query, -1, &statement, nil) + let preparedStatement = SqliteInterfaceStatement(statement: statement) + key.withUnsafeBytes { (bytes: UnsafePointer) -> Void in + preparedStatement.bind(index, data: bytes, length: key.count) + } + let cursor = SqliteStatementCursor(statement: preparedStatement) + while preparedStatement.step() { + if !f(cursor) { + break + } + } + preparedStatement.reset() + preparedStatement.destroy() + } + public func select(_ query: String, _ f: (SqliteStatementCursor) -> Bool) { var statement: OpaquePointer? = nil sqlite3_prepare_v2(database.handle, query, -1, &statement, nil)