<feed xmlns='http://www.w3.org/2005/Atom'>
<title>delta/python-packages/sqlalchemy.git/lib/sqlalchemy/orm/sync.py, branch pr/99</title>
<subtitle>github.com: zzzeek/sqlalchemy.git
</subtitle>
<link rel='alternate' type='text/html' href='http://91.123.203.49/cgit/delta/python-packages/sqlalchemy.git/'/>
<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://91.123.203.49/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://91.123.203.49/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>- happy new year</title>
<updated>2014-01-05T21:57:05+00:00</updated>
<author>
<name>Mike Bayer</name>
<email>mike_mp@zzzcomputing.com</email>
</author>
<published>2014-01-05T21:57:05+00:00</published>
<link rel='alternate' type='text/html' href='http://91.123.203.49/cgit/delta/python-packages/sqlalchemy.git/commit/?id=f89d4d216bd7605c920b7b8a10ecde6bfea2238c'/>
<id>f89d4d216bd7605c920b7b8a10ecde6bfea2238c</id>
<content type='text'>
</content>
<content type='xhtml'>
<div xmlns='http://www.w3.org/1999/xhtml'>
<pre>
</pre>
</div>
</content>
</entry>
<entry>
<title>Detection of a primary key change within the process</title>
<updated>2013-02-25T23:55:09+00:00</updated>
<author>
<name>Mike Bayer</name>
<email>mike_mp@zzzcomputing.com</email>
</author>
<published>2013-02-25T23:55:09+00:00</published>
<link rel='alternate' type='text/html' href='http://91.123.203.49/cgit/delta/python-packages/sqlalchemy.git/commit/?id=95297c35442e483bb98b5a4edb677bb168064f5e'/>
<id>95297c35442e483bb98b5a4edb677bb168064f5e</id>
<content type='text'>
of cascading a natural primary key update will succeed
even if the key is composite and only some of the
attributes have changed.
[ticket:2665]
</content>
<content type='xhtml'>
<div xmlns='http://www.w3.org/1999/xhtml'>
<pre>
of cascading a natural primary key update will succeed
even if the key is composite and only some of the
attributes have changed.
[ticket:2665]
</pre>
</div>
</content>
</entry>
<entry>
<title>happy new year (see #2645)</title>
<updated>2013-01-01T18:46:21+00:00</updated>
<author>
<name>Diana Clarke</name>
<email>diana.joan.clarke@gmail.com</email>
</author>
<published>2013-01-01T18:46:21+00:00</published>
<link rel='alternate' type='text/html' href='http://91.123.203.49/cgit/delta/python-packages/sqlalchemy.git/commit/?id=5db55c999faae04ca338b0d4b034b3b99e0ca3fa'/>
<id>5db55c999faae04ca338b0d4b034b3b99e0ca3fa</id>
<content type='text'>
</content>
<content type='xhtml'>
<div xmlns='http://www.w3.org/1999/xhtml'>
<pre>
</pre>
</div>
</content>
</entry>
<entry>
<title>just a pep8 pass of lib/sqlalchemy/orm/</title>
<updated>2012-11-19T19:56:11+00:00</updated>
<author>
<name>Diana Clarke</name>
<email>diana.joan.clarke@gmail.com</email>
</author>
<published>2012-11-19T19:56:11+00:00</published>
<link rel='alternate' type='text/html' href='http://91.123.203.49/cgit/delta/python-packages/sqlalchemy.git/commit/?id=655e0b4de28841339a8aae5491225e5473e3ef8a'/>
<id>655e0b4de28841339a8aae5491225e5473e3ef8a</id>
<content type='text'>
</content>
<content type='xhtml'>
<div xmlns='http://www.w3.org/1999/xhtml'>
<pre>
</pre>
</div>
</content>
</entry>
<entry>
<title>-whitespace bonanza, contd</title>
<updated>2012-07-28T21:05:50+00:00</updated>
<author>
<name>Mike Bayer</name>
<email>mike_mp@zzzcomputing.com</email>
</author>
<published>2012-07-28T21:05:50+00:00</published>
<link rel='alternate' type='text/html' href='http://91.123.203.49/cgit/delta/python-packages/sqlalchemy.git/commit/?id=22ba1c43b792953ae6f791512d276739c8c09eae'/>
<id>22ba1c43b792953ae6f791512d276739c8c09eae</id>
<content type='text'>
</content>
<content type='xhtml'>
<div xmlns='http://www.w3.org/1999/xhtml'>
<pre>
</pre>
</div>
</content>
</entry>
<entry>
<title>- move all of orm to use absolute imports</title>
<updated>2012-06-23T18:45:47+00:00</updated>
<author>
<name>Mike Bayer</name>
<email>mike_mp@zzzcomputing.com</email>
</author>
<published>2012-06-23T18:45:47+00:00</published>
<link rel='alternate' type='text/html' href='http://91.123.203.49/cgit/delta/python-packages/sqlalchemy.git/commit/?id=0efac1d93e27220f2aa1ec09b282fb08a7bb02be'/>
<id>0efac1d93e27220f2aa1ec09b282fb08a7bb02be</id>
<content type='text'>
- break out key mechanics of loading objects
into new "orm.loading" module, removing implementation
details from both mapper.py and query.py. is analogous
to persistence.py
- some other cleanup and old cruft removal
</content>
<content type='xhtml'>
<div xmlns='http://www.w3.org/1999/xhtml'>
<pre>
- break out key mechanics of loading objects
into new "orm.loading" module, removing implementation
details from both mapper.py and query.py. is analogous
to persistence.py
- some other cleanup and old cruft removal
</pre>
</div>
</content>
</entry>
<entry>
<title>- [removed] Deprecated identifiers removed:</title>
<updated>2012-06-21T21:04:26+00:00</updated>
<author>
<name>Mike Bayer</name>
<email>mike_mp@zzzcomputing.com</email>
</author>
<published>2012-06-21T21:04:26+00:00</published>
<link rel='alternate' type='text/html' href='http://91.123.203.49/cgit/delta/python-packages/sqlalchemy.git/commit/?id=51a3a9ac8a76096a6a25eb2cc7404970561d5123'/>
<id>51a3a9ac8a76096a6a25eb2cc7404970561d5123</id>
<content type='text'>
* allow_null_pks mapper() argument
(use allow_partial_pks)

* _get_col_to_prop() mapper method
(use get_property_by_column())

* dont_load argument to Session.merge()
(use load=True)

* sqlalchemy.orm.shard module
(use sqlalchemy.ext.horizontal_shard)
</content>
<content type='xhtml'>
<div xmlns='http://www.w3.org/1999/xhtml'>
<pre>
* allow_null_pks mapper() argument
(use allow_partial_pks)

* _get_col_to_prop() mapper method
(use get_property_by_column())

* dont_load argument to Session.merge()
(use load=True)

* sqlalchemy.orm.shard module
(use sqlalchemy.ext.horizontal_shard)
</pre>
</div>
</content>
</entry>
<entry>
<title>break out _save_obj(), _delete_obj(), _post_update() into a new module</title>
<updated>2012-01-31T00:52:07+00:00</updated>
<author>
<name>Mike Bayer</name>
<email>mike_mp@zzzcomputing.com</email>
</author>
<published>2012-01-31T00:52:07+00:00</published>
<link rel='alternate' type='text/html' href='http://91.123.203.49/cgit/delta/python-packages/sqlalchemy.git/commit/?id=b40450d0a1389edd02366f284199ecbf7d566ff1'/>
<id>b40450d0a1389edd02366f284199ecbf7d566ff1</id>
<content type='text'>
persistence.py - Mapper loses awareness of how to emit INSERT/UPDATE/DELETE,
persistence.py is only used by unitofwork.py.  Then break each method out
into a top level with almost no logic, calling into _organize_states_for_XYZ(),
_collect_XYZ_commands(), _emit_XYZ_statements().
</content>
<content type='xhtml'>
<div xmlns='http://www.w3.org/1999/xhtml'>
<pre>
persistence.py - Mapper loses awareness of how to emit INSERT/UPDATE/DELETE,
persistence.py is only used by unitofwork.py.  Then break each method out
into a top level with almost no logic, calling into _organize_states_for_XYZ(),
_collect_XYZ_commands(), _emit_XYZ_statements().
</pre>
</div>
</content>
</entry>
</feed>
