@@ -90,26 +90,26 @@ public struct Expression<T> {
90
90
return expression
91
91
}
92
92
93
- internal static func join( separator: String , _ expressions: [ Expressible ] ) -> Expression < ( ) > {
93
+ internal static func join( separator: String , _ expressions: [ Expressible ] ) -> Expression < Void > {
94
94
var ( SQL, bindings) = ( [ String] ( ) , [ Binding? ] ( ) )
95
95
for expressible in expressions {
96
96
let expression = expressible. expression
97
97
SQL . append ( expression. SQL)
98
98
bindings. extend ( expression. bindings)
99
99
}
100
- return Expression < ( ) > ( literal: Swift . join ( separator, SQL) , bindings)
100
+ return Expression < Void > ( literal: Swift . join ( separator, SQL) , bindings)
101
101
}
102
102
103
103
internal init < V> ( _ expression: Expression < V > ) {
104
104
self . init ( literal: expression. SQL, expression. bindings)
105
105
( ascending, original) = ( expression. ascending, expression. original)
106
106
}
107
107
108
- internal var ordered : Expression < ( ) > {
108
+ internal var ordered : Expression < Void > {
109
109
if let ascending = ascending {
110
110
return Expression . join ( " " , [ self , Expression ( literal: ascending ? " ASC " : " DESC " ) ] )
111
111
}
112
- return Expression < ( ) > ( self )
112
+ return Expression < Void > ( self )
113
113
}
114
114
115
115
internal var aliased : Expression {
@@ -142,37 +142,37 @@ public struct Expression<T> {
142
142
143
143
public protocol Expressible {
144
144
145
- var expression : Expression < ( ) > { get }
145
+ var expression : Expression < Void > { get }
146
146
147
147
}
148
148
149
149
extension Blob : Expressible {
150
150
151
- public var expression : Expression < ( ) > {
151
+ public var expression : Expression < Void > {
152
152
return Expression ( binding: self )
153
153
}
154
154
155
155
}
156
156
157
157
extension Bool : Expressible {
158
158
159
- public var expression : Expression < ( ) > {
159
+ public var expression : Expression < Void > {
160
160
return Expression ( value: self )
161
161
}
162
162
163
163
}
164
164
165
165
extension Double : Expressible {
166
166
167
- public var expression : Expression < ( ) > {
167
+ public var expression : Expression < Void > {
168
168
return Expression ( binding: self )
169
169
}
170
170
171
171
}
172
172
173
173
extension Int : Expressible {
174
174
175
- public var expression : Expression < ( ) > {
175
+ public var expression : Expression < Void > {
176
176
// FIXME: rdar://TODO segfaults during archive // return Expression(value: self)
177
177
return Expression ( binding: datatypeValue)
178
178
}
@@ -181,31 +181,31 @@ extension Int: Expressible {
181
181
182
182
extension Int64 : Expressible {
183
183
184
- public var expression : Expression < ( ) > {
184
+ public var expression : Expression < Void > {
185
185
return Expression ( binding: self )
186
186
}
187
187
188
188
}
189
189
190
190
extension String : Expressible {
191
191
192
- public var expression : Expression < ( ) > {
192
+ public var expression : Expression < Void > {
193
193
return Expression ( binding: self )
194
194
}
195
195
196
196
}
197
197
198
198
extension Expression : Expressible {
199
199
200
- public var expression : Expression < ( ) > {
201
- return Expression < ( ) > ( self )
200
+ public var expression : Expression < Void > {
201
+ return Expression < Void > ( self )
202
202
}
203
203
204
204
}
205
205
206
206
extension Query : Expressible {
207
207
208
- public var expression : Expression < ( ) > {
208
+ public var expression : Expression < Void > {
209
209
if tableName. original != nil {
210
210
return selectExpression. alias ( tableName)
211
211
}
@@ -587,17 +587,17 @@ public func abs<V: Value where V.Datatype: Number>(expression: Expression<V?>) -
587
587
588
588
// FIXME: support Expression<V?>..., Expression<V> when Swift supports inner variadic signatures
589
589
public func coalesce< V> ( expressions: Expression < V ? > ... ) -> Expression < V ? > {
590
- return wrap ( __FUNCTION__, Expression < ( ) > . join ( " , " , expressions. map { $0 } as [ Expressible ] ) )
590
+ return wrap ( __FUNCTION__, Expression< Void > . join( " , " , expressions. map { $0 } as [ Expressible ] ) )
591
591
}
592
592
593
593
public func ifnull< V: Expressible > ( expression: Expression < V ? > , defaultValue: V ) -> Expression < V > {
594
- return wrap ( __FUNCTION__, Expression < ( ) > . join ( " , " , [ expression, defaultValue] ) )
594
+ return wrap ( __FUNCTION__, Expression< Void > . join( " , " , [ expression, defaultValue] ) )
595
595
}
596
596
public func ifnull< V: Expressible > ( expression: Expression < V ? > , defaultValue: Expression < V > ) -> Expression < V > {
597
- return wrap ( __FUNCTION__, Expression < ( ) > . join ( " , " , [ expression, defaultValue] ) )
597
+ return wrap ( __FUNCTION__, Expression< Void > . join( " , " , [ expression, defaultValue] ) )
598
598
}
599
599
public func ifnull< V: Expressible > ( expression: Expression < V ? > , defaultValue: Expression < V ? > ) -> Expression < V > {
600
- return wrap ( __FUNCTION__, Expression < ( ) > . join ( " , " , [ expression, defaultValue] ) )
600
+ return wrap ( __FUNCTION__, Expression< Void > . join( " , " , [ expression, defaultValue] ) )
601
601
}
602
602
public func ?? < V: Expressible > ( expression: Expression < V ? > , defaultValue: V ) -> Expression < V > {
603
603
return ifnull ( expression, defaultValue)
@@ -619,51 +619,51 @@ public func ltrim(expression: Expression<String>) -> Expression<String> { return
619
619
public func ltrim( expression: Expression < String ? > ) -> Expression < String ? > { return wrap ( __FUNCTION__, expression) }
620
620
621
621
public func ltrim( expression: Expression < String > , characters: String ) -> Expression < String > {
622
- return wrap ( __FUNCTION__, Expression < ( ) > . join ( " , " , [ expression, characters] ) )
622
+ return wrap ( __FUNCTION__, Expression< Void > . join( " , " , [ expression, characters] ) )
623
623
}
624
624
public func ltrim( expression: Expression < String ? > , characters: String ) -> Expression < String ? > {
625
- return wrap ( __FUNCTION__, Expression < ( ) > . join ( " , " , [ expression, characters] ) )
625
+ return wrap ( __FUNCTION__, Expression< Void > . join( " , " , [ expression, characters] ) )
626
626
}
627
627
628
628
public func random( ) -> Expression < Int > { return Expression ( literal: __FUNCTION__) }
629
629
630
630
public func replace( expression: Expression < String > , match: String , subtitute: String ) -> Expression < String > {
631
- return wrap ( __FUNCTION__, Expression < ( ) > . join ( " , " , [ expression, match, subtitute] ) )
631
+ return wrap ( __FUNCTION__, Expression< Void > . join( " , " , [ expression, match, subtitute] ) )
632
632
}
633
633
public func replace( expression: Expression < String ? > , match: String , subtitute: String ) -> Expression < String ? > {
634
- return wrap ( __FUNCTION__, Expression < ( ) > . join ( " , " , [ expression, match, subtitute] ) )
634
+ return wrap ( __FUNCTION__, Expression< Void > . join( " , " , [ expression, match, subtitute] ) )
635
635
}
636
636
637
637
public func round( expression: Expression < Double > ) -> Expression < Double > { return wrap ( __FUNCTION__, expression) }
638
638
public func round( expression: Expression < Double ? > ) -> Expression < Double ? > { return wrap ( __FUNCTION__, expression) }
639
639
public func round( expression: Expression < Double > , precision: Int ) -> Expression < Double > {
640
- return wrap ( __FUNCTION__, Expression < ( ) > . join ( " , " , [ expression, precision] ) )
640
+ return wrap ( __FUNCTION__, Expression< Void > . join( " , " , [ expression, precision] ) )
641
641
}
642
642
public func round( expression: Expression < Double ? > , precision: Int ) -> Expression < Double ? > {
643
- return wrap ( __FUNCTION__, Expression < ( ) > . join ( " , " , [ expression, precision] ) )
643
+ return wrap ( __FUNCTION__, Expression< Void > . join( " , " , [ expression, precision] ) )
644
644
}
645
645
646
646
public func rtrim( expression: Expression < String > ) -> Expression < String > { return wrap ( __FUNCTION__, expression) }
647
647
public func rtrim( expression: Expression < String ? > ) -> Expression < String ? > { return wrap ( __FUNCTION__, expression) }
648
648
public func rtrim( expression: Expression < String > , characters: String ) -> Expression < String > {
649
- return wrap ( __FUNCTION__, Expression < ( ) > . join ( " , " , [ expression, characters] ) )
649
+ return wrap ( __FUNCTION__, Expression< Void > . join( " , " , [ expression, characters] ) )
650
650
}
651
651
public func rtrim( expression: Expression < String ? > , characters: String ) -> Expression < String ? > {
652
- return wrap ( __FUNCTION__, Expression < ( ) > . join ( " , " , [ expression, characters] ) )
652
+ return wrap ( __FUNCTION__, Expression< Void > . join( " , " , [ expression, characters] ) )
653
653
}
654
654
655
655
public func substr( expression: Expression < String > , startIndex: Int ) -> Expression < String > {
656
- return wrap ( __FUNCTION__, Expression < ( ) > . join ( " , " , [ expression, startIndex] ) )
656
+ return wrap ( __FUNCTION__, Expression< Void > . join( " , " , [ expression, startIndex] ) )
657
657
}
658
658
public func substr( expression: Expression < String ? > , startIndex: Int ) -> Expression < String ? > {
659
- return wrap ( __FUNCTION__, Expression < ( ) > . join ( " , " , [ expression, startIndex] ) )
659
+ return wrap ( __FUNCTION__, Expression< Void > . join( " , " , [ expression, startIndex] ) )
660
660
}
661
661
662
662
public func substr( expression: Expression < String > , position: Int , length: Int ) -> Expression < String > {
663
- return wrap ( __FUNCTION__, Expression < ( ) > . join ( " , " , [ expression, position, length] ) )
663
+ return wrap ( __FUNCTION__, Expression< Void > . join( " , " , [ expression, position, length] ) )
664
664
}
665
665
public func substr( expression: Expression < String ? > , position: Int , length: Int ) -> Expression < String ? > {
666
- return wrap ( __FUNCTION__, Expression < ( ) > . join ( " , " , [ expression, position, length] ) )
666
+ return wrap ( __FUNCTION__, Expression< Void > . join( " , " , [ expression, position, length] ) )
667
667
}
668
668
669
669
public func substr( expression: Expression < String > , subRange: Range < Int > ) -> Expression < String > {
@@ -676,10 +676,10 @@ public func substr(expression: Expression<String?>, subRange: Range<Int>) -> Exp
676
676
public func trim( expression: Expression < String > ) -> Expression < String > { return wrap ( __FUNCTION__, expression) }
677
677
public func trim( expression: Expression < String ? > ) -> Expression < String ? > { return wrap ( __FUNCTION__, expression) }
678
678
public func trim( expression: Expression < String > , characters: String ) -> Expression < String > {
679
- return wrap ( __FUNCTION__, Expression < ( ) > . join ( " , " , [ expression, characters] ) )
679
+ return wrap ( __FUNCTION__, Expression< Void > . join( " , " , [ expression, characters] ) )
680
680
}
681
681
public func trim( expression: Expression < String ? > , characters: String ) -> Expression < String ? > {
682
- return wrap ( __FUNCTION__, Expression < ( ) > . join ( " , " , [ expression, characters] ) )
682
+ return wrap ( __FUNCTION__, Expression< Void > . join( " , " , [ expression, characters] ) )
683
683
}
684
684
685
685
public func upper( expression: Expression < String > ) -> Expression < String > { return wrap ( __FUNCTION__, expression) }
@@ -727,16 +727,16 @@ public func total<V: Value where V.Datatype: Number>(#distinct: Expression<V>) -
727
727
public func total< V: Value where V. Datatype: Number > ( #distinct: Expression< V?>) -> Expression < Double > { return wrapDistinct ( " total " , distinct) }
728
728
729
729
private func wrapDistinct< V, U> ( function: String , expression: Expression < V > ) -> Expression < U > {
730
- return wrap ( function, Expression < ( ) > . join ( " " , [ Expression < ( ) > ( literal: " DISTINCT " ) , expression] ) )
730
+ return wrap ( function, Expression< Void > . join( " " , [ Expression < Void > ( literal: " DISTINCT " ) , expression] ) )
731
731
}
732
732
733
733
// MARK: - Helper
734
734
735
735
public let rowid = Expression < Int64 > ( " ROWID " )
736
736
737
- public typealias Star = ( Expression < Binding > ? , Expression < Binding > ? ) -> Expression < ( ) >
737
+ public typealias Star = ( Expression < Binding > ? , Expression < Binding > ? ) -> Expression < Void >
738
738
739
- public func * ( Expression< Binding> ? , Expression< Binding> ? ) -> Expression< ( ) > {
739
+ public func * ( Expression< Binding> ? , Expression< Binding> ? ) -> Expression< Void > {
740
740
return Expression ( literal: " * " )
741
741
}
742
742
public func contains< V: Value , C: CollectionType where C. Generator. Element == V , C. Index. Distance == Int > ( values: C , column: Expression < V > ) -> Expression < Bool > {
@@ -747,7 +747,7 @@ public func contains<V: Value, C: CollectionType where C.Generator.Element == V,
747
747
return contains ( values, Expression < V > ( column) )
748
748
}
749
749
public func contains< V: Value > ( values: Query , column: Expression < V > ) -> Expression < Bool > {
750
- return infix ( " IN " , column, wrap ( " " , values. selectExpression) as Expression < ( ) > )
750
+ return infix ( " IN " , column, wrap ( " " , values. selectExpression) as Expression < Void > )
751
751
}
752
752
753
753
// MARK: - Modifying
@@ -764,10 +764,10 @@ public typealias Setter = (Expressible, Expressible)
764
764
/// :returns: A setter that can be used in a Query’s insert and update
765
765
/// functions.
766
766
public func set< V: Value > ( column: Expression < V > , value: V ) -> Setter {
767
- return ( column, Expression < ( ) > ( value: value) )
767
+ return ( column, Expression < Void > ( value: value) )
768
768
}
769
769
public func set< V: Value > ( column: Expression < V ? > , value: V ? ) -> Setter {
770
- return ( column, Expression < ( ) > ( value: value) )
770
+ return ( column, Expression < Void > ( value: value) )
771
771
}
772
772
public func set< V: Value > ( column: Expression < V > , value: Expression < V > ) -> Setter { return ( column, value) }
773
773
public func set< V: Value > ( column: Expression < V > , value: Expression < V ? > ) -> Setter { return ( column, value) }
0 commit comments