]> git.ipfire.org Git - thirdparty/sqlalchemy/sqlalchemy.git/commitdiff
add NO MINVALUE and NO MAXVALUE support to Sequence()
authorjakeogh <github.com@v6y.net>
Sat, 27 Jun 2015 18:48:46 +0000 (18:48 +0000)
committerjakeogh <github.com@v6y.net>
Sat, 27 Jun 2015 18:48:46 +0000 (18:48 +0000)
lib/sqlalchemy/engine/interfaces.py
lib/sqlalchemy/sql/compiler.py
lib/sqlalchemy/sql/schema.py
test/sql/test_defaults.py

index 1779f6d48607c0fdd2b40a87a7f3051bba1dad21..9a31f05ae0a95433fe2707be218b18e3aa36d2bc 100644 (file)
@@ -252,7 +252,8 @@ class Dialect(object):
 
         sequence
           a dictionary of the form
-              {'name' : str, 'start' :int, 'increment': int, 'minvalue': int, 'maxvalue': int}
+              {'name' : str, 'start' :int, 'increment': int, 'minvalue': int,
+               'maxvalue': int, 'nominvalue': bool, 'nomaxvalue': bool}
 
         Additional column attributes may be present.
         """
index b3fee60ec0f28d2d8125267369436f7546489f41..f7aa0210504d217285fa3651c02dc656247c67f3 100644 (file)
@@ -2303,6 +2303,10 @@ class DDLCompiler(Compiled):
             text += " MINVALUE %d" % create.element.minvalue
         if create.element.maxvalue is not None:
             text += " MAXVALUE %d" % create.element.maxvalue
+        if create.element.nominvalue is not None:
+            text += " NO MINVALUE" % create.element.nominvalue
+        if create.element.nomaxvalue is not None:
+            text += " NO MAXVALUE" % create.element.nomaxvalue
         return text
 
     def visit_drop_sequence(self, drop):
index ef84d268087b733532cc7fa7c709d3fe17e8e2cb..ccec74a35cbd1980f393a8ddfb597af93ee63477 100644 (file)
@@ -2041,8 +2041,8 @@ class Sequence(DefaultGenerator):
     is_sequence = True
 
     def __init__(self, name, start=None, increment=None, minvalue=None,
-                 maxvalue=None, schema=None, optional=False, quote=None,
-                 metadata=None, quote_schema=None,
+                 maxvalue=None, nominvalue=None, nomaxvalue=None, schema=None,
+                 optional=False, quote=None, metadata=None, quote_schema=None,
                  for_update=False):
         """Construct a :class:`.Sequence` object.
 
index b218aa53f934ef032474b0f0295045947afad1a8..53eb6c500132176fd18c0e4d7d9f82c27ffbefff 100644 (file)
@@ -804,6 +804,18 @@ class SequenceDDLTest(fixtures.TestBase, testing.AssertsCompiledSQL):
             "CREATE SEQUENCE foo_seq INCREMENT BY 2 START WITH 0 MAXVALUE 5",
         )
 
+        self.assert_compile(
+            CreateSequence(Sequence(
+                            'foo_seq', increment=2, start=1, nomaxvalue=True)),
+            "CREATE SEQUENCE foo_seq INCREMENT BY 2 START WITH 0 NO MAXVALUE",
+        )
+
+        self.assert_compile(
+            CreateSequence(Sequence(
+                            'foo_seq', increment=2, start=0, nominvalue=True)),
+            "CREATE SEQUENCE foo_seq INCREMENT BY 2 START WITH 0 NO MINVALUE",
+        )
+
         self.assert_compile(
             DropSequence(Sequence('foo_seq')),
             "DROP SEQUENCE foo_seq",