- Added support for returning values from inserts (2.0+ only),
updates and deletes (2.1+ only).
+ - global "propigate"->"propagate" change.
+ - polymorphic_union() function respects the "key" of each
+ Column if they differ from the column's name.
+ - Fixed 0.4-only bug preventing composite columns
+ from working properly with inheriting mappers
+ - Fixed RLock-related bug in mapper which could deadlock upon
+ reentrant mapper compile() calls, something that occurs when
+ using declarative constructs inside of ForeignKey objects.
+ - Fixed bug in composite types which prevented a primary-key
+ composite type from being mutated [ticket:1213].
+ - Added ScopedSession.is_active accessor. [ticket:976]
+ - Class-bound accessor can be used as the argument to
+ relation() order_by. [ticket:939]
+ - Fixed shard_id argument on ShardedSession.execute().
+ - Connection.invalidate() checks for closed status
+ to avoid attribute errors. [ticket:1246]
+ - NullPool supports reconnect on failure behavior.
+ - The per-dialect cache used by TypeEngine to cache
+ dialect-specific types is now a WeakKeyDictionary.
+ This to prevent dialect objects from
+ being referenced forever for an application that
+ creates an arbitrarily large number of engines
+ or dialects. There is a small performance penalty
+ which will be resolved in 0.6. [ticket:1299]
+ - Fixed SQLite reflection methods so that non-present
+ cursor.description, which triggers an auto-cursor
+ close, will be detected so that no results doesn't
+ fail on recent versions of pysqlite which raise
+ an error when fetchone() called with no rows present.
+ - Added Index reflection support to Postgres, using a
+ great patch we long neglected, submitted by
+ Ken Kuhlman. [ticket:714]
+ - Fixed bug in exception raise when FK columns not present
+ during reflection. [ticket:1241]
+ - Fixed bug which was preventing out params of certain types
+ from being received; thanks a ton to huddlej at wwu.edu !
+ - Fixed bug regarding inherit_condition passed
+ with "A=B" versus "B=A" leading to errors
+ - Changes made to new, dirty and deleted
+ SessionExtension.before_flush() will take
+ - Added label() method to InstrumentedAttribute
+ to establish forwards compatibility with 0.5.
+ - column.in_(someselect) can now be used as
+ a columns-clause expression without the subquery
+ bleeding into the FROM clause [ticket:1074]
+ - Added MSMediumInteger type [ticket:1146].
+ - Supplied a custom strftime() function which
+ handles dates before 1900. [ticket:968]
+ - String's (and Unicode's, UnicodeText's, etc.)
+ convert_unicode logic disabled in the sqlite dialect,
+ to adjust for pysqlite 2.5.0's new requirement that
+ only Python unicode objects are accepted;
+ - has_sequence() now takes schema name into account
+ - added BFILE to the list of reflected types
+ - Added "add()" and "add_all()" to scoped_session
+ methods. Workaround for 0.4.7:
+ from sqlalchemy.orm.scoping import ScopedSession,\
+ ScopedSession, "add", instrument("add"))
+ ScopedSession, "add_all", instrument("add_all"))
+ - Fixed non-2.3 compatible usage of set() and generator
+ expression within relation().