0001    // Statement.swift
0002    //
0003    // The MIT License (MIT)
0004    //
0005    // Copyright (c) 2015 Formbound
0006    //
0007    // Permission is hereby granted, free of charge, to any person obtaining a copy
0008    // of this software and associated documentation files (the "Software"), to deal
0009    // in the Software without restriction, including without limitation the rights
0010    // to use, copy, modify, merge, publish, distribute, sublicense, and/or sell
0011    // copies of the Software, and to permit persons to whom the Software is
0012    // furnished to do so, subject to the following conditions:
0013    //
0014    // The above copyright notice and this permission notice shall be included in all
0015    // copies or substantial portions of the Software.
0016    //
0017    // THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR
0018    // IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY,
0019    // FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE
0020    // AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER
0021    // LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM,
0022    // OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE
0023    // SOFTWARE.
0024    
0025    public struct Statement
Connection.swift:70
    func execute(statement: Statement, deadline: Deadline) throws -> ResultType
Connection.swift:118
    public func execute(statement: Statement, deadline: Deadline = never) throws -> ResultType {
Statement.swift:48
    public func isolate() -> Statement {
Statement.swift:49
        return Statement(components: ["(\(stringComponents.joinWithSeparator(" ")))"], parameters: parameters)
Statement.swift:60
    public mutating func merge(otherStatement: Statement, joinBy joinString: String? = nil) {
Statement.swift:72
extension Statement: StringLiteralConvertible {
Statement.swift:87
    func statementWithParameterOffset(inout parameterOffset: Int) -> Statement
Statement.swift:91
    public var statement: Statement {
Statement.swift:99
    public func statementWithParameterOffset(inout parameterOffset: Int, joinBy joinString: String? = nil) -> Statement {
Statement.swift:101
        var statement = Statement()
MigrationManager.swift:161
                    try self.connection.execute(Statement(migration.upStatement))
MigrationManager.swift:170
                    try self.connection.execute(Statement(downStatement))
MigrationManager.swift:174
                    Statement("INSERT INTO schema_migrations (timestamp, from_version, to_version) VALUES(CURRENT_TIMESTAMP(6), $1, $2)",
Condition.swift:49
    public func statementWithParameterOffset(inout parameterOffset: Int) -> Statement {
Condition.swift:51
        func statementWithKeyValue(key: String, _ op: String, _ value: Value) -> Statement {
Condition.swift:54
                let result = Statement("\(key) \(op) $\(parameterOffset)", parameters: [value])
Condition.swift:58
                return Statement("\(key) \(op) \(name)", parameters: [])
Condition.swift:85
            return Statement("\(key) IN(\(parameterString))", parameters: values)
Query.swift:74
    internal func statementWithParameterOffset(inout parameterOffset: Int) -> Statement {
Query.swift:75
        return Statement(components: [type, "ON", leftKey, "=" ,rightKey])
Query.swift:92
    public func statementWithParameterOffset(inout parameterOffset: Int) -> Statement {
Query.swift:94
        var statement = Statement(components: ["DELETE", "FROM", ModelType.Field.tableName])
Query.swift:122
    public func statementWithParameterOffset(inout parameterOffset: Int) -> Statement {
Query.swift:123
        var statement = Statement(components: ["INSERT INTO", M.Field.tableName], parameters: Array(valuesByFieldName.values))
Query.swift:246
    public func statementWithParameterOffset(inout parameterOffset: Int) -> Statement {
Query.swift:250
        var statement = Statement(components: ["SELECT", fieldString, "FROM", ModelType.Field.tableName])
{ 0026 public var stringComponents
Statement.swift:30
        return stringComponents.filter { !$0.isEmpty }.joinWithSeparator(" ")
Statement.swift:34
        stringComponents = []
Statement.swift:39
        stringComponents = [string]
Statement.swift:44
        self.stringComponents = components
Statement.swift:49
        return Statement(components: ["(\(stringComponents.joinWithSeparator(" ")))"], parameters: parameters)
Statement.swift:53
        stringComponents.insert(string, atIndex: 0)
Statement.swift:57
        stringComponents.append(string)
Statement.swift:63
            stringComponents.append(joinString)
Statement.swift:66
        stringComponents += otherStatement.stringComponents
Statement.swift:66
        stringComponents += otherStatement.stringComponents
: [String] 0027 public var parameters
Statement.swift:35
        parameters = []
Statement.swift:40
        self.parameters = parameters
Statement.swift:45
        self.parameters = parameters
Statement.swift:49
        return Statement(components: ["(\(stringComponents.joinWithSeparator(" ")))"], parameters: parameters)
Statement.swift:67
        parameters += otherStatement.parameters
Statement.swift:67
        parameters += otherStatement.parameters
: [ValueConvertible?] 0028 0029 public var string: String { 0030 return stringComponents.filter { !$0.isEmpty }.joinWithSeparator(" ") 0031 } 0032 0033 public init
Statement.swift:101
        var statement = Statement()
() { 0034 stringComponents = [] 0035 parameters = [] 0036 } 0037 0038 public init
Statement.swift:74
        self.init(value)
Condition.swift:54
                let result = Statement("\(key) \(op) $\(parameterOffset)", parameters: [value])
Condition.swift:58
                return Statement("\(key) \(op) \(name)", parameters: [])
Condition.swift:85
            return Statement("\(key) IN(\(parameterString))", parameters: values)
(_ string: String, parameters: [ValueConvertible?] = []) { 0039 stringComponents = [string] 0040 self.parameters = parameters 0041 } 0042 0043 public init
Statement.swift:49
        return Statement(components: ["(\(stringComponents.joinWithSeparator(" ")))"], parameters: parameters)
Query.swift:75
        return Statement(components: [type, "ON", leftKey, "=" ,rightKey])
Query.swift:94
        var statement = Statement(components: ["DELETE", "FROM", ModelType.Field.tableName])
Query.swift:123
        var statement = Statement(components: ["INSERT INTO", M.Field.tableName], parameters: Array(valuesByFieldName.values))
Query.swift:250
        var statement = Statement(components: ["SELECT", fieldString, "FROM", ModelType.Field.tableName])
(components: [String], parameters: [ValueConvertible?] = []) { 0044 self.stringComponents = components 0045 self.parameters = parameters 0046 } 0047 0048 public func isolate
Condition.swift:91
            return conditions.statementWithParameterOffset(&parameterOffset, joinBy: "AND").isolate()
Condition.swift:94
            return conditions.statementWithParameterOffset(&parameterOffset, joinBy: "OR").isolate()
Condition.swift:97
            var statement = condition.statementWithParameterOffset(&parameterOffset).isolate()
() -> Statement { 0049 return Statement(components: ["(\(stringComponents.joinWithSeparator(" ")))"], parameters: parameters) 0050 } 0051 0052 public mutating func prependComponent
Condition.swift:98
            statement.prependComponent("NOT")
(string: String) { 0053 stringComponents.insert(string, atIndex: 0) 0054 } 0055 0056 public mutating func appendComponent
Query.swift:97
            statement.appendComponent("WHERE")
Query.swift:125
        statement.appendComponent(
Query.swift:129
        statement.appendComponent("VALUES")
Query.swift:136
        statement.appendComponent("(\(parameterString))")
Query.swift:258
            statement.appendComponent("WHERE")
Query.swift:264
            statement.appendComponent("LIMIT \(limit)")
Query.swift:268
            statement.appendComponent("OFFSET \(offset)")
(string: String) { 0057 stringComponents.append(string) 0058 } 0059 0060 public mutating func merge
Statement.swift:104
            statement.merge(convertible.statementWithParameterOffset(&parameterOffset), joinBy: joinString)
Query.swift:98
            statement.merge(condition.statementWithParameterOffset(&parameterOffset))
Query.swift:254
            statement.merge(join.statementWithParameterOffset(&parameterOffset))
Query.swift:260
            statement.merge(condition.statementWithParameterOffset(&parameterOffset))
(otherStatement: Statement, joinBy joinString: String? = nil) { 0061 0062 if let joinString = joinString where !joinString.isEmpty { 0063 stringComponents.append(joinString) 0064 } 0065 0066 stringComponents += otherStatement.stringComponents 0067 parameters += otherStatement.parameters 0068 } 0069 0070 } 0071 0072 extension Statement: StringLiteralConvertible { 0073 public init
Statement.swift:78
        self.init(stringLiteral: value)
Statement.swift:82
        self.init(stringLiteral: value)
(stringLiteral value: String) { 0074 self.init(value) 0075 } 0076 0077 public init(unicodeScalarLiteral value: String) { 0078 self.init(stringLiteral: value) 0079 } 0080 0081 public init(extendedGraphemeClusterLiteral value: String) { 0082 self.init(stringLiteral: value) 0083 } 0084 } 0085 0086 public protocol StatementConvertible
Connection.swift:122
    public func execute(convertible: StatementConvertible, deadline: Deadline = never) throws -> ResultType {
Statement.swift:90
public extension StatementConvertible {
Condition.swift:25
public indirect enum Condition: StatementConvertible {
Query.swift:26
public protocol Query: StatementConvertible {
Query.swift:69
internal struct Join: StatementConvertible {
Query.swift:91
extension Delete: StatementConvertible {
Query.swift:121
extension Insert: StatementConvertible {
Query.swift:245
extension Select: StatementConvertible {
{ 0087 func statementWithParameterOffset
Statement.swift:93
        return statementWithParameterOffset(&offset)
Statement.swift:104
            statement.merge(convertible.statementWithParameterOffset(&parameterOffset), joinBy: joinString)
(inout parameterOffset: Int) -> Statement 0088 } 0089 0090 public extension StatementConvertible { 0091 public var statement: Statement { 0092 var offset = 1 0093 return statementWithParameterOffset(&offset) 0094 } 0095 } 0096 0097 0098 public extension SequenceType where Generator.Element: StatementConvertible { 0099 public func statementWithParameterOffset
Condition.swift:91
            return conditions.statementWithParameterOffset(&parameterOffset, joinBy: "AND").isolate()
Condition.swift:94
            return conditions.statementWithParameterOffset(&parameterOffset, joinBy: "OR").isolate()
(inout parameterOffset: Int, joinBy joinString: String? = nil) -> Statement { 0100 0101 var statement = Statement() 0102 0103 for convertible in self { 0104 statement.merge(convertible.statementWithParameterOffset(&parameterOffset), joinBy: joinString) 0105 } 0106 0107 return statement 0108 } 0109 }