1.1.6
Released: February 28, 2017
orm
-
[orm] [bug] Addressed some long unattended performance concerns within the joined
eager loader query construction system that have accumulated since
earlier versions as a result of increased abstraction. The use of ad-
hocAliasedClass
objects per query, which produces lots of
column lookup overhead each time, has been replaced with a cached
approach that makes use of a small pool ofAliasedClass
objects that are reused between invocations of joined eager loading.
Some mechanics involving eager join path construction have also been
optimized. Callcounts for an end-to-end query construction + single
row fetch test with a worst-case joined loader scenario have been
reduced by about 60% vs. 1.1.5 and 42% vs. that of 0.8.6.References: #3915
-
[orm] [bug] Fixed a major inefficiency in the "eager_defaults" feature whereby
an unnecessary SELECT would be emitted for column values where the
ORM had explicitly inserted NULL, corresponding to attributes that
were unset on the object but did not have any server default
specified, as well as expired attributes on update that nevertheless
had no server onupdate set up. As these columns are not part of the
RETURNING that eager_defaults tries to use, they should not be
post-SELECTed either.References: #3909
-
[orm] [bug] Fixed two closely related bugs involving the mapper eager_defaults
flag in conjunction with single-table inheritance; one where the
eager defaults logic would inadvertently try to access a column
that's part of the mapper's "exclude_properties" list (used by
Declarative with single table inheritance) during the eager defaults
fetch, and the other where the full load of the row in order to
fetch the defaults would fail to use the correct inheriting mapper.References: #3908
-
[orm] [bug] Fixed bug first introduced in 0.9.7 as a result of #3106
which would cause an incorrect query in some forms of multi-level
subqueryload against aliased entities, with an unnecessary extra
FROM entity in the innermost subquery.References: #3893
orm declarative
-
[bug] [declarative] [orm] Fixed bug where the "automatic exclude" feature of declarative that
ensures a column local to a single table inheritance subclass does
not appear as an attribute on other derivations of the base would
not take effect for multiple levels of subclassing from the base.References: #3895
sql
-
[sql] [bug] Fixed bug whereby the
DDLEvents.column_reflect()
event would not
allow a non-textual expression to be passed as the value of the
"default" for the new column, such as aFetchedValue
object to indicate a generic triggered default or a
sql.expression.text()
construct. Clarified the documentation
in this regard as well.References: #3905
postgresql
-
[postgresql] [bug] Added regular expressions for the "IMPORT FOREIGN SCHEMA",
"REFRESH MATERIALIZED VIEW" PostgreSQL statements so that they
autocommit when invoked via a connection or engine without
an explicit transaction. Pull requests courtesy Frazer McLean
and Paweł Stiasny.References: #3804
-
[postgresql] [bug] Fixed bug in PostgreSQL
ExcludeConstraint
where the
"whereclause" and "using" parameters would not be copied during an
operation likeTable.tometadata()
.References: #3900
mysql
- [mysql] [bug] Added new MySQL 8.0 reserved words to the MySQL dialect for proper
quoting. Pull request courtesy Hanno Schlichting.
mssql
-
[mssql] [bug] Added a version check to the "get_isolation_level" feature, which is
invoked upon first connect, so that it skips for SQL Server version
2000, as the necessary system view is not available prior to SQL Server
2005.References: #3898