SelectionRequest
The protocol for all requests that can refine their selection.
-
Creates a request which selects selection promise.
// SELECT id, email FROM player var request = Player.all() request = request.selectWhenConnected { db in [Column("id"), Column("email") })
Any previous selection is replaced:
// SELECT email FROM player request .selectWhenConnected { db in [Column("id")] } .selectWhenConnected { db in [Column("email")] }
-
Creates a request which appends selection promise.
// SELECT id, email, name FROM player var request = Player.all() request = request .select([Column("id"), Column("email")]) .annotatedWhenConnected(with: { db in [Column("name")] })
-
select(_:
Extension method) Creates a request which selects selection.
// SELECT id, email FROM player var request = Player.all() request = request.select([Column("id"), Column("email")])
Any previous selection is replaced:
// SELECT email FROM player request .select([Column("id")]) .select([Column("email")])
-
select(sql:
Extension methodarguments: ) Creates a request which selects sql.
// SELECT id, email FROM player var request = Player.all() request = request.select(sql: "id, email")
Any previous selection is replaced:
// SELECT email FROM player request .select(sql: "id") .select(sql: "email")
-
select(literal:
Extension method) Creates a request which selects an SQL literal.
Literals allow you to safely embed raw values in your SQL, without any risk of syntax errors or SQL injection:
// SELECT id, email, score + 1000 FROM player let bonus = 1000 var request = Player.all() request = request.select(literal: """ id, email, score + \(bonus) """)
Any previous selection is replaced:
// SELECT email FROM player request .select(...) .select(literal: "email")
-
annotated(with:
Extension method) Creates a request which appends selection.
// SELECT id, email, name FROM player var request = Player.all() request = request .select([Column("id"), Column("email")]) .annotated(with: [Column("name")])