Hey all -
SQLAlchemy 0.7.8 is released. This is a maintenance release containing
significant bug fixes applied to both the 0.7 and 0.8 SQLAlchemy series.
Significant issues resolved include a memory leak identified when the
C extensions were installed in conjunction with usage of the Pyodbc DBAPI
driver, and possibly other drivers that use a custom non-tuple for
result rows; as well as a Python 3 issue where the execute() method of Engine
and Connection would not interpret positional arguments correctly.
Users who are using the Pyodbc driver in conjunction with the C extensions
on any platform are encouraged to upgrade.
There's also a new dialect added that should allow usage of the new MySQL
engine provided by Google App Engine.
Overall, 0.7.8 has few changes versus 0.7.7, particularly within the
ORM component, save for a few fixes. Users are advised to fully
test existing applications before upgrading in any case.
Download SQLAlchemy 0.7.8 at:
- [bug] Fixed bug whereby subqueryload() from
a polymorphic mapping to a target would incur
a new invocation of the query for each
distinct class encountered in the polymorphic
- [bug] Fixed bug in declarative
whereby the precedence of columns
in a joined-table, composite
column (typically for id) would fail to
be correct if the columns contained
names distinct from their attribute
names. This would cause things like
primaryjoin conditions made against the
entity attributes to be incorrect. Related
to [ticket:1892] as this was supposed
to be part of that, this is [ticket:2491].
- [feature] The 'objects' argument to
flush() is no longer deprecated, as some
valid use cases have been identified.
- [bug] Fixed identity_key() function which
was not accepting a scalar argument
for the identity. [ticket:2508].
- [bug] Fixed bug whereby populate_existing
option would not propagate to subquery
eager loaders. [ticket:2497].
- [bug] added BIGINT to types.__all__,
BIGINT, BINARY, VARBINARY to sqlalchemy
module namespace, plus test to ensure
this breakage doesn't occur again.
- [bug] Repaired common table expression
rendering to function correctly when the
SELECT statement contains UNION or other
compound expressions, courtesy btbuilder.
- [bug] Fixed bug whereby append_column()
wouldn't function correctly on a cloned
select() construct, courtesy
Gunnlaugur Þór Briem. [ticket:2482]
- [bug] Fixed memory leak in C version of
result proxy whereby DBAPIs which don't deliver
pure Python tuples for result rows would
fail to decrement refcounts correctly.
The most prominently affected DBAPI
is pyodbc. [ticket:2489]
- [bug] Fixed bug affecting Py3K whereby
string positional parameters passed to
engine/connection execute() would fail to be
interpreted correctly, due to __iter__
being present on Py3K string.
- [bug] removed unnecessary table clause when
reflecting enums, [ticket:2510]. Courtesy
Gunnlaugur Þór Briem.
- [bug] Added ROWID to oracle.*, [ticket:2483]
- [feature] Added a new dialect for Google App
Engine. Courtesy Richie Foreman. [ticket:2484]