]> git.ipfire.org Git - thirdparty/sqlalchemy/sqlalchemy.git/commitdiff
fix MySQL drop constraint formats. test coverage needed.
authorMike Bayer <mike_mp@zzzcomputing.com>
Sun, 28 Jun 2009 23:13:12 +0000 (23:13 +0000)
committerMike Bayer <mike_mp@zzzcomputing.com>
Sun, 28 Jun 2009 23:13:12 +0000 (23:13 +0000)
lib/sqlalchemy/dialects/mysql/base.py

index a4cb70eafd5870e1653ee537b52f1c48f56af667..de315ab4591ad8748a3ba2e0c5b1cf3bba6cf2b4 100644 (file)
@@ -1466,11 +1466,21 @@ class MySQLDDLCompiler(compiler.DDLCompiler):
 
     def visit_drop_constraint(self, drop):
         constraint = drop.element
-        is_fk = isinstance(constraint, sa_schema.ForeignKeyConstraint)
+        if isinstance(constraint, sa_schema.ForeignKeyConstraint):
+            qual = "FOREIGN KEY "
+            const = self.preparer.format_constraint(constraint)
+        elif isinstance(constraint, sa_schema.PrimaryKeyConstraint):
+            qual = "PRIMARY KEY "
+            const = ""
+        elif isinstance(constraint, sa_schema.UniqueConstraint):
+            qual = "INDEX "
+            const = self.preparer.format_constraint(constraint)
+        else:
+            qual = ""
+            const = self.preparer.format_constraint(constraint)
         return "ALTER TABLE %s DROP %s%s" % \
                     (self.preparer.format_table(constraint.table),
-                    is_fk and "FOREIGN KEY " or "",
-                     self.preparer.format_constraint(constraint))
+                    qual, const)
 
 class MySQLTypeCompiler(compiler.GenericTypeCompiler):
     def _extend_numeric(self, type_, spec):