From: Mike Bayer Date: Sat, 8 Dec 2012 21:17:20 +0000 (-0500) Subject: internally at least refer to multirow as "multivalues", to distinguish between X-Git-Tag: rel_0_8_0b2~15 X-Git-Url: http://git.ipfire.org/gitweb.cgi?a=commitdiff_plain;h=8070cbde716a247f8b31c1334c80fa53327e6d8e;p=thirdparty%2Fsqlalchemy%2Fsqlalchemy.git internally at least refer to multirow as "multivalues", to distinguish between an INSERT that's used in executemany() as opposed to one which has a VALUES clause with multiple entries. --- diff --git a/lib/sqlalchemy/dialects/mysql/base.py b/lib/sqlalchemy/dialects/mysql/base.py index 5f515c936c..73d874bce1 100644 --- a/lib/sqlalchemy/dialects/mysql/base.py +++ b/lib/sqlalchemy/dialects/mysql/base.py @@ -1882,7 +1882,7 @@ class MySQLDialect(default.DefaultDialect): supports_sane_rowcount = True supports_sane_multi_rowcount = False - supports_multirow_insert = True + supports_multivalues_insert = True default_paramstyle = 'format' colspecs = colspecs diff --git a/lib/sqlalchemy/dialects/postgresql/base.py b/lib/sqlalchemy/dialects/postgresql/base.py index 22667b3176..e92ab76c1e 100644 --- a/lib/sqlalchemy/dialects/postgresql/base.py +++ b/lib/sqlalchemy/dialects/postgresql/base.py @@ -1182,7 +1182,7 @@ class PGDialect(default.DefaultDialect): supports_default_values = True supports_empty_insert = False - supports_multirow_insert = True + supports_multivalues_insert = True default_paramstyle = 'pyformat' ischema_names = ischema_names colspecs = colspecs diff --git a/lib/sqlalchemy/dialects/sqlite/base.py b/lib/sqlalchemy/dialects/sqlite/base.py index d1532b9bb1..a5be0aa17d 100644 --- a/lib/sqlalchemy/dialects/sqlite/base.py +++ b/lib/sqlalchemy/dialects/sqlite/base.py @@ -601,7 +601,7 @@ class SQLiteDialect(default.DefaultDialect): supports_default_values = True supports_empty_insert = False supports_cast = True - supports_multirow_insert = True + supports_multivalues_insert = True default_paramstyle = 'qmark' execution_ctx_cls = SQLiteExecutionContext diff --git a/lib/sqlalchemy/engine/default.py b/lib/sqlalchemy/engine/default.py index 7de0dcee7b..789fc610b6 100644 --- a/lib/sqlalchemy/engine/default.py +++ b/lib/sqlalchemy/engine/default.py @@ -85,7 +85,7 @@ class DefaultDialect(interfaces.Dialect): default_paramstyle = 'named' supports_default_values = False supports_empty_insert = True - supports_multirow_insert = False + supports_multivalues_insert = False server_version_info = None diff --git a/lib/sqlalchemy/sql/compiler.py b/lib/sqlalchemy/sql/compiler.py index 1e8bc37608..87b549f47f 100644 --- a/lib/sqlalchemy/sql/compiler.py +++ b/lib/sqlalchemy/sql/compiler.py @@ -1286,7 +1286,7 @@ class SQLCompiler(engine.Compiled): self.dialect.name) if insert_stmt._has_multi_parameters: - if not self.dialect.supports_multirow_insert: + if not self.dialect.supports_multivalues_insert: raise exc.CompileError("The '%s' dialect with current database " "version settings does not support " "in-place multirow inserts." % diff --git a/lib/sqlalchemy/testing/requirements.py b/lib/sqlalchemy/testing/requirements.py index 057da78497..2fb1b31434 100644 --- a/lib/sqlalchemy/testing/requirements.py +++ b/lib/sqlalchemy/testing/requirements.py @@ -88,12 +88,12 @@ class SuiteRequirements(Requirements): ) @property - def multirow_inserts(self): + def multivalues_inserts(self): """target database must support multiple VALUES clauses in an INSERT statement.""" return exclusions.skip_if( - lambda: not self.db.dialect.supports_multirow_insert, + lambda: not self.db.dialect.supports_multivalues_insert, "Backend does not support multirow inserts." ) diff --git a/test/sql/test_compiler.py b/test/sql/test_compiler.py index d017197278..f58d25db01 100644 --- a/test/sql/test_compiler.py +++ b/test/sql/test_compiler.py @@ -2575,7 +2575,7 @@ class CRUDTest(fixtures.TestBase, AssertsCompiledSQL): stmt.compile, dialect=dialect ) - def test_multirow_insert_not_supported(self): + def test_multivalues_insert_not_supported(self): stmt = table1.insert().values([{"myid": 1}, {"myid": 2}]) dialect = default.DefaultDialect() assert_raises_message( @@ -2585,7 +2585,7 @@ class CRUDTest(fixtures.TestBase, AssertsCompiledSQL): stmt.compile, dialect=dialect ) - def test_multirow_insert_named(self): + def test_multivalues_insert_named(self): stmt = table1.insert().\ values([{"myid": 1, "name": 'a', "description": 'b'}, {"myid": 2, "name": 'c', "description": 'd'}, @@ -2598,7 +2598,7 @@ class CRUDTest(fixtures.TestBase, AssertsCompiledSQL): "(:myid_2, :name_2, :description_2)" dialect = default.DefaultDialect() - dialect.supports_multirow_insert = True + dialect.supports_multivalues_insert = True self.assert_compile(stmt, result, checkparams={ 'description_2': 'f', 'name_2': 'e', @@ -2608,7 +2608,7 @@ class CRUDTest(fixtures.TestBase, AssertsCompiledSQL): }, dialect=dialect) - def test_multirow_insert_positional(self): + def test_multivalues_insert_positional(self): stmt = table1.insert().\ values([{"myid": 1, "name": 'a', "description": 'b'}, {"myid": 2, "name": 'c', "description": 'd'}, @@ -2621,7 +2621,7 @@ class CRUDTest(fixtures.TestBase, AssertsCompiledSQL): "(%s, %s, %s)" \ dialect = default.DefaultDialect() - dialect.supports_multirow_insert = True + dialect.supports_multivalues_insert = True dialect.paramstyle = "format" dialect.positional = True self.assert_compile(stmt, result, diff --git a/test/sql/test_query.py b/test/sql/test_query.py index 60adfa0b79..2c0ee4a186 100644 --- a/test/sql/test_query.py +++ b/test/sql/test_query.py @@ -48,8 +48,8 @@ class QueryTest(fixtures.TestBase): def teardown_class(cls): metadata.drop_all() - @testing.requires.multirow_inserts - def test_multirow_insert(self): + @testing.requires.multivalues_inserts + def test_multivalues_insert(self): users.insert(values=[{'user_id':7, 'user_name':'jack'}, {'user_id':8, 'user_name':'ed'}]).execute() rows = users.select().execute().fetchall() diff --git a/test/sql/test_returning.py b/test/sql/test_returning.py index 3cb2940236..a182444e94 100644 --- a/test/sql/test_returning.py +++ b/test/sql/test_returning.py @@ -108,7 +108,7 @@ class ReturningTest(fixtures.TestBase, AssertsExecutionResults): eq_(result2.fetchall(), [(2, 2, False, None), (3, 3, True, None)]) - @testing.requires.multirow_inserts + @testing.requires.multivalues_inserts def test_multirow_returning(self): ins = table.insert().returning(table.c.id, table.c.persons).values( [