diff options
-rw-r--r-- | doc/build/changelog/changelog_08.rst | 9 | ||||
-rw-r--r-- | lib/sqlalchemy/orm/state.py | 3 |
2 files changed, 11 insertions, 1 deletions
diff --git a/doc/build/changelog/changelog_08.rst b/doc/build/changelog/changelog_08.rst index 2a3d96ae0..97b3626af 100644 --- a/doc/build/changelog/changelog_08.rst +++ b/doc/build/changelog/changelog_08.rst @@ -7,6 +7,15 @@ :version: 0.8.1 .. change:: + :tags: bug, orm + + Added a conditional to the unpickling process for ORM + mapped objects, such that if the reference to the object + were lost when the object was pickled, we don't + erroneously try to set up _sa_instance_state - fixes + a NoneType error. + + .. change:: :tags: bug, postgresql :tickets: 2712 diff --git a/lib/sqlalchemy/orm/state.py b/lib/sqlalchemy/orm/state.py index 193678c2f..6ade91b3e 100644 --- a/lib/sqlalchemy/orm/state.py +++ b/lib/sqlalchemy/orm/state.py @@ -272,7 +272,8 @@ class InstanceState(interfaces._InspectionAttr): # setup _sa_instance_state ahead of time so that # unpickle events can access the object normally. # see [ticket:2362] - manager.setup_instance(inst, self) + if inst is not None: + manager.setup_instance(inst, self) manager.dispatch.unpickle(self, state) def _initialize(self, key): |