summaryrefslogtreecommitdiff
path: root/lib/sqlalchemy/sql
diff options
context:
space:
mode:
authormike bayer <mike_mp@zzzcomputing.com>2020-06-20 18:48:34 +0000
committerGerrit Code Review <gerrit@bbpush.zzzcomputing.com>2020-06-20 18:48:34 +0000
commit56e817bb0ef4eaca189b42b930a6e99ee4ed0671 (patch)
treea3ae21889965bc62d756d97cd8738c74e65894dc /lib/sqlalchemy/sql
parentb66e47b353459fe118575785708b681d893ce4a5 (diff)
parent5d7d96b53ef6b046fcd4d19a42e31f99898d1c81 (diff)
downloadsqlalchemy-56e817bb0ef4eaca189b42b930a6e99ee4ed0671.tar.gz
Merge "Apply dialect_options copy fix"
Diffstat (limited to 'lib/sqlalchemy/sql')
-rw-r--r--lib/sqlalchemy/sql/schema.py32
1 files changed, 29 insertions, 3 deletions
diff --git a/lib/sqlalchemy/sql/schema.py b/lib/sqlalchemy/sql/schema.py
index 29ca81d26..f6d8cfb1c 100644
--- a/lib/sqlalchemy/sql/schema.py
+++ b/lib/sqlalchemy/sql/schema.py
@@ -1556,6 +1556,18 @@ class Column(DialectKWArgs, SchemaItem, ColumnClause):
c.copy(**kw) for c in self.constraints if not c._type_bound
] + [c.copy(**kw) for c in self.foreign_keys if not c.constraint]
+ # ticket #5276
+ column_kwargs = {}
+ for dialect_name in self.dialect_options:
+ dialect_options = self.dialect_options[dialect_name]._non_defaults
+ for (
+ dialect_option_key,
+ dialect_option_value,
+ ) in dialect_options.items():
+ column_kwargs[
+ dialect_name + "_" + dialect_option_key
+ ] = dialect_option_value
+
server_default = self.server_default
server_onupdate = self.server_onupdate
if isinstance(server_default, Computed):
@@ -1574,7 +1586,7 @@ class Column(DialectKWArgs, SchemaItem, ColumnClause):
nullable=self.nullable,
unique=self.unique,
system=self.system,
- # quote=self.quote,
+ # quote=self.quote, # disabled 2013-08-27 (commit 031ef080)
index=self.index,
autoincrement=self.autoincrement,
default=self.default,
@@ -1583,7 +1595,8 @@ class Column(DialectKWArgs, SchemaItem, ColumnClause):
server_onupdate=server_onupdate,
doc=self.doc,
comment=self.comment,
- *args
+ *args,
+ **column_kwargs
)
return self._schema_item_copy(c)
@@ -2955,11 +2968,24 @@ class ColumnCollectionConstraint(ColumnCollectionMixin, Constraint):
return x in self.columns
def copy(self, **kw):
+ # ticket #5276
+ constraint_kwargs = {}
+ for dialect_name in self.dialect_options:
+ dialect_options = self.dialect_options[dialect_name]._non_defaults
+ for (
+ dialect_option_key,
+ dialect_option_value,
+ ) in dialect_options.items():
+ constraint_kwargs[
+ dialect_name + "_" + dialect_option_key
+ ] = dialect_option_value
+
c = self.__class__(
name=self.name,
deferrable=self.deferrable,
initially=self.initially,
- *self.columns.keys()
+ *self.columns.keys(),
+ **constraint_kwargs
)
return self._schema_item_copy(c)