summaryrefslogtreecommitdiff
path: root/lib/sqlalchemy/sql/schema.py
diff options
context:
space:
mode:
authorMike Bayer <mike_mp@zzzcomputing.com>2016-06-20 11:39:01 -0400
committerMike Bayer <mike_mp@zzzcomputing.com>2016-06-20 12:52:31 -0400
commitbf03d4332ae35e2087b175f8a2e0291d2f4c9aa0 (patch)
tree8eadf8feeab0e2a677a8385125251b17bf715b1c /lib/sqlalchemy/sql/schema.py
parent91a1022227499c8efce038c4a0a9bdcdb14a69d0 (diff)
downloadsqlalchemy-bf03d4332ae35e2087b175f8a2e0291d2f4c9aa0.tar.gz
Don't reorder PrimaryKeyConstraint columns if explicit
Dialed back the "order the primary key columns per auto-increment" described in :ref:`change_mysql_3216` a bit, so that if the :class:`.PrimaryKeyConstraint` is explicitly defined, the order of columns is maintained exactly, allowing control of this behavior when necessary. Change-Id: I9e7902c57a96c15968a6abf53e319acf15680da0 Fixes: #3726
Diffstat (limited to 'lib/sqlalchemy/sql/schema.py')
-rw-r--r--lib/sqlalchemy/sql/schema.py7
1 files changed, 6 insertions, 1 deletions
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)