github sqlalchemy/sqlalchemy rel_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

    References: #4325

  • [bug] [ext] Fixed issue where BakedQuery did not include the specific query
    class used by the Session 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 usual functions.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

    References: #4323

  • [bug] [orm] Added a check within the weakref cleanup for the InstanceState
    object to check for the presence of the dict 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 within Mapper.all_orm_descriptors.

    References: #4326

  • [bug] [orm] Fixed bug where use of Lateral construct in conjunction with
    Query.join() as well as Query.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 by Query.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

latest releases: rel_1_3_20, rel_1_3_19, rel_1_3_18...
13 months ago