]> git.ipfire.org Git - thirdparty/sqlalchemy/sqlalchemy.git/commitdiff
Check for the presence of the Firebird generator, when creating/dropping a sequence
authorLele Gaifax <lele@metapensiero.it>
Mon, 12 May 2008 15:33:55 +0000 (15:33 +0000)
committerLele Gaifax <lele@metapensiero.it>
Mon, 12 May 2008 15:33:55 +0000 (15:33 +0000)
lib/sqlalchemy/databases/firebird.py

index 3377a60048cd1a1b04782ce1cc8fec1052e25c71..948e001d5358e891ff11b58debff23cfbf255e3c 100644 (file)
@@ -649,8 +649,9 @@ class FBSchemaGenerator(sql.compiler.SchemaGenerator):
     def visit_sequence(self, sequence):
         """Generate a ``CREATE GENERATOR`` statement for the sequence."""
 
-        self.append("CREATE GENERATOR %s" % self.preparer.format_sequence(sequence))
-        self.execute()
+        if not self.checkfirst or not self.dialect.has_sequence(self.connection, sequence.name):
+            self.append("CREATE GENERATOR %s" % self.preparer.format_sequence(sequence))
+            self.execute()
 
 
 class FBSchemaDropper(sql.compiler.SchemaDropper):
@@ -659,8 +660,9 @@ class FBSchemaDropper(sql.compiler.SchemaDropper):
     def visit_sequence(self, sequence):
         """Generate a ``DROP GENERATOR`` statement for the sequence."""
 
-        self.append("DROP GENERATOR %s" % self.preparer.format_sequence(sequence))
-        self.execute()
+        if not self.checkfirst or self.dialect.has_sequence(self.connection, sequence.name):
+            self.append("DROP GENERATOR %s" % self.preparer.format_sequence(sequence))
+            self.execute()
 
 
 class FBDefaultRunner(base.DefaultRunner):