Skip to content

1.4.37

Compare
Choose a tag to compare
@sqla-tester sqla-tester released this 31 May 21:27
· 2457 commits to main since this release

1.4.37

Released: May 31, 2022

orm

  • [orm] [bug] Fixed issue where using a _orm.column_property() construct containing
    a subquery against an already-mapped column attribute would not correctly
    apply ORM-compilation behaviors to the subquery, including that the "IN"
    expression added for a single-table inherits expression would fail to be
    included.

    References: #8064

  • [orm] [bug] Fixed issue where ORM results would apply incorrect key names to the
    returned Row objects in the case where the set of columns to be
    selected were changed, such as when using
    Select.with_only_columns().

    References: #8001

  • [orm] [bug] [oracle] [postgresql] Fixed bug, likely a regression from 1.3, where usage of column names that
    require bound parameter escaping, more concretely when using Oracle with
    column names that require quoting such as those that start with an
    underscore, or in less common cases with some PostgreSQL drivers when using
    column names that contain percent signs, would cause the ORM versioning
    feature to not work correctly if the versioning column itself had such a
    name, as the ORM assumes certain bound parameter naming conventions that
    were being interfered with via the quotes. This issue is related to
    #8053 and essentially revises the approach towards fixing this,
    revising the original issue #5653 that created the initial
    implementation for generalized bound-parameter name quoting.

    References: #8056

engine

  • [engine] [bug] [tests] Fixed issue where support for logging "stacklevel" implemented in
    #7612 required adjustment to work with recently released Python
    3.11.0b1, also repairs the unit tests which tested this feature.

    References: #8019

sql

  • [sql] [bug] [postgresql] [sqlite] Fixed bug where the PostgreSQL
    _postgresql.Insert.on_conflict_do_update() method and the SQLite
    _sqlite.Insert.on_conflict_do_update() method would both fail to
    correctly accommodate a column with a separate ".key" when specifying the
    column using its key name in the dictionary passed to
    _postgresql.Insert.on_conflict_do_update.set_, as well as if
    the _postgresql.Insert.excluded collection were used as the
    dictionary directly.

    References: #8014

  • [sql] [bug] An informative error is raised for the use case where
    Insert.from_select() is being passed a "compound select" object such
    as a UNION, yet the INSERT statement needs to append additional columns to
    support Python-side or explicit SQL defaults from the table metadata. In
    this case a subquery of the compound object should be passed.

    References: #8073

  • [sql] [bug] Fixed an issue where using bindparam() with no explicit data or type
    given could be coerced into the incorrect type when used in expressions
    such as when using ARRAY.Comparator.any() and
    ARRAY.Comparator.all().

    References: #7979

  • [sql] [bug] An informative error is raised if two individual BindParameter
    objects share the same name, yet one is used within an "expanding" context
    (typically an IN expression) and the other is not; mixing the same name in
    these two different styles of usage is not supported and typically the
    expanding=True parameter should be set on the parameters that are to
    receive list values outside of IN expressions (where expanding is set
    by default).

    References: #8018

mysql

  • [mysql] [bug] Further adjustments to the MySQL PyODBC dialect to allow for complete
    connectivity, which was previously still not working despite fixes in
    #7871.

    References: #7966

  • [mysql] [bug] Added disconnect code for MySQL error 4031, introduced in MySQL >= 8.0.24,
    indicating connection idle timeout exceeded. In particular this repairs an
    issue where pre-ping could not reconnect on a timed-out connection. Pull
    request courtesy valievkarim.

    References: #8036

mssql

  • [mssql] [bug] Fix issue where a password with a leading "{" would result in login failure.

    References: #8062

  • [mssql] [bug] [reflection] Explicitly specify the collation when reflecting table columns using
    MSSQL to prevent "collation conflict" errors.

    References: #8035

oracle

  • [oracle] [usecase] Added two new error codes for Oracle disconnect handling to support early
    testing of the new "python-oracledb" driver released by Oracle.

    References: #8066

  • [oracle] [bug] Fixed SQL compiler issue where the "bind processing" function for a bound
    parameter would not be correctly applied to a bound value if the bound
    parameter's name were "escaped". Concretely, this applies, among other
    cases, to Oracle when a Column has a name that itself requires
    quoting, such that the quoting-required name is then used for the bound
    parameters generated within DML statements, and the datatype in use
    requires bind processing, such as the Enum datatype.

    References: #8053