]> git.ipfire.org Git - thirdparty/sqlalchemy/sqlalchemy.git/commitdiff
removed superfluous reapplying of options to self
authorMike Bayer <mike_mp@zzzcomputing.com>
Wed, 4 Jul 2007 16:24:30 +0000 (16:24 +0000)
committerMike Bayer <mike_mp@zzzcomputing.com>
Wed, 4 Jul 2007 16:24:30 +0000 (16:24 +0000)
lib/sqlalchemy/orm/query.py
test/orm/mapper.py

index c29933ef9395cd9dae601c89e0e99f68c3d3a978..2ad704702791269969228ad24feb4cee1020f627 100644 (file)
@@ -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):
index 94b66f93aa9063411edfd351079056f725729181..f3d94c10f5aaf969cd7067de9b9bedf28daecc9a 100644 (file)
@@ -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)