Deprecation warning when using multiple fields ordering in declarative
Issue #1226
resolved
At least using declarative, I get a deprecation warning from a relation that has a multiple fields order_by clause.
This is a test case:
Index: test/ext/declarative.py
===================================================================
--- test/ext/declarative.py (revisione 5292)
+++ test/ext/declarative.py (copia locale)
-262,6 +262,34 @@
Address(email='two'),
])])
+ def test_order_by_multi(self):
+ class Address(Base, ComparableEntity):
+ __tablename__ = 'addresses'
+
+ id = Column('id', Integer, primary_key=True)
+ email = Column('email', String(50))
+ user_id = Column('user_id', Integer, ForeignKey('users.id'))
+
+ class User(Base, ComparableEntity):
+ __tablename__ = 'users'
+
+ id = Column('id', Integer, primary_key=True)
+ name = Column('name', String(50))
+ addresses = relation("Address", order_by=(Address.email, Address.id))
+
+ Base.metadata.create_all()
+ u1 = User(name='u1', addresses=[ Address(email='two'),
+ Address(email='one'),
+ ](
+))
+ sess = create_session()
+ sess.save(u1)
+ sess.flush()
+ sess.clear()
+ import warnings
+ warnings.simplefilter('error')
+ u = sess.query(User).filter(User.name == 'u1').one()
+ a = u.addresses
def test_as_declarative(self):
class User(ComparableEntity):
and here is a possible fix, but I couldn't run all tests against it:
Index: lib/sqlalchemy/orm/strategies.py
===================================================================
--- lib/sqlalchemy/orm/strategies.py (revisione 5292)
+++ lib/sqlalchemy/orm/strategies.py (copia locale)
-546,7 +546,7 @@
return q.get(ident)
if prop.order_by:
- q = q.order_by(prop.order_by)
+ q = q.order_by(*prop.order_by)
if self.options:
q = q._conditional_options(*self.options)
bye, lele.
Comments (2)
-
repo owner -
repo owner - removed milestone
Removing milestone: 0.5.0 (automated comment)
- Log in to comment
thank you, 3e486caaabdaa47692d24fb4f0a8ee05f07d5692.