github sqlalchemy/sqlalchemy rel_2_0_0rc2
2.0.0rc2

latest releases: rel_2_0_36, rel_2_0_35, rel_1_4_54...
pre-release23 months ago

2.0.0rc2

Released: January 9, 2023

orm

  • [orm] [bug] Fixed issue where an overly restrictive ORM mapping rule were added in 2.0
    which prevented mappings against TableClause objects, such as
    those used in the view recipe on the wiki.

    References: #9071

typing

  • [typing] [bug] The Data Class Transforms argument field_descriptors was renamed
    to field_specifiers in the accepted version of PEP 681.

    References: #9067

postgresql

  • [postgresql] [bug] Added support to the asyncpg dialect to return the cursor.rowcount
    value for SELECT statements when available. While this is not a typical use
    for cursor.rowcount, the other PostgreSQL dialects generally provide
    this value. Pull request courtesy Michael Gorven.

    This change is also backported to: 1.4.47

    References: #9048

  • [postgresql] [json] Implemented missing JSONB operations:

    -   `@@` using `_postgresql.JSONB.Comparator.path_match()`
    
    -   `@?` using `_postgresql.JSONB.Comparator.path_exists()`
    
    -   `#-` using `_postgresql.JSONB.Comparator.delete_path()`
    

    Pull request curtesy of Guilherme Martins Crocetti.

    References: #7147

mysql

  • [mysql] [usecase] Added support to MySQL index reflection to correctly reflect the
    mysql_length dictionary, which previously was being ignored.

    This change is also backported to: 1.4.47

    References: #9047

  • [mysql] [bug] Restored the behavior of Inspector.has_table() to report on
    temporary tables for MySQL / MariaDB. This is currently the behavior for
    all other included dialects, but was removed for MySQL in 1.4 due to no
    longer using the DESCRIBE command; there was no documented support for temp
    tables being reported by the Inspector.has_table() method in this
    version or on any previous version, so the previous behavior was undefined.

    As SQLAlchemy 2.0 has added formal support for temp table status via
    Inspector.has_table(), the MySQL /MariaDB dialect has been reverted
    to use the "DESCRIBE" statement as it did in the SQLAlchemy 1.3 series and
    previously, and test support is added to include MySQL / MariaDB for
    this behavior. The previous issues with ROLLBACK being emitted which
    1.4 sought to improve upon don't apply in SQLAlchemy 2.0 due to
    simplifications in how Connection handles transactions.

    DESCRIBE is necessary as MariaDB in particular has no consistently
    available public information schema of any kind in order to report on temp
    tables other than DESCRIBE/SHOW COLUMNS, which rely on throwing an error
    in order to report no results.

    References: #9058

oracle

  • [oracle] [bug] Supported use case for foreign key constraints where the local column is
    marked as "invisible". The errors normally generated when a
    ForeignKeyConstraint is created that check for the target column
    are disabled when reflecting, and the constraint is skipped with a warning
    in the same way which already occurs for an Index with a similar
    issue.

    References: #9059

Don't miss a new sqlalchemy release

NewReleases is sending notifications on new releases.