summaryrefslogtreecommitdiff
path: root/lib/sqlalchemy/orm/properties.py
diff options
context:
space:
mode:
authormike bayer <mike_mp@zzzcomputing.com>2022-09-08 19:00:08 +0000
committerGerrit Code Review <gerrit@ci3.zzzcomputing.com>2022-09-08 19:00:08 +0000
commit479dbc99e7fc5a60f846992c0cca8542047a8933 (patch)
tree15210296871b450b22ffdc9535f204ed6fa78a21 /lib/sqlalchemy/orm/properties.py
parentb0e5667a79fdf096719c0ad596d5aa6e9753adb7 (diff)
parentfcd298e1afe9b309de34d28b35e4debc3940d6b9 (diff)
downloadsqlalchemy-479dbc99e7fc5a60f846992c0cca8542047a8933.tar.gz
Merge "additional de-stringify pass for unions" into main
Diffstat (limited to 'lib/sqlalchemy/orm/properties.py')
-rw-r--r--lib/sqlalchemy/orm/properties.py6
1 files changed, 6 insertions, 0 deletions
diff --git a/lib/sqlalchemy/orm/properties.py b/lib/sqlalchemy/orm/properties.py
index 7d7175678..3d9fe578d 100644
--- a/lib/sqlalchemy/orm/properties.py
+++ b/lib/sqlalchemy/orm/properties.py
@@ -51,9 +51,11 @@ from ..sql.schema import Column
from ..sql.schema import SchemaConst
from ..util.typing import de_optionalize_union_types
from ..util.typing import de_stringify_annotation
+from ..util.typing import de_stringify_union_elements
from ..util.typing import is_fwd_ref
from ..util.typing import is_optional_union
from ..util.typing import is_pep593
+from ..util.typing import is_union
from ..util.typing import Self
from ..util.typing import typing_get_args
@@ -655,6 +657,9 @@ class MappedColumn(
if is_fwd_ref(argument):
argument = de_stringify_annotation(cls, argument)
+ if is_union(argument):
+ argument = de_stringify_union_elements(cls, argument)
+
nullable = is_optional_union(argument)
if not self._has_nullable:
@@ -690,6 +695,7 @@ class MappedColumn(
checks = (our_type,)
for check_type in checks:
+
if registry.type_annotation_map:
new_sqltype = registry.type_annotation_map.get(check_type)
if new_sqltype is None: