@@ -43,7 +43,7 @@ public struct QueryParameterNull: QueryParameter, ExpressibleByNilLiteral {
4343
4444 }
4545 public func queryParameter( option: QueryParameterOption ) -> QueryParameterType {
46- return QueryParameterWrap ( " NULL " )
46+ return EscapedQueryParameter ( " NULL " )
4747 }
4848}
4949
@@ -57,10 +57,10 @@ public struct QueryDictionary: QueryParameter {
5757 var keyVals : [ String ] = [ ]
5858 for (k, v) in dict {
5959 if v == nil || v? . omitOnQueryParameter == false {
60- keyVals. append ( " \( SQLString . escapeId ( string: k) ) = \( try QueryParameterOptional ( v) . queryParameter ( option: option) . escaped ( ) ) " )
60+ keyVals. append ( " \( SQLString . escapeForID ( string: k) ) = \( try QueryParameterOptional ( v) . queryParameter ( option: option) . escaped ( ) ) " )
6161 }
6262 }
63- return QueryParameterWrap ( keyVals. joined ( separator: " , " ) )
63+ return EscapedQueryParameter ( keyVals. joined ( separator: " , " ) )
6464 }
6565}
6666
@@ -82,7 +82,7 @@ public struct QueryArray: QueryParameter, QueryArrayType {
8282 self . arr = arr. map { Optional ( $0) }
8383 }
8484 public func queryParameter( option: QueryParameterOption ) throws -> QueryParameterType {
85- return QueryParameterWrap ( try arr. filter ( { val in
85+ return EscapedQueryParameter ( try arr. filter ( { val in
8686 if let valid = val {
8787 return valid. omitOnQueryParameter == false
8888 }
@@ -137,109 +137,117 @@ struct QueryParameterOptional: QueryParameter {
137137 }
138138}
139139
140- struct QueryParameterWrap : QueryParameterType {
141- let val : String
142- init ( _ val: String ) {
143- self . val = val
140+ struct EscapedQueryParameter : QueryParameterType {
141+ private let value : String
142+ private let idParameter : String ?
143+ init ( _ val: String , idParameter: String ? = nil ) {
144+ self . value = val
145+ self . idParameter = idParameter
144146 }
145147 func escaped( ) -> String {
146- return val
148+ return value
149+ }
150+ func escapedForID( ) -> String ? {
151+ return idParameter
147152 }
148153}
149154
150155extension String : QueryParameterType {
151156 public func escaped( ) -> String {
152157 return SQLString . escape ( string: self )
153158 }
159+ public func escapedForID( ) -> String ? {
160+ return SQLString . escapeForID ( string: self )
161+ }
154162}
155163
156164extension String : QueryParameter {
157165 public func queryParameter( option: QueryParameterOption ) -> QueryParameterType {
158- return QueryParameterWrap ( SQLString . escape ( string : self ) )
166+ return self
159167 }
160168}
161169
162170extension Int : QueryParameter {
163171 public func queryParameter( option: QueryParameterOption ) -> QueryParameterType {
164- return QueryParameterWrap ( String ( self ) )
172+ return EscapedQueryParameter ( String ( self ) )
165173 }
166174}
167175
168176extension UInt : QueryParameter {
169177 public func queryParameter( option: QueryParameterOption ) -> QueryParameterType {
170- return QueryParameterWrap ( String ( self ) )
178+ return EscapedQueryParameter ( String ( self ) )
171179 }
172180}
173181
174182extension Int64 : QueryParameter {
175183 public func queryParameter( option: QueryParameterOption ) -> QueryParameterType {
176- return QueryParameterWrap ( String ( self ) )
184+ return EscapedQueryParameter ( String ( self ) )
177185 }
178186}
179187
180188extension Int32 : QueryParameter {
181189 public func queryParameter( option: QueryParameterOption ) -> QueryParameterType {
182- return QueryParameterWrap ( String ( self ) )
190+ return EscapedQueryParameter ( String ( self ) )
183191 }
184192}
185193
186194extension Int16 : QueryParameter {
187195 public func queryParameter( option: QueryParameterOption ) -> QueryParameterType {
188- return QueryParameterWrap ( String ( self ) )
196+ return EscapedQueryParameter ( String ( self ) )
189197 }
190198}
191199
192200extension Int8 : QueryParameter {
193201 public func queryParameter( option: QueryParameterOption ) -> QueryParameterType {
194- return QueryParameterWrap ( String ( self ) )
202+ return EscapedQueryParameter ( String ( self ) )
195203 }
196204}
197205
198206extension UInt64 : QueryParameter {
199207 public func queryParameter( option: QueryParameterOption ) -> QueryParameterType {
200- return QueryParameterWrap ( String ( self ) )
208+ return EscapedQueryParameter ( String ( self ) )
201209 }
202210}
203211
204212extension UInt32 : QueryParameter {
205213 public func queryParameter( option: QueryParameterOption ) -> QueryParameterType {
206- return QueryParameterWrap ( String ( self ) )
214+ return EscapedQueryParameter ( String ( self ) )
207215 }
208216}
209217
210218extension UInt16 : QueryParameter {
211219 public func queryParameter( option: QueryParameterOption ) -> QueryParameterType {
212- return QueryParameterWrap ( String ( self ) )
220+ return EscapedQueryParameter ( String ( self ) )
213221 }
214222}
215223
216224extension UInt8 : QueryParameter {
217225 public func queryParameter( option: QueryParameterOption ) -> QueryParameterType {
218- return QueryParameterWrap ( String ( self ) )
226+ return EscapedQueryParameter ( String ( self ) )
219227 }
220228}
221229
222230extension Double : QueryParameter {
223231 public func queryParameter( option: QueryParameterOption ) -> QueryParameterType {
224- return QueryParameterWrap ( String ( self ) )
232+ return EscapedQueryParameter ( String ( self ) )
225233 }
226234}
227235
228236extension Float : QueryParameter {
229237 public func queryParameter( option: QueryParameterOption ) -> QueryParameterType {
230- return QueryParameterWrap ( String ( self ) )
238+ return EscapedQueryParameter ( String ( self ) )
231239 }
232240}
233241
234242extension Bool : QueryParameter {
235243 public func queryParameter( option: QueryParameterOption ) -> QueryParameterType {
236- return QueryParameterWrap ( self ? " true " : " false " )
244+ return EscapedQueryParameter ( self ? " true " : " false " )
237245 }
238246}
239247
240248extension Decimal : QueryParameter {
241249 public func queryParameter( option: QueryParameterOption ) -> QueryParameterType {
242- return QueryParameterWrap ( String ( describing: self ) )
250+ return EscapedQueryParameter ( String ( describing: self ) )
243251 }
244252}
245253
0 commit comments