1.2.12
Released: September 19, 2018
-
[bug] [postgresql] Fixed bug in PostgreSQL dialect where compiler keyword arguments such as
literal_binds=True
were not being propagated to a DISTINCT ON
expression.References: #4325
-
[bug] [ext] Fixed issue where
BakedQuery
did not include the specific query
class used by theSession
as part of the cache key, leading to
incompatibilities when using custom query classes, in particular the
ShardedQuery
which has some different argument signatures.References: #4328
-
[bug] [postgresql] Fixed the
postgresql.array_agg()
function, which is a slightly
altered version of the usualfunctions.array_agg()
function, to also
accept an incoming "type" argument without forcing an ARRAY around it,
essentially the same thing that was fixed for the generic function in 1.1
in #4107.References: #4324
-
[bug] [postgresql] Fixed bug in PostgreSQL ENUM reflection where a case-sensitive, quoted name
would be reported by the query including quotes, which would not match a
target column during table reflection as the quotes needed to be stripped
off.References: #4323
-
[bug] [orm] Added a check within the weakref cleanup for the
InstanceState
object to check for the presence of thedict
builtin, in an effort to
reduce error messages generated when these cleanups occur during interpreter
shutdown. Pull request courtesy Romuald Brunet. -
[bug] [declarative] [orm] Fixed bug where the declarative scan for attributes would receive the
expression proxy delivered by a hybrid attribute at the class level, and
not the hybrid attribute itself, when receiving the descriptor via the
@declared_attr
callable on a subclass of an already-mapped class. This
would lead to an attribute that did not report itself as a hybrid when
viewed withinMapper.all_orm_descriptors
.References: #4326
-
[bug] [orm] Fixed bug where use of
Lateral
construct in conjunction with
Query.join()
as well asQuery.select_entity_from()
would not
apply clause adaption to the right side of the join. "lateral" introduces
the use case of the right side of a join being correlatable. Previously,
adaptation of this clause wasn't considered. Note that in 1.2 only,
a selectable introduced byQuery.subquery()
is still not adapted
due to #4304; the selectable needs to be produced by the
select()
function to be the right side of the "lateral" join.References: #4334
-
[bug] [oracle] Fixed issue for cx_Oracle 7.0 where the behavior of Oracle param.getvalue()
now returns a list, rather than a single scalar value, breaking
autoincrement logic throughout the Core and ORM. The dml_ret_array_val
compatibility flag is used for cx_Oracle 6.3 and 6.4 to establish compatible
behavior with 7.0 and forward, for cx_Oracle 6.2.1 and prior a version
number check falls back to the old logic.References: #4335
-
[bug] [orm] Fixed 1.2 regression caused by #3472 where the handling of an
"updated_at" style column within the context of a post-update operation
would also occur for a row that is to be deleted following the update,
meaning both that a column with a Python-side value generator would show
the now-deleted value that was emitted for the UPDATE before the DELETE
(which was not the previous behavior), as well as that a SQL- emitted value
generator would have the attribute expired, meaning the previous value
would be unreachable due to the row having been deleted and the object
detached from the session.The "postfetch" logic that was added as part of
#3472 is now skipped entirely for an object that ultimately is to
be deleted.References: #4327