]> git.ipfire.org Git - thirdparty/sqlalchemy/sqlalchemy.git/commitdiff
Pass precision value to mssql.DATETIME2 when it is 0
authorJacobo de Vera <devel@jacobodevera.com>
Fri, 13 Nov 2015 15:57:41 +0000 (16:57 +0100)
committerMike Bayer <mike_mp@zzzcomputing.com>
Sat, 14 Nov 2015 17:40:20 +0000 (12:40 -0500)
The simple check on the precision results in DATETIME2(0) generating a
DATETIME2 column, with default precision, which is 7.

(cherry picked from commit 80ce23f6fd0f14ab656d3ec82773bd0cffbd4791)

lib/sqlalchemy/dialects/mssql/base.py
test/dialect/mssql/test_types.py

index da8bbbd5f61564f133a2f1cf1658cf5b2e994304..3a81861bb330a8ae4378c0e8aa928f4168b3158c 100644 (file)
@@ -788,7 +788,7 @@ class MSTypeCompiler(compiler.GenericTypeCompiler):
 
     def visit_DATETIME2(self, type_, **kw):
         precision = getattr(type_, 'precision', None)
-        if precision:
+        if precision is not None:
             return "DATETIME2(%s)" % precision
         else:
             return "DATETIME2"
index 17ceb6b61a72267d217b6888ab211e93bf981889..e5462eb79a28d5a56acbbd5a56973bfac26bd629 100644 (file)
@@ -466,6 +466,8 @@ class TypeRoundTripTest(
 
             (mssql.MSDateTime2, [], {},
              'DATETIME2', ['>=', (10,)]),
+            (mssql.MSDateTime2, [0], {},
+             'DATETIME2(0)', ['>=', (10,)]),
             (mssql.MSDateTime2, [1], {},
              'DATETIME2(1)', ['>=', (10,)]),