72
74
<div id="docs-container">
80
<div id="docs-top-navigation-container" class="body-background">
77
81
<div id="docs-header">
82
<div id="docs-version-header">
83
Release: <span class="version-num">0.9.6</span> | Release Date: June 23, 2014
78
86
<h1>SQLAlchemy 0.9 Documentation</h1>
80
<div id="docs-search">
82
<form class="search" action="../search.html" method="get">
83
<input type="text" name="q" size="18" /> <input type="submit" value="Search" />
84
<input type="hidden" name="check_keywords" value="yes" />
85
<input type="hidden" name="area" value="default" />
89
<div id="docs-version-header">
90
Release: <span class="version-num">0.9.4</span> | Release Date: March 28, 2014
97
<div id="docs-top-navigation">
98
<div id="docs-top-page-control" class="docs-navigation-links">
91
<div id="docs-body-container">
93
<div id="fixed-sidebar" class="withsidebar">
96
<div id="docs-sidebar-popout">
97
<h3><a href="../index.html">SQLAlchemy 0.9 Documentation</a></h3>
99
<p id="sidebar-paginate">
100
<a href="index.html" title="Changes and Migration">Up</a> |
102
<a href="changelog_09.html" title="0.9 Changelog">Prev</a> |
103
<a href="changelog_07.html" title="0.7 Changelog">Next</a>
106
<p id="sidebar-topnav">
107
<a href="../index.html">Contents</a> |
108
<a href="../genindex.html">Index</a>
111
<div id="sidebar-search">
112
<form class="search" action="../search.html" method="get">
113
<input type="text" name="q" size="12" /> <input type="submit" value="Search" />
114
<input type="hidden" name="check_keywords" value="yes" />
115
<input type="hidden" name="area" value="default" />
121
<div id="docs-sidebar">
101
<a href="changelog_09.html" title="previous chapter">0.9 Changelog</a>
104
<a href="changelog_07.html" title="next chapter">0.7 Changelog</a>
108
<a href="../contents.html">Table of Contents</a> |
109
<a href="../genindex.html">Index</a>
110
| <a href="../_sources/changelog/changelog_08.txt">view source
115
<div id="docs-navigation-banner">
116
<a href="../index.html">SQLAlchemy 0.9 Documentation</a>
117
» <a href="index.html" title="Changes and Migration">Changes and Migration</a>
131
<div id="docs-body-container">
133
<div id="docs-sidebar">
134
<h3><a href="../index.html">Table of Contents</a></h3>
136
128
<li><a class="reference internal" href="#">0.8 Changelog</a><ul>
129
<li><a class="reference internal" href="#change-0.8.7">0.8.7</a><ul>
130
<li><a class="reference internal" href="#change-0.8.7-orm">orm</a></li>
131
<li><a class="reference internal" href="#change-0.8.7-sql">sql</a></li>
132
<li><a class="reference internal" href="#change-0.8.7-postgresql">postgresql</a></li>
133
<li><a class="reference internal" href="#change-0.8.7-mysql">mysql</a></li>
134
<li><a class="reference internal" href="#change-0.8.7-misc">misc</a></li>
137
137
<li><a class="reference internal" href="#change-0.8.6">0.8.6</a><ul>
138
138
<li><a class="reference internal" href="#change-0.8.6-general">general</a></li>
139
139
<li><a class="reference internal" href="#change-0.8.6-orm">orm</a></li>
243
<h4>Previous Topic</h4>
245
<a href="changelog_09.html" title="previous chapter">0.9 Changelog</a>
249
<a href="changelog_07.html" title="next chapter">0.7 Changelog</a>
253
<h4>Quick Search</h4>
255
<form class="search" action="../search.html" method="get">
256
<input type="text" name="q" size="18" /> <input type="submit" value="Search" />
257
<input type="hidden" name="check_keywords" value="yes" />
258
<input type="hidden" name="area" value="default" />
264
251
<div id="docs-body" class="withsidebar" >
266
253
<div class="section" id="changelog">
267
254
<h1>0.8 Changelog<a class="headerlink" href="#changelog" title="Permalink to this headline">¶</a></h1>
255
<div class="section" id="change-0.8.7">
256
<h2>0.8.7<a class="headerlink" href="#change-0.8.7" title="Permalink to this headline">¶</a></h2>
257
no release date<div class="section" id="change-0.8.7-orm">
258
<h3>orm<a class="headerlink" href="#change-0.8.7-orm" title="Permalink to this headline">¶</a></h3>
260
<li><p id="change-0.8.7-0"><span class="target" id="change-e10433635e670cc6b02866d5fca31d7f"><strong>[orm] [bug] </strong></span>Fixed bug in subquery eager loading where a long chain of
261
eager loads across a polymorphic-subclass boundary in conjunction
262
with polymorphic loading would fail to locate the subclass-link in the
263
chain, erroring out with a missing property name on an
264
<a class="reference internal" href="../orm/query.html#sqlalchemy.orm.util.AliasedClass" title="sqlalchemy.orm.util.AliasedClass"><tt class="xref py py-class docutils literal"><span class="pre">AliasedClass</span></tt></a>.<a class="changeset-link headerlink reference internal" href="#change-e10433635e670cc6b02866d5fca31d7f">¶</a><p>References: <a class="reference external" href="http://www.sqlalchemy.org/trac/ticket/3055">#3055</a></p>
267
<li><p id="change-0.8.7-1"><span class="target" id="change-e8cf642e4e106568a47ada55df3ad138"><strong>[orm] [bug] </strong></span>Fixed ORM bug where the <a class="reference internal" href="../orm/mapper_config.html#sqlalchemy.orm.class_mapper" title="sqlalchemy.orm.class_mapper"><tt class="xref py py-func docutils literal"><span class="pre">class_mapper()</span></tt></a> function would mask
268
AttributeErrors or KeyErrors that should raise during mapper
269
configuration due to user errors. The catch for attribute/keyerror
270
has been made more specific to not include the configuration step.<a class="changeset-link headerlink reference internal" href="#change-e8cf642e4e106568a47ada55df3ad138">¶</a><p>References: <a class="reference external" href="http://www.sqlalchemy.org/trac/ticket/3047">#3047</a></p>
275
<div class="section" id="change-0.8.7-sql">
276
<h3>sql<a class="headerlink" href="#change-0.8.7-sql" title="Permalink to this headline">¶</a></h3>
278
<li><p id="change-0.8.7-2"><span class="target" id="change-2d3949a5f46b25fe3382151b8669ae6b"><strong>[sql] [bug] </strong></span>Fixed bug in INSERT..FROM SELECT construct where selecting from a
279
UNION would wrap the union in an anonymous (e.g. unlabled) subquery.<a class="changeset-link headerlink reference internal" href="#change-2d3949a5f46b25fe3382151b8669ae6b">¶</a><p>References: <a class="reference external" href="http://www.sqlalchemy.org/trac/ticket/3044">#3044</a></p>
282
<li><p id="change-0.8.7-3"><span class="target" id="change-f4de3727dd13fd61c02ae2721cfaafc5"><strong>[sql] [bug] </strong></span>Fixed bug where <a class="reference internal" href="../core/metadata.html#sqlalchemy.schema.Table.update" title="sqlalchemy.schema.Table.update"><tt class="xref py py-meth docutils literal"><span class="pre">Table.update()</span></tt></a> and <a class="reference internal" href="../core/metadata.html#sqlalchemy.schema.Table.delete" title="sqlalchemy.schema.Table.delete"><tt class="xref py py-meth docutils literal"><span class="pre">Table.delete()</span></tt></a>
283
would produce an empty WHERE clause when an empty <a class="reference internal" href="../core/sqlelement.html#sqlalchemy.sql.expression.and_" title="sqlalchemy.sql.expression.and_"><tt class="xref py py-func docutils literal"><span class="pre">and_()</span></tt></a>
284
or <a class="reference internal" href="../core/sqlelement.html#sqlalchemy.sql.expression.or_" title="sqlalchemy.sql.expression.or_"><tt class="xref py py-func docutils literal"><span class="pre">or_()</span></tt></a> or other blank expression were applied. This is
285
now consistent with that of <a class="reference internal" href="../core/selectable.html#sqlalchemy.sql.expression.select" title="sqlalchemy.sql.expression.select"><tt class="xref py py-func docutils literal"><span class="pre">select()</span></tt></a>.<a class="changeset-link headerlink reference internal" href="#change-f4de3727dd13fd61c02ae2721cfaafc5">¶</a><p>References: <a class="reference external" href="http://www.sqlalchemy.org/trac/ticket/3045">#3045</a></p>
290
<div class="section" id="change-0.8.7-postgresql">
291
<h3>postgresql<a class="headerlink" href="#change-0.8.7-postgresql" title="Permalink to this headline">¶</a></h3>
293
<li><p id="change-0.8.7-4"><span class="target" id="change-127ec92a16e57cf51809b91f2b78c9d6"><strong>[postgresql] [bug] </strong></span>Added the <tt class="docutils literal"><span class="pre">hashable=False</span></tt> flag to the PG <a class="reference internal" href="../dialects/postgresql.html#sqlalchemy.dialects.postgresql.HSTORE" title="sqlalchemy.dialects.postgresql.HSTORE"><tt class="xref py py-class docutils literal"><span class="pre">HSTORE</span></tt></a> type, which
294
is needed to allow the ORM to skip over trying to “hash” an ORM-mapped
295
HSTORE column when requesting it in a mixed column/entity list.
296
Patch courtesy Gunnlaugur Þór Briem.<a class="changeset-link headerlink reference internal" href="#change-127ec92a16e57cf51809b91f2b78c9d6">¶</a><p>References: <a class="reference external" href="http://www.sqlalchemy.org/trac/ticket/3053">#3053</a></p>
299
<li><p id="change-0.8.7-5"><span class="target" id="change-b3bdb51a69a9c0f277ff16a91bfc9e34"><strong>[postgresql] [bug] </strong></span>Added a new “disconnect” message “connection has been closed unexpectedly”.
300
This appears to be related to newer versions of SSL.
301
Pull request courtesy Antti Haapala.<a class="changeset-link headerlink reference internal" href="#change-b3bdb51a69a9c0f277ff16a91bfc9e34">¶</a><p>References: <a class="reference external" href="https://bitbucket.org/zzzeek/sqlalchemy/pull-request/13">pull request bitbucket:13</a></p>
306
<div class="section" id="change-0.8.7-mysql">
307
<h3>mysql<a class="headerlink" href="#change-0.8.7-mysql" title="Permalink to this headline">¶</a></h3>
309
<li><p id="change-0.8.7-6"><span class="target" id="change-6ebc4901dda2870745c197767107fd38"><strong>[mysql] [bug] </strong></span>Fixed bug where column names added to <tt class="docutils literal"><span class="pre">mysql_length</span></tt> parameter
310
on an index needed to have the same quoting for quoted names in
311
order to be recognized. The fix makes the quotes optional but
312
also provides the old behavior for backwards compatibility with those
313
using the workaround.<a class="changeset-link headerlink reference internal" href="#change-6ebc4901dda2870745c197767107fd38">¶</a><p>References: <a class="reference external" href="http://www.sqlalchemy.org/trac/ticket/3085">#3085</a></p>
316
<li><p id="change-0.8.7-7"><span class="target" id="change-adc1cf48426d16ff7afa412b798f7afb"><strong>[mysql] [bug] </strong></span>Added support for reflecting tables where an index includes
317
KEY_BLOCK_SIZE using an equal sign. Pull request courtesy
318
Sean McGivern.<a class="changeset-link headerlink reference internal" href="#change-adc1cf48426d16ff7afa412b798f7afb">¶</a><p>References: <a class="reference external" href="https://bitbucket.org/zzzeek/sqlalchemy/pull-request/15">pull request bitbucket:15</a></p>
323
<div class="section" id="change-0.8.7-misc">
324
<h3>misc<a class="headerlink" href="#change-0.8.7-misc" title="Permalink to this headline">¶</a></h3>
326
<li><p id="change-0.8.7-8"><span class="target" id="change-4247b43502c3504d7399eff5dbaec535"><strong>[bug] [declarative] </strong></span>The <tt class="docutils literal"><span class="pre">__mapper_args__</span></tt> dictionary is copied from a declarative
327
mixin or abstract class when accessed, so that modifications made
328
to this dictionary by declarative itself won’t conflict with that
329
of other mappings. The dictionary is modified regarding the
330
<tt class="docutils literal"><span class="pre">version_id_col</span></tt> and <tt class="docutils literal"><span class="pre">polymorphic_on</span></tt> arguments, replacing the
331
column within with the one that is officially mapped to the local
332
class/table.<a class="changeset-link headerlink reference internal" href="#change-4247b43502c3504d7399eff5dbaec535">¶</a><p>References: <a class="reference external" href="http://www.sqlalchemy.org/trac/ticket/3062">#3062</a></p>
335
<li><p id="change-0.8.7-9"><span class="target" id="change-af885a6f2bdf7de42dea7ecbd89161c8"><strong>[bug] [ext] </strong></span>Fixed bug in mutable extension where <a class="reference internal" href="../orm/extensions/mutable.html#sqlalchemy.ext.mutable.MutableDict" title="sqlalchemy.ext.mutable.MutableDict"><tt class="xref py py-class docutils literal"><span class="pre">MutableDict</span></tt></a> did not
336
report change events for the <tt class="docutils literal"><span class="pre">setdefault()</span></tt> dictionary operation.<a class="changeset-link headerlink reference internal" href="#change-af885a6f2bdf7de42dea7ecbd89161c8">¶</a><p>References: <a class="reference external" href="http://www.sqlalchemy.org/trac/ticket/3051">#3051</a></p>
268
342
<div class="section" id="change-0.8.6">
269
343
<h2>0.8.6<a class="headerlink" href="#change-0.8.6" title="Permalink to this headline">¶</a></h2>
270
344
Released: March 28, 2014<div class="section" id="change-0.8.6-general">