Skip to content

Commit c8ddcd1

Browse files
committed
Merge pull request stephencelis#307 from cjwirth/master
Add order method to query that takes an array arg
2 parents 5869b0e + 7226177 commit c8ddcd1

File tree

2 files changed

+21
-1
lines changed

2 files changed

+21
-1
lines changed

Source/Typed/Query.swift

Lines changed: 17 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -390,7 +390,7 @@ extension QueryType {
390390
///
391391
/// let users = Table("users")
392392
/// let email = Expression<String>("email")
393-
/// let email = Expression<String?>("name")
393+
/// let name = Expression<String?>("name")
394394
///
395395
/// users.order(email.desc, name.asc)
396396
/// // SELECT * FROM "users" ORDER BY "email" DESC, "name" ASC
@@ -399,6 +399,22 @@ extension QueryType {
399399
///
400400
/// - Returns: A query with the given `ORDER BY` clause applied.
401401
public func order(by: Expressible...) -> Self {
402+
return order(by)
403+
}
404+
405+
/// Sets an `ORDER BY` clause on the query.
406+
///
407+
/// let users = Table("users")
408+
/// let email = Expression<String>("email")
409+
/// let name = Expression<String?>("name")
410+
///
411+
/// users.order([email.desc, name.asc])
412+
/// // SELECT * FROM "users" ORDER BY "email" DESC, "name" ASC
413+
///
414+
/// - Parameter by: An ordered list of columns and directions to sort by.
415+
///
416+
/// - Returns: A query with the given `ORDER BY` clause applied.
417+
public func order(by: [Expressible]) -> Self {
402418
var query = self
403419
query.clauses.order = by
404420
return query

Tests/QueryTests.swift

Lines changed: 4 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -120,6 +120,10 @@ class QueryTests : XCTestCase {
120120
AssertSQL("SELECT * FROM \"users\" ORDER BY \"age\", \"email\"", users.order(age, email))
121121
}
122122

123+
func test_order_withArrayExpressionNames_compilesOrderClause() {
124+
AssertSQL("SELECT * FROM \"users\" ORDER BY \"age\", \"email\"", users.order([age, email]))
125+
}
126+
123127
func test_order_withExpressionAndSortDirection_compilesOrderClause() {
124128
// AssertSQL("SELECT * FROM \"users\" ORDER BY \"age\" DESC, \"email\" ASC", users.order(age.desc, email.asc))
125129
}

0 commit comments

Comments
 (0)