github sqlalchemy/sqlalchemy rel_1_1_14


Released: September 5, 2017


  • [orm] [bug] Fixed bug in Session.merge() following along similar lines as that
    of #4030, where an internal check for a target object in
    the identity map could lead to an error if it were to be garbage collected
    immediately before the merge routine actually retrieves the object.

    References: #4069

  • [orm] [bug] Fixed bug where an undefer_group() option would not be recognized
    if it extended from a relationship that was loading using joined eager
    loading. Additionally, as the bug led to excess work being performed,
    Python function call counts are also improved by 20% within the initial
    calculation of result set columns, complementing the joined eager load
    improvements of #3915.

    References: #4048

  • [orm] [bug] Fixed race condition in ORM identity map which would cause objects
    to be inappropriately removed during a load operation, causing
    duplicate object identities to occur, particularly under joined eager
    loading which involves deduplication of objects. The issue is specific
    to garbage collection of weak references and is observed only under the
    PyPy interpreter.

    References: #4068

  • [orm] [bug] Fixed bug in Session.merge() where objects in a collection that had
    the primary key attribute set to None for a key that is typically
    autoincrementing would be considered to be a database-persisted key for
    part of the internal deduplication process, causing only one object to
    actually be inserted in the database.

    References: #4056

  • [orm] [bug] An InvalidRequestError is raised when a synonym()
    is used against an attribute that is not against a MapperProperty,
    such as an association proxy. Previously, a recursion overflow would
    occur trying to locate non-existent attributes.

    References: #4067


  • [sql] [bug] Altered the range specification for window functions to allow
    for two of the same PRECEDING or FOLLOWING keywords in a range
    by allowing for the left side of the range to be positive
    and for the right to be negative, e.g. (1, 3) is

    References: #4053

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