From 9769be92bfd089bc9c23fee01576cf8782a448f4 Mon Sep 17 00:00:00 2001 From: Mike Bayer Date: Wed, 4 Jul 2007 16:24:30 +0000 Subject: [PATCH] removed superfluous reapplying of options to self --- lib/sqlalchemy/orm/query.py | 2 -- test/orm/mapper.py | 15 ++++++++++++++- 2 files changed, 14 insertions(+), 3 deletions(-) diff --git a/lib/sqlalchemy/orm/query.py b/lib/sqlalchemy/orm/query.py index c29933ef93..2ad7047027 100644 --- a/lib/sqlalchemy/orm/query.py +++ b/lib/sqlalchemy/orm/query.py @@ -494,8 +494,6 @@ class Query(object): for opt in util.flatten_iterator(args): q.with_options.append(opt) opt.process_query(q) - for opt in util.flatten_iterator(self.with_options): - opt.process_query(self) return q def with_lockmode(self, mode): diff --git a/test/orm/mapper.py b/test/orm/mapper.py index 94b66f93aa..f3d94c10f5 100644 --- a/test/orm/mapper.py +++ b/test/orm/mapper.py @@ -760,14 +760,27 @@ class MapperTest(MapperSuperTest): # eagerload orders, orders.items, orders.items.keywords q2 = sess.query(User).options(eagerload('orders'), eagerload('orders.items'), eagerload('orders.items.keywords')) u = q2.select() + def go(): + print u[0].orders[1].items[0].keywords[1] print "-------MARK2----------" self.assert_sql_count(db, go, 0) + sess.clear() + + # same thing, with separate options calls + q2 = sess.query(User).options(eagerload('orders')).options(eagerload('orders.items')).options(eagerload('orders.items.keywords')) + u = q2.select() + def go(): + print u[0].orders[1].items[0].keywords[1] + print "-------MARK3----------" + self.assert_sql_count(db, go, 0) + print "-------MARK4----------" + sess.clear() # eagerload "keywords" on items. it will lazy load "orders", then lazy load # the "items" on the order, but on "items" it will eager load the "keywords" - print "-------MARK3----------" + print "-------MARK5----------" q3 = sess.query(User).options(eagerload('orders.items.keywords')) u = q3.select() self.assert_sql_count(db, go, 2) -- 2.47.2