.. change::
:tags: usecase, mariadb
- :ticket: 10720
+ :tickets: 10720
- Added sql types ``INET4`` and ``INET6`` in the MariaDB dialect.
+ Added sql types ``INET4`` and ``INET6`` in the MariaDB dialect. Pull
+ request courtesy Adam Žurek.
Fixed issue regarding ``Union`` types that would be present in the
:paramref:`_orm.registry.type_annotation_map` of a :class:`_orm.registry`
- or declarative base class, where a ``Mapped[]`` element that included one
- of the subtypes present in that ``Union`` would be matched to that entry,
- potentially ignoring other entries that matched exactly. The correct
- behavior now takes place such that an entry should only match in
- ``type_annotation_map`` exactly, as a ``Union`` type is a self-contained
- type. For example, an attribute with ``Mapped[float]`` would previously
- match to a ``type_annotation_map`` entry ``Union[float, Decimal]``; this
- will no longer match and will now only match to an entry that states
- ``float``. Pull request courtesy Frazer McLean.
+ or declarative base class, where a :class:`.Mapped` element that included
+ one of the subtypes present in that ``Union`` would be matched to that
+ entry, potentially ignoring other entries that matched exactly. The
+ correct behavior now takes place such that an entry should only match in
+ :paramref:`_orm.registry.type_annotation_map` exactly, as a ``Union`` type
+ is a self-contained type. For example, an attribute with ``Mapped[float]``
+ would previously match to a :paramref:`_orm.registry.type_annotation_map`
+ entry ``Union[float, Decimal]``; this will no longer match and will now
+ only match to an entry that states ``float``. Pull request courtesy Frazer
+ McLean.
.. change::
:tags: bug, postgresql
- :ticket: 11724
+ :tickets: 11724
- Fixes issue in `get_multi_indexes` in postgresql dialect, where an error
- would be thrown when attempting to use alembic with a vector index from
- the pgvecto.rs extension.
+ Fixes issue in :meth:`.Dialect.get_multi_indexes` in the PostgreSQL
+ dialect, where an error would be thrown when attempting to use alembic with
+ a vector index from the pgvecto.rs extension.
Added support for the ``LIMIT`` clause with ``DELETE`` for the MySQL and
MariaDB dialects, to complement the already present option for
- ``UPDATE``. The :meth:`.delete.with_dialect_options` method of the
- `:func:`.delete` construct accepts parameters for ``mysql_limit`` and
+ ``UPDATE``. The :meth:`.Delete.with_dialect_options` method of the
+ :func:`.delete` construct accepts parameters for ``mysql_limit`` and
``mariadb_limit``, allowing users to specify a limit on the number of rows
deleted. Pull request courtesy of Pablo Nicolás Estevez.
:tags: bug, mysql, mariadb
Added logic to ensure that the ``mysql_limit`` and ``mariadb_limit``
- parameters of :meth:`.update.with_dialect_options` and
- :meth:`.delete.with_dialect_options` when compiled to string will only
+ parameters of :meth:`.Update.with_dialect_options` and
+ :meth:`.Delete.with_dialect_options` when compiled to string will only
compile if the parameter is passed as an integer; a ``ValueError`` is
raised otherwise.
:tags: bug, orm
:tickets: 11944
- Fixed bug in how type unions were handled that made the behavior
- of ``a | b`` different from ``Union[a, b]``.
+ Fixed bug in how type unions were handled within
+ :paramref:`_orm.registry.type_annotation_map` as well as
+ :class:`._orm.Mapped` that made the lookup behavior of ``a | b`` different
+ from that of ``Union[a, b]``.
:tags: bug, orm
:tickets: 11955
- Consistently handle ``TypeAliasType`` (defined in PEP 695) obtained with the
- ``type X = int`` syntax introduced in python 3.12.
- Now in all cases one such alias must be explicitly added to the type map for
- it to be usable inside ``Mapped[]``.
- This change also revises the approach added in :ticket:`11305`, now requiring
- the ``TypeAliasType`` to be added to the type map.
- Documentation on how unions and type alias types are handled by SQLAlchemy
- has been added in the :ref:`orm_declarative_mapped_column_type_map` section
- of the documentation.
+ Consistently handle ``TypeAliasType`` (defined in PEP 695) obtained with
+ the ``type X = int`` syntax introduced in python 3.12. Now in all cases one
+ such alias must be explicitly added to the type map for it to be usable
+ inside :class:`.Mapped`. This change also revises the approach added in
+ :ticket:`11305`, now requiring the ``TypeAliasType`` to be added to the
+ type map. Documentation on how unions and type alias types are handled by
+ SQLAlchemy has been added in the
+ :ref:`orm_declarative_mapped_column_type_map` section of the documentation.
.. change::
:tags: feature, oracle
- :ticket: 12016
+ :tickets: 12016
- Added new table option `oracle_tablespace` to specify the `TABLESPACE` option
- when creating a table in Oracle. This allows users to define the tablespace in
- which the table should be created. Pull request courtesy of Miguel Grillo.
+ Added new table option ``oracle_tablespace`` to specify the ``TABLESPACE``
+ option when creating a table in Oracle. This allows users to define the
+ tablespace in which the table should be created. Pull request courtesy of
+ Miguel Grillo.
.. change::
:tags: usecase, postgresql
- :ticket: 12093
+ :tickets: 12093
- The :class:`_postgresql.Range` type now supports ``__contains__``.
- Pull request courtesy of Frazer McLean.
+ The :class:`_postgresql.Range` type now supports
+ :meth:`_postgresql.Range.__contains__`. Pull request courtesy of Frazer
+ McLean.
:tags: bug, oracle
:tickets: 12100
- Fixed compilation of ``TABLE`` function when used in a from clause
- in Oracle Database dialect.
+ Fixed compilation of ``TABLE`` function when used in a ``FROM`` clause in
+ Oracle Database dialect.
:tags: bug, orm
:tickets: 12207
- Fixed issues in type handling within the ``type_annotation_map`` feature
- which prevented the use of unions, using either pep-604 or ``Union``
- syntaxes under future annotations mode, which contained multiple generic
- types as elements from being correctly resolvable.
+ Fixed issues in type handling within the
+ :paramref:`_orm.registry.type_annotation_map` feature which prevented the
+ use of unions, using either pep-604 or ``Union`` syntaxes under future
+ annotations mode, which contained multiple generic types as elements from
+ being correctly resolvable.
.. change::
:tags: usecase, sqlite
- :ticket: 7398
+ :tickets: 7398
- Added SQLite table option to enable ``STRICT`` tables.
- Pull request courtesy of Guilherme Crocetti.
+ Added SQLite table option to enable ``STRICT`` tables. Pull request
+ courtesy of Guilherme Crocetti.
.. automethod:: Delete.where
+ .. automethod:: Delete.with_dialect_options
+
.. automethod:: Delete.returning
.. autoclass:: Insert
:members:
+ .. automethod:: Insert.with_dialect_options
+
.. automethod:: Insert.values
.. automethod:: Insert.returning
.. automethod:: Update.where
+ .. automethod:: Update.with_dialect_options
+
.. automethod:: Update.values
.. autoclass:: sqlalchemy.sql.expression.UpdateBase