]> git.ipfire.org Git - thirdparty/sqlalchemy/sqlalchemy.git/commit
- Adjustment to attribute mechanics concerning when a value is
authorMike Bayer <mike_mp@zzzcomputing.com>
Thu, 29 May 2014 23:54:51 +0000 (19:54 -0400)
committerMike Bayer <mike_mp@zzzcomputing.com>
Thu, 29 May 2014 23:54:51 +0000 (19:54 -0400)
commit752f2e0fc8dec13e313a00f7c9720d24d21429ed
treeb8e8c5aa2ade21e1a80fa55f2d4a9f9756cf9088
parenta04f0c1e3719d38e71509635cc1cba43a67ce090
- Adjustment to attribute mechanics concerning when a value is
implicitly initialized to None via first access; this action,
which has always resulted in a population of the attribute,
now emits an attribute event just like any other attribute set
operation and generates the same kind of history as one.  Additionally,
many mapper internal operations will no longer implicitly generate
these "None" values when various never-set attributes are checked.
These are subtle behavioral fixes to attribute mechanics which provide
a better solution to the problem of :ticket:`3060`, which also
involves recognition of attributes explicitly set to ``None``
vs. attributes that were never set.
fixes #3061
15 files changed:
doc/build/changelog/changelog_09.rst
doc/build/changelog/changelog_10.rst
doc/build/changelog/migration_10.rst
lib/sqlalchemy/orm/attributes.py
lib/sqlalchemy/orm/base.py
lib/sqlalchemy/orm/dependency.py
lib/sqlalchemy/orm/loading.py
lib/sqlalchemy/orm/mapper.py
lib/sqlalchemy/orm/persistence.py
lib/sqlalchemy/orm/session.py
lib/sqlalchemy/orm/strategies.py
lib/sqlalchemy/orm/sync.py
lib/sqlalchemy/orm/unitofwork.py
lib/sqlalchemy/orm/util.py
test/orm/test_attributes.py