]> git.ipfire.org Git - thirdparty/sqlalchemy/sqlalchemy.git/commit
compiler: add support for multirow inserts
authorIdan Kamara <idankk86@gmail.com>
Wed, 5 Dec 2012 22:11:52 +0000 (00:11 +0200)
committerIdan Kamara <idankk86@gmail.com>
Wed, 5 Dec 2012 22:11:52 +0000 (00:11 +0200)
commitd57c1c2ddd654a1077ab04ba7277828d9030c23d
tree6e4b93f19c175336329d64b78ab1acf806895a9b
parent51839352a4a9d4b87bdca6c148ec0fd847b8630b
compiler: add support for multirow inserts

Some databases support this syntax for inserts:

INSERT INTO table (id, name) VALUES
('v1', 'v2'),
('v3', 'v4');

which greatly increases INSERT speed.

It is now possible to pass a list of lists/tuples/dictionaries as
the values param to the Insert construct. We convert it to a flat
dictionary so we can continue using bind params. The above query
will be converted to:

INSERT INTO table (id, name) VALUES
(:id, :name),
(:id0, :name0);

Currently only supported on postgresql, mysql and sqlite.
lib/sqlalchemy/dialects/mysql/base.py
lib/sqlalchemy/dialects/postgresql/base.py
lib/sqlalchemy/dialects/sqlite/base.py
lib/sqlalchemy/engine/default.py
lib/sqlalchemy/sql/compiler.py
test/sql/test_compiler.py
test/sql/test_query.py