diff options
| -rw-r--r-- | CHANGES | 6 | ||||
| -rw-r--r-- | lib/sqlalchemy/orm/__init__.py | 9 | ||||
| -rw-r--r-- | test/orm/test_relationships.py | 3 |
3 files changed, 17 insertions, 1 deletions
@@ -38,6 +38,12 @@ CHANGES always load the "old" value, so that it's available to attributes.get_history(). [ticket:1961] + - active_history flag also added to composite(). + The flag has no effect in 0.6, but is instead + a placeholder flag for forwards compatibility, + as it will be needed in 0.7 for composites. + [ticket:1976] + - sql - The 'info' attribute of Column is copied during Column.copy(), i.e. as occurs when using columns diff --git a/lib/sqlalchemy/orm/__init__.py b/lib/sqlalchemy/orm/__init__.py index b51142909..94fbabc49 100644 --- a/lib/sqlalchemy/orm/__init__.py +++ b/lib/sqlalchemy/orm/__init__.py @@ -648,6 +648,15 @@ def composite(class_, *cols, **kwargs): :param \*cols: List of Column objects to be mapped. + :param active_history=False: + When ``True``, indicates that the "previous" value for a + scalar attribute should be loaded when replaced, if not + already loaded. Note that attributes generated by + :func:`.composite` properties load the "previous" value + in any case, however this is being changed in 0.7, + so the flag is introduced here for forwards compatibility. + (new in 0.6.6) + :param group: A group name for this property when marked as deferred. diff --git a/test/orm/test_relationships.py b/test/orm/test_relationships.py index 03efa0183..555389a09 100644 --- a/test/orm/test_relationships.py +++ b/test/orm/test_relationships.py @@ -2410,7 +2410,8 @@ class ActiveHistoryFlagTest(_fixtures.FixtureTest): 'composite':composite( MyComposite, orders.c.description, - orders.c.isopen) + orders.c.isopen, + active_history=True) }) o1 = Order(composite=MyComposite('foo', 1)) self._test_attribute(o1, "composite", MyComposite('bar', 1)) |
