summaryrefslogtreecommitdiff
path: root/lib/sqlalchemy/dialects/postgresql
diff options
context:
space:
mode:
authormike bayer <mike_mp@zzzcomputing.com>2022-08-22 13:30:36 +0000
committerGerrit Code Review <gerrit@ci3.zzzcomputing.com>2022-08-22 13:30:36 +0000
commit5c71bb51ccecefbaeec3674caaf3661d106a9549 (patch)
treede4eaab451374fad7a937f879bfd2e125acd427d /lib/sqlalchemy/dialects/postgresql
parent7842678484b9d00a64fab29cdc9e252754ac19ae (diff)
parentc5a316053d6201981240c7f8fb73934a0b241b7c (diff)
downloadsqlalchemy-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.py20
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):