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 againstTableClause
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
tofield_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
forcursor.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 theInspector.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 howConnection
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 anIndex
with a similar
issue.References: #9059