From ab3111ff9f470f72fb9f9bdf8730345da2d488ea Mon Sep 17 00:00:00 2001 From: Brandon Williams Date: Mon, 13 Jul 2026 20:57:07 -0500 Subject: [PATCH 1/2] Add LazyInitializableByDefault trait. --- Examples/CaseStudies/DynamicQuery.swift | 2 +- Examples/Examples.xcodeproj/project.pbxproj | 1 + .../xcshareddata/swiftpm/Package.resolved | 6 +++--- Examples/Reminders/Schema.swift | 1 + Examples/Reminders/SearchReminders.swift | 2 +- Examples/SyncUps/Dependencies/SpeechClient.swift | 2 +- Examples/SyncUps/SyncUpDetail.swift | 2 +- Package.resolved | 6 +++--- Package.swift | 10 +++++++++- 9 files changed, 21 insertions(+), 11 deletions(-) diff --git a/Examples/CaseStudies/DynamicQuery.swift b/Examples/CaseStudies/DynamicQuery.swift index 9d388eddd..b4c251638 100644 --- a/Examples/CaseStudies/DynamicQuery.swift +++ b/Examples/CaseStudies/DynamicQuery.swift @@ -89,7 +89,7 @@ struct DynamicQueryDemo: SwiftUICaseStudy { func fetch(_ db: Database) throws -> Value { let search = Fact - .where { $0.body.contains(query) } + .where { $0.body.like("%\(query)%") } .order { $0.id.desc() } return try Value( facts: search.fetchAll(db), diff --git a/Examples/Examples.xcodeproj/project.pbxproj b/Examples/Examples.xcodeproj/project.pbxproj index d21c48812..0040127df 100644 --- a/Examples/Examples.xcodeproj/project.pbxproj +++ b/Examples/Examples.xcodeproj/project.pbxproj @@ -1100,6 +1100,7 @@ isa = XCLocalSwiftPackageReference; relativePath = ..; traits = ( + LazyInitializableByDefault, ); }; /* End XCLocalSwiftPackageReference section */ diff --git a/Examples/Examples.xcodeproj/project.xcworkspace/xcshareddata/swiftpm/Package.resolved b/Examples/Examples.xcodeproj/project.xcworkspace/xcshareddata/swiftpm/Package.resolved index b3c5cab94..ce3dfb782 100644 --- a/Examples/Examples.xcodeproj/project.xcworkspace/xcshareddata/swiftpm/Package.resolved +++ b/Examples/Examples.xcodeproj/project.xcworkspace/xcshareddata/swiftpm/Package.resolved @@ -1,5 +1,5 @@ { - "originHash" : "c133bf7d10c8ce1e5d6506c3d2f080eac8b4c8c2827044d53a9b925e903564fd", + "originHash" : "c56e7b70de4fe8bcc798354797a8405c0eeb2e9bc68bc0f202c14a8b11a0a97f", "pins" : [ { "identity" : "combine-schedulers", @@ -123,8 +123,8 @@ "kind" : "remoteSourceControl", "location" : "https://github.com/pointfreeco/swift-structured-queries", "state" : { - "revision" : "859958c7cf76918abf5aa5d6ce8b068e00a77eb2", - "version" : "0.32.0" + "revision" : "50a429884d7a6c0613df2a31a24009cc436bfb18", + "version" : "0.33.2" } }, { diff --git a/Examples/Reminders/Schema.swift b/Examples/Reminders/Schema.swift index 50c7746fb..54dc8f4fc 100644 --- a/Examples/Reminders/Schema.swift +++ b/Examples/Reminders/Schema.swift @@ -36,6 +36,7 @@ nonisolated struct Reminder: Hashable, Identifiable { var notes = "" var position = 0 var priority: Priority? + @Column(lazyInitializable: false) var remindersListID: RemindersList.ID var status: Status = .incomplete var title = "" diff --git a/Examples/Reminders/SearchReminders.swift b/Examples/Reminders/SearchReminders.swift index 7faf8f511..9c33dfcae 100644 --- a/Examples/Reminders/SearchReminders.swift +++ b/Examples/Reminders/SearchReminders.swift @@ -96,7 +96,7 @@ class SearchRemindersModel { let existingTags = searchTokens.compactMap { $0.kind == .tag ? $0.rawValue : nil } try await $tags.load( Tag - .where { $0.title.hasPrefix(searchText.dropFirst()) && !$0.title.in(existingTags) } + .where { $0.title.like("\(searchText.dropFirst())%") && !$0.title.in(existingTags) } .order(by: \.title) ) } else { diff --git a/Examples/SyncUps/Dependencies/SpeechClient.swift b/Examples/SyncUps/Dependencies/SpeechClient.swift index f6725781a..66debf079 100644 --- a/Examples/SyncUps/Dependencies/SpeechClient.swift +++ b/Examples/SyncUps/Dependencies/SpeechClient.swift @@ -37,7 +37,7 @@ nonisolated struct SpeechClient: DependencyKey { requestAuthorization: { .authorized }, startTask: { AsyncThrowingStream { continuation in - Task { @MainActor in + _ = Task { @MainActor in isRecording.setValue(true) var finalText = """ Lorem ipsum dolor sit amet, consectetur adipiscing elit, sed do eiusmod tempor \ diff --git a/Examples/SyncUps/SyncUpDetail.swift b/Examples/SyncUps/SyncUpDetail.swift index e5b305c1d..023c62ca4 100644 --- a/Examples/SyncUps/SyncUpDetail.swift +++ b/Examples/SyncUps/SyncUpDetail.swift @@ -44,7 +44,7 @@ final class SyncUpDetailModel: HashableObject { withErrorReporting { try database.write { db in let ids = indices.map { meetings[$0].id } - try Meeting.where { ids.contains($0.id) }.delete().execute(db) + try Meeting.Meeting.where { $0.id.in(ids) }.delete().execute(db) } } } diff --git a/Package.resolved b/Package.resolved index b0538ea6f..2c8e50930 100644 --- a/Package.resolved +++ b/Package.resolved @@ -1,5 +1,5 @@ { - "originHash" : "e2cc6c054d5cb45b58ddae48858b3338ce4fc9283457edb40b284849c3914ed5", + "originHash" : "31c783928cdfa6447732a2134d9f5fbe9824b71294e216b29992d246e7540c06", "pins" : [ { "identity" : "combine-schedulers", @@ -123,8 +123,8 @@ "kind" : "remoteSourceControl", "location" : "https://github.com/pointfreeco/swift-structured-queries", "state" : { - "revision" : "859958c7cf76918abf5aa5d6ce8b068e00a77eb2", - "version" : "0.32.0" + "revision" : "50a429884d7a6c0613df2a31a24009cc436bfb18", + "version" : "0.33.2" } }, { diff --git a/Package.swift b/Package.swift index 837ac5282..eb33cad5e 100644 --- a/Package.swift +++ b/Package.swift @@ -22,6 +22,10 @@ let package = Package( ), ], traits: [ + .trait( + name: "LazyInitializableByDefault", + description: "Optionalize draft properties that have no default." + ), .trait( name: "CasePaths", description: "Introduce support for enum tables." @@ -47,8 +51,12 @@ let package = Package( .package(url: "https://github.com/pointfreeco/swift-snapshot-testing", from: "1.18.4"), .package( url: "https://github.com/pointfreeco/swift-structured-queries", - from: "0.32.0", + from: "0.33.0", traits: [ + .trait( + name: "LazyInitializableByDefault", + condition: .when(traits: ["LazyInitializableByDefault"]) + ), .trait(name: "CasePaths", condition: .when(traits: ["CasePaths"])), .trait(name: "Tagged", condition: .when(traits: ["Tagged"])), ] From db74822bfec664180618f2ae86dd27d2ebc512e7 Mon Sep 17 00:00:00 2001 From: Brandon Williams Date: Mon, 13 Jul 2026 21:08:23 -0500 Subject: [PATCH 2/2] Fix --- Examples/SyncUps/SyncUpDetail.swift | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/Examples/SyncUps/SyncUpDetail.swift b/Examples/SyncUps/SyncUpDetail.swift index 023c62ca4..9818ff3e6 100644 --- a/Examples/SyncUps/SyncUpDetail.swift +++ b/Examples/SyncUps/SyncUpDetail.swift @@ -44,7 +44,7 @@ final class SyncUpDetailModel: HashableObject { withErrorReporting { try database.write { db in let ids = indices.map { meetings[$0].id } - try Meeting.Meeting.where { $0.id.in(ids) }.delete().execute(db) + try Meeting.where { $0.id.in(ids) }.delete().execute(db) } } }