]> git.ipfire.org Git - thirdparty/sqlalchemy/sqlalchemy.git/commitdiff
clean up sqlite version detection stuff
authorMike Bayer <mike_mp@zzzcomputing.com>
Fri, 26 Mar 2010 17:48:13 +0000 (13:48 -0400)
committerMike Bayer <mike_mp@zzzcomputing.com>
Fri, 26 Mar 2010 17:48:13 +0000 (13:48 -0400)
lib/sqlalchemy/dialects/sqlite/base.py
lib/sqlalchemy/dialects/sqlite/pysqlite.py

index 0d9827322807dbeff01424713f9817370bd76ded..ca0a39136c620c3b1d91ee194ac59b944727b5f9 100644 (file)
@@ -331,6 +331,9 @@ class SQLiteDialect(default.DefaultDialect):
     colspecs = colspecs
     isolation_level = None
 
+    supports_cast = True
+    supports_default_values = True
+
     def __init__(self, isolation_level=None, native_datetime=False, **kwargs):
         default.DefaultDialect.__init__(self, **kwargs)
         if isolation_level and isolation_level not in ('SERIALIZABLE',
@@ -345,6 +348,13 @@ class SQLiteDialect(default.DefaultDialect):
         # conversions (and perhaps datetime/time as well on some 
         # hypothetical driver ?)
         self.native_datetime = native_datetime
+
+        if self.dbapi is not None:
+            self.supports_default_values = \
+                                self.dbapi.sqlite_version_info >= (3, 3, 8)
+            self.supports_cast = \
+                                self.dbapi.sqlite_version_info >= (3, 2, 3)
+
         
     def on_connect(self):
         if self.isolation_level is not None:
index b48abbb7d68ebe2d63253542877ccb20586e2325..575cb37f205d68fe3fd4a0def7e929b1f6f02ad8 100644 (file)
@@ -187,20 +187,15 @@ class SQLiteDialect_pysqlite(SQLiteDialect):
     
     def __init__(self, **kwargs):
         SQLiteDialect.__init__(self, **kwargs)
-        def vers(num):
-            return tuple([int(x) for x in num.split('.')])
+
         if self.dbapi is not None:
             sqlite_ver = self.dbapi.version_info
-            if sqlite_ver < (2, 1, '3'):
+            if sqlite_ver < (2, 1, 3):
                 util.warn(
                     ("The installed version of pysqlite2 (%s) is out-dated "
                      "and will cause errors in some cases.  Version 2.1.3 "
                      "or greater is recommended.") %
                     '.'.join([str(subver) for subver in sqlite_ver]))
-            if self.dbapi.sqlite_version_info < (3, 3, 8):
-                self.supports_default_values = False
-        self.supports_cast = (self.dbapi is None or vers(self.dbapi.sqlite_version) >= vers("3.2.3"))
-
 
     @classmethod
     def dbapi(cls):