TypedRequest
public protocol TypedRequest : Request
The protocol for requests that know how to decode database rows.
Typed requests can fetch if their associated type RowDecoder is able to decode rows (Row, value, record)
struct Player: RowConvertible { ... }
let request: ... // Some TypedRequest that fetches Player
try request.fetchCursor(db) // Cursor of Player
try request.fetchAll(db) // [Player]
try request.fetchOne(db) // Player?
-
adapted(_:)
Extension methodReturns an adapted typed request.
Declaration
Swift
public func adapted(_ adapter: @escaping (Database) throws -> RowAdapter) -> AdaptedTypedRequest<Self>
-
fetchCursor(_:)
Extension methodA cursor over fetched records.
let request: ... // Some TypedRequest that fetches Player let players = try request.fetchCursor(db) // Cursor of Player while let player = try players.next() { // Player ... }
If the database is modified during the cursor iteration, the remaining elements are undefined.
The cursor must be iterated in a protected dispath queue.
Throws
A DatabaseError is thrown whenever an SQLite error occurs.Declaration
Swift
public func fetchCursor(_ db: Database) throws -> RecordCursor<RowDecoder>
Parameters
db
A database connection.
Return Value
A cursor over fetched records.
-
fetchAll(_:)
Extension methodAn array of fetched records.
let request: ... // Some TypedRequest that fetches Player let players = try request.fetchAll(db) // [Player]
Throws
A DatabaseError is thrown whenever an SQLite error occurs.Declaration
Swift
public func fetchAll(_ db: Database) throws -> [RowDecoder]
Parameters
db
A database connection.
Return Value
An array of records.
-
fetchOne(_:)
Extension methodThe first fetched record.
let request: ... // Some TypedRequest that fetches Player let player = try request.fetchOne(db) // Player?
Throws
A DatabaseError is thrown whenever an SQLite error occurs.Declaration
Swift
public func fetchOne(_ db: Database) throws -> RowDecoder?
Parameters
db
A database connection.
Return Value
An optional record.
-
fetchCursor(_:)
Extension methodA cursor over fetched values.
let request: ... // Some TypedRequest that fetches String let strings = try request.fetchCursor(db) // Cursor of String while let string = try strings.next() { // String ... }
If the database is modified during the cursor iteration, the remaining elements are undefined.
The cursor must be iterated in a protected dispath queue.
Throws
A DatabaseError is thrown whenever an SQLite error occurs.Declaration
Swift
public func fetchCursor(_ db: Database) throws -> DatabaseValueCursor<RowDecoder>
Parameters
db
A database connection.
Return Value
A cursor over fetched values.
-
fetchAll(_:)
Extension methodAn array of fetched values.
let request: ... // Some TypedRequest that fetches String let strings = try request.fetchAll(db) // [String]
Throws
A DatabaseError is thrown whenever an SQLite error occurs.Declaration
Swift
public func fetchAll(_ db: Database) throws -> [RowDecoder]
Parameters
db
A database connection.
Return Value
An array of values.
-
fetchOne(_:)
Extension methodThe first fetched value.
The result is nil if the request returns no row, or if no value can be extracted from the first row.
let request: ... // Some TypedRequest that fetches String let string = try request.fetchOne(db) // String?
Throws
A DatabaseError is thrown whenever an SQLite error occurs.Declaration
Swift
public func fetchOne(_ db: Database) throws -> RowDecoder?
Parameters
db
A database connection.
Return Value
An optional value.
-
fetchCursor(_:)
Extension methodA cursor over fetched values.
let request: ... // Some TypedRequest that fetches String let strings = try request.fetchCursor(db) // Cursor of String while let string = try strings.next() { // String ... }
If the database is modified during the cursor iteration, the remaining elements are undefined.
The cursor must be iterated in a protected dispath queue.
Throws
A DatabaseError is thrown whenever an SQLite error occurs.Declaration
Swift
public func fetchCursor(_ db: Database) throws -> ColumnCursor<RowDecoder>
Parameters
db
A database connection.
Return Value
A cursor over fetched values.
-
fetchAll(_:)
Extension methodAn array of fetched values.
let request: ... // Some TypedRequest that fetches String let strings = try request.fetchAll(db) // [String]
Throws
A DatabaseError is thrown whenever an SQLite error occurs.Declaration
Swift
public func fetchAll(_ db: Database) throws -> [RowDecoder]
Parameters
db
A database connection.
Return Value
An array of values.
-
fetchOne(_:)
Extension methodThe first fetched value.
The result is nil if the request returns no row, or if no value can be extracted from the first row.
let request: ... // Some TypedRequest that fetches String let string = try request.fetchOne(db) // String?
Throws
A DatabaseError is thrown whenever an SQLite error occurs.Declaration
Swift
public func fetchOne(_ db: Database) throws -> RowDecoder?
Parameters
db
A database connection.
Return Value
An optional value.
-
fetchCursor(_:)
Extension methodA cursor over fetched optional values.
let request: ... // Some TypedRequest that fetches Optional<String> let strings = try request.fetchCursor(db) // Cursor of String? while let string = try strings.next() { // String? ... }
If the database is modified during the cursor iteration, the remaining elements are undefined.
The cursor must be iterated in a protected dispath queue.
Throws
A DatabaseError is thrown whenever an SQLite error occurs.Declaration
Swift
public func fetchCursor(_ db: Database) throws -> NullableDatabaseValueCursor<RowDecoder._Wrapped>
Parameters
db
A database connection.
Return Value
A cursor over fetched values.
-
fetchAll(_:)
Extension methodAn array of fetched optional values.
let request: ... // Some TypedRequest that fetches Optional<String> let strings = try request.fetchAll(db) // [String?]
Throws
A DatabaseError is thrown whenever an SQLite error occurs.Declaration
Swift
public func fetchAll(_ db: Database) throws -> [RowDecoder._Wrapped?]
Parameters
db
A database connection.
Return Value
An array of values.
-
fetchCursor(_:)
Extension methodA cursor over fetched optional values.
let request: ... // Some TypedRequest that fetches Optional<String> let strings = try request.fetchCursor(db) // Cursor of String? while let string = try strings.next() { // String? ... }
If the database is modified during the cursor iteration, the remaining elements are undefined.
The cursor must be iterated in a protected dispath queue.
Throws
A DatabaseError is thrown whenever an SQLite error occurs.Declaration
Swift
public func fetchCursor(_ db: Database) throws -> NullableColumnCursor<RowDecoder._Wrapped>
Parameters
db
A database connection.
Return Value
A cursor over fetched values.
-
fetchAll(_:)
Extension methodAn array of fetched optional values.
let request: ... // Some TypedRequest that fetches Optional<String> let strings = try request.fetchAll(db) // [String?]
Throws
A DatabaseError is thrown whenever an SQLite error occurs.Declaration
Swift
public func fetchAll(_ db: Database) throws -> [RowDecoder._Wrapped?]
Parameters
db
A database connection.
Return Value
An array of values.
-
fetchCursor(_:)
Extension methodA cursor over fetched rows.
let request: ... // Some TypedRequest that fetches Row let rows = try request.fetchCursor(db) // RowCursor while let row = try rows.next() { // Row let id: Int64 = row[0] let name: String = row[1] }
Fetched rows are reused during the cursor iteration: don’t turn a row cursor into an array with
Array(rows)
orrows.filter { ... }
since you would not get the distinct rows you expect. UseRow.fetchAll(...)
instead.For the same reason, make sure you make a copy whenever you extract a row for later use:
row.copy()
.If the database is modified during the cursor iteration, the remaining elements are undefined.
The cursor must be iterated in a protected dispath queue.
Throws
A DatabaseError is thrown whenever an SQLite error occurs.Parameters
db
A database connection.
Return Value
A cursor over fetched rows.
-
fetchAll(_:)
Extension methodAn array of fetched rows.
let request: ... // Some TypedRequest that fetches Row let rows = try request.fetchAll(db)
Throws
A DatabaseError is thrown whenever an SQLite error occurs.Parameters
db
A database connection.
Return Value
An array of fetched rows.
-
fetchOne(_:)
Extension methodThe first fetched row.
let request: ... // Some TypedRequest that fetches Row let row = try request.fetchOne(db)
Throws
A DatabaseError is thrown whenever an SQLite error occurs.Parameters
db
A database connection.
Return Value
A,n optional rows.