diff options
| author | Mike Bayer <mike_mp@zzzcomputing.com> | 2010-03-26 13:48:13 -0400 |
|---|---|---|
| committer | Mike Bayer <mike_mp@zzzcomputing.com> | 2010-03-26 13:48:13 -0400 |
| commit | 4291e0b316438a81121de1170fe902dc375a4969 (patch) | |
| tree | 66c43714419e835be37d1f94845d3d173a359069 /lib/sqlalchemy/dialects/sqlite | |
| parent | a0af13067d952e05626f1ba240254cfcac58e9cc (diff) | |
| download | sqlalchemy-4291e0b316438a81121de1170fe902dc375a4969.tar.gz | |
clean up sqlite version detection stuff
Diffstat (limited to 'lib/sqlalchemy/dialects/sqlite')
| -rw-r--r-- | lib/sqlalchemy/dialects/sqlite/base.py | 10 | ||||
| -rw-r--r-- | lib/sqlalchemy/dialects/sqlite/pysqlite.py | 9 |
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): |
