SQLLiteral

public struct SQLLiteral
extension SQLLiteral: ExpressibleByStringInterpolation

SQLLiteral is a type which support SQL Interpolation.

For example:

try dbQueue.write { db in
    let name: String = ...
    let id: Int64 = ...
    let query: SQLLiteral = "UPDATE player SET name = \(name) WHERE id = \(id)"
    try db.execute(literal: query)
}
  • sql

    Undocumented

    Declaration

    Swift

    public var sql: String { get }
  • Undocumented

    Declaration

    Swift

    public var arguments: StatementArguments { get }
  • Creates an SQLLiteral from a plain SQL string, and eventual arguments.

    For example:

    let query = SQLLiteral(
        sql: "UPDATE player SET name = ? WHERE id = ?",
        arguments: [name, id])
    

    Declaration

    Swift

    public init(sql: String, arguments: StatementArguments = StatementArguments())
  • Creates an SQLLiteral from an SQL expression.

    For example:

    let columnLiteral = SQLLiteral(Column("username"))
    let suffixLiteral = SQLLiteral("@example.com".databaseValue)
    let emailLiteral = [columnLiteral, suffixLiteral].joined(separator: " || ")
    let request = User.select(emailLiteral.sqlExpression)
    let emails = try String.fetchAll(db, request)
    

    Declaration

    Swift

    public init(_ expression: SQLExpression)
  • Returns a literal whose SQL is transformed by the given closure.

    Declaration

    Swift

    public func mapSQL(_ transform: @escaping (String) -> String) -> SQLLiteral
  • Returns the SQLLiteral produced by the concatenation of two literals.

    let name = "O'Brien"
    let selection: SQLLiteral = "SELECT * FROM player "
    let condition: SQLLiteral = "WHERE name = \(name)"
    let query = selection + condition
    

    Declaration

    Swift

    public static func + (lhs: SQLLiteral, rhs: SQLLiteral) -> SQLLiteral
  • Appends an SQLLiteral to the receiver.

    let name = "O'Brien"
    var query: SQLLiteral = "SELECT * FROM player "
    query += "WHERE name = \(name)"
    

    Declaration

    Swift

    public static func += (lhs: inout SQLLiteral, rhs: SQLLiteral)
  • Appends an SQLLiteral to the receiver.

    let name = "O'Brien"
    var query: SQLLiteral = "SELECT * FROM player "
    query.append(literal: "WHERE name = \(name)")
    

    Declaration

    Swift

    public mutating func append(literal sqlLiteral: SQLLiteral)
  • Appends a plain SQL string to the receiver, and eventual arguments.

    let name = "O'Brien"
    var query: SQLLiteral = "SELECT * FROM player "
    query.append(sql: "WHERE name = ?", arguments: [name])
    

    Declaration

    Swift

    public mutating func append(sql: String, arguments: StatementArguments = StatementArguments())
  • Creates an SQL literal expression.

    SQLLiteral(sql: "1 + 2").sqlExpression
    SQLLiteral(sql: "? + ?", arguments: [1, 2]).sqlExpression
    SQLLiteral(sql: ":one + :two", arguments: ["one": 1, "two": 2]).sqlExpression
    

    Declaration

    Swift

    public var sqlExpression: SQLExpression { get }

ExpressibleByStringInterpolation