diff options
author | Jason Kirtland <jek@discorporate.us> | 2007-10-19 07:02:48 +0000 |
---|---|---|
committer | Jason Kirtland <jek@discorporate.us> | 2007-10-19 07:02:48 +0000 |
commit | 974f59f091d562bb0e141c6b4087160d16190c1c (patch) | |
tree | 59d1b683d2fa09151f592712bb14f380830b2e6d /lib/sqlalchemy/databases/sqlite.py | |
parent | f32131dac212fdee1a6e97eba4a4ed21e51b3607 (diff) | |
download | sqlalchemy-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.py | 15 |
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): |