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{ 0026 public var stringComponents
Connection.swift:70 func execute(statement: Statement, deadline: Deadline) throws -> ResultTypeConnection.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) -> StatementStatement.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]): [String] 0027 public var parameters
Statement.swift:30 return stringComponents.filter { !$0.isEmpty }.joinWithSeparator(" ")Statement.swift:34 stringComponents = []Statement.swift:39 stringComponents = [string]Statement.swift:44 self.stringComponents = componentsStatement.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.stringComponentsStatement.swift:66 stringComponents += otherStatement.stringComponents: [ValueConvertible?] 0028 0029 public var string: String { 0030 return stringComponents.filter { !$0.isEmpty }.joinWithSeparator(" ") 0031 } 0032 0033 public init
Statement.swift:35 parameters = []Statement.swift:40 self.parameters = parametersStatement.swift:45 self.parameters = parametersStatement.swift:49 return Statement(components: ["(\(stringComponents.joinWithSeparator(" ")))"], parameters: parameters)Statement.swift:67 parameters += otherStatement.parametersStatement.swift:67 parameters += otherStatement.parameters() { 0034 stringComponents = [] 0035 parameters = [] 0036 } 0037 0038 public init
Statement.swift:101 var statement = Statement()(_ string: String, parameters: [ValueConvertible?] = []) { 0039 stringComponents = [string] 0040 self.parameters = parameters 0041 } 0042 0043 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)(components: [String], parameters: [ValueConvertible?] = []) { 0044 self.stringComponents = components 0045 self.parameters = parameters 0046 } 0047 0048 public func isolate
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])() -> Statement { 0049 return Statement(components: ["(\(stringComponents.joinWithSeparator(" ")))"], parameters: parameters) 0050 } 0051 0052 public mutating func prependComponent
Condition.swift:91 return conditions.statementWithParameterOffset(¶meterOffset, joinBy: "AND").isolate()Condition.swift:94 return conditions.statementWithParameterOffset(¶meterOffset, joinBy: "OR").isolate()Condition.swift:97 var statement = condition.statementWithParameterOffset(¶meterOffset).isolate()(string: String) { 0053 stringComponents.insert(string, atIndex: 0) 0054 } 0055 0056 public mutating func appendComponent
Condition.swift:98 statement.prependComponent("NOT")(string: String) { 0057 stringComponents.append(string) 0058 } 0059 0060 public mutating func merge
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)")(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:104 statement.merge(convertible.statementWithParameterOffset(¶meterOffset), joinBy: joinString)Query.swift:98 statement.merge(condition.statementWithParameterOffset(¶meterOffset))Query.swift:254 statement.merge(join.statementWithParameterOffset(¶meterOffset))Query.swift:260 statement.merge(condition.statementWithParameterOffset(¶meterOffset))(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
Statement.swift:78 self.init(stringLiteral: value)Statement.swift:82 self.init(stringLiteral: value){ 0087 func statementWithParameterOffset
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 {(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
Statement.swift:93 return statementWithParameterOffset(&offset)Statement.swift:104 statement.merge(convertible.statementWithParameterOffset(¶meterOffset), joinBy: joinString)(inout parameterOffset: Int, joinBy joinString: String? = nil) -> Statement { 0100 0101 var statement = Statement() 0102 0103 for convertible in self { 0104 statement.merge(convertible.statementWithParameterOffset(¶meterOffset), joinBy: joinString) 0105 } 0106 0107 return statement 0108 } 0109 }
Condition.swift:91 return conditions.statementWithParameterOffset(¶meterOffset, joinBy: "AND").isolate()Condition.swift:94 return conditions.statementWithParameterOffset(¶meterOffset, joinBy: "OR").isolate()