]> git.ipfire.org Git - thirdparty/sqlalchemy/sqlalchemy.git/commitdiff
another order_by fix
authorMike Bayer <mike_mp@zzzcomputing.com>
Tue, 17 Jul 2007 05:05:30 +0000 (05:05 +0000)
committerMike Bayer <mike_mp@zzzcomputing.com>
Tue, 17 Jul 2007 05:05:30 +0000 (05:05 +0000)
lib/sqlalchemy/orm/query.py
test/orm/eager_relations.py

index 0537ee258e3959b4b7f5d141418ff4f9d5b22c49..5c1390adc88ab86b107c25e3c66927bc4f07c4ad 100644 (file)
@@ -802,7 +802,7 @@ class Query(object):
             # if theres an order by, add those columns to the column list
             # of the "rowcount" query we're going to make
             if order_by:
-                order_by = util.to_list(order_by) or []
+                order_by = [sql._literal_as_text(o) for o in util.to_list(order_by) or []]
                 cf = sql_util.ColumnFinder()
                 for o in order_by:
                     cf.traverse(o)
index 90ae3ba53e3295d5828bb493f039c316904d4235..895ec4a1389f30bcda3adbc43068800d4a65c4ba 100644 (file)
@@ -66,7 +66,7 @@ class EagerTest(QueryTest):
         ))
         
         q = create_session().query(User)
-        l = q.filter(users.c.id==addresses.c.user_id).order_by(addresses.c.email_address).all()
+        l = q.filter(User.id==Address.user_id).order_by(Address.email_address).all()
         
         assert [
             User(id=8, addresses=[
@@ -236,7 +236,7 @@ class EagerTest(QueryTest):
         sess = create_session()
         q = sess.query(Item)
         l = q.filter((Item.c.description=='item 2') | (Item.c.description=='item 5') | (Item.c.description=='item 3')).\
-            order_by(Item.c.id).limit(2).all()
+            order_by(Item.id).limit(2).all()
 
         assert fixtures.item_keyword_result[1:3] == l
         
@@ -259,7 +259,7 @@ class EagerTest(QueryTest):
         q = sess.query(User)
 
         if testbase.db.engine.name != 'mssql':
-            l = q.join('orders').order_by(desc(orders.c.user_id)).limit(2).offset(1)
+            l = q.join('orders').order_by(desc(Order.user_id)).limit(2).offset(1)
             assert [
                 User(id=9, 
                     orders=[Order(id=2), Order(id=4)],
@@ -271,7 +271,7 @@ class EagerTest(QueryTest):
                 )
             ] == l.all()
 
-        l = q.join('addresses').order_by(desc(addresses.c.email_address)).limit(1).offset(0)
+        l = q.join('addresses').order_by(desc(Address.email_address)).limit(1).offset(0)
         assert [
             User(id=7, 
                 orders=[Order(id=1), Order(id=3), Order(id=5)],