From c622a86286573f2029e93923c2d5a98379fb794b Mon Sep 17 00:00:00 2001 From: Michael Trier Date: Tue, 29 Jul 2008 03:08:38 +0000 Subject: Raised an error when sqlite version does not support default values. Addresses #909 in a purposeful way. --- lib/sqlalchemy/databases/sqlite.py | 10 ++++++++-- 1 file changed, 8 insertions(+), 2 deletions(-) (limited to 'lib/sqlalchemy/databases/sqlite.py') diff --git a/lib/sqlalchemy/databases/sqlite.py b/lib/sqlalchemy/databases/sqlite.py index b6e362ef2..b491ce07b 100644 --- a/lib/sqlalchemy/databases/sqlite.py +++ b/lib/sqlalchemy/databases/sqlite.py @@ -222,6 +222,8 @@ class SQLiteDialect(default.DefaultDialect): "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")) def dbapi(cls): @@ -439,8 +441,12 @@ class SQLiteCompiler(compiler.DefaultCompiler): preparer = self.preparer if not colparams: - return "INSERT INTO %s DEFAULT VALUES" % ( - (preparer.format_table(insert_stmt.table),)) + if not self.dialect.supports_default_values: + raise exc.NotSupportedError( + "The version of SQLite you are using, %s, does not support DEFAULT VALUES." % (self.dialect.dbapi.sqlite_version)) + + return ("INSERT INTO %s DEFAULT VALUES" % ( + (preparer.format_table(insert_stmt.table),))) else: return ("INSERT INTO %s (%s) VALUES (%s)" % (preparer.format_table(insert_stmt.table), -- cgit v1.2.1