From: Mike Bayer Date: Fri, 22 Sep 2006 20:14:42 +0000 (+0000) Subject: - fix to deferred group loading X-Git-Tag: rel_0_3_0~143 X-Git-Url: http://git.ipfire.org/cgi-bin/gitweb.cgi?a=commitdiff_plain;h=8f540ba9928644c596275fd7a315e11af8ce6ec8;p=thirdparty%2Fsqlalchemy%2Fsqlalchemy.git - fix to deferred group loading --- diff --git a/CHANGES b/CHANGES index decfaafed5..d8b52b1751 100644 --- 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 diff --git a/lib/sqlalchemy/orm/properties.py b/lib/sqlalchemy/orm/properties.py index e05f641a54..5015cb3236 100644 --- a/lib/sqlalchemy/orm/properties.py +++ b/lib/sqlalchemy/orm/properties.py @@ -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() diff --git a/test/orm/mapper.py b/test/orm/mapper.py index 257e90cf51..079f9b6680 100644 --- a/test/orm/mapper.py +++ b/test/orm/mapper.py @@ -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, {}),