]> git.ipfire.org Git - thirdparty/sqlalchemy/sqlalchemy.git/commitdiff
Fix innodb autoinc constraint (double)quoting
authorJeff Dairiki <dairiki@dairiki.org>
Sat, 7 Apr 2012 04:55:39 +0000 (21:55 -0700)
committerJeff Dairiki <dairiki@dairiki.org>
Sat, 7 Apr 2012 04:55:39 +0000 (21:55 -0700)
lib/sqlalchemy/dialects/mysql/base.py
test/dialect/test_mysql.py

index a67a67d6f6fed098a5e3e32a90d23da715714163..5636271362306906e965fee1f9b68b77561bf905 100644 (file)
@@ -1395,7 +1395,7 @@ class MySQLDDLCompiler(compiler.DDLCompiler):
                 auto_inc_column is not list(table.primary_key)[0]:
             if constraint_string:
                 constraint_string += ", \n\t"
-            constraint_string += "KEY `idx_autoinc_%s`(`%s`)" % (auto_inc_column.name, \
+            constraint_string += "KEY `idx_autoinc_%s`(%s)" % (auto_inc_column.name, \
                             self.preparer.format_column(auto_inc_column))
 
         return constraint_string
index 462267b46ceb69a1bf2e171bcb7d81dc241af3a9..613fac7c3299df8cdcfa92e56bb71c691c226ca6 100644 (file)
@@ -1411,7 +1411,7 @@ class SQLTest(fixtures.TestBase, AssertsCompiledSQL):
                             'CREATE TABLE sometable (assigned_id '
                             'INTEGER NOT NULL, id INTEGER NOT NULL '
                             'AUTO_INCREMENT, PRIMARY KEY (assigned_id, '
-                            'id), KEY `idx_autoinc_id`(`id`))ENGINE=Inn'
+                            'id), KEY `idx_autoinc_id`(id))ENGINE=Inn'
                             'oDB')
 
         t1 = Table('sometable', MetaData(), Column('assigned_id',
@@ -1424,6 +1424,22 @@ class SQLTest(fixtures.TestBase, AssertsCompiledSQL):
                             'INTEGER NOT NULL, PRIMARY KEY '
                             '(assigned_id, id))ENGINE=InnoDB')
 
+    def test_innodb_autoincrement_reserved_word_column_name(self):
+        t1 = Table(
+            'sometable', MetaData(),
+            Column('id', Integer(), primary_key=True, autoincrement=False),
+            Column('order', Integer(), primary_key=True, autoincrement=True),
+            mysql_engine='InnoDB')
+        self.assert_compile(
+            schema.CreateTable(t1),
+            'CREATE TABLE sometable ('
+            'id INTEGER NOT NULL, '
+            '`order` INTEGER NOT NULL AUTO_INCREMENT, '
+            'PRIMARY KEY (id, `order`), '
+            'KEY `idx_autoinc_order`(`order`)'
+            ')ENGINE=InnoDB')
+
+
 class SQLModeDetectionTest(fixtures.TestBase):
     __only_on__ = 'mysql'