<feed xmlns='http://www.w3.org/2005/Atom'>
<title>delta/python-packages/sqlalchemy.git/test/orm/test_attributes.py, branch pr/136</title>
<subtitle>github.com: zzzeek/sqlalchemy.git
</subtitle>
<link rel='alternate' type='text/html' href='http://git.baserock.org/cgit/delta/python-packages/sqlalchemy.git/'/>
<entry>
<title>- Added new event handlers :meth:`.AttributeEvents.init_collection`</title>
<updated>2014-09-08T00:28:19+00:00</updated>
<author>
<name>Mike Bayer</name>
<email>mike_mp@zzzcomputing.com</email>
</author>
<published>2014-09-08T00:28:19+00:00</published>
<link rel='alternate' type='text/html' href='http://git.baserock.org/cgit/delta/python-packages/sqlalchemy.git/commit/?id=390207e533854ab0c3abe6b7ebc45fae1b14eaba'/>
<id>390207e533854ab0c3abe6b7ebc45fae1b14eaba</id>
<content type='text'>
and :meth:`.AttributeEvents.dispose_collection`, which track when
a collection is first associated with an instance and when it is
replaced.  These handlers supersede the :meth:`.collection.linker`
annotation. The old hook remains supported through an event adapter.
</content>
<content type='xhtml'>
<div xmlns='http://www.w3.org/1999/xhtml'>
<pre>
and :meth:`.AttributeEvents.dispose_collection`, which track when
a collection is first associated with an instance and when it is
replaced.  These handlers supersede the :meth:`.collection.linker`
annotation. The old hook remains supported through an event adapter.
</pre>
</div>
</content>
</entry>
<entry>
<title>- defaultdict benchmarks faster than a namedtuple; OK</title>
<updated>2014-08-29T20:28:19+00:00</updated>
<author>
<name>Mike Bayer</name>
<email>mike_mp@zzzcomputing.com</email>
</author>
<published>2014-08-29T20:28:19+00:00</published>
<link rel='alternate' type='text/html' href='http://git.baserock.org/cgit/delta/python-packages/sqlalchemy.git/commit/?id=5686472f42468afc98d7daf61b850333aebb6a9d'/>
<id>5686472f42468afc98d7daf61b850333aebb6a9d</id>
<content type='text'>
- inline the column-based expiration operations as well
</content>
<content type='xhtml'>
<div xmlns='http://www.w3.org/1999/xhtml'>
<pre>
- inline the column-based expiration operations as well
</pre>
</div>
</content>
</entry>
<entry>
<title>- reverse course in #3061 so that we instead no longer set None in the attribute</title>
<updated>2014-06-23T23:50:23+00:00</updated>
<author>
<name>Mike Bayer</name>
<email>mike_mp@zzzcomputing.com</email>
</author>
<published>2014-06-23T23:50:23+00:00</published>
<link rel='alternate' type='text/html' href='http://git.baserock.org/cgit/delta/python-packages/sqlalchemy.git/commit/?id=f10eb28d90cbf73f4757897f52bf26722f98372e'/>
<id>f10eb28d90cbf73f4757897f52bf26722f98372e</id>
<content type='text'>
when we do a get; we return the None as always but we leave the dict blank
and the loader callable still in place.  The case for this implicit get on a pending object is not
super common and there really should be no change in state at all when this
operation proceeds.   This change is more dramatic as it reverses
a behavior SQLA has had since the first release.
fixes #3061
</content>
<content type='xhtml'>
<div xmlns='http://www.w3.org/1999/xhtml'>
<pre>
when we do a get; we return the None as always but we leave the dict blank
and the loader callable still in place.  The case for this implicit get on a pending object is not
super common and there really should be no change in state at all when this
operation proceeds.   This change is more dramatic as it reverses
a behavior SQLA has had since the first release.
fixes #3061
</pre>
</div>
</content>
</entry>
<entry>
<title>- Adjustment to attribute mechanics concerning when a value is</title>
<updated>2014-05-29T23:54:51+00:00</updated>
<author>
<name>Mike Bayer</name>
<email>mike_mp@zzzcomputing.com</email>
</author>
<published>2014-05-29T23:54:51+00:00</published>
<link rel='alternate' type='text/html' href='http://git.baserock.org/cgit/delta/python-packages/sqlalchemy.git/commit/?id=752f2e0fc8dec13e313a00f7c9720d24d21429ed'/>
<id>752f2e0fc8dec13e313a00f7c9720d24d21429ed</id>
<content type='text'>
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
</content>
<content type='xhtml'>
<div xmlns='http://www.w3.org/1999/xhtml'>
<pre>
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
</pre>
</div>
</content>
</entry>
<entry>
<title>- Fixed a few edge cases which arise in the so-called "row switch"</title>
<updated>2014-05-29T00:01:21+00:00</updated>
<author>
<name>Mike Bayer</name>
<email>mike_mp@zzzcomputing.com</email>
</author>
<published>2014-05-29T00:01:21+00:00</published>
<link rel='alternate' type='text/html' href='http://git.baserock.org/cgit/delta/python-packages/sqlalchemy.git/commit/?id=bc08ee9029258b23171bb67e191452e6c739c597'/>
<id>bc08ee9029258b23171bb67e191452e6c739c597</id>
<content type='text'>
scenario, where an INSERT/DELETE can be turned into an UPDATE.
In this situation, a many-to-one relationship set to None, or
in some cases a scalar attribute set to None, may not be detected
as a net change in value, and therefore the UPDATE would not reset
what was on the previous row.   This is due to some as-yet
unresovled side effects of the way attribute history works in terms
of implicitly assuming None isn't really a "change" for a previously
un-set attribute.  See also :ticket:`3061`. fixes #3060
</content>
<content type='xhtml'>
<div xmlns='http://www.w3.org/1999/xhtml'>
<pre>
scenario, where an INSERT/DELETE can be turned into an UPDATE.
In this situation, a many-to-one relationship set to None, or
in some cases a scalar attribute set to None, may not be detected
as a net change in value, and therefore the UPDATE would not reset
what was on the previous row.   This is due to some as-yet
unresovled side effects of the way attribute history works in terms
of implicitly assuming None isn't really a "change" for a previously
un-set attribute.  See also :ticket:`3061`. fixes #3060
</pre>
</div>
</content>
</entry>
<entry>
<title>Fix many typos throughout the codebase</title>
<updated>2014-04-26T20:13:13+00:00</updated>
<author>
<name>Alex Gaynor</name>
<email>alex.gaynor@gmail.com</email>
</author>
<published>2014-04-26T20:13:13+00:00</published>
<link rel='alternate' type='text/html' href='http://git.baserock.org/cgit/delta/python-packages/sqlalchemy.git/commit/?id=1caa7fafbd3c9870e1bf2b2ac623872447fc804e'/>
<id>1caa7fafbd3c9870e1bf2b2ac623872447fc804e</id>
<content type='text'>
Found using: https://github.com/intgr/topy
</content>
<content type='xhtml'>
<div xmlns='http://www.w3.org/1999/xhtml'>
<pre>
Found using: https://github.com/intgr/topy
</pre>
</div>
</content>
</entry>
<entry>
<title>- Fixed bug in mutable extension as well as</title>
<updated>2014-03-19T15:09:38+00:00</updated>
<author>
<name>Mike Bayer</name>
<email>mike_mp@zzzcomputing.com</email>
</author>
<published>2014-03-19T15:09:38+00:00</published>
<link rel='alternate' type='text/html' href='http://git.baserock.org/cgit/delta/python-packages/sqlalchemy.git/commit/?id=b9a2b58dd74757184ef94206f09e9db1f536e4cb'/>
<id>b9a2b58dd74757184ef94206f09e9db1f536e4cb</id>
<content type='text'>
:func:`.attributes.flag_modified` where the change event would not be
propagated if the attribute had been reassigned to itself.
fixes #2997
</content>
<content type='xhtml'>
<div xmlns='http://www.w3.org/1999/xhtml'>
<pre>
:func:`.attributes.flag_modified` where the change event would not be
propagated if the attribute had been reassigned to itself.
fixes #2997
</pre>
</div>
</content>
</entry>
<entry>
<title>- Fixed some test/feature failures occurring in Python 3.4,</title>
<updated>2014-03-02T15:39:48+00:00</updated>
<author>
<name>Mike Bayer</name>
<email>mike_mp@zzzcomputing.com</email>
</author>
<published>2014-03-02T15:39:48+00:00</published>
<link rel='alternate' type='text/html' href='http://git.baserock.org/cgit/delta/python-packages/sqlalchemy.git/commit/?id=6750c39a4fc6be01502f3c9b1c6ba2d3f67a030e'/>
<id>6750c39a4fc6be01502f3c9b1c6ba2d3f67a030e</id>
<content type='text'>
in particular the logic used to wrap "column default" callables
wouldn't work properly for Python built-ins.
fixes #2979
</content>
<content type='xhtml'>
<div xmlns='http://www.w3.org/1999/xhtml'>
<pre>
in particular the logic used to wrap "column default" callables
wouldn't work properly for Python built-ins.
fixes #2979
</pre>
</div>
</content>
</entry>
<entry>
<title>- :func:`.attributes.get_history()` when used with a scalar column-mapped</title>
<updated>2013-10-25T17:13:24+00:00</updated>
<author>
<name>Mike Bayer</name>
<email>mike_mp@zzzcomputing.com</email>
</author>
<published>2013-10-25T17:13:24+00:00</published>
<link rel='alternate' type='text/html' href='http://git.baserock.org/cgit/delta/python-packages/sqlalchemy.git/commit/?id=2b1c8eabb10c932f6e83d08147c75bb05f96a161'/>
<id>2b1c8eabb10c932f6e83d08147c75bb05f96a161</id>
<content type='text'>
attribute will now honor the "passive" flag
passed to it; as this defaults to ``PASSIVE_OFF``, the function will
by default query the database if the value is not present.
This is a behavioral change vs. 0.8.  [ticket:2787]
- Added new method :meth:`.AttributeState.load_history`, works like
:attr:`.AttributeState.history` but also fires loader callables.
</content>
<content type='xhtml'>
<div xmlns='http://www.w3.org/1999/xhtml'>
<pre>
attribute will now honor the "passive" flag
passed to it; as this defaults to ``PASSIVE_OFF``, the function will
by default query the database if the value is not present.
This is a behavioral change vs. 0.8.  [ticket:2787]
- Added new method :meth:`.AttributeState.load_history`, works like
:attr:`.AttributeState.history` but also fires loader callables.
</pre>
</div>
</content>
</entry>
<entry>
<title>- add predictable_gc to a few more tests showing up on pypy</title>
<updated>2013-08-04T19:11:17+00:00</updated>
<author>
<name>Mike Bayer</name>
<email>mike_mp@zzzcomputing.com</email>
</author>
<published>2013-08-04T19:11:17+00:00</published>
<link rel='alternate' type='text/html' href='http://git.baserock.org/cgit/delta/python-packages/sqlalchemy.git/commit/?id=9a49e09d0bae23bde869842c1444b65dc7e58c3d'/>
<id>9a49e09d0bae23bde869842c1444b65dc7e58c3d</id>
<content type='text'>
</content>
<content type='xhtml'>
<div xmlns='http://www.w3.org/1999/xhtml'>
<pre>
</pre>
</div>
</content>
</entry>
</feed>
