Skip to content

Commit d3ad7ac

Browse files
committed
No WALSnapshot on macOS and macOS Catalyst
Fix groue#1276
1 parent 82b4d90 commit d3ad7ac

File tree

2 files changed

+11
-4
lines changed

2 files changed

+11
-4
lines changed

GRDB/Core/WALSnapshot.swift

Lines changed: 9 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -20,7 +20,14 @@
2020
///
2121
/// See <https://www.sqlite.org/c3ref/snapshot.html>.
2222
final class WALSnapshot {
23-
#if GRDBCIPHER || (GRDBCUSTOMSQLITE && !SQLITE_ENABLE_SNAPSHOT)
23+
// Xcode 14 RC ships with a macOS SDK that misses snapshot support.
24+
// TODO: when Xcode ships with a macOS SDK that exposes snapshots, replace
25+
// the `os(macOS) || targetEnvironment(macCatalyst)` check with a compiler
26+
// version check.
27+
//
28+
// We can't enable snapshots for SQLCipher, since we don't know if they
29+
// are enabled.
30+
#if os(macOS) || targetEnvironment(macCatalyst) || GRDBCIPHER || (GRDBCUSTOMSQLITE && !SQLITE_ENABLE_SNAPSHOT)
2431
init?(_ db: Database) {
2532
return nil
2633
}
@@ -56,5 +63,5 @@ final class WALSnapshot {
5663
func compare(_ other: WALSnapshot) -> CInt {
5764
return sqlite3_snapshot_cmp(snapshot, other.snapshot)
5865
}
59-
#endif // GRDBCIPHER || (GRDBCUSTOMSQLITE && !SQLITE_ENABLE_SNAPSHOT)
66+
#endif // os(macOS) || targetEnvironment(macCatalyst) || GRDBCIPHER || (GRDBCUSTOMSQLITE && !SQLITE_ENABLE_SNAPSHOT)
6067
}

Tests/GRDBTests/ValueObservationTests.swift

Lines changed: 2 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -421,7 +421,7 @@ class ValueObservationTests: GRDBTestCase {
421421
}
422422

423423
let expectedCounts: [Int]
424-
#if GRDBCIPHER || (GRDBCUSTOMSQLITE && !SQLITE_ENABLE_SNAPSHOT)
424+
#if os(macOS) || targetEnvironment(macCatalyst) || GRDBCIPHER || (GRDBCUSTOMSQLITE && !SQLITE_ENABLE_SNAPSHOT)
425425
// Optimization not available
426426
expectedCounts = [0, 0, 1]
427427
#else
@@ -471,7 +471,7 @@ class ValueObservationTests: GRDBTestCase {
471471
}
472472

473473
let expectedCounts: [Int]
474-
#if GRDBCIPHER || (GRDBCUSTOMSQLITE && !SQLITE_ENABLE_SNAPSHOT)
474+
#if os(macOS) || targetEnvironment(macCatalyst) || GRDBCIPHER || (GRDBCUSTOMSQLITE && !SQLITE_ENABLE_SNAPSHOT)
475475
// Optimization not available
476476
expectedCounts = [0, 0, 1]
477477
#else

0 commit comments

Comments
 (0)