github sqlalchemy/sqlalchemy rel_1_4_2
1.4.2

latest releases: rel_2_0_29, rel_2_0_28, rel_1_4_52...
3 years ago

1.4.2

Released: March 19, 2021

orm

  • [orm] [usecase] [dataclasses] Added support for the _orm.declared_attr object to work in the
    context of dataclass fields.

    References: #6100

  • [orm] [bug] [dataclasses] Fixed issue in new ORM dataclasses functionality where dataclass fields on
    an abstract base or mixin that contained column or other mapping constructs
    would not be mapped if they also included a "default" key within the
    dataclasses.field() object.

    References: #6093

  • [orm] [bug] [regression] Fixed regression where the _orm.Query.selectable accessor, which is
    a synonym for _orm.Query.__clause_element__(), got removed, it's now
    restored.

    References: #6088

  • [orm] [bug] [regression] Fixed regression where use of an unnamed SQL expression such as a SQL
    function would raise a column targeting error if the query itself were
    using joinedload for an entity and was also being wrapped in a subquery by
    the joinedload eager loading process.

    References: #6086

  • [orm] [bug] [regression] Fixed regression where the _orm.Query.filter_by() method would fail
    to locate the correct source entity if the _orm.Query.join() method
    had been used targeting an entity without any kind of ON clause.

    References: #6092

  • [orm] [bug] [regression] Fixed regression where the SQL compilation of a Function would
    not work correctly if the object had been "annotated", which is an internal
    memoization process used mostly by the ORM. In particular it could affect
    ORM lazy loads which make greater use of this feature in 1.4.

    References: #6095

  • [orm] [bug] Fixed regression where the ConcreteBase would fail to map at all
    when a mapped column name overlapped with the discriminator column name,
    producing an assertion error. The use case here did not function correctly
    in 1.3 as the polymorphic union would produce a query that ignored the
    discriminator column entirely, while emitting duplicate column warnings. As
    1.4's architecture cannot easily reproduce this essentially broken behavior
    of 1.3 at the select() level right now, the use case now raises an
    informative error message instructing the user to use the
    .ConcreteBase._concrete_discriminator_name attribute to resolve the
    conflict. To assist with this configuration,
    .ConcreteBase._concrete_discriminator_name may be placed on the base
    class only where it will be automatically used by subclasses; previously
    this was not the case.

    References: #6090

engine

  • [engine] [bug] [regression] Restored top level import for sqlalchemy.engine.reflection. This
    ensures that the base _reflection.Inspector class is properly
    registered so that _sa.inspect() works for third party dialects that
    don't otherwise import this package.

sql

  • [sql] [bug] [regression] Fixed issue where using a func that includes dotted packagenames would
    fail to be cacheable by the SQL caching system due to a Python list of
    names that needed to be a tuple.

    References: #6101

  • [sql] [bug] [regression] Fixed regression in the _sql.case() construct, where the "dictionary"
    form of argument specification failed to work correctly if it were passed
    positionally, rather than as a "whens" keyword argument.

    References: #6097

mypy

  • [mypy] [bug] Fixed issue in MyPy extension which crashed on detecting the type of a
    Column if the type were given with a module prefix like
    sa.Integer().

    References: #sqlalchemy/sqlalchemy2-stubs/2

postgresql

  • [postgresql] [usecase] Rename the column name used by a reflection query that used
    a reserved word in some postgresql compatible databases.

    References: #6982

Don't miss a new sqlalchemy release

NewReleases is sending notifications on new releases.