summaryrefslogtreecommitdiff
path: root/lib/sqlalchemy/dialects/postgresql/ext.py
diff options
context:
space:
mode:
Diffstat (limited to 'lib/sqlalchemy/dialects/postgresql/ext.py')
-rw-r--r--lib/sqlalchemy/dialects/postgresql/ext.py11
1 files changed, 9 insertions, 2 deletions
diff --git a/lib/sqlalchemy/dialects/postgresql/ext.py b/lib/sqlalchemy/dialects/postgresql/ext.py
index 1bd1e5258..a93a3477d 100644
--- a/lib/sqlalchemy/dialects/postgresql/ext.py
+++ b/lib/sqlalchemy/dialects/postgresql/ext.py
@@ -12,6 +12,7 @@ from ...sql import elements
from ...sql import expression
from ...sql import functions
from ...sql import roles
+from ...sql import schema
from ...sql.schema import ColumnCollectionConstraint
@@ -240,8 +241,14 @@ class ExcludeConstraint(ColumnCollectionConstraint):
)
]
- def copy(self, **kw):
- elements = [(col, self.operators[col]) for col in self.columns.keys()]
+ def copy(self, target_table=None, **kw):
+ elements = [
+ (
+ schema._copy_expression(expr, self.parent, target_table),
+ self.operators[expr.name],
+ )
+ for expr in self.columns
+ ]
c = self.__class__(
*elements,
name=self.name,