yeah i blew that one, i just had it taking a list of columns. we
should re-open the ticket since it should support the asc() and desc
() functions being passed in.
On Dec 6, 2005, at 2:53 PM, Robert Leftwich wrote:
I'm just catching up on some of the new features and I notice that
Ticket #10 (order_by on relations) is closed - thanks!!! I need
this feature, so I tried a few things, but it doesn't seem to like
using the desc() function as used in other order_by's. There is an
svn diff at the end of the mail covering the unit test changes I
made to test it (I changed the inserted address data as it was
automatically in descending order when sorted by oid).
It doesn't appear to be adding the DESC to the ORDER BY, is the desc
() approach the way to go?
Robert
-------------------------------------------------------------------
svn diff:
Index: tables.py
===================================================================
--- tables.py (revision 697)
+++ tables.py (working copy)
@@ -84,7 +84,8 @@
addresses.insert().execute(
dict(address_id = 1, user_id = 7, email_address =
"[EMAIL PROTECTED]"),
dict(address_id = 2, user_id = 8, email_address =
"[EMAIL PROTECTED]"),
- dict(address_id = 3, user_id = 8, email_address =
"[EMAIL PROTECTED]")
+ dict(address_id = 3, user_id = 8, email_address =
"[EMAIL PROTECTED]"),
+ dict(address_id = 4, user_id = 8, email_address =
"[EMAIL PROTECTED]"),
)
orders.insert().execute(
dict(order_id = 1, user_id = 7, description = 'order 1',
isopen=0),
Index: mapper.py
===================================================================
--- mapper.py (revision 697)
+++ mapper.py (working copy)
@@ -130,13 +130,32 @@
dict(address_id = 1, user_id = 7, email_address =
"[EMAIL PROTECTED]"),
dict(address_id = 2, user_id = 8, email_address =
"[EMAIL PROTECTED]"),
dict(address_id = 3, user_id = 8, email_address =
"[EMAIL PROTECTED]")
+ dict(address_id = 4, user_id = 8, email_address =
"[EMAIL PROTECTED]")
self.assert_result(l, User,
{'user_id' : 7, 'addresses' : (Address,
[{'email_address' : '[EMAIL PROTECTED]'}])},
- {'user_id' : 8, 'addresses' : (Address,
[{'email_address':'[EMAIL PROTECTED]'}, {'email_address':'[EMAIL PROTECTED]'}])},
+ {'user_id' : 8, 'addresses' : (Address,
[{'email_address':'[EMAIL PROTECTED]'},
{'email_address':'[EMAIL PROTECTED]'}, {'email_address':'[EMAIL PROTECTED]'}])},
{'user_id' : 9, 'addresses' : (Address, [])}
)
+ def testorderby_desc(self):
+ m = mapper(Address, addresses)
+
+ m = mapper(User, users, properties = dict(
+ addresses = relation(m, lazy = True, order_by=[desc
(addresses.c.email_address)]),
+ ))
+ l = m.select()
+ dict(address_id = 1, user_id = 7, email_address =
"[EMAIL PROTECTED]"),
+ dict(address_id = 2, user_id = 8, email_address =
"[EMAIL PROTECTED]"),
+ dict(address_id = 3, user_id = 8, email_address =
"[EMAIL PROTECTED]")
+ dict(address_id = 4, user_id = 8, email_address =
"[EMAIL PROTECTED]")
+
+ self.assert_result(l, User,
+ {'user_id' : 7, 'addresses' : (Address,
[{'email_address' : '[EMAIL PROTECTED]'}])},
+ {'user_id' : 8, 'addresses' : (Address,
[{'email_address':'[EMAIL PROTECTED]'}, {'email_address':'[EMAIL PROTECTED]'},
{'email_address':'[EMAIL PROTECTED]'}])},
+ {'user_id' : 9, 'addresses' : (Address, [])},
+ )
+
def testonetoone(self):
m = mapper(User, users, properties = dict(
address = relation(Address, addresses, lazy = True,
uselist = False)@@ -238,6 +257,23 @@
{'user_id' : 9, 'addresses' : (Address, [])}
)
+ def testorderby_desc(self):
+ m = mapper(Address, addresses)
+
+ m = mapper(User, users, properties = dict(
+ addresses = relation(m, lazy = False, order_by=[asc
(addresses.c.email_address)]),
+ ))
+ l = m.select()
+ dict(address_id = 1, user_id = 7, email_address =
"[EMAIL PROTECTED]"),
+ dict(address_id = 2, user_id = 8, email_address =
"[EMAIL PROTECTED]"),
+ dict(address_id = 3, user_id = 8, email_address =
"[EMAIL PROTECTED]")
+
+ self.assert_result(l, User,
+ {'user_id' : 9, 'addresses' : (Address, [])},
+ {'user_id' : 8, 'addresses' : (Address,
[{'email_address':'[EMAIL PROTECTED]'}, {'email_address':'[EMAIL PROTECTED]'}])},
+ {'user_id' : 7, 'addresses' : (Address,
[{'email_address' : '[EMAIL PROTECTED]'}])},
+ )
+
def testonetoone(self):
m = mapper(User, users, properties = dict(
address = relation(Address, addresses, lazy = False,
uselist = False)
-------------------------------------------------------
This SF.net email is sponsored by: Splunk Inc. Do you grep through
log files
for problems? Stop! Download the new AJAX search engine that makes
searching your log files as easy as surfing the web. DOWNLOAD
SPLUNK!
http://ads.osdn.com/?ad_id=7637&alloc_id=16865&op=click
_______________________________________________
Sqlalchemy-users mailing list
[email protected]
https://lists.sourceforge.net/lists/listinfo/sqlalchemy-users
-------------------------------------------------------
This SF.net email is sponsored by: Splunk Inc. Do you grep through log files
for problems? Stop! Download the new AJAX search engine that makes
searching your log files as easy as surfing the web. DOWNLOAD SPLUNK!
http://ads.osdn.com/?ad_id=7637&alloc_id=16865&op=click
_______________________________________________
Sqlalchemy-users mailing list
[email protected]
https://lists.sourceforge.net/lists/listinfo/sqlalchemy-users