diff --git a/Examples/Reminders/RemindersListDetail.swift b/Examples/Reminders/RemindersListDetail.swift index ab6986ba..93483d22 100644 --- a/Examples/Reminders/RemindersListDetail.swift +++ b/Examples/Reminders/RemindersListDetail.swift @@ -203,7 +203,7 @@ struct RemindersListDetailView: View { let remindersList: RemindersList let isPastDue: Bool let notes: String - @Column(as: JSONRepresentation<[String]>.self) + @Column(as: [String].JSONRepresentation.self) let tags: [String] } } diff --git a/Examples/Reminders/Schema.swift b/Examples/Reminders/Schema.swift index f39a84bd..1f2bbd05 100644 --- a/Examples/Reminders/Schema.swift +++ b/Examples/Reminders/Schema.swift @@ -71,7 +71,7 @@ extension Tag { } extension Tag.TableColumns { - var jsonNames: some QueryExpression> { + var jsonNames: some QueryExpression<[String].JSONRepresentation> { self.title.jsonGroupArray(filter: self.title.isNot(nil)) } } diff --git a/Examples/Reminders/SearchReminders.swift b/Examples/Reminders/SearchReminders.swift index 0073c556..35de7334 100644 --- a/Examples/Reminders/SearchReminders.swift +++ b/Examples/Reminders/SearchReminders.swift @@ -112,7 +112,7 @@ struct SearchRemindersView: View { let notes: String let reminder: Reminders.Reminder let remindersList: RemindersList - @Column(as: JSONRepresentation<[String]>.self) + @Column(as: [String].JSONRepresentation.self) let tags: [String] } } diff --git a/Package.swift b/Package.swift index e6f3b8ed..516fff8e 100644 --- a/Package.swift +++ b/Package.swift @@ -33,7 +33,7 @@ let package = Package( .package(url: "https://github.com/pointfreeco/swift-dependencies", from: "1.9.0"), .package(url: "https://github.com/pointfreeco/xctest-dynamic-overlay", from: "1.5.0"), .package(url: "https://github.com/pointfreeco/swift-sharing", from: "2.3.0"), - .package(url: "https://github.com/pointfreeco/swift-structured-queries", from: "0.1.1"), + .package(url: "https://github.com/pointfreeco/swift-structured-queries", from: "0.2.0"), ], targets: [ .target( diff --git a/SharingGRDB.xcworkspace/xcshareddata/swiftpm/Package.resolved b/SharingGRDB.xcworkspace/xcshareddata/swiftpm/Package.resolved index dd25d597..99749b44 100644 --- a/SharingGRDB.xcworkspace/xcshareddata/swiftpm/Package.resolved +++ b/SharingGRDB.xcworkspace/xcshareddata/swiftpm/Package.resolved @@ -1,5 +1,5 @@ { - "originHash" : "64ad2f093fc84d1ab79b168712ff3b5d4c6e8d8480ba75cddecef434366b9e82", + "originHash" : "ec7a0ec47976760149a8edf8f7d5f19c9e9ff83c418b7952e6dc20d8e1416329", "pins" : [ { "identity" : "combine-schedulers", @@ -141,8 +141,8 @@ "kind" : "remoteSourceControl", "location" : "https://github.com/pointfreeco/swift-structured-queries", "state" : { - "revision" : "f157e6036aaf29e80771485e3efcf1177bfb76ae", - "version" : "0.1.1" + "revision" : "71657e2f1d5b5af29e8cc5c450a67523433671b1", + "version" : "0.2.0" } }, { diff --git a/Sources/StructuredQueriesGRDBCore/Seed.swift b/Sources/StructuredQueriesGRDBCore/Seed.swift index 271495a7..45ca55f0 100644 --- a/Sources/StructuredQueriesGRDBCore/Seed.swift +++ b/Sources/StructuredQueriesGRDBCore/Seed.swift @@ -53,28 +53,8 @@ extension Database { @InsertValuesBuilder _ build: () -> [any StructuredQueriesCore.Table] ) throws { - var seeds = build() - while !seeds.isEmpty { - guard let first = seeds.first else { break } - let firstType = type(of: first) - - if let firstType = firstType as? any TableDraft.Type { - func insertBatch(_: T.Type) throws { - let batch = Array(seeds.lazy.prefix { $0 is T }.compactMap { $0 as? T }) - defer { seeds.removeFirst(batch.count) } - try T.PrimaryTable.insert(batch).execute(self) - } - - try insertBatch(firstType) - } else { - func insertBatch(_: T.Type) throws { - let batch = Array(seeds.lazy.prefix { $0 is T }.compactMap { $0 as? T }) - defer { seeds.removeFirst(batch.count) } - try T.insert(batch).execute(self) - } - - try insertBatch(firstType) - } + for insert in Seeds(build) { + try insert.execute(self) } } } diff --git a/Tests/SharingGRDBTests/FetchTests.swift b/Tests/SharingGRDBTests/FetchTests.swift index 3732dd06..706cdea2 100644 --- a/Tests/SharingGRDBTests/FetchTests.swift +++ b/Tests/SharingGRDBTests/FetchTests.swift @@ -4,7 +4,6 @@ import GRDB import Sharing import SharingGRDB import StructuredQueries -import SwiftUI import Testing @Suite(.dependency(\.defaultDatabase, try .database()))