From 349a7c5e0e2aeeac98fad789b0043a4bdfeed837 Mon Sep 17 00:00:00 2001 From: Mike Bayer Date: Fri, 11 Feb 2022 04:54:45 -0500 Subject: add backend agnostic UUID datatype Added new backend-agnostic :class:`_types.Uuid` datatype generalized from the PostgreSQL dialects to now be a core type, as well as migrated :class:`_types.UUID` from the PostgreSQL dialect. Thanks to Trevor Gross for the help on this. also includes: * corrects some missing behaviors in the suite literal fixtures test where row round trips weren't being correctly asserted. * fixes some of the ISO literal date rendering added in 952383f9ee0 for #5052 to truncate datetime strings for date/time datatypes in the same way that drivers typically do for bound parameters; this was not working fully and wasn't caught by the broken test fixture Fixes: #7212 Change-Id: I981ac6d34d278c18281c144430a528764c241b04 --- lib/sqlalchemy/engine/default.py | 1 + lib/sqlalchemy/engine/interfaces.py | 8 ++++++++ 2 files changed, 9 insertions(+) (limited to 'lib/sqlalchemy/engine') diff --git a/lib/sqlalchemy/engine/default.py b/lib/sqlalchemy/engine/default.py index c188e155c..ea46a58ac 100644 --- a/lib/sqlalchemy/engine/default.py +++ b/lib/sqlalchemy/engine/default.py @@ -144,6 +144,7 @@ class DefaultDialect(Dialect): supports_native_enum = False supports_native_boolean = False + supports_native_uuid = False non_native_boolean_check_constraint = True supports_simple_order_by_label = True diff --git a/lib/sqlalchemy/engine/interfaces.py b/lib/sqlalchemy/engine/interfaces.py index e5414b70f..a096915a3 100644 --- a/lib/sqlalchemy/engine/interfaces.py +++ b/lib/sqlalchemy/engine/interfaces.py @@ -789,6 +789,14 @@ class Dialect(EventTarget): """indicates if Decimal objects are handled and returned for precision numeric types, or if floats are returned""" + supports_native_uuid: bool + """indicates if Python UUID() objects are handled natively by the + driver for SQL UUID datatypes. + + .. versionadded:: 2.0 + + """ + construct_arguments: Optional[ List[Tuple[Type[ClauseElement], Mapping[str, Any]]] ] = None -- cgit v1.2.1