Updates dependencies to silence warnings
This commit is contained in:
parent
eebb593aa2
commit
25eb70c5a6
@ -1 +1 @@
|
||||
Subproject commit 2328016bfb8bd7cb0088582f41ea3e669a8cf2fc
|
||||
Subproject commit 10b4b05c8a4cc71f332235424e0c2a065916e90c
|
||||
@ -931,7 +931,6 @@
|
||||
isa = XCBuildConfiguration;
|
||||
baseConfigurationReference = C786AF1D2DDB6223BE2063CC /* Pods-Delta.debug.xcconfig */;
|
||||
buildSettings = {
|
||||
ALWAYS_EMBED_SWIFT_STANDARD_LIBRARIES = YES;
|
||||
ASSETCATALOG_COMPILER_APPICON_NAME = AppIcon;
|
||||
CLANG_ENABLE_MODULES = YES;
|
||||
CODE_SIGN_ENTITLEMENTS = "Delta/Supporting Files/Delta.entitlements";
|
||||
@ -948,7 +947,6 @@
|
||||
isa = XCBuildConfiguration;
|
||||
baseConfigurationReference = A19FF50F55441BC2B2248241 /* Pods-Delta.release.xcconfig */;
|
||||
buildSettings = {
|
||||
ALWAYS_EMBED_SWIFT_STANDARD_LIBRARIES = YES;
|
||||
ASSETCATALOG_COMPILER_APPICON_NAME = AppIcon;
|
||||
CLANG_ENABLE_MODULES = YES;
|
||||
CODE_SIGN_ENTITLEMENTS = "Delta/Supporting Files/Delta.entitlements";
|
||||
|
||||
2
Delta.xcworkspace/contents.xcworkspacedata
generated
2
Delta.xcworkspace/contents.xcworkspacedata
generated
@ -2,7 +2,7 @@
|
||||
<Workspace
|
||||
version = "1.0">
|
||||
<FileRef
|
||||
location = "container:Delta.xcodeproj">
|
||||
location = "group:Delta.xcodeproj">
|
||||
</FileRef>
|
||||
<FileRef
|
||||
location = "group:Cores/DeltaCore/DeltaCore.xcodeproj">
|
||||
|
||||
2
Podfile
2
Podfile
@ -1,5 +1,7 @@
|
||||
platform :ios, '10.0'
|
||||
|
||||
use_frameworks!
|
||||
inhibit_all_warnings!
|
||||
|
||||
target 'Delta' do
|
||||
pod 'FileMD5Hash', '~> 2.0.0'
|
||||
|
||||
14
Podfile.lock
14
Podfile.lock
@ -3,9 +3,9 @@ PODS:
|
||||
- SDWebImage (3.8.2):
|
||||
- SDWebImage/Core (= 3.8.2)
|
||||
- SDWebImage/Core (3.8.2)
|
||||
- SQLite.swift (0.11.0):
|
||||
- SQLite.swift/standard (= 0.11.0)
|
||||
- SQLite.swift/standard (0.11.0)
|
||||
- SQLite.swift (0.11.3):
|
||||
- SQLite.swift/standard (= 0.11.3)
|
||||
- SQLite.swift/standard (0.11.3)
|
||||
|
||||
DEPENDENCIES:
|
||||
- FileMD5Hash (~> 2.0.0)
|
||||
@ -14,9 +14,9 @@ DEPENDENCIES:
|
||||
|
||||
SPEC CHECKSUMS:
|
||||
FileMD5Hash: 3ed69cc19a21ff4d30ae8833fc104275ad2c7de0
|
||||
SDWebImage: 098e97e6176540799c27e804c96653ee0833d13c
|
||||
SQLite.swift: 9a26273607d3077a2e5a8d33486e9989f8404c7d
|
||||
SDWebImage: '098e97e6176540799c27e804c96653ee0833d13c'
|
||||
SQLite.swift: 99b36c22084427f0abbeb957556ce1528cf10bb3
|
||||
|
||||
PODFILE CHECKSUM: 4d0cd307e08d6d4673b7cc8e54e1a5106772bfe0
|
||||
PODFILE CHECKSUM: e583277236d810a5e080371e73349e52a4aaa25e
|
||||
|
||||
COCOAPODS: 1.1.1
|
||||
COCOAPODS: 1.2.0
|
||||
|
||||
14
Pods/Manifest.lock
generated
14
Pods/Manifest.lock
generated
@ -3,9 +3,9 @@ PODS:
|
||||
- SDWebImage (3.8.2):
|
||||
- SDWebImage/Core (= 3.8.2)
|
||||
- SDWebImage/Core (3.8.2)
|
||||
- SQLite.swift (0.11.0):
|
||||
- SQLite.swift/standard (= 0.11.0)
|
||||
- SQLite.swift/standard (0.11.0)
|
||||
- SQLite.swift (0.11.3):
|
||||
- SQLite.swift/standard (= 0.11.3)
|
||||
- SQLite.swift/standard (0.11.3)
|
||||
|
||||
DEPENDENCIES:
|
||||
- FileMD5Hash (~> 2.0.0)
|
||||
@ -14,9 +14,9 @@ DEPENDENCIES:
|
||||
|
||||
SPEC CHECKSUMS:
|
||||
FileMD5Hash: 3ed69cc19a21ff4d30ae8833fc104275ad2c7de0
|
||||
SDWebImage: 098e97e6176540799c27e804c96653ee0833d13c
|
||||
SQLite.swift: 9a26273607d3077a2e5a8d33486e9989f8404c7d
|
||||
SDWebImage: '098e97e6176540799c27e804c96653ee0833d13c'
|
||||
SQLite.swift: 99b36c22084427f0abbeb957556ce1528cf10bb3
|
||||
|
||||
PODFILE CHECKSUM: 4d0cd307e08d6d4673b7cc8e54e1a5106772bfe0
|
||||
PODFILE CHECKSUM: e583277236d810a5e080371e73349e52a4aaa25e
|
||||
|
||||
COCOAPODS: 1.1.1
|
||||
COCOAPODS: 1.2.0
|
||||
|
||||
818
Pods/Pods.xcodeproj/project.pbxproj
generated
818
Pods/Pods.xcodeproj/project.pbxproj
generated
File diff suppressed because it is too large
Load Diff
57
Pods/SQLite.swift/README.md
generated
57
Pods/SQLite.swift/README.md
generated
@ -25,7 +25,7 @@ syntax _and_ intent.
|
||||
- [Full-text search][] support
|
||||
- [Well-documented][See Documentation]
|
||||
- Extensively tested
|
||||
- Companion project has [SQLCipher support](https://github.com/stephencelis/SQLiteCipher.swift)
|
||||
- SQLCipher support via CocoaPods
|
||||
- Active support at [StackOverflow](http://stackoverflow.com/questions/tagged/sqlite.swift), and [Gitter Chat Room](https://gitter.im/stephencelis/SQLite.swift) (_experimental_)
|
||||
|
||||
[Full-text search]: Documentation/Index.md#full-text-search
|
||||
@ -112,12 +112,6 @@ For a more comprehensive example, see [this article](http://masteringswift.blogs
|
||||
> _Note:_ SQLite.swift requires Swift 3 (and [Xcode][] 8) or greater. If you absolutely
|
||||
> need compatibility with Swift 2.3 you can use the [swift-2.3][] branch or older
|
||||
> released versions. New development will happen exclusively on the master/Swift 3 branch.
|
||||
>
|
||||
> The following instructions apply to targets that support embedded
|
||||
> Swift frameworks. To use SQLite.swift in iOS 7 or an OS X command line
|
||||
> tool, please read the [Frameworkless Targets][] section of the
|
||||
> documentation.
|
||||
|
||||
|
||||
### Carthage
|
||||
|
||||
@ -129,7 +123,7 @@ install SQLite.swift with Carthage:
|
||||
2. Update your Cartfile to include the following:
|
||||
|
||||
```
|
||||
github "stephencelis/SQLite.swift" ~> 0.11.0
|
||||
github "stephencelis/SQLite.swift" ~> 0.11.3
|
||||
```
|
||||
|
||||
3. Run `carthage update` and [add the appropriate framework][Carthage Usage].
|
||||
@ -145,8 +139,13 @@ install SQLite.swift with Carthage:
|
||||
[CocoaPods][] is a dependency manager for Cocoa projects. To install
|
||||
SQLite.swift with CocoaPods:
|
||||
|
||||
1. Make sure the latest CocoaPods beta is [installed][CocoaPods
|
||||
Installation]. (SQLite.swift requires version 1.0.0.beta.6 or greater.)
|
||||
1. Verify that your copy of Xcode is installed and active in the default location (`/Applications/Xcode.app`).
|
||||
|
||||
```sh
|
||||
sudo xcode-select --switch /Applications/Xcode.app
|
||||
```
|
||||
|
||||
2. Make sure CocoaPods is [installed][CocoaPods Installation]. (SQLite.swift requires version 1.0.0 or greater.)
|
||||
|
||||
``` sh
|
||||
# Using the default Ruby install will require you to use sudo when
|
||||
@ -154,19 +153,40 @@ SQLite.swift with CocoaPods:
|
||||
[sudo] gem install cocoapods
|
||||
```
|
||||
|
||||
2. Update your Podfile to include the following:
|
||||
3. Update your Podfile to include the following:
|
||||
|
||||
``` ruby
|
||||
use_frameworks!
|
||||
|
||||
pod 'SQLite.swift', '~> 0.11.0'
|
||||
target 'YourAppTargetName' do
|
||||
pod 'SQLite.swift', '~> 0.11.3'
|
||||
end
|
||||
```
|
||||
|
||||
3. Run `pod install`.
|
||||
4. Run `pod install --repo-update`.
|
||||
|
||||
[CocoaPods]: https://cocoapods.org
|
||||
[CocoaPods Installation]: https://guides.cocoapods.org/using/getting-started.html#getting-started
|
||||
|
||||
### Swift Package Manager
|
||||
|
||||
The [Swift Package Manager][] is a tool for managing the distribution of Swift code.
|
||||
|
||||
1. Add the following to your `Package.swift` file:
|
||||
|
||||
```swift
|
||||
dependencies: [
|
||||
.Package(url: "https://github.com/stephencelis/SQLite.swift.git", majorVersion: 0, minor: 11)
|
||||
]
|
||||
```
|
||||
|
||||
2. Build your project:
|
||||
|
||||
``` sh
|
||||
$ swift build -Xlinker -lsqlite3
|
||||
```
|
||||
|
||||
[Swift Package Manager]: https://swift.org/package-manager
|
||||
|
||||
### Manual
|
||||
|
||||
@ -184,7 +204,15 @@ To install SQLite.swift as an Xcode sub-project:
|
||||
|
||||
4. **Add**.
|
||||
|
||||
[Frameworkless Targets]: Documentation/Index.md#frameworkless-targets
|
||||
Some additional steps are required to install the application on an actual device:
|
||||
|
||||
5. In the **General** tab, click the **+** button under **Embedded Binaries**.
|
||||
|
||||
6. Select the appropriate **SQLite.framework** for your platform.
|
||||
|
||||
7. **Add**.
|
||||
|
||||
|
||||
[Xcode]: https://developer.apple.com/xcode/downloads/
|
||||
[Submodule]: http://git-scm.com/book/en/Git-Tools-Submodules
|
||||
[download]: https://github.com/stephencelis/SQLite.swift/archive/master.zip
|
||||
@ -223,7 +251,6 @@ file](./LICENSE.txt) for more information.
|
||||
|
||||
These projects enhance or use SQLite.swift:
|
||||
|
||||
- [SQLiteCipher.swift](https://github.com/stephencelis/SQLiteCipher.swift)
|
||||
- [SQLiteMigrationManager.swift](https://github.com/garriguv/SQLiteMigrationManager.swift) (inspired by [FMDBMigrationManager](https://github.com/layerhq/FMDBMigrationManager))
|
||||
|
||||
|
||||
|
||||
@ -26,7 +26,9 @@ import Foundation.NSUUID
|
||||
import Dispatch
|
||||
#if SQLITE_SWIFT_STANDALONE
|
||||
import sqlite3
|
||||
#elseif COCOAPODS
|
||||
#elseif SQLITE_SWIFT_SQLCIPHER
|
||||
import SQLCipher
|
||||
#elseif SWIFT_PACKAGE || COCOAPODS
|
||||
import CSQLite
|
||||
#endif
|
||||
|
||||
@ -132,9 +134,8 @@ public final class Connection {
|
||||
public var readonly: Bool { return sqlite3_db_readonly(handle, nil) == 1 }
|
||||
|
||||
/// The last rowid inserted into the database via this connection.
|
||||
public var lastInsertRowid: Int64? {
|
||||
let rowid = sqlite3_last_insert_rowid(handle)
|
||||
return rowid != 0 ? rowid : nil
|
||||
public var lastInsertRowid: Int64 {
|
||||
return sqlite3_last_insert_rowid(handle)
|
||||
}
|
||||
|
||||
/// The last number of changes (inserts, updates, or deletes) made to the
|
||||
@ -412,11 +413,15 @@ public final class Connection {
|
||||
///
|
||||
/// db.trace { SQL in print(SQL) }
|
||||
public func trace(_ callback: ((String) -> Void)?) {
|
||||
if #available(iOS 10.0, OSX 10.12, tvOS 10.0, watchOS 3.0, *) {
|
||||
trace_v2(callback)
|
||||
} else {
|
||||
#if SQLITE_SWIFT_SQLCIPHER
|
||||
trace_v1(callback)
|
||||
}
|
||||
#else
|
||||
if #available(iOS 10.0, OSX 10.12, tvOS 10.0, watchOS 3.0, *) {
|
||||
trace_v2(callback)
|
||||
} else {
|
||||
trace_v1(callback)
|
||||
}
|
||||
#endif
|
||||
}
|
||||
|
||||
fileprivate func trace_v1(_ callback: ((String) -> Void)?) {
|
||||
@ -440,37 +445,8 @@ public final class Connection {
|
||||
trace = box
|
||||
}
|
||||
|
||||
@available(iOS 10.0, OSX 10.12, tvOS 10.0, watchOS 3.0, *)
|
||||
fileprivate func trace_v2(_ callback: ((String) -> Void)?) {
|
||||
guard let callback = callback else {
|
||||
// If the X callback is NULL or if the M mask is zero, then tracing is disabled.
|
||||
sqlite3_trace_v2(handle, 0 /* mask */, nil /* xCallback */, nil /* pCtx */)
|
||||
trace = nil
|
||||
return
|
||||
}
|
||||
|
||||
let box: Trace = { (pointer: UnsafeRawPointer) in
|
||||
callback(String(cString: pointer.assumingMemoryBound(to: UInt8.self)))
|
||||
}
|
||||
sqlite3_trace_v2(handle,
|
||||
UInt32(SQLITE_TRACE_STMT) /* mask */,
|
||||
{
|
||||
// A trace callback is invoked with four arguments: callback(T,C,P,X).
|
||||
// The T argument is one of the SQLITE_TRACE constants to indicate why the
|
||||
// callback was invoked. The C argument is a copy of the context pointer.
|
||||
// The P and X arguments are pointers whose meanings depend on T.
|
||||
(T: UInt32, C: UnsafeMutableRawPointer?, P: UnsafeMutableRawPointer?, X: UnsafeMutableRawPointer?) in
|
||||
if let P = P,
|
||||
let expandedSQL = sqlite3_expanded_sql(OpaquePointer(P)) {
|
||||
unsafeBitCast(C, to: Trace.self)(expandedSQL)
|
||||
sqlite3_free(expandedSQL)
|
||||
}
|
||||
return Int32(0) // currently ignored
|
||||
},
|
||||
unsafeBitCast(box, to: UnsafeMutableRawPointer.self) /* pCtx */
|
||||
)
|
||||
trace = box
|
||||
}
|
||||
|
||||
|
||||
fileprivate typealias Trace = @convention(block) (UnsafeRawPointer) -> Void
|
||||
fileprivate var trace: Trace?
|
||||
@ -603,7 +579,7 @@ public final class Connection {
|
||||
} else if result == nil {
|
||||
sqlite3_result_null(context)
|
||||
} else {
|
||||
fatalError("unsupported result type: \(result)")
|
||||
fatalError("unsupported result type: \(String(describing: result))")
|
||||
}
|
||||
}
|
||||
var flags = SQLITE_UTF8
|
||||
@ -733,11 +709,48 @@ extension Result : CustomStringConvertible {
|
||||
|
||||
public var description: String {
|
||||
switch self {
|
||||
case let .error(message, _, statement):
|
||||
guard let statement = statement else { return message }
|
||||
|
||||
return "\(message) (\(statement))"
|
||||
case let .error(message, errorCode, statement):
|
||||
if let statement = statement {
|
||||
return "\(message) (\(statement)) (code: \(errorCode))"
|
||||
} else {
|
||||
return "\(message) (code: \(errorCode))"
|
||||
}
|
||||
}
|
||||
}
|
||||
|
||||
}
|
||||
|
||||
#if !SQLITE_SWIFT_SQLCIPHER
|
||||
@available(iOS 10.0, OSX 10.12, tvOS 10.0, watchOS 3.0, *)
|
||||
extension Connection {
|
||||
fileprivate func trace_v2(_ callback: ((String) -> Void)?) {
|
||||
guard let callback = callback else {
|
||||
// If the X callback is NULL or if the M mask is zero, then tracing is disabled.
|
||||
sqlite3_trace_v2(handle, 0 /* mask */, nil /* xCallback */, nil /* pCtx */)
|
||||
trace = nil
|
||||
return
|
||||
}
|
||||
|
||||
let box: Trace = { (pointer: UnsafeRawPointer) in
|
||||
callback(String(cString: pointer.assumingMemoryBound(to: UInt8.self)))
|
||||
}
|
||||
sqlite3_trace_v2(handle,
|
||||
UInt32(SQLITE_TRACE_STMT) /* mask */,
|
||||
{
|
||||
// A trace callback is invoked with four arguments: callback(T,C,P,X).
|
||||
// The T argument is one of the SQLITE_TRACE constants to indicate why the
|
||||
// callback was invoked. The C argument is a copy of the context pointer.
|
||||
// The P and X arguments are pointers whose meanings depend on T.
|
||||
(T: UInt32, C: UnsafeMutableRawPointer?, P: UnsafeMutableRawPointer?, X: UnsafeMutableRawPointer?) in
|
||||
if let P = P,
|
||||
let expandedSQL = sqlite3_expanded_sql(OpaquePointer(P)) {
|
||||
unsafeBitCast(C, to: Trace.self)(expandedSQL)
|
||||
sqlite3_free(expandedSQL)
|
||||
}
|
||||
return Int32(0) // currently ignored
|
||||
},
|
||||
unsafeBitCast(box, to: UnsafeMutableRawPointer.self) /* pCtx */
|
||||
)
|
||||
trace = box
|
||||
}
|
||||
}
|
||||
#endif
|
||||
@ -24,7 +24,9 @@
|
||||
|
||||
#if SQLITE_SWIFT_STANDALONE
|
||||
import sqlite3
|
||||
#elseif COCOAPODS
|
||||
#elseif SQLITE_SWIFT_SQLCIPHER
|
||||
import SQLCipher
|
||||
#elseif SWIFT_PACKAGE || COCOAPODS
|
||||
import CSQLite
|
||||
#endif
|
||||
|
||||
@ -242,7 +244,9 @@ public struct Cursor {
|
||||
let length = Int(sqlite3_column_bytes(handle, Int32(idx)))
|
||||
return Blob(bytes: pointer, length: length)
|
||||
} else {
|
||||
fatalError("sqlite3_column_blob returned NULL")
|
||||
// The return value from sqlite3_column_blob() for a zero-length BLOB is a NULL pointer.
|
||||
// https://www.sqlite.org/c3ref/column_blob.html
|
||||
return Blob(bytes: [])
|
||||
}
|
||||
}
|
||||
|
||||
@ -22,6 +22,10 @@
|
||||
// THE SOFTWARE.
|
||||
//
|
||||
|
||||
#if SWIFT_PACKAGE
|
||||
import SQLiteObjc
|
||||
#endif
|
||||
|
||||
extension Module {
|
||||
|
||||
public static func FTS4(_ column: Expressible, _ more: Expressible...) -> Module {
|
||||
@ -141,13 +145,14 @@ extension Tokenizer : CustomStringConvertible {
|
||||
extension Connection {
|
||||
|
||||
public func registerTokenizer(_ submoduleName: String, next: @escaping (String) -> (String, Range<String.Index>)?) throws {
|
||||
try check(_SQLiteRegisterTokenizer(handle, Tokenizer.moduleName, submoduleName) { input, offset, length in
|
||||
try check(_SQLiteRegisterTokenizer(handle, Tokenizer.moduleName, submoduleName) { (
|
||||
input: UnsafePointer<Int8>, offset: UnsafeMutablePointer<Int32>, length: UnsafeMutablePointer<Int32>) in
|
||||
let string = String(cString: input)
|
||||
|
||||
guard let (token, range) = next(string) else { return nil }
|
||||
|
||||
let view = string.utf8
|
||||
offset.pointee += string.substring(to: range.lowerBound).utf8.count
|
||||
offset.pointee += Int32(string.substring(to: range.lowerBound).utf8.count)
|
||||
length.pointee = Int32(view.distance(from: range.lowerBound.samePosition(in: view), to: range.upperBound.samePosition(in: view)))
|
||||
return token
|
||||
})
|
||||
@ -24,7 +24,9 @@
|
||||
|
||||
#if SQLITE_SWIFT_STANDALONE
|
||||
import sqlite3
|
||||
#elseif COCOAPODS
|
||||
#elseif SQLITE_SWIFT_SQLCIPHER
|
||||
import SQLCipher
|
||||
#elseif SWIFT_PACKAGE || COCOAPODS
|
||||
import CSQLite
|
||||
#endif
|
||||
|
||||
@ -56,17 +56,17 @@ public extension Connection {
|
||||
return { arg in fn([arg]) }
|
||||
}
|
||||
|
||||
public func createFunction<Z : Value, A : Value>(function: String, deterministic: Bool = false, _ block: @escaping (A?) -> Z) throws -> ((Expression<A?>) -> Expression<Z>) {
|
||||
public func createFunction<Z : Value, A : Value>(_ function: String, deterministic: Bool = false, _ block: @escaping (A?) -> Z) throws -> ((Expression<A?>) -> Expression<Z>) {
|
||||
let fn = try createFunction(function, 1, deterministic) { args in block(args[0].map(value)) }
|
||||
return { arg in fn([arg]) }
|
||||
}
|
||||
|
||||
public func createFunction<Z : Value, A : Value>(function: String, deterministic: Bool = false, _ block: @escaping (A) -> Z?) throws -> ((Expression<A>) -> Expression<Z?>) {
|
||||
public func createFunction<Z : Value, A : Value>(_ function: String, deterministic: Bool = false, _ block: @escaping (A) -> Z?) throws -> ((Expression<A>) -> Expression<Z?>) {
|
||||
let fn = try createFunction(function, 1, deterministic) { args in block(value(args[0])) }
|
||||
return { arg in fn([arg]) }
|
||||
}
|
||||
|
||||
public func createFunction<Z : Value, A : Value>(function: String, deterministic: Bool = false, _ block: @escaping (A?) -> Z?) throws -> ((Expression<A?>) -> Expression<Z?>) {
|
||||
public func createFunction<Z : Value, A : Value>(_ function: String, deterministic: Bool = false, _ block: @escaping (A?) -> Z?) throws -> ((Expression<A?>) -> Expression<Z?>) {
|
||||
let fn = try createFunction(function, 1, deterministic) { args in block(args[0].map(value)) }
|
||||
return { arg in fn([arg]) }
|
||||
}
|
||||
@ -74,42 +74,42 @@ public extension Connection {
|
||||
// MARK: -
|
||||
|
||||
public func createFunction<Z : Value, A : Value, B : Value>(_ function: String, deterministic: Bool = false, _ block: @escaping (A, B) -> Z) throws -> (Expression<A>, Expression<B>) -> Expression<Z> {
|
||||
let fn = try createFunction(function, 1, deterministic) { args in block(value(args[0]), value(args[1])) }
|
||||
let fn = try createFunction(function, 2, deterministic) { args in block(value(args[0]), value(args[1])) }
|
||||
return { a, b in fn([a, b]) }
|
||||
}
|
||||
|
||||
public func createFunction<Z : Value, A : Value, B : Value>(_ function: String, deterministic: Bool = false, _ block: @escaping (A?, B) -> Z) throws -> (Expression<A?>, Expression<B>) -> Expression<Z> {
|
||||
let fn = try createFunction(function, 1, deterministic) { args in block(args[0].map(value), value(args[1])) }
|
||||
let fn = try createFunction(function, 2, deterministic) { args in block(args[0].map(value), value(args[1])) }
|
||||
return { a, b in fn([a, b]) }
|
||||
}
|
||||
|
||||
public func createFunction<Z : Value, A : Value, B : Value>(_ function: String, deterministic: Bool = false, _ block: @escaping (A, B?) -> Z) throws -> (Expression<A>, Expression<B?>) -> Expression<Z> {
|
||||
let fn = try createFunction(function, 1, deterministic) { args in block(value(args[0]), args[1].map(value)) }
|
||||
let fn = try createFunction(function, 2, deterministic) { args in block(value(args[0]), args[1].map(value)) }
|
||||
return { a, b in fn([a, b]) }
|
||||
}
|
||||
|
||||
public func createFunction<Z : Value, A : Value, B : Value>(_ function: String, deterministic: Bool = false, _ block: @escaping (A, B) -> Z?) throws -> (Expression<A>, Expression<B>) -> Expression<Z?> {
|
||||
let fn = try createFunction(function, 1, deterministic) { args in block(value(args[0]), value(args[1])) }
|
||||
let fn = try createFunction(function, 2, deterministic) { args in block(value(args[0]), value(args[1])) }
|
||||
return { a, b in fn([a, b]) }
|
||||
}
|
||||
|
||||
public func createFunction<Z : Value, A : Value, B : Value>(_ function: String, deterministic: Bool = false, _ block: @escaping (A?, B?) -> Z) throws -> (Expression<A?>, Expression<B?>) -> Expression<Z> {
|
||||
let fn = try createFunction(function, 1, deterministic) { args in block(args[0].map(value), args[1].map(value)) }
|
||||
let fn = try createFunction(function, 2, deterministic) { args in block(args[0].map(value), args[1].map(value)) }
|
||||
return { a, b in fn([a, b]) }
|
||||
}
|
||||
|
||||
public func createFunction<Z : Value, A : Value, B : Value>(_ function: String, deterministic: Bool = false, _ block: @escaping (A?, B) -> Z?) throws -> (Expression<A?>, Expression<B>) -> Expression<Z?> {
|
||||
let fn = try createFunction(function, 1, deterministic) { args in block(args[0].map(value), value(args[1])) }
|
||||
let fn = try createFunction(function, 2, deterministic) { args in block(args[0].map(value), value(args[1])) }
|
||||
return { a, b in fn([a, b]) }
|
||||
}
|
||||
|
||||
public func createFunction<Z : Value, A : Value, B : Value>(_ function: String, deterministic: Bool = false, _ block: @escaping (A, B?) -> Z?) throws -> (Expression<A>, Expression<B?>) -> Expression<Z?> {
|
||||
let fn = try createFunction(function, 1, deterministic) { args in block(value(args[0]), args[1].map(value)) }
|
||||
let fn = try createFunction(function, 2, deterministic) { args in block(value(args[0]), args[1].map(value)) }
|
||||
return { a, b in fn([a, b]) }
|
||||
}
|
||||
|
||||
public func createFunction<Z : Value, A : Value, B : Value>(_ function: String, deterministic: Bool = false, _ block: @escaping (A?, B?) -> Z?) throws -> (Expression<A?>, Expression<B?>) -> Expression<Z?> {
|
||||
let fn = try createFunction(function, 1, deterministic) { args in block(args[0].map(value), args[1].map(value)) }
|
||||
let fn = try createFunction(function, 2, deterministic) { args in block(args[0].map(value), args[1].map(value)) }
|
||||
return { a, b in fn([a, b]) }
|
||||
}
|
||||
|
||||
@ -474,10 +474,10 @@ public func <=<V : Value>(lhs: V, rhs: Expression<V?>) -> Expression<Bool?> wher
|
||||
return infix(lhs, rhs)
|
||||
}
|
||||
|
||||
public func ~=<V : Value>(lhs: CountableClosedRange<V>, rhs: Expression<V>) -> Expression<Bool> where V.Datatype : Binding & Comparable {
|
||||
public func ~=<V : Value>(lhs: ClosedRange<V>, rhs: Expression<V>) -> Expression<Bool> where V.Datatype : Binding & Comparable {
|
||||
return Expression("\(rhs.template) BETWEEN ? AND ?", rhs.bindings + [lhs.lowerBound as? Binding, lhs.upperBound as? Binding])
|
||||
}
|
||||
public func ~=<V : Value>(lhs: CountableClosedRange<V>, rhs: Expression<V?>) -> Expression<Bool?> where V.Datatype : Binding & Comparable {
|
||||
public func ~=<V : Value>(lhs: ClosedRange<V>, rhs: Expression<V?>) -> Expression<Bool?> where V.Datatype : Binding & Comparable {
|
||||
return Expression("\(rhs.template) BETWEEN ? AND ?", rhs.bindings + [lhs.lowerBound as? Binding, lhs.upperBound as? Binding])
|
||||
}
|
||||
|
||||
@ -306,6 +306,18 @@ extension QueryType {
|
||||
return query
|
||||
}
|
||||
|
||||
/// Adds a condition to the query’s `WHERE` clause.
|
||||
/// This is an alias for `filter(predicate)`
|
||||
public func `where`(_ predicate: Expression<Bool>) -> Self {
|
||||
return `where`(Expression<Bool?>(predicate))
|
||||
}
|
||||
|
||||
/// Adds a condition to the query’s `WHERE` clause.
|
||||
/// This is an alias for `filter(predicate)`
|
||||
public func `where`(_ predicate: Expression<Bool?>) -> Self {
|
||||
return filter(predicate)
|
||||
}
|
||||
|
||||
// MARK: GROUP BY
|
||||
|
||||
/// Sets a `GROUP BY` clause on the query.
|
||||
@ -968,11 +980,11 @@ extension Connection {
|
||||
/// - Parameter query: An insert query.
|
||||
///
|
||||
/// - Returns: The insert’s rowid.
|
||||
public func run(_ query: Insert) throws -> Int64 {
|
||||
@discardableResult public func run(_ query: Insert) throws -> Int64 {
|
||||
let expression = query.expression
|
||||
return try sync {
|
||||
try self.run(expression.template, expression.bindings)
|
||||
return self.lastInsertRowid!
|
||||
return self.lastInsertRowid
|
||||
}
|
||||
}
|
||||
|
||||
@ -984,7 +996,7 @@ extension Connection {
|
||||
/// - Parameter query: An update query.
|
||||
///
|
||||
/// - Returns: The number of updated rows.
|
||||
public func run(_ query: Update) throws -> Int {
|
||||
@discardableResult public func run(_ query: Update) throws -> Int {
|
||||
let expression = query.expression
|
||||
return try sync {
|
||||
try self.run(expression.template, expression.bindings)
|
||||
@ -999,7 +1011,7 @@ extension Connection {
|
||||
/// - Parameter query: A delete query.
|
||||
///
|
||||
/// - Returns: The number of deleted rows.
|
||||
public func run(_ query: Delete) throws -> Int {
|
||||
@discardableResult public func run(_ query: Delete) throws -> Int {
|
||||
let expression = query.expression
|
||||
return try sync {
|
||||
try self.run(expression.template, expression.bindings)
|
||||
@ -36,14 +36,15 @@ extension Table {
|
||||
|
||||
// MARK: - CREATE TABLE
|
||||
|
||||
public func create(temporary: Bool = false, ifNotExists: Bool = false, block: (TableBuilder) -> Void) -> String {
|
||||
public func create(temporary: Bool = false, ifNotExists: Bool = false, withoutRowid: Bool = false, block: (TableBuilder) -> Void) -> String {
|
||||
let builder = TableBuilder()
|
||||
|
||||
block(builder)
|
||||
|
||||
let clauses: [Expressible?] = [
|
||||
create(Table.identifier, tableName(), temporary ? .Temporary : nil, ifNotExists),
|
||||
"".wrap(builder.definitions) as Expression<Void>
|
||||
"".wrap(builder.definitions) as Expression<Void>,
|
||||
withoutRowid ? Expression<Void>(literal: "WITHOUT ROWID") : nil
|
||||
]
|
||||
|
||||
return " ".join(clauses.flatMap { $0 }).asSQL()
|
||||
@ -23,7 +23,6 @@
|
||||
//
|
||||
|
||||
#import "SQLite-Bridging.h"
|
||||
#import "sqlite3.h"
|
||||
#import "fts3_tokenizer.h"
|
||||
|
||||
#pragma mark - FTS
|
||||
@ -1,4 +1,12 @@
|
||||
#ifdef __OBJC__
|
||||
#import <UIKit/UIKit.h>
|
||||
#else
|
||||
#ifndef FOUNDATION_EXPORT
|
||||
#if defined(__cplusplus)
|
||||
#define FOUNDATION_EXPORT extern "C"
|
||||
#else
|
||||
#define FOUNDATION_EXPORT extern
|
||||
#endif
|
||||
#endif
|
||||
#endif
|
||||
|
||||
|
||||
@ -1,5 +1,13 @@
|
||||
#ifdef __OBJC__
|
||||
#import <UIKit/UIKit.h>
|
||||
#else
|
||||
#ifndef FOUNDATION_EXPORT
|
||||
#if defined(__cplusplus)
|
||||
#define FOUNDATION_EXPORT extern "C"
|
||||
#else
|
||||
#define FOUNDATION_EXPORT extern
|
||||
#endif
|
||||
#endif
|
||||
#endif
|
||||
|
||||
#import "FileHash.h"
|
||||
|
||||
@ -4,5 +4,6 @@ HEADER_SEARCH_PATHS = "${PODS_ROOT}/Headers/Private" "${PODS_ROOT}/Headers/Publi
|
||||
PODS_BUILD_DIR = $BUILD_DIR
|
||||
PODS_CONFIGURATION_BUILD_DIR = $PODS_BUILD_DIR/$(CONFIGURATION)$(EFFECTIVE_PLATFORM_NAME)
|
||||
PODS_ROOT = ${SRCROOT}
|
||||
PODS_TARGET_SRCROOT = ${PODS_ROOT}/FileMD5Hash
|
||||
PRODUCT_BUNDLE_IDENTIFIER = org.cocoapods.${PRODUCT_NAME:rfc1034identifier}
|
||||
SKIP_INSTALL = YES
|
||||
|
||||
@ -59,8 +59,13 @@ code_sign_if_enabled() {
|
||||
if [ -n "${EXPANDED_CODE_SIGN_IDENTITY}" -a "${CODE_SIGNING_REQUIRED}" != "NO" -a "${CODE_SIGNING_ALLOWED}" != "NO" ]; then
|
||||
# Use the current code_sign_identitiy
|
||||
echo "Code Signing $1 with Identity ${EXPANDED_CODE_SIGN_IDENTITY_NAME}"
|
||||
echo "/usr/bin/codesign --force --sign ${EXPANDED_CODE_SIGN_IDENTITY} ${OTHER_CODE_SIGN_FLAGS} --preserve-metadata=identifier,entitlements \"$1\""
|
||||
/usr/bin/codesign --force --sign ${EXPANDED_CODE_SIGN_IDENTITY} ${OTHER_CODE_SIGN_FLAGS} --preserve-metadata=identifier,entitlements "$1"
|
||||
local code_sign_cmd="/usr/bin/codesign --force --sign ${EXPANDED_CODE_SIGN_IDENTITY} ${OTHER_CODE_SIGN_FLAGS} --preserve-metadata=identifier,entitlements '$1'"
|
||||
|
||||
if [ "${COCOAPODS_PARALLEL_CODE_SIGN}" == "true" ]; then
|
||||
code_sign_cmd="$code_sign_cmd &"
|
||||
fi
|
||||
echo "$code_sign_cmd"
|
||||
eval "$code_sign_cmd"
|
||||
fi
|
||||
}
|
||||
|
||||
@ -93,3 +98,6 @@ if [[ "$CONFIGURATION" == "Release" ]]; then
|
||||
install_framework "$BUILT_PRODUCTS_DIR/SDWebImage/SDWebImage.framework"
|
||||
install_framework "$BUILT_PRODUCTS_DIR/SQLite.swift/SQLite.framework"
|
||||
fi
|
||||
if [ "${COCOAPODS_PARALLEL_CODE_SIGN}" == "true" ]; then
|
||||
wait
|
||||
fi
|
||||
|
||||
@ -18,6 +18,9 @@ case "${TARGETED_DEVICE_FAMILY}" in
|
||||
2)
|
||||
TARGET_DEVICE_ARGS="--target-device ipad"
|
||||
;;
|
||||
3)
|
||||
TARGET_DEVICE_ARGS="--target-device tv"
|
||||
;;
|
||||
*)
|
||||
TARGET_DEVICE_ARGS="--target-device mac"
|
||||
;;
|
||||
|
||||
@ -1,5 +1,13 @@
|
||||
#ifdef __OBJC__
|
||||
#import <UIKit/UIKit.h>
|
||||
#else
|
||||
#ifndef FOUNDATION_EXPORT
|
||||
#if defined(__cplusplus)
|
||||
#define FOUNDATION_EXPORT extern "C"
|
||||
#else
|
||||
#define FOUNDATION_EXPORT extern
|
||||
#endif
|
||||
#endif
|
||||
#endif
|
||||
|
||||
|
||||
|
||||
@ -1,5 +1,4 @@
|
||||
ALWAYS_EMBED_SWIFT_STANDARD_LIBRARIES = YES
|
||||
EMBEDDED_CONTENT_CONTAINS_SWIFT = YES
|
||||
FRAMEWORK_SEARCH_PATHS = $(inherited) "$PODS_CONFIGURATION_BUILD_DIR/FileMD5Hash" "$PODS_CONFIGURATION_BUILD_DIR/SDWebImage" "$PODS_CONFIGURATION_BUILD_DIR/SQLite.swift"
|
||||
GCC_PREPROCESSOR_DEFINITIONS = $(inherited) COCOAPODS=1
|
||||
LD_RUNPATH_SEARCH_PATHS = $(inherited) '@executable_path/Frameworks' '@loader_path/Frameworks'
|
||||
|
||||
@ -1,5 +1,4 @@
|
||||
ALWAYS_EMBED_SWIFT_STANDARD_LIBRARIES = YES
|
||||
EMBEDDED_CONTENT_CONTAINS_SWIFT = YES
|
||||
FRAMEWORK_SEARCH_PATHS = $(inherited) "$PODS_CONFIGURATION_BUILD_DIR/FileMD5Hash" "$PODS_CONFIGURATION_BUILD_DIR/SDWebImage" "$PODS_CONFIGURATION_BUILD_DIR/SQLite.swift"
|
||||
GCC_PREPROCESSOR_DEFINITIONS = $(inherited) COCOAPODS=1
|
||||
LD_RUNPATH_SEARCH_PATHS = $(inherited) '@executable_path/Frameworks' '@loader_path/Frameworks'
|
||||
|
||||
@ -1,4 +1,12 @@
|
||||
#ifdef __OBJC__
|
||||
#import <UIKit/UIKit.h>
|
||||
#else
|
||||
#ifndef FOUNDATION_EXPORT
|
||||
#if defined(__cplusplus)
|
||||
#define FOUNDATION_EXPORT extern "C"
|
||||
#else
|
||||
#define FOUNDATION_EXPORT extern
|
||||
#endif
|
||||
#endif
|
||||
#endif
|
||||
|
||||
|
||||
@ -1,5 +1,13 @@
|
||||
#ifdef __OBJC__
|
||||
#import <UIKit/UIKit.h>
|
||||
#else
|
||||
#ifndef FOUNDATION_EXPORT
|
||||
#if defined(__cplusplus)
|
||||
#define FOUNDATION_EXPORT extern "C"
|
||||
#else
|
||||
#define FOUNDATION_EXPORT extern
|
||||
#endif
|
||||
#endif
|
||||
#endif
|
||||
|
||||
#import "NSData+ImageContentType.h"
|
||||
|
||||
@ -5,5 +5,6 @@ OTHER_LDFLAGS = -framework "ImageIO"
|
||||
PODS_BUILD_DIR = $BUILD_DIR
|
||||
PODS_CONFIGURATION_BUILD_DIR = $PODS_BUILD_DIR/$(CONFIGURATION)$(EFFECTIVE_PLATFORM_NAME)
|
||||
PODS_ROOT = ${SRCROOT}
|
||||
PODS_TARGET_SRCROOT = ${PODS_ROOT}/SDWebImage
|
||||
PRODUCT_BUNDLE_IDENTIFIER = org.cocoapods.${PRODUCT_NAME:rfc1034identifier}
|
||||
SKIP_INSTALL = YES
|
||||
|
||||
@ -15,7 +15,7 @@
|
||||
<key>CFBundlePackageType</key>
|
||||
<string>FMWK</string>
|
||||
<key>CFBundleShortVersionString</key>
|
||||
<string>0.11.0</string>
|
||||
<string>0.11.3</string>
|
||||
<key>CFBundleSignature</key>
|
||||
<string>????</string>
|
||||
<key>CFBundleVersion</key>
|
||||
|
||||
@ -1,4 +1,12 @@
|
||||
#ifdef __OBJC__
|
||||
#import <UIKit/UIKit.h>
|
||||
#else
|
||||
#ifndef FOUNDATION_EXPORT
|
||||
#if defined(__cplusplus)
|
||||
#define FOUNDATION_EXPORT extern "C"
|
||||
#else
|
||||
#define FOUNDATION_EXPORT extern
|
||||
#endif
|
||||
#endif
|
||||
#endif
|
||||
|
||||
|
||||
@ -1,9 +1,17 @@
|
||||
#ifdef __OBJC__
|
||||
#import <UIKit/UIKit.h>
|
||||
#else
|
||||
#ifndef FOUNDATION_EXPORT
|
||||
#if defined(__cplusplus)
|
||||
#define FOUNDATION_EXPORT extern "C"
|
||||
#else
|
||||
#define FOUNDATION_EXPORT extern
|
||||
#endif
|
||||
#endif
|
||||
#endif
|
||||
|
||||
#import "SQLite-Bridging.h"
|
||||
#import "SQLite.h"
|
||||
#import "SQLite-Bridging.h"
|
||||
|
||||
FOUNDATION_EXPORT double SQLiteVersionNumber;
|
||||
FOUNDATION_EXPORT const unsigned char SQLiteVersionString[];
|
||||
|
||||
@ -2,10 +2,11 @@ CONFIGURATION_BUILD_DIR = $PODS_CONFIGURATION_BUILD_DIR/SQLite.swift
|
||||
GCC_PREPROCESSOR_DEFINITIONS = $(inherited) COCOAPODS=1
|
||||
HEADER_SEARCH_PATHS = "${PODS_ROOT}/Headers/Private" "${PODS_ROOT}/Headers/Public"
|
||||
OTHER_LDFLAGS = -l"sqlite3"
|
||||
OTHER_SWIFT_FLAGS = $(inherited) "-D" "COCOAPODS"
|
||||
OTHER_SWIFT_FLAGS = $(inherited) "-D" "COCOAPODS" "-suppress-warnings"
|
||||
PODS_BUILD_DIR = $BUILD_DIR
|
||||
PODS_CONFIGURATION_BUILD_DIR = $PODS_BUILD_DIR/$(CONFIGURATION)$(EFFECTIVE_PLATFORM_NAME)
|
||||
PODS_ROOT = ${SRCROOT}
|
||||
PODS_TARGET_SRCROOT = ${PODS_ROOT}/SQLite.swift
|
||||
PRODUCT_BUNDLE_IDENTIFIER = org.cocoapods.${PRODUCT_NAME:rfc1034identifier}
|
||||
SKIP_INSTALL = YES
|
||||
SWIFT_INCLUDE_PATHS[sdk=appletvos*] = $(SRCROOT)/SQLite.swift/CocoaPods/appletvos
|
||||
|
||||
Loading…
Reference in New Issue
Block a user