44
44
<script type="text/javascript" src="../_static/doctools.js"></script>
45
45
<!-- end iterate through sphinx environment script_files -->
47
<script type="text/javascript" src="../_static/detectmobile.js"></script>
47
48
<script type="text/javascript" src="../_static/init.js"></script>
48
49
<link rel="index" title="Index" href="../genindex.html" />
49
50
<link rel="search" title="Search" href="../search.html" />
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_07.html" title="0.7 Changelog">Prev</a> |
103
<a href="changelog_05.html" title="0.5 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_07.html" title="previous chapter">0.7 Changelog</a>
104
<a href="changelog_05.html" title="next chapter">0.5 Changelog</a>
108
<a href="../contents.html">Table of Contents</a> |
109
<a href="../genindex.html">Index</a>
110
| <a href="../_sources/changelog/changelog_06.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.6 Changelog</a><ul>
137
129
<li><a class="reference internal" href="#change-0.6.9">0.6.9</a><ul>
138
130
<li><a class="reference internal" href="#change-0.6.9-general">general</a></li>
279
<h4>Previous Topic</h4>
281
<a href="changelog_07.html" title="previous chapter">0.7 Changelog</a>
285
<a href="changelog_05.html" title="next chapter">0.5 Changelog</a>
289
<h4>Quick Search</h4>
291
<form class="search" action="../search.html" method="get">
292
<input type="text" name="q" size="18" /> <input type="submit" value="Search" />
293
<input type="hidden" name="check_keywords" value="yes" />
294
<input type="hidden" name="area" value="default" />
300
279
<div id="docs-body" class="withsidebar" >
302
281
<div class="section" id="changelog">
958
937
<ul class="simple">
959
938
<li><p id="change-0.6.6-15"><span class="target" id="change-e344fa51f77920bcead6517070be003a"><strong>[engine] </strong></span>The “unicode warning” against non-unicode bind data
960
939
is now raised only when the
961
Unicode type is used explictly; not when
940
Unicode type is used explicitly; not when
962
941
convert_unicode=True is used on the engine
963
942
or String type.<a class="changeset-link headerlink reference internal" href="#change-e344fa51f77920bcead6517070be003a">¶</a><p></p>
1523
1502
<li><p id="change-0.6.4-5"><span class="target" id="change-96944473a095ce6dfc07cbc71640f1d9"><strong>[orm] </strong></span>A warning is now emitted if a mapper is created against a
1524
1503
join or other single selectable that includes multiple
1525
1504
columns with the same name in its .c. collection,
1526
and those columns aren’t explictly named as part of
1505
and those columns aren’t explicitly named as part of
1527
1506
the same or separate attributes (or excluded).
1528
1507
In 0.7 this warning will be an exception. Note that
1529
1508
this warning is not emitted when the combination occurs
1780
1759
<li><p id="change-0.6.4-35"><span class="target" id="change-0a8949e6824cfb04db55beb3e85e4aed"><strong>[sql] </strong></span>the _Label construct, i.e. the one that is produced
1781
1760
whenever you say somecol.label(), now counts itself
1782
in its “proxy_set” unioned with that of it’s
1761
in its “proxy_set” unioned with that of its
1783
1762
contained column’s proxy set, instead of
1784
1763
directly returning that of the contained column.
1785
1764
This allows column correspondence
1881
1860
and/or reorganized.<a class="changeset-link headerlink reference internal" href="#change-d47912608c4830253d4f01066a3062bb">¶</a><p></p>
1884
<li><p id="change-0.6.4-47"><span class="target" id="change-4d0bf2f6176ff585be192cce5473508e"><strong>[examples] </strong></span>The beaker_caching example has been reorgnized
1863
<li><p id="change-0.6.4-47"><span class="target" id="change-781cd432413e70f6da98e3dd05fda2be"><strong>[examples] </strong></span>The beaker_caching example has been reorganized
1885
1864
such that the Session, cache manager,
1886
1865
declarative_base are part of environment, and
1887
1866
custom cache code is portable and now within
1888
1867
“caching_query.py”. This allows the example to
1889
be easier to “drop in” to existing projects.<a class="changeset-link headerlink reference internal" href="#change-4d0bf2f6176ff585be192cce5473508e">¶</a><p></p>
1868
be easier to “drop in” to existing projects.<a class="changeset-link headerlink reference internal" href="#change-781cd432413e70f6da98e3dd05fda2be">¶</a><p></p>
1892
1871
<li><p id="change-0.6.4-48"><span class="target" id="change-723cdb6f299e5eb37115fdceb06a6607"><strong>[examples] </strong></span>the history_meta versioning recipe sets “unique=False”
2670
2649
“subqueryload_all(props...)”.<a class="changeset-link headerlink reference internal" href="#change-f967d8dbf3c4194f9e0b1af4d5804fd6">¶</a><p>References: <a class="reference external" href="http://www.sqlalchemy.org/trac/ticket/1675">#1675</a></p>
2673
<li><p id="change-0.6beta3-1"><span class="target" id="change-5767ddfaa66ff81d727e89c1b58f2c10"><strong>[orm] </strong></span>To accomodate the fact that there are now two kinds of eager
2652
<li><p id="change-0.6beta3-1"><span class="target" id="change-18a93528ced9a2629dcac08a74e933e0"><strong>[orm] </strong></span>To accommodate the fact that there are now two kinds of eager
2674
2653
loading available, the new names for eagerload() and
2675
2654
eagerload_all() are joinedload() and joinedload_all(). The
2676
old names will remain as synonyms for the foreseeable future.<a class="changeset-link headerlink reference internal" href="#change-5767ddfaa66ff81d727e89c1b58f2c10">¶</a><p></p>
2655
old names will remain as synonyms for the foreseeable future.<a class="changeset-link headerlink reference internal" href="#change-18a93528ced9a2629dcac08a74e933e0">¶</a><p></p>
2679
2658
<li><p id="change-0.6beta3-2"><span class="target" id="change-5660c8fd9cb4729f0f6017950bde5b27"><strong>[orm] </strong></span>The “lazy” flag on the relationship() function now accepts
2748
2727
“sqlalchemy.dialects.postgresql” logger name.<a class="changeset-link headerlink reference internal" href="#change-51b8f6239dcbf5719eeda7f33fb074ad">¶</a><p>References: <a class="reference external" href="http://www.sqlalchemy.org/trac/ticket/877">#877</a></p>
2751
<li><p id="change-0.6beta3-13"><span class="target" id="change-cc407f1f9b807702cef6cfefc88505ae"><strong>[postgresql] </strong></span>the TIME and TIMESTAMP types are now availble from the
2730
<li><p id="change-0.6beta3-13"><span class="target" id="change-b06780742c82dc402af8d0b581c9eebe"><strong>[postgresql] </strong></span>the TIME and TIMESTAMP types are now available from the
2752
2731
postgresql dialect directly, which add the PG-specific
2753
2732
argument ‘precision’ to both. ‘precision’ and
2754
2733
‘timezone’ are correctly reflected for both TIME and
2755
TIMEZONE types.<a class="changeset-link headerlink reference internal" href="#change-cc407f1f9b807702cef6cfefc88505ae">¶</a><p>References: <a class="reference external" href="http://www.sqlalchemy.org/trac/ticket/997">#997</a></p>
2734
TIMEZONE types.<a class="changeset-link headerlink reference internal" href="#change-b06780742c82dc402af8d0b581c9eebe">¶</a><p>References: <a class="reference external" href="http://www.sqlalchemy.org/trac/ticket/997">#997</a></p>
2839
2818
<li><p id="change-0.6beta2-4"><span class="target" id="change-58c0d0b1848c816ae294a332245af234"><strong>[orm] </strong></span>Fixed bug in session.rollback() which involved not removing
2840
2819
formerly “pending” objects from the session before
2841
re-integrating “deleted” objects, typically occured with
2820
re-integrating “deleted” objects, typically occurred with
2842
2821
natural primary keys. If there was a primary key conflict
2843
2822
between them, the attach of the deleted would fail
2844
2823
internally. The formerly “pending” objects are now expunged
3050
3029
the date/time/interval system created for Postgresql
3051
3030
EXTRACT in has now been generalized into
3052
3031
the type system. The previous behavior which often
3053
occured of an expression “column + literal” forcing
3032
occurred of an expression “column + literal” forcing
3054
3033
the type of “literal” to be the same as that of “column”
3055
3034
will now usually not occur - the type of
3056
3035
“literal” is first derived from the Python type of the
3967
3946
<li><p id="change-0.6beta1-76"><span class="target" id="change-3a5af57ac623dd1f8cfef840898452b2"><strong>[mysql] </strong></span>a column of type TIMESTAMP now defaults to NULL if
3968
3947
“nullable=False” is not passed to Column(), and no default
3969
3948
is present. This is now consistent with all other types,
3970
and in the case of TIMESTAMP explictly renders “NULL”
3949
and in the case of TIMESTAMP explicitly renders “NULL”
3971
3950
due to MySQL’s “switching” of default nullability
3972
3951
for TIMESTAMP columns.<a class="changeset-link headerlink reference internal" href="#change-3a5af57ac623dd1f8cfef840898452b2">¶</a><p>References: <a class="reference external" href="http://www.sqlalchemy.org/trac/ticket/1539">#1539</a></p>