]> git.ipfire.org Git - thirdparty/sqlalchemy/sqlalchemy.git/commitdiff
- fix to deferred group loading
authorMike Bayer <mike_mp@zzzcomputing.com>
Fri, 22 Sep 2006 20:14:42 +0000 (20:14 +0000)
committerMike Bayer <mike_mp@zzzcomputing.com>
Fri, 22 Sep 2006 20:14:42 +0000 (20:14 +0000)
CHANGES
lib/sqlalchemy/orm/properties.py
test/orm/mapper.py

diff --git a/CHANGES b/CHANGES
index decfaafed51096730f606a80ea37172658a862de..d8b52b1751e12d061352f53ab4acc70e45b47265 100644 (file)
--- a/CHANGES
+++ b/CHANGES
@@ -30,6 +30,7 @@ the appropriate negation operator if one is available.
 kept separate from the normal mapper setup, thereby
 preventing conflicts with lazy loader operation, fixes 
 [ticket:308]
+- fix to deferred group loading
 
 0.2.8
 - cleanup on connection methods + documentation.  custom DBAPI
index e05f641a54cc77db4bcf74514aa11fc525d03ea8..5015cb3236deb78620651b932dc73f38c7f25808 100644 (file)
@@ -98,8 +98,8 @@ class DeferredColumnProperty(ColumnProperty):
                             continue
                         # set a scalar object instance directly on the object, 
                         # bypassing SmartProperty event handlers.
-                        instance.__dict__[prop.key] = row[prop.columns[0]]
                         sessionlib.attribute_manager.init_instance_attribute(instance, prop.key, uselist=False)
+                        instance.__dict__[prop.key] = row[prop.columns[0]]
                     return row[self.columns[0]]    
                 finally:
                     result.close()
index 257e90cf51df2973dcffc76c4c1699367ce7ff84..079f9b6680210ad4e5efc3fe3705203fb8d0f336 100644 (file)
@@ -579,7 +579,6 @@ class DeferredTest(MapperSuperTest):
         
     def testgroup(self):
         """tests deferred load with a group"""
-        
         m = mapper(Order, orders, properties = {
             'userident':deferred(orders.c.user_id, group='primary'),
             'description':deferred(orders.c.description, group='primary'),
@@ -590,7 +589,9 @@ class DeferredTest(MapperSuperTest):
             l = q.select()
             o2 = l[2]
             print o2.opened, o2.description, o2.userident
-
+            assert o2.opened == 1
+            assert o2.userident == 7
+            assert o2.description == 'order 3'
         orderby = str(orders.default_order_by()[0].compile(db))
         self.assert_sql(db, go, [
             ("SELECT orders.order_id AS orders_order_id FROM orders ORDER BY %s" % orderby, {}),