summaryrefslogtreecommitdiff
path: root/lib/sqlalchemy
diff options
context:
space:
mode:
Diffstat (limited to 'lib/sqlalchemy')
-rw-r--r--lib/sqlalchemy/sql/compiler.py4
-rw-r--r--lib/sqlalchemy/sql/schema.py7
2 files changed, 9 insertions, 2 deletions
diff --git a/lib/sqlalchemy/sql/compiler.py b/lib/sqlalchemy/sql/compiler.py
index fc5073596..16ca7f959 100644
--- a/lib/sqlalchemy/sql/compiler.py
+++ b/lib/sqlalchemy/sql/compiler.py
@@ -2519,7 +2519,9 @@ class DDLCompiler(Compiled):
text += "CONSTRAINT %s " % formatted_name
text += "PRIMARY KEY "
text += "(%s)" % ', '.join(self.preparer.quote(c.name)
- for c in constraint.columns_autoinc_first)
+ for c in (constraint.columns_autoinc_first
+ if constraint._implicit_generated
+ else constraint.columns))
text += self.define_constraint_deferrability(constraint)
return text
diff --git a/lib/sqlalchemy/sql/schema.py b/lib/sqlalchemy/sql/schema.py
index cb01a49e3..ee139827a 100644
--- a/lib/sqlalchemy/sql/schema.py
+++ b/lib/sqlalchemy/sql/schema.py
@@ -475,7 +475,8 @@ class Table(DialectKWArgs, SchemaItem, TableClause):
self.indexes = set()
self.constraints = set()
self._columns = ColumnCollection()
- PrimaryKeyConstraint()._set_parent_with_dispatch(self)
+ PrimaryKeyConstraint(_implicit_generated=True).\
+ _set_parent_with_dispatch(self)
self.foreign_keys = set()
self._extra_dependencies = set()
if self.schema is not None:
@@ -3023,6 +3024,10 @@ class PrimaryKeyConstraint(ColumnCollectionConstraint):
__visit_name__ = 'primary_key_constraint'
+ def __init__(self, *columns, **kw):
+ self._implicit_generated = kw.pop('_implicit_generated', False)
+ super(PrimaryKeyConstraint, self).__init__(*columns, **kw)
+
def _set_parent(self, table):
super(PrimaryKeyConstraint, self)._set_parent(table)