diff options
| author | mike bayer <mike_mp@zzzcomputing.com> | 2022-08-22 13:30:36 +0000 |
|---|---|---|
| committer | Gerrit Code Review <gerrit@ci3.zzzcomputing.com> | 2022-08-22 13:30:36 +0000 |
| commit | 5c71bb51ccecefbaeec3674caaf3661d106a9549 (patch) | |
| tree | de4eaab451374fad7a937f879bfd2e125acd427d /lib/sqlalchemy/dialects/postgresql | |
| parent | 7842678484b9d00a64fab29cdc9e252754ac19ae (diff) | |
| parent | c5a316053d6201981240c7f8fb73934a0b241b7c (diff) | |
| download | sqlalchemy-5c71bb51ccecefbaeec3674caaf3661d106a9549.tar.gz | |
Merge "support create/drop events for all CREATE/DROP" into main
Diffstat (limited to 'lib/sqlalchemy/dialects/postgresql')
| -rw-r--r-- | lib/sqlalchemy/dialects/postgresql/named_types.py | 20 |
1 files changed, 13 insertions, 7 deletions
diff --git a/lib/sqlalchemy/dialects/postgresql/named_types.py b/lib/sqlalchemy/dialects/postgresql/named_types.py index b2f274b78..f844e9213 100644 --- a/lib/sqlalchemy/dialects/postgresql/named_types.py +++ b/lib/sqlalchemy/dialects/postgresql/named_types.py @@ -20,7 +20,8 @@ from ...sql import elements from ...sql import roles from ...sql import sqltypes from ...sql import type_api -from ...sql.ddl import InvokeDDLBase +from ...sql.ddl import InvokeCreateDDLBase +from ...sql.ddl import InvokeDropDDLBase if TYPE_CHECKING: from ...sql._typing import _TypeEngineArgument @@ -112,7 +113,7 @@ class NamedType(sqltypes.TypeEngine): self.drop(bind=bind, checkfirst=checkfirst) -class NamedTypeGenerator(InvokeDDLBase): +class NamedTypeGenerator(InvokeCreateDDLBase): def __init__(self, dialect, connection, checkfirst=False, **kwargs): super().__init__(connection, **kwargs) self.checkfirst = checkfirst @@ -127,7 +128,7 @@ class NamedTypeGenerator(InvokeDDLBase): ) -class NamedTypeDropper(InvokeDDLBase): +class NamedTypeDropper(InvokeDropDDLBase): def __init__(self, dialect, connection, checkfirst=False, **kwargs): super().__init__(connection, **kwargs) self.checkfirst = checkfirst @@ -147,7 +148,8 @@ class EnumGenerator(NamedTypeGenerator): if not self._can_create_type(enum): return - self.connection.execute(CreateEnumType(enum)) + with self.with_ddl_events(enum): + self.connection.execute(CreateEnumType(enum)) class EnumDropper(NamedTypeDropper): @@ -155,7 +157,8 @@ class EnumDropper(NamedTypeDropper): if not self._can_drop_type(enum): return - self.connection.execute(DropEnumType(enum)) + with self.with_ddl_events(enum): + self.connection.execute(DropEnumType(enum)) class ENUM(NamedType, sqltypes.NativeForEmulated, sqltypes.Enum): @@ -297,6 +300,7 @@ class ENUM(NamedType, sqltypes.NativeForEmulated, sqltypes.Enum): kw.setdefault("_create_events", False) kw.setdefault("values_callable", impl.values_callable) kw.setdefault("omit_aliases", impl._omit_aliases) + kw.setdefault("_adapted_from", impl) return cls(**kw) def create(self, bind=None, checkfirst=True): @@ -351,7 +355,8 @@ class DomainGenerator(NamedTypeGenerator): def visit_DOMAIN(self, domain): if not self._can_create_type(domain): return - self.connection.execute(CreateDomainType(domain)) + with self.with_ddl_events(domain): + self.connection.execute(CreateDomainType(domain)) class DomainDropper(NamedTypeDropper): @@ -359,7 +364,8 @@ class DomainDropper(NamedTypeDropper): if not self._can_drop_type(domain): return - self.connection.execute(DropDomainType(domain)) + with self.with_ddl_events(domain): + self.connection.execute(DropDomainType(domain)) class DOMAIN(NamedType, sqltypes.SchemaType): |
