SQLAlchemy 1.2.0 released

5 views
Skip to first unread message

Mike Bayer

unread,
Dec 27, 2017, 3:06:56 PM12/27/17
to sqlal...@googlegroups.com, sqlalchem...@googlegroups.com, sqlalche...@googlegroups.com
SQLAlchemy release 1.2.0 is now available.

Release 1.2.0 is the first official release in the 1.2 series, after
three beta releases. The release represents the past eighteen months
of new feature development since version 1.1 was released.

The 1.2 series has a large mix of features and behavioral enhancements
spread across both the Core and ORM components, including in the area
of ORM relationship loading, the behavior of the Core IN operator, new
SQL constructs such as DELETE..FROM and MySQL's INSERT..ON DUPLICATE
KEY UPDATE, as well as a new connection pooling feature that provides
for pessimistic connection testing upon checkout.

The migration notes and changelog should cover everything to look for,
however some major changes include:

* Lazy loaders and deferred eager loaders now use the baked query
system for a major reduction in Python call overhead

* A new eager loader called "SELECT IN" loading, similar to subquery
eager loading but uses an IN clause with primary keys for
significantly faster performance in many situations

* A variant of "SELECT IN" loading for polymorphic mappings, which
allows the sub-table rows of a heterogeneous result of joined
inheritance classes to be loaded en-masse without using a LEFT OUTER
JOIN up front.

* The IN operator now allows empty lists in a performant manner,
revising a long standing restriction on these expressions

* A new "expanding IN" clause that allows for arbitrary lists of items
to be late-bound to an IN operator just like a single bound parameter

* Support for psycopg2's recently added "fast execution" helper,
allowing for batching of DML statements into larger chunks for a great
reduction in network overhead

* A new connection pool parameter pool_pre_ping, which pings
connections upon checkout, thereby eliminating the issue of stale
connections in a connection pool

* Support for table and column comments in DDL and reflection

* Major reworks of both the cx_Oracle and pyodbc MSSQL and pymssql
dialects for greater stability and performance.

There are many more behavioral improvements and changes, all of which
are backwards-compatible for but as is always the case, may be
surprising in those cases where the sudden appearance of a feature, an
assertion that wasn't present earlier, or a fix of a previously
undefined or buggy behavior may produce unexpected results or error
messages for an existing application. Users should please carefully
review the full series of migration notes at
http://www.sqlalchemy.org/docs/latest/changelog/migration_12.html to
see the full expanse of things that have changed and should always
fully test existing applications against the 1.2 series before
promoting to production.

The complete changelog for 1.2.0 as well as all the beta releases is
at http://www.sqlalchemy.org/changelog/CHANGES_1_2_0; we'd like to
thank the many contributors who helped with this release.

SQLAlchemy 1.2.0 is available on the Download Page at:
http://www.sqlalchemy.org/download.html
Reply all
Reply to author
Forward
0 new messages