summaryrefslogtreecommitdiff
path: root/lib/sqlalchemy/dialects/sqlite
diff options
context:
space:
mode:
authorMike Bayer <mike_mp@zzzcomputing.com>2010-03-26 13:48:13 -0400
committerMike Bayer <mike_mp@zzzcomputing.com>2010-03-26 13:48:13 -0400
commit4291e0b316438a81121de1170fe902dc375a4969 (patch)
tree66c43714419e835be37d1f94845d3d173a359069 /lib/sqlalchemy/dialects/sqlite
parenta0af13067d952e05626f1ba240254cfcac58e9cc (diff)
downloadsqlalchemy-4291e0b316438a81121de1170fe902dc375a4969.tar.gz
clean up sqlite version detection stuff
Diffstat (limited to 'lib/sqlalchemy/dialects/sqlite')
-rw-r--r--lib/sqlalchemy/dialects/sqlite/base.py10
-rw-r--r--lib/sqlalchemy/dialects/sqlite/pysqlite.py9
2 files changed, 12 insertions, 7 deletions
diff --git a/lib/sqlalchemy/dialects/sqlite/base.py b/lib/sqlalchemy/dialects/sqlite/base.py
index 0d9827322..ca0a39136 100644
--- a/lib/sqlalchemy/dialects/sqlite/base.py
+++ b/lib/sqlalchemy/dialects/sqlite/base.py
@@ -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:
diff --git a/lib/sqlalchemy/dialects/sqlite/pysqlite.py b/lib/sqlalchemy/dialects/sqlite/pysqlite.py
index b48abbb7d..575cb37f2 100644
--- a/lib/sqlalchemy/dialects/sqlite/pysqlite.py
+++ b/lib/sqlalchemy/dialects/sqlite/pysqlite.py
@@ -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):