]> git.ipfire.org Git - thirdparty/sqlalchemy/sqlalchemy.git/commit
implement second-level type resolution for literals
authorMike Bayer <mike_mp@zzzcomputing.com>
Wed, 5 Jan 2022 17:20:46 +0000 (12:20 -0500)
committerMike Bayer <mike_mp@zzzcomputing.com>
Tue, 11 Jan 2022 14:25:19 +0000 (09:25 -0500)
commite215db01d48c418e190936e6b36ea49c6eb22072
treefc0f3144fd7404128aae44f51ea4dc79619ef4d8
parentf96e24013c80d933cb8171061be3d316215fe585
implement second-level type resolution for literals

Added additional rule to the system that determines ``TypeEngine``
implementations from Python literals to apply a second level of adjustment
to the type, so that a Python datetime with or without tzinfo can set the
``timezone=True`` parameter on the returned :class:`.DateTime` object, as
well as :class:`.Time`. This helps with some round-trip scenarios on
type-sensitive PostgreSQL dialects such as asyncpg, psycopg3 (2.0 only).

Improved support for asyncpg handling of TIME WITH TIMEZONE, which
was not fully implemented.

Fixes: #7537
Change-Id: Icdb07db85af5f7f39f1c1ef855fe27609770094b
(cherry picked from commit 3b2e28bcb5ba32446a92b62b6862b7c11dabb592)
doc/build/changelog/unreleased_14/7537.rst [new file with mode: 0644]
lib/sqlalchemy/dialects/postgresql/asyncpg.py
lib/sqlalchemy/sql/sqltypes.py
lib/sqlalchemy/sql/type_api.py
lib/sqlalchemy/testing/requirements.py
lib/sqlalchemy/testing/suite/test_types.py
test/requirements.py