[Sqlalchemy-tickets] Issue #3225: query heuristic extension (zzzeek/sqlalchemy)
Brought to you by:
zzzeek
|
From: Mike B. <iss...@bi...> - 2014-10-14 18:54:39
|
New issue 3225: query heuristic extension https://bitbucket.org/zzzeek/sqlalchemy/issue/3225/query-heuristic-extension Mike Bayer: given issues like #3223 and the openstack issues with model_query(), here's a sketch of an idea: ``` #!python @event.listens_for(EventedQuery, "whereclause", retval=True) def append_whereclause(existing_query, new_query, clause): if clause.selects_against(MyOtherClass): for entity, expression in new_query.selects_against(MyClass): new_query = new_query.join(MyOtherClass, MyClass.myother) return new_query @event.listens_for(EventedQuery, "selects_from_entity", retval=True) def append_order_by(existing_query, new_query, entity, expression): for entity, expression in new_query.selects_against(MyClass): new_query = new_query.order_by(entity.whatever) return new_query @event.listens_for(EventedQuery, "before_compile", retval=True) def append_order_by(new_query): if new_query.selects_against(MyClass): for entity, expression in new_query.selects_against(MyClass): new_query = new_query.order_by(entity.whatever) return query ``` |