diff --git a/Sources/ZeeQL/Control/FetchSpecification+Builder.swift b/Sources/ZeeQL/Control/FetchSpecification+Builder.swift index 2f47419..8e1b477 100644 --- a/Sources/ZeeQL/Control/FetchSpecification+Builder.swift +++ b/Sources/ZeeQL/Control/FetchSpecification+Builder.swift @@ -169,4 +169,22 @@ public extension DatabaseFetchSpecification let so = SortOrdering(key: AttributeKey(attribute), selector: selector) return order(by: so) } + + #if swift(>=5.9) + @inlinable + func order( + by key: repeat Swift.KeyPath>, + using selector: SortOrdering.Selector = .CompareAscending + ) -> Self + { + var fs = self + for key in repeat each key { + let attribute = Object.e[keyPath: key] + let so = SortOrdering(key: AttributeKey(attribute), selector: selector) + if fs.sortOrderings == nil { fs.sortOrderings = [ so ] } + else { fs.sortOrderings?.append(so) } + } + return fs + } + #endif // swift(>=5.9 }