summaryrefslogtreecommitdiff
path: root/lib/sqlalchemy/databases/sqlite.py
diff options
context:
space:
mode:
authorJason Kirtland <jek@discorporate.us>2007-10-19 07:02:48 +0000
committerJason Kirtland <jek@discorporate.us>2007-10-19 07:02:48 +0000
commit974f59f091d562bb0e141c6b4087160d16190c1c (patch)
tree59d1b683d2fa09151f592712bb14f380830b2e6d /lib/sqlalchemy/databases/sqlite.py
parentf32131dac212fdee1a6e97eba4a4ed21e51b3607 (diff)
downloadsqlalchemy-974f59f091d562bb0e141c6b4087160d16190c1c.tar.gz
Fixed empty (zero column) sqlite inserts, allowing inserts on
autoincrementing single column tables.
Diffstat (limited to 'lib/sqlalchemy/databases/sqlite.py')
-rw-r--r--lib/sqlalchemy/databases/sqlite.py15
1 files changed, 15 insertions, 0 deletions
diff --git a/lib/sqlalchemy/databases/sqlite.py b/lib/sqlalchemy/databases/sqlite.py
index 99a1d5650..6666f6066 100644
--- a/lib/sqlalchemy/databases/sqlite.py
+++ b/lib/sqlalchemy/databases/sqlite.py
@@ -362,6 +362,21 @@ class SQLiteCompiler(compiler.DefaultCompiler):
# sqlite has no "FOR UPDATE" AFAICT
return ''
+ def visit_insert(self, insert_stmt):
+ self.isinsert = True
+ colparams = self._get_colparams(insert_stmt)
+ preparer = self.preparer
+
+ if not colparams:
+ 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),
+ ', '.join([preparer.format_column(c[0])
+ for c in colparams]),
+ ', '.join([c[1] for c in colparams])))
+
class SQLiteSchemaGenerator(compiler.SchemaGenerator):