diff options
author | Mike Bayer <mike_mp@zzzcomputing.com> | 2017-04-07 14:18:22 -0400 |
---|---|---|
committer | Mike Bayer <mike_mp@zzzcomputing.com> | 2017-04-13 14:22:59 -0400 |
commit | b7644319e85ce38c1a576802317a9058a6aed82d (patch) | |
tree | 12db3074d79d0c54deb247a7e79424312e183cf3 /test | |
parent | 755da1797432ee98dd3d1d309026a21529b45f75 (diff) | |
download | sqlalchemy-b7644319e85ce38c1a576802317a9058a6aed82d.tar.gz |
Use baked lazyloading by default
The ``lazy="select"`` loader strategy now makes used of the
:class:`.BakedQuery` query caching system in all cases. This
removes most overhead of generating a :class:`.Query` object and
running it into a :func:`.select` and then string SQL statement from
the process of lazy-loading related collections and objects. The
"baked" lazy loader has also been improved such that it can now
cache in most cases where query load options are used.
Change-Id: Ic96792fffaa045ae9aa0a4657d6d29235d3efb85
Fixes: #3954
Diffstat (limited to 'test')
-rw-r--r-- | test/aaa_profiling/test_memusage.py | 3 | ||||
-rw-r--r-- | test/ext/test_baked.py | 255 | ||||
-rw-r--r-- | test/orm/test_options.py | 399 | ||||
-rw-r--r-- | test/profiles.txt | 174 |
4 files changed, 598 insertions, 233 deletions
diff --git a/test/aaa_profiling/test_memusage.py b/test/aaa_profiling/test_memusage.py index e038d5c38..4a378d77d 100644 --- a/test/aaa_profiling/test_memusage.py +++ b/test/aaa_profiling/test_memusage.py @@ -263,7 +263,8 @@ class MemUsageWBackendTest(EnsureZeroed): del sessmaker go() - @testing.emits_warning("Compiled statement cache for.*") + @testing.emits_warning("Compiled statement cache for mapper.*") + @testing.emits_warning("Compiled statement cache for lazy loader.*") @testing.crashes('sqlite', ':memory: connection not suitable here') def test_orm_many_engines(self): metadata = MetaData(self.engine) diff --git a/test/ext/test_baked.py b/test/ext/test_baked.py index a5eb31495..263a1bb6c 100644 --- a/test/ext/test_baked.py +++ b/test/ext/test_baked.py @@ -1,10 +1,12 @@ from sqlalchemy.orm import Session, subqueryload, \ - mapper, relationship, lazyload, clear_mappers, backref + mapper, relationship, lazyload, clear_mappers, backref, aliased, \ + Load, defaultload from sqlalchemy.testing import eq_, is_, is_not_ from sqlalchemy.testing import assert_raises, assert_raises_message from sqlalchemy import testing +from sqlalchemy import inspect from test.orm import _fixtures -from sqlalchemy.ext.baked import BakedQuery, baked_lazyload, BakedLazyLoader +from sqlalchemy.ext.baked import BakedQuery from sqlalchemy.ext import baked from sqlalchemy import bindparam, func, literal_column from sqlalchemy.orm import exc as orm_exc @@ -719,6 +721,22 @@ class LazyLoaderTest(testing.AssertsCompiledSQL, BakedTest): mapper(Address, self.tables.addresses) return User, Address + def _o2m_twolevel_fixture(self, lazy="select", **kw): + User = self.classes.User + Address = self.classes.Address + Dingaling = self.classes.Dingaling + + mapper(User, self.tables.users, properties={ + 'addresses': relationship( + Address, order_by=self.tables.addresses.c.id, + lazy=lazy, **kw) + }) + mapper(Address, self.tables.addresses, properties={ + "dingalings": relationship(Dingaling, lazy=lazy) + }) + mapper(Dingaling, self.tables.dingalings) + return User, Address, Dingaling + def _m2o_fixture(self): User = self.classes.User Address = self.classes.Address @@ -729,124 +747,81 @@ class LazyLoaderTest(testing.AssertsCompiledSQL, BakedTest): }) return User, Address - def test_strategy_lookup(self): - """test that the lazy loader strategies aren't getting mixed up - with BakedLazyLoader as a subclass. - - """ - User, Address = self._o2m_fixture() - - ll = User.addresses.property._get_strategy((('lazy', 'select'),)) - assert not isinstance(ll, BakedLazyLoader) - eq_(ll._strategy_keys, [(('lazy', 'select'),), (('lazy', True),)]) - - ll = User.addresses.property._get_strategy((('lazy', True),)) - assert not isinstance(ll, BakedLazyLoader) - eq_(ll._strategy_keys, [(('lazy', 'select'),), (('lazy', True),)]) - - bl = User.addresses.property._get_strategy((('lazy', 'baked_select'),)) - assert isinstance(bl, BakedLazyLoader) - eq_(bl._strategy_keys, [(('lazy', 'baked_select'),)]) - - def test_invocation_per_state(self): - """test that BakedLazyLoader is getting invoked with the - baked_lazyload() loader. - - """ - User, Address = self._o2m_fixture() - - sess = Session() - q = sess.query(User) - - with mock.patch.object(BakedLazyLoader, "_emit_lazyload") as el: - u1 = q.first() - u1.addresses - # not invoked - eq_(el.mock_calls, []) - - sess = Session() - q = sess.query(User).options(baked_lazyload(User.addresses)) - with mock.patch.object(BakedLazyLoader, "_emit_lazyload") as el: - u1 = q.first() - u1.addresses - # invoked - is_( - el.mock_calls[0][1][1], - u1._sa_instance_state - ) - - def test_invocation_per_mapper(self): - """test that BakedLazyLoader is getting invoked with the - "baked_select" lazy setting. - - """ - User, Address = self._o2m_fixture(lazy="baked_select") + def test_unsafe_unbound_option_cancels_bake(self): + User, Address, Dingaling = self._o2m_twolevel_fixture(lazy="joined") - sess = Session() - q = sess.query(User).options(lazyload(User.addresses)) - - with mock.patch.object(BakedLazyLoader, "_emit_lazyload") as el: - u1 = q.first() - u1.addresses - # not invoked - eq_(el.mock_calls, []) - - sess = Session() - q = sess.query(User) - with mock.patch.object(BakedLazyLoader, "_emit_lazyload") as el: - u1 = q.first() - u1.addresses - # invoked - is_( - el.mock_calls[0][1][1], - u1._sa_instance_state - ) - - def test_systemwide_loaders_loadable_via_lazyloader(self): - from sqlalchemy.orm import configure_mappers - - baked.bake_lazy_loaders() - try: - User, Address = self._o2m_fixture(lazy='joined') - - configure_mappers() - - is_( - User.addresses.property. - _get_strategy((('lazy', 'select'), )).__class__, - BakedLazyLoader - ) - finally: - baked.unbake_lazy_loaders() - - def test_invocation_systemwide_loaders(self): - baked.bake_lazy_loaders() - try: - User, Address = self._o2m_fixture() + class SubDingaling(Dingaling): + pass + mapper(SubDingaling, None, inherits=Dingaling) + lru = Address.dingalings.property._lazy_strategy._bakery( + lambda q: None)._bakery + l1 = len(lru) + for i in range(5): sess = Session() - q = sess.query(User).options(lazyload(User.addresses)) - with mock.patch.object(BakedLazyLoader, "_emit_lazyload") as el: - u1 = q.first() - u1.addresses - # invoked - is_( - el.mock_calls[0][1][1], - u1._sa_instance_state - ) - finally: - baked.unbake_lazy_loaders() - - clear_mappers() - User, Address = self._o2m_fixture() - sess = Session() - q = sess.query(User).options(lazyload(User.addresses)) + u1 = sess.query(User).options( + defaultload(User.addresses).lazyload( + Address.dingalings.of_type(aliased(SubDingaling)))).first() + for ad in u1.addresses: + ad.dingalings + l2 = len(lru) + eq_(l1, 0) + eq_(l2, 1) + + def test_unsafe_bound_option_cancels_bake(self): + User, Address, Dingaling = self._o2m_twolevel_fixture(lazy="joined") + + class SubDingaling(Dingaling): + pass + mapper(SubDingaling, None, inherits=Dingaling) - with mock.patch.object(BakedLazyLoader, "_emit_lazyload") as el: - u1 = q.first() - u1.addresses - # not invoked - eq_(el.mock_calls, []) + lru = Address.dingalings.property._lazy_strategy._bakery( + lambda q: None)._bakery + l1 = len(lru) + for i in range(5): + sess = Session() + u1 = sess.query(User).options( + Load(User).defaultload(User.addresses).lazyload( + Address.dingalings.of_type(aliased(SubDingaling)))).first() + for ad in u1.addresses: + ad.dingalings + l2 = len(lru) + eq_(l1, 0) + eq_(l2, 1) + + def test_safe_unbound_option_allows_bake(self): + User, Address, Dingaling = self._o2m_twolevel_fixture(lazy="joined") + + lru = Address.dingalings.property._lazy_strategy._bakery( + lambda q: None)._bakery + l1 = len(lru) + for i in range(5): + sess = Session() + u1 = sess.query(User).options( + defaultload(User.addresses).lazyload( + Address.dingalings)).first() + for ad in u1.addresses: + ad.dingalings + l2 = len(lru) + eq_(l1, 0) + eq_(l2, 2) + + def test_safe_bound_option_allows_bake(self): + User, Address, Dingaling = self._o2m_twolevel_fixture(lazy="joined") + + lru = Address.dingalings.property._lazy_strategy._bakery( + lambda q: None)._bakery + l1 = len(lru) + for i in range(5): + sess = Session() + u1 = sess.query(User).options( + Load(User).defaultload(User.addresses).lazyload( + Address.dingalings)).first() + for ad in u1.addresses: + ad.dingalings + l2 = len(lru) + eq_(l1, 0) + eq_(l2, 2) def test_baked_lazy_loading_relationship_flag_true(self): self._test_baked_lazy_loading_relationship_flag(True) @@ -855,37 +830,33 @@ class LazyLoaderTest(testing.AssertsCompiledSQL, BakedTest): self._test_baked_lazy_loading_relationship_flag(False) def _test_baked_lazy_loading_relationship_flag(self, flag): - baked.bake_lazy_loaders() - try: - User, Address = self._o2m_fixture(bake_queries=flag) + User, Address = self._o2m_fixture(bake_queries=flag) - sess = Session() - u1 = sess.query(User).first() + sess = Session() + u1 = sess.query(User).first() - from sqlalchemy.orm import Query + from sqlalchemy.orm import Query - canary = mock.Mock() + canary = mock.Mock() - # I would think Mock can do this but apparently - # it cannot (wrap / autospec don't work together) - real_compile_context = Query._compile_context + # I would think Mock can do this but apparently + # it cannot (wrap / autospec don't work together) + real_compile_context = Query._compile_context - def _my_compile_context(*arg, **kw): - if arg[0].column_descriptions[0]['entity'] is Address: - canary() - return real_compile_context(*arg, **kw) + def _my_compile_context(*arg, **kw): + if arg[0].column_descriptions[0]['entity'] is Address: + canary() + return real_compile_context(*arg, **kw) - with mock.patch.object( - Query, - "_compile_context", - _my_compile_context - ): - u1.addresses + with mock.patch.object( + Query, + "_compile_context", + _my_compile_context + ): + u1.addresses - sess.expire(u1) - u1.addresses - finally: - baked.unbake_lazy_loaders() + sess.expire(u1) + u1.addresses if flag: eq_(canary.call_count, 1) @@ -907,7 +878,7 @@ class LazyLoaderTest(testing.AssertsCompiledSQL, BakedTest): lambda s: s.query(User)) if set_option: - base_bq += lambda q: q.options(baked_lazyload(User.addresses)) + base_bq += lambda q: q.options(lazyload(User.addresses)) base_bq += lambda q: q.order_by(User.id) @@ -965,7 +936,7 @@ class LazyLoaderTest(testing.AssertsCompiledSQL, BakedTest): base_bq = self.bakery( lambda s: s.query(Address)) - base_bq += lambda q: q.options(baked_lazyload(Address.user)) + base_bq += lambda q: q.options(lazyload(Address.user)) base_bq += lambda q: q.order_by(Address.id) assert_result = self.static.address_user_result diff --git a/test/orm/test_options.py b/test/orm/test_options.py index b7c574e2a..e29a63e08 100644 --- a/test/orm/test_options.py +++ b/test/orm/test_options.py @@ -2,7 +2,7 @@ from sqlalchemy import inspect from sqlalchemy.orm import attributes, mapper, relationship, backref, \ configure_mappers, create_session, synonym, Session, class_mapper, \ aliased, column_property, joinedload_all, joinedload, Query,\ - util as orm_util, Load, defer + util as orm_util, Load, defer, defaultload from sqlalchemy.orm.query import QueryContext from sqlalchemy.orm import strategy_options import sqlalchemy as sa @@ -20,6 +20,11 @@ class QueryTest(_fixtures.FixtureTest): def setup_mappers(cls): cls._setup_stock_mapping() + class SubItem(cls.classes.Item): + pass + + mapper(SubItem, None, inherits=cls.classes.Item) + class PathTest(object): def _make_path(self, path): @@ -42,7 +47,9 @@ class PathTest(object): attr = {} for val in opt._to_bind: - val._bind_loader(q, attr, False) + val._bind_loader( + [ent.entity_zero for ent in q._mapper_entities], + q._current_path, attr, False) assert_paths = [k[1] for k in attr] eq_( @@ -868,7 +875,9 @@ class LocalOptsTest(PathTest, QueryTest): for opt in opts: if isinstance(opt, strategy_options._UnboundLoad): for tb in opt._to_bind: - tb._bind_loader(query, attr, False) + tb._bind_loader( + [ent.entity_zero for ent in query._mapper_entities], + query._current_path, attr, False) else: attr.update(opt.context) @@ -951,3 +960,387 @@ class LocalOptsTest(PathTest, QueryTest): ), ] self._assert_attrs(opts, {"foo": "bar", "bat": "hoho"}) + + +class CacheKeyTest(PathTest, QueryTest): + + run_create_tables = False + run_inserts = None + run_deletes = None + + def test_unbound_cache_key_included_safe(self): + User, Address, Order, Item, SubItem = self.classes( + 'User', 'Address', 'Order', 'Item', 'SubItem') + + query_path = self._make_path_registry([User, "orders"]) + + opt = joinedload(User.orders).joinedload(Order.items) + eq_( + opt._generate_cache_key(query_path), + ( + ((Order, 'items', Item, ('lazy', 'joined')),) + ) + ) + + def test_bound_cache_key_included_safe(self): + User, Address, Order, Item, SubItem = self.classes( + 'User', 'Address', 'Order', 'Item', 'SubItem') + + query_path = self._make_path_registry([User, "orders"]) + + opt = Load(User).joinedload(User.orders).joinedload(Order.items) + eq_( + opt._generate_cache_key(query_path), + ( + ((Order, 'items', Item, ('lazy', 'joined')),) + ) + ) + + def test_unbound_cache_key_excluded_on_other(self): + User, Address, Order, Item, SubItem = self.classes( + 'User', 'Address', 'Order', 'Item', 'SubItem') + + query_path = self._make_path_registry( + [User, "addresses"]) + + opt = joinedload(User.orders).joinedload(Order.items) + eq_( + opt._generate_cache_key(query_path), + None + ) + + def test_bound_cache_key_excluded_on_other(self): + User, Address, Order, Item, SubItem = self.classes( + 'User', 'Address', 'Order', 'Item', 'SubItem') + + query_path = self._make_path_registry( + [User, "addresses"]) + + opt = Load(User).joinedload(User.orders).joinedload(Order.items) + eq_( + opt._generate_cache_key(query_path), + None + ) + + def test_unbound_cache_key_excluded_on_aliased(self): + User, Address, Order, Item, SubItem = self.classes( + 'User', 'Address', 'Order', 'Item', 'SubItem') + + # query of: + # + # query(User).options( + # joinedload(aliased(User).orders).joinedload(Order.items)) + # + # we are lazy loading Order objects from User.orders + # the path excludes our option so cache key should + # be None + + query_path = self._make_path_registry( + [User, "orders"]) + + opt = joinedload(aliased(User).orders).joinedload(Order.items) + eq_( + opt._generate_cache_key(query_path), + None + ) + + def test_unbound_cache_key_included_of_type_safe(self): + User, Address, Order, Item, SubItem = self.classes( + 'User', 'Address', 'Order', 'Item', 'SubItem') + + query_path = self._make_path_registry([User, "orders"]) + + opt = joinedload(User.orders).joinedload(Order.items.of_type(SubItem)) + eq_( + opt._generate_cache_key(query_path), + ( + (Order, 'items', SubItem, ('lazy', 'joined')), + ) + ) + + def test_bound_cache_key_included_of_type_safe(self): + User, Address, Order, Item, SubItem = self.classes( + 'User', 'Address', 'Order', 'Item', 'SubItem') + + query_path = self._make_path_registry([User, "orders"]) + + opt = Load(User).joinedload(User.orders).\ + joinedload(Order.items.of_type(SubItem)) + + eq_( + opt._generate_cache_key(query_path), + ( + (Order, 'items', SubItem, ('lazy', 'joined')), + ) + ) + + def test_unbound_cache_key_included_unsafe_option_one(self): + User, Address, Order, Item, SubItem = self.classes( + 'User', 'Address', 'Order', 'Item', 'SubItem') + + query_path = self._make_path_registry([User, "orders"]) + + opt = joinedload(User.orders).\ + joinedload(Order.items.of_type(aliased(SubItem))) + eq_( + opt._generate_cache_key(query_path), + False + ) + + def test_unbound_cache_key_included_unsafe_option_two(self): + User, Address, Order, Item, SubItem = self.classes( + 'User', 'Address', 'Order', 'Item', 'SubItem') + + query_path = self._make_path_registry([User, "orders", Order]) + + opt = joinedload(User.orders).\ + joinedload(Order.items.of_type(aliased(SubItem))) + eq_( + opt._generate_cache_key(query_path), + False + ) + + def test_unbound_cache_key_included_unsafe_option_three(self): + User, Address, Order, Item, SubItem = self.classes( + 'User', 'Address', 'Order', 'Item', 'SubItem') + + query_path = self._make_path_registry([User, "orders", Order, "items"]) + + opt = joinedload(User.orders).\ + joinedload(Order.items.of_type(aliased(SubItem))) + eq_( + opt._generate_cache_key(query_path), + False + ) + + def test_unbound_cache_key_included_unsafe_query(self): + User, Address, Order, Item, SubItem = self.classes( + 'User', 'Address', 'Order', 'Item', 'SubItem') + + au = aliased(User) + query_path = self._make_path_registry([inspect(au), "orders"]) + + opt = joinedload(au.orders).\ + joinedload(Order.items) + eq_( + opt._generate_cache_key(query_path), + False + ) + + def test_unbound_cache_key_included_safe_w_deferred(self): + User, Address, Order, Item, SubItem = self.classes( + 'User', 'Address', 'Order', 'Item', 'SubItem') + + query_path = self._make_path_registry([User, "addresses"]) + + opt = joinedload(User.addresses).\ + defer(Address.email_address).defer(Address.user_id) + eq_( + opt._generate_cache_key(query_path), + ( + ( + Address, "email_address", + ('deferred', True), + ('instrument', True) + ), + ( + Address, "user_id", + ('deferred', True), + ('instrument', True) + ), + ) + ) + + def test_bound_cache_key_included_safe_w_deferred(self): + User, Address, Order, Item, SubItem = self.classes( + 'User', 'Address', 'Order', 'Item', 'SubItem') + + query_path = self._make_path_registry([User, "addresses"]) + + opt = Load(User).joinedload(User.addresses).\ + defer(Address.email_address).defer(Address.user_id) + eq_( + opt._generate_cache_key(query_path), + ( + ( + Address, "email_address", + ('deferred', True), + ('instrument', True) + ), + ( + Address, "user_id", + ('deferred', True), + ('instrument', True) + ), + ) + ) + + def test_unbound_cache_key_included_safe_w_option(self): + User, Address, Order, Item, SubItem = self.classes( + 'User', 'Address', 'Order', 'Item', 'SubItem') + + opt = defaultload("orders").joinedload( + "items", innerjoin=True).defer("description") + query_path = self._make_path_registry([User, "orders"]) + + eq_( + opt._generate_cache_key(query_path), + ( + (Order, 'items', Item, + ('lazy', 'joined'), ('innerjoin', True)), + (Order, 'items', Item, 'description', + ('deferred', True), ('instrument', True)) + ) + ) + + def test_bound_cache_key_excluded_on_aliased(self): + User, Address, Order, Item, SubItem = self.classes( + 'User', 'Address', 'Order', 'Item', 'SubItem') + + query_path = self._make_path_registry( + [User, "orders"]) + + au = aliased(User) + opt = Load(au).joinedload(au.orders).joinedload(Order.items) + eq_( + opt._generate_cache_key(query_path), + None + ) + + def test_bound_cache_key_included_unsafe_option_one(self): + User, Address, Order, Item, SubItem = self.classes( + 'User', 'Address', 'Order', 'Item', 'SubItem') + + query_path = self._make_path_registry([User, "orders"]) + + opt = Load(User).joinedload(User.orders).\ + joinedload(Order.items.of_type(aliased(SubItem))) + eq_( + opt._generate_cache_key(query_path), + False + ) + + def test_bound_cache_key_included_unsafe_option_two(self): + User, Address, Order, Item, SubItem = self.classes( + 'User', 'Address', 'Order', 'Item', 'SubItem') + + query_path = self._make_path_registry([User, "orders", Order]) + + opt = Load(User).joinedload(User.orders).\ + joinedload(Order.items.of_type(aliased(SubItem))) + eq_( + opt._generate_cache_key(query_path), + False + ) + + def test_bound_cache_key_included_unsafe_option_three(self): + User, Address, Order, Item, SubItem = self.classes( + 'User', 'Address', 'Order', 'Item', 'SubItem') + + query_path = self._make_path_registry([User, "orders", Order, "items"]) + + opt = Load(User).joinedload(User.orders).\ + joinedload(Order.items.of_type(aliased(SubItem))) + eq_( + opt._generate_cache_key(query_path), + False + ) + + def test_bound_cache_key_included_unsafe_query(self): + User, Address, Order, Item, SubItem = self.classes( + 'User', 'Address', 'Order', 'Item', 'SubItem') + + au = aliased(User) + query_path = self._make_path_registry([inspect(au), "orders"]) + + opt = Load(au).joinedload(au.orders).\ + joinedload(Order.items) + eq_( + opt._generate_cache_key(query_path), + False + ) + + + def test_bound_cache_key_included_safe_w_option(self): + User, Address, Order, Item, SubItem = self.classes( + 'User', 'Address', 'Order', 'Item', 'SubItem') + + opt = Load(User).defaultload("orders").joinedload( + "items", innerjoin=True).defer("description") + query_path = self._make_path_registry([User, "orders"]) + + eq_( + opt._generate_cache_key(query_path), + ( + (Order, 'items', Item, + ('lazy', 'joined'), ('innerjoin', True)), + (Order, 'items', Item, 'description', + ('deferred', True), ('instrument', True)) + ) + ) + + def test_unbound_cache_key_included_safe_w_loadonly_strs(self): + User, Address, Order, Item, SubItem = self.classes( + 'User', 'Address', 'Order', 'Item', 'SubItem') + + query_path = self._make_path_registry([User, "addresses"]) + + opt = defaultload(User.addresses).load_only("id", "email_address") + eq_( + opt._generate_cache_key(query_path), + + ( + (Address, 'id', + ('deferred', False), ('instrument', True)), + (Address, 'email_address', + ('deferred', False), ('instrument', True)), + (Address, 'column:*', + ('deferred', True), ('instrument', True), + ('undefer_pks', True)) + ) + ) + + def test_unbound_cache_key_included_safe_w_loadonly_props(self): + User, Address, Order, Item, SubItem = self.classes( + 'User', 'Address', 'Order', 'Item', 'SubItem') + + query_path = self._make_path_registry([User, "addresses"]) + + opt = defaultload(User.addresses).load_only( + Address.id, Address.email_address) + eq_( + opt._generate_cache_key(query_path), + + ( + (Address, 'id', + ('deferred', False), ('instrument', True)), + (Address, 'email_address', + ('deferred', False), ('instrument', True)), + (Address, 'column:*', + ('deferred', True), ('instrument', True), + ('undefer_pks', True)) + ) + ) + + def test_bound_cache_key_included_safe_w_loadonly(self): + User, Address, Order, Item, SubItem = self.classes( + 'User', 'Address', 'Order', 'Item', 'SubItem') + + query_path = self._make_path_registry([User, "addresses"]) + + opt = Load(User).defaultload(User.addresses).\ + load_only("id", "email_address") + eq_( + opt._generate_cache_key(query_path), + + ( + (Address, 'id', + ('deferred', False), ('instrument', True)), + (Address, 'email_address', + ('deferred', False), ('instrument', True)), + (Address, 'column:*', + ('deferred', True), ('instrument', True), + ('undefer_pks', True)) + ) + ) + diff --git a/test/profiles.txt b/test/profiles.txt index 720c26b80..8af5f9b1b 100644 --- a/test/profiles.txt +++ b/test/profiles.txt @@ -211,60 +211,60 @@ test.aaa_profiling.test_orm.DeferOptionsTest.test_baseline 3.5_sqlite_pysqlite_d # TEST: test.aaa_profiling.test_orm.DeferOptionsTest.test_defer_many_cols -test.aaa_profiling.test_orm.DeferOptionsTest.test_defer_many_cols 2.7_mysql_mysqldb_dbapiunicode_cextensions 23231 -test.aaa_profiling.test_orm.DeferOptionsTest.test_defer_many_cols 2.7_mysql_mysqldb_dbapiunicode_nocextensions 26236 -test.aaa_profiling.test_orm.DeferOptionsTest.test_defer_many_cols 2.7_postgresql_psycopg2_dbapiunicode_cextensions 23198 -test.aaa_profiling.test_orm.DeferOptionsTest.test_defer_many_cols 2.7_postgresql_psycopg2_dbapiunicode_nocextensions 26203 -test.aaa_profiling.test_orm.DeferOptionsTest.test_defer_many_cols 2.7_sqlite_pysqlite_dbapiunicode_cextensions 23175 -test.aaa_profiling.test_orm.DeferOptionsTest.test_defer_many_cols 2.7_sqlite_pysqlite_dbapiunicode_nocextensions 26180 +test.aaa_profiling.test_orm.DeferOptionsTest.test_defer_many_cols 2.7_mysql_mysqldb_dbapiunicode_cextensions 23237 +test.aaa_profiling.test_orm.DeferOptionsTest.test_defer_many_cols 2.7_mysql_mysqldb_dbapiunicode_nocextensions 26242 +test.aaa_profiling.test_orm.DeferOptionsTest.test_defer_many_cols 2.7_postgresql_psycopg2_dbapiunicode_cextensions 23204 +test.aaa_profiling.test_orm.DeferOptionsTest.test_defer_many_cols 2.7_postgresql_psycopg2_dbapiunicode_nocextensions 26209 +test.aaa_profiling.test_orm.DeferOptionsTest.test_defer_many_cols 2.7_sqlite_pysqlite_dbapiunicode_cextensions 23181 +test.aaa_profiling.test_orm.DeferOptionsTest.test_defer_many_cols 2.7_sqlite_pysqlite_dbapiunicode_nocextensions 26186 test.aaa_profiling.test_orm.DeferOptionsTest.test_defer_many_cols 3.4_mysql_mysqldb_dbapiunicode_cextensions 24260 test.aaa_profiling.test_orm.DeferOptionsTest.test_defer_many_cols 3.4_mysql_mysqldb_dbapiunicode_nocextensions 27267 test.aaa_profiling.test_orm.DeferOptionsTest.test_defer_many_cols 3.4_postgresql_psycopg2_dbapiunicode_cextensions 24225 test.aaa_profiling.test_orm.DeferOptionsTest.test_defer_many_cols 3.4_postgresql_psycopg2_dbapiunicode_nocextensions 27232 test.aaa_profiling.test_orm.DeferOptionsTest.test_defer_many_cols 3.4_sqlite_pysqlite_dbapiunicode_cextensions 24211 test.aaa_profiling.test_orm.DeferOptionsTest.test_defer_many_cols 3.4_sqlite_pysqlite_dbapiunicode_nocextensions 27218 -test.aaa_profiling.test_orm.DeferOptionsTest.test_defer_many_cols 3.5_mysql_mysqldb_dbapiunicode_cextensions 24253 -test.aaa_profiling.test_orm.DeferOptionsTest.test_defer_many_cols 3.5_mysql_mysqldb_dbapiunicode_nocextensions 27260 -test.aaa_profiling.test_orm.DeferOptionsTest.test_defer_many_cols 3.5_postgresql_psycopg2_dbapiunicode_cextensions 24222 -test.aaa_profiling.test_orm.DeferOptionsTest.test_defer_many_cols 3.5_postgresql_psycopg2_dbapiunicode_nocextensions 27229 -test.aaa_profiling.test_orm.DeferOptionsTest.test_defer_many_cols 3.5_sqlite_pysqlite_dbapiunicode_cextensions 24204 -test.aaa_profiling.test_orm.DeferOptionsTest.test_defer_many_cols 3.5_sqlite_pysqlite_dbapiunicode_nocextensions 27211 +test.aaa_profiling.test_orm.DeferOptionsTest.test_defer_many_cols 3.5_mysql_mysqldb_dbapiunicode_cextensions 24259 +test.aaa_profiling.test_orm.DeferOptionsTest.test_defer_many_cols 3.5_mysql_mysqldb_dbapiunicode_nocextensions 27266 +test.aaa_profiling.test_orm.DeferOptionsTest.test_defer_many_cols 3.5_postgresql_psycopg2_dbapiunicode_cextensions 24228 +test.aaa_profiling.test_orm.DeferOptionsTest.test_defer_many_cols 3.5_postgresql_psycopg2_dbapiunicode_nocextensions 27235 +test.aaa_profiling.test_orm.DeferOptionsTest.test_defer_many_cols 3.5_sqlite_pysqlite_dbapiunicode_cextensions 24210 +test.aaa_profiling.test_orm.DeferOptionsTest.test_defer_many_cols 3.5_sqlite_pysqlite_dbapiunicode_nocextensions 27217 # TEST: test.aaa_profiling.test_orm.JoinedEagerLoadTest.test_build_query -test.aaa_profiling.test_orm.JoinedEagerLoadTest.test_build_query 2.7_mysql_mysqldb_dbapiunicode_cextensions 406489 -test.aaa_profiling.test_orm.JoinedEagerLoadTest.test_build_query 2.7_mysql_mysqldb_dbapiunicode_nocextensions 406475 -test.aaa_profiling.test_orm.JoinedEagerLoadTest.test_build_query 2.7_postgresql_psycopg2_dbapiunicode_cextensions 406489 -test.aaa_profiling.test_orm.JoinedEagerLoadTest.test_build_query 2.7_postgresql_psycopg2_dbapiunicode_nocextensions 406468 -test.aaa_profiling.test_orm.JoinedEagerLoadTest.test_build_query 2.7_sqlite_pysqlite_dbapiunicode_cextensions 406482 -test.aaa_profiling.test_orm.JoinedEagerLoadTest.test_build_query 2.7_sqlite_pysqlite_dbapiunicode_nocextensions 406482 +test.aaa_profiling.test_orm.JoinedEagerLoadTest.test_build_query 2.7_mysql_mysqldb_dbapiunicode_cextensions 413452 +test.aaa_profiling.test_orm.JoinedEagerLoadTest.test_build_query 2.7_mysql_mysqldb_dbapiunicode_nocextensions 413431 +test.aaa_profiling.test_orm.JoinedEagerLoadTest.test_build_query 2.7_postgresql_psycopg2_dbapiunicode_cextensions 413445 +test.aaa_profiling.test_orm.JoinedEagerLoadTest.test_build_query 2.7_postgresql_psycopg2_dbapiunicode_nocextensions 413438 +test.aaa_profiling.test_orm.JoinedEagerLoadTest.test_build_query 2.7_sqlite_pysqlite_dbapiunicode_cextensions 413438 +test.aaa_profiling.test_orm.JoinedEagerLoadTest.test_build_query 2.7_sqlite_pysqlite_dbapiunicode_nocextensions 413438 test.aaa_profiling.test_orm.JoinedEagerLoadTest.test_build_query 3.4_mysql_mysqldb_dbapiunicode_cextensions 532398 test.aaa_profiling.test_orm.JoinedEagerLoadTest.test_build_query 3.4_mysql_mysqldb_dbapiunicode_nocextensions 532398 test.aaa_profiling.test_orm.JoinedEagerLoadTest.test_build_query 3.4_postgresql_psycopg2_dbapiunicode_cextensions 532398 test.aaa_profiling.test_orm.JoinedEagerLoadTest.test_build_query 3.4_postgresql_psycopg2_dbapiunicode_nocextensions 532398 test.aaa_profiling.test_orm.JoinedEagerLoadTest.test_build_query 3.4_sqlite_pysqlite_dbapiunicode_cextensions 532398 test.aaa_profiling.test_orm.JoinedEagerLoadTest.test_build_query 3.4_sqlite_pysqlite_dbapiunicode_nocextensions 532398 -test.aaa_profiling.test_orm.JoinedEagerLoadTest.test_build_query 3.5_mysql_mysqldb_dbapiunicode_cextensions 434497 -test.aaa_profiling.test_orm.JoinedEagerLoadTest.test_build_query 3.5_mysql_mysqldb_dbapiunicode_nocextensions 434504 -test.aaa_profiling.test_orm.JoinedEagerLoadTest.test_build_query 3.5_postgresql_psycopg2_dbapiunicode_cextensions 434504 -test.aaa_profiling.test_orm.JoinedEagerLoadTest.test_build_query 3.5_postgresql_psycopg2_dbapiunicode_nocextensions 434490 -test.aaa_profiling.test_orm.JoinedEagerLoadTest.test_build_query 3.5_sqlite_pysqlite_dbapiunicode_cextensions 434497 -test.aaa_profiling.test_orm.JoinedEagerLoadTest.test_build_query 3.5_sqlite_pysqlite_dbapiunicode_nocextensions 434504 +test.aaa_profiling.test_orm.JoinedEagerLoadTest.test_build_query 3.5_mysql_mysqldb_dbapiunicode_cextensions 440781 +test.aaa_profiling.test_orm.JoinedEagerLoadTest.test_build_query 3.5_mysql_mysqldb_dbapiunicode_nocextensions 440774 +test.aaa_profiling.test_orm.JoinedEagerLoadTest.test_build_query 3.5_postgresql_psycopg2_dbapiunicode_cextensions 440774 +test.aaa_profiling.test_orm.JoinedEagerLoadTest.test_build_query 3.5_postgresql_psycopg2_dbapiunicode_nocextensions 440781 +test.aaa_profiling.test_orm.JoinedEagerLoadTest.test_build_query 3.5_sqlite_pysqlite_dbapiunicode_cextensions 440788 +test.aaa_profiling.test_orm.JoinedEagerLoadTest.test_build_query 3.5_sqlite_pysqlite_dbapiunicode_nocextensions 440781 # TEST: test.aaa_profiling.test_orm.JoinedEagerLoadTest.test_fetch_results -test.aaa_profiling.test_orm.JoinedEagerLoadTest.test_fetch_results 2.7_mysql_mysqldb_dbapiunicode_cextensions 567666 -test.aaa_profiling.test_orm.JoinedEagerLoadTest.test_fetch_results 2.7_mysql_mysqldb_dbapiunicode_nocextensions 580466 -test.aaa_profiling.test_orm.JoinedEagerLoadTest.test_fetch_results 2.7_postgresql_psycopg2_dbapiunicode_cextensions 578324 -test.aaa_profiling.test_orm.JoinedEagerLoadTest.test_fetch_results 2.7_postgresql_psycopg2_dbapiunicode_nocextensions 591124 -test.aaa_profiling.test_orm.JoinedEagerLoadTest.test_fetch_results 2.7_sqlite_pysqlite_dbapiunicode_cextensions 557938 -test.aaa_profiling.test_orm.JoinedEagerLoadTest.test_fetch_results 2.7_sqlite_pysqlite_dbapiunicode_nocextensions 570738 -test.aaa_profiling.test_orm.JoinedEagerLoadTest.test_fetch_results 3.5_mysql_mysqldb_dbapiunicode_cextensions 570849 -test.aaa_profiling.test_orm.JoinedEagerLoadTest.test_fetch_results 3.5_mysql_mysqldb_dbapiunicode_nocextensions 583849 -test.aaa_profiling.test_orm.JoinedEagerLoadTest.test_fetch_results 3.5_postgresql_psycopg2_dbapiunicode_cextensions 598107 -test.aaa_profiling.test_orm.JoinedEagerLoadTest.test_fetch_results 3.5_postgresql_psycopg2_dbapiunicode_nocextensions 611107 -test.aaa_profiling.test_orm.JoinedEagerLoadTest.test_fetch_results 3.5_sqlite_pysqlite_dbapiunicode_cextensions 562621 -test.aaa_profiling.test_orm.JoinedEagerLoadTest.test_fetch_results 3.5_sqlite_pysqlite_dbapiunicode_nocextensions 575621 +test.aaa_profiling.test_orm.JoinedEagerLoadTest.test_fetch_results 2.7_mysql_mysqldb_dbapiunicode_cextensions 567786 +test.aaa_profiling.test_orm.JoinedEagerLoadTest.test_fetch_results 2.7_mysql_mysqldb_dbapiunicode_nocextensions 580586 +test.aaa_profiling.test_orm.JoinedEagerLoadTest.test_fetch_results 2.7_postgresql_psycopg2_dbapiunicode_cextensions 578444 +test.aaa_profiling.test_orm.JoinedEagerLoadTest.test_fetch_results 2.7_postgresql_psycopg2_dbapiunicode_nocextensions 591244 +test.aaa_profiling.test_orm.JoinedEagerLoadTest.test_fetch_results 2.7_sqlite_pysqlite_dbapiunicode_cextensions 558058 +test.aaa_profiling.test_orm.JoinedEagerLoadTest.test_fetch_results 2.7_sqlite_pysqlite_dbapiunicode_nocextensions 570760 +test.aaa_profiling.test_orm.JoinedEagerLoadTest.test_fetch_results 3.5_mysql_mysqldb_dbapiunicode_cextensions 570897 +test.aaa_profiling.test_orm.JoinedEagerLoadTest.test_fetch_results 3.5_mysql_mysqldb_dbapiunicode_nocextensions 583897 +test.aaa_profiling.test_orm.JoinedEagerLoadTest.test_fetch_results 3.5_postgresql_psycopg2_dbapiunicode_cextensions 598155 +test.aaa_profiling.test_orm.JoinedEagerLoadTest.test_fetch_results 3.5_postgresql_psycopg2_dbapiunicode_nocextensions 611155 +test.aaa_profiling.test_orm.JoinedEagerLoadTest.test_fetch_results 3.5_sqlite_pysqlite_dbapiunicode_cextensions 562571 +test.aaa_profiling.test_orm.JoinedEagerLoadTest.test_fetch_results 3.5_sqlite_pysqlite_dbapiunicode_nocextensions 575669 # TEST: test.aaa_profiling.test_orm.LoadManyToOneFromIdentityTest.test_many_to_one_load_identity @@ -289,66 +289,66 @@ test.aaa_profiling.test_orm.LoadManyToOneFromIdentityTest.test_many_to_one_load_ # TEST: test.aaa_profiling.test_orm.LoadManyToOneFromIdentityTest.test_many_to_one_load_no_identity -test.aaa_profiling.test_orm.LoadManyToOneFromIdentityTest.test_many_to_one_load_no_identity 2.7_mysql_mysqldb_dbapiunicode_cextensions 137052 -test.aaa_profiling.test_orm.LoadManyToOneFromIdentityTest.test_many_to_one_load_no_identity 2.7_mysql_mysqldb_dbapiunicode_nocextensions 139302 -test.aaa_profiling.test_orm.LoadManyToOneFromIdentityTest.test_many_to_one_load_no_identity 2.7_postgresql_psycopg2_dbapiunicode_cextensions 127552 -test.aaa_profiling.test_orm.LoadManyToOneFromIdentityTest.test_many_to_one_load_no_identity 2.7_postgresql_psycopg2_dbapiunicode_nocextensions 129802 -test.aaa_profiling.test_orm.LoadManyToOneFromIdentityTest.test_many_to_one_load_no_identity 2.7_sqlite_pysqlite_dbapiunicode_cextensions 125302 -test.aaa_profiling.test_orm.LoadManyToOneFromIdentityTest.test_many_to_one_load_no_identity 2.7_sqlite_pysqlite_dbapiunicode_nocextensions 127552 +test.aaa_profiling.test_orm.LoadManyToOneFromIdentityTest.test_many_to_one_load_no_identity 2.7_mysql_mysqldb_dbapiunicode_cextensions 94694 +test.aaa_profiling.test_orm.LoadManyToOneFromIdentityTest.test_many_to_one_load_no_identity 2.7_mysql_mysqldb_dbapiunicode_nocextensions 96493 +test.aaa_profiling.test_orm.LoadManyToOneFromIdentityTest.test_many_to_one_load_no_identity 2.7_postgresql_psycopg2_dbapiunicode_cextensions 85692 +test.aaa_profiling.test_orm.LoadManyToOneFromIdentityTest.test_many_to_one_load_no_identity 2.7_postgresql_psycopg2_dbapiunicode_nocextensions 87444 +test.aaa_profiling.test_orm.LoadManyToOneFromIdentityTest.test_many_to_one_load_no_identity 2.7_sqlite_pysqlite_dbapiunicode_cextensions 83193 +test.aaa_profiling.test_orm.LoadManyToOneFromIdentityTest.test_many_to_one_load_no_identity 2.7_sqlite_pysqlite_dbapiunicode_nocextensions 84945 test.aaa_profiling.test_orm.LoadManyToOneFromIdentityTest.test_many_to_one_load_no_identity 3.4_mysql_mysqldb_dbapiunicode_cextensions 143106 test.aaa_profiling.test_orm.LoadManyToOneFromIdentityTest.test_many_to_one_load_no_identity 3.4_mysql_mysqldb_dbapiunicode_nocextensions 145856 test.aaa_profiling.test_orm.LoadManyToOneFromIdentityTest.test_many_to_one_load_no_identity 3.4_postgresql_psycopg2_dbapiunicode_cextensions 133056 test.aaa_profiling.test_orm.LoadManyToOneFromIdentityTest.test_many_to_one_load_no_identity 3.4_postgresql_psycopg2_dbapiunicode_nocextensions 135806 test.aaa_profiling.test_orm.LoadManyToOneFromIdentityTest.test_many_to_one_load_no_identity 3.4_sqlite_pysqlite_dbapiunicode_cextensions 131306 test.aaa_profiling.test_orm.LoadManyToOneFromIdentityTest.test_many_to_one_load_no_identity 3.4_sqlite_pysqlite_dbapiunicode_nocextensions 134056 -test.aaa_profiling.test_orm.LoadManyToOneFromIdentityTest.test_many_to_one_load_no_identity 3.5_mysql_mysqldb_dbapiunicode_cextensions 143054 -test.aaa_profiling.test_orm.LoadManyToOneFromIdentityTest.test_many_to_one_load_no_identity 3.5_mysql_mysqldb_dbapiunicode_nocextensions 145854 -test.aaa_profiling.test_orm.LoadManyToOneFromIdentityTest.test_many_to_one_load_no_identity 3.5_postgresql_psycopg2_dbapiunicode_cextensions 134604 -test.aaa_profiling.test_orm.LoadManyToOneFromIdentityTest.test_many_to_one_load_no_identity 3.5_postgresql_psycopg2_dbapiunicode_nocextensions 137304 -test.aaa_profiling.test_orm.LoadManyToOneFromIdentityTest.test_many_to_one_load_no_identity 3.5_sqlite_pysqlite_dbapiunicode_cextensions 131304 -test.aaa_profiling.test_orm.LoadManyToOneFromIdentityTest.test_many_to_one_load_no_identity 3.5_sqlite_pysqlite_dbapiunicode_nocextensions 134054 +test.aaa_profiling.test_orm.LoadManyToOneFromIdentityTest.test_many_to_one_load_no_identity 3.5_mysql_mysqldb_dbapiunicode_cextensions 97011 +test.aaa_profiling.test_orm.LoadManyToOneFromIdentityTest.test_many_to_one_load_no_identity 3.5_mysql_mysqldb_dbapiunicode_nocextensions 98765 +test.aaa_profiling.test_orm.LoadManyToOneFromIdentityTest.test_many_to_one_load_no_identity 3.5_postgresql_psycopg2_dbapiunicode_cextensions 89009 +test.aaa_profiling.test_orm.LoadManyToOneFromIdentityTest.test_many_to_one_load_no_identity 3.5_postgresql_psycopg2_dbapiunicode_nocextensions 90763 +test.aaa_profiling.test_orm.LoadManyToOneFromIdentityTest.test_many_to_one_load_no_identity 3.5_sqlite_pysqlite_dbapiunicode_cextensions 85510 +test.aaa_profiling.test_orm.LoadManyToOneFromIdentityTest.test_many_to_one_load_no_identity 3.5_sqlite_pysqlite_dbapiunicode_nocextensions 87264 # TEST: test.aaa_profiling.test_orm.MergeBackrefsTest.test_merge_pending_with_all_pks -test.aaa_profiling.test_orm.MergeBackrefsTest.test_merge_pending_with_all_pks 2.7_mysql_mysqldb_dbapiunicode_cextensions 19549 -test.aaa_profiling.test_orm.MergeBackrefsTest.test_merge_pending_with_all_pks 2.7_mysql_mysqldb_dbapiunicode_nocextensions 19797 -test.aaa_profiling.test_orm.MergeBackrefsTest.test_merge_pending_with_all_pks 2.7_postgresql_psycopg2_dbapiunicode_cextensions 19028 -test.aaa_profiling.test_orm.MergeBackrefsTest.test_merge_pending_with_all_pks 2.7_postgresql_psycopg2_dbapiunicode_nocextensions 19264 -test.aaa_profiling.test_orm.MergeBackrefsTest.test_merge_pending_with_all_pks 2.7_sqlite_pysqlite_dbapiunicode_cextensions 18904 -test.aaa_profiling.test_orm.MergeBackrefsTest.test_merge_pending_with_all_pks 2.7_sqlite_pysqlite_dbapiunicode_nocextensions 19122 +test.aaa_profiling.test_orm.MergeBackrefsTest.test_merge_pending_with_all_pks 2.7_mysql_mysqldb_dbapiunicode_cextensions 18601 +test.aaa_profiling.test_orm.MergeBackrefsTest.test_merge_pending_with_all_pks 2.7_mysql_mysqldb_dbapiunicode_nocextensions 18872 +test.aaa_profiling.test_orm.MergeBackrefsTest.test_merge_pending_with_all_pks 2.7_postgresql_psycopg2_dbapiunicode_cextensions 18080 +test.aaa_profiling.test_orm.MergeBackrefsTest.test_merge_pending_with_all_pks 2.7_postgresql_psycopg2_dbapiunicode_nocextensions 18257 +test.aaa_profiling.test_orm.MergeBackrefsTest.test_merge_pending_with_all_pks 2.7_sqlite_pysqlite_dbapiunicode_cextensions 17950 +test.aaa_profiling.test_orm.MergeBackrefsTest.test_merge_pending_with_all_pks 2.7_sqlite_pysqlite_dbapiunicode_nocextensions 18126 test.aaa_profiling.test_orm.MergeBackrefsTest.test_merge_pending_with_all_pks 3.4_mysql_mysqldb_dbapiunicode_cextensions 20210 test.aaa_profiling.test_orm.MergeBackrefsTest.test_merge_pending_with_all_pks 3.4_mysql_mysqldb_dbapiunicode_nocextensions 20428 test.aaa_profiling.test_orm.MergeBackrefsTest.test_merge_pending_with_all_pks 3.4_postgresql_psycopg2_dbapiunicode_cextensions 19528 test.aaa_profiling.test_orm.MergeBackrefsTest.test_merge_pending_with_all_pks 3.4_postgresql_psycopg2_dbapiunicode_nocextensions 19834 test.aaa_profiling.test_orm.MergeBackrefsTest.test_merge_pending_with_all_pks 3.4_sqlite_pysqlite_dbapiunicode_cextensions 19494 test.aaa_profiling.test_orm.MergeBackrefsTest.test_merge_pending_with_all_pks 3.4_sqlite_pysqlite_dbapiunicode_nocextensions 19700 -test.aaa_profiling.test_orm.MergeBackrefsTest.test_merge_pending_with_all_pks 3.5_mysql_mysqldb_dbapiunicode_cextensions 20152 -test.aaa_profiling.test_orm.MergeBackrefsTest.test_merge_pending_with_all_pks 3.5_mysql_mysqldb_dbapiunicode_nocextensions 20465 -test.aaa_profiling.test_orm.MergeBackrefsTest.test_merge_pending_with_all_pks 3.5_postgresql_psycopg2_dbapiunicode_cextensions 19641 -test.aaa_profiling.test_orm.MergeBackrefsTest.test_merge_pending_with_all_pks 3.5_postgresql_psycopg2_dbapiunicode_nocextensions 19921 -test.aaa_profiling.test_orm.MergeBackrefsTest.test_merge_pending_with_all_pks 3.5_sqlite_pysqlite_dbapiunicode_cextensions 19412 -test.aaa_profiling.test_orm.MergeBackrefsTest.test_merge_pending_with_all_pks 3.5_sqlite_pysqlite_dbapiunicode_nocextensions 19687 +test.aaa_profiling.test_orm.MergeBackrefsTest.test_merge_pending_with_all_pks 3.5_mysql_mysqldb_dbapiunicode_cextensions 19155 +test.aaa_profiling.test_orm.MergeBackrefsTest.test_merge_pending_with_all_pks 3.5_mysql_mysqldb_dbapiunicode_nocextensions 19399 +test.aaa_profiling.test_orm.MergeBackrefsTest.test_merge_pending_with_all_pks 3.5_postgresql_psycopg2_dbapiunicode_cextensions 18573 +test.aaa_profiling.test_orm.MergeBackrefsTest.test_merge_pending_with_all_pks 3.5_postgresql_psycopg2_dbapiunicode_nocextensions 18805 +test.aaa_profiling.test_orm.MergeBackrefsTest.test_merge_pending_with_all_pks 3.5_sqlite_pysqlite_dbapiunicode_cextensions 18382 +test.aaa_profiling.test_orm.MergeBackrefsTest.test_merge_pending_with_all_pks 3.5_sqlite_pysqlite_dbapiunicode_nocextensions 18627 # TEST: test.aaa_profiling.test_orm.MergeTest.test_merge_load -test.aaa_profiling.test_orm.MergeTest.test_merge_load 2.7_mysql_mysqldb_dbapiunicode_cextensions 1446 -test.aaa_profiling.test_orm.MergeTest.test_merge_load 2.7_mysql_mysqldb_dbapiunicode_nocextensions 1465 -test.aaa_profiling.test_orm.MergeTest.test_merge_load 2.7_postgresql_psycopg2_dbapiunicode_cextensions 1330 -test.aaa_profiling.test_orm.MergeTest.test_merge_load 2.7_postgresql_psycopg2_dbapiunicode_nocextensions 1349 -test.aaa_profiling.test_orm.MergeTest.test_merge_load 2.7_sqlite_pysqlite_dbapiunicode_cextensions 1213 -test.aaa_profiling.test_orm.MergeTest.test_merge_load 2.7_sqlite_pysqlite_dbapiunicode_nocextensions 1231 +test.aaa_profiling.test_orm.MergeTest.test_merge_load 2.7_mysql_mysqldb_dbapiunicode_cextensions 1190 +test.aaa_profiling.test_orm.MergeTest.test_merge_load 2.7_mysql_mysqldb_dbapiunicode_nocextensions 1207 +test.aaa_profiling.test_orm.MergeTest.test_merge_load 2.7_postgresql_psycopg2_dbapiunicode_cextensions 1083 +test.aaa_profiling.test_orm.MergeTest.test_merge_load 2.7_postgresql_psycopg2_dbapiunicode_nocextensions 1100 +test.aaa_profiling.test_orm.MergeTest.test_merge_load 2.7_sqlite_pysqlite_dbapiunicode_cextensions 958 +test.aaa_profiling.test_orm.MergeTest.test_merge_load 2.7_sqlite_pysqlite_dbapiunicode_nocextensions 975 test.aaa_profiling.test_orm.MergeTest.test_merge_load 3.4_mysql_mysqldb_dbapiunicode_cextensions 1494 test.aaa_profiling.test_orm.MergeTest.test_merge_load 3.4_mysql_mysqldb_dbapiunicode_nocextensions 1517 test.aaa_profiling.test_orm.MergeTest.test_merge_load 3.4_postgresql_psycopg2_dbapiunicode_cextensions 1365 test.aaa_profiling.test_orm.MergeTest.test_merge_load 3.4_postgresql_psycopg2_dbapiunicode_nocextensions 1388 test.aaa_profiling.test_orm.MergeTest.test_merge_load 3.4_sqlite_pysqlite_dbapiunicode_cextensions 1257 test.aaa_profiling.test_orm.MergeTest.test_merge_load 3.4_sqlite_pysqlite_dbapiunicode_nocextensions 1280 -test.aaa_profiling.test_orm.MergeTest.test_merge_load 3.5_mysql_mysqldb_dbapiunicode_cextensions 1495 -test.aaa_profiling.test_orm.MergeTest.test_merge_load 3.5_mysql_mysqldb_dbapiunicode_nocextensions 1519 -test.aaa_profiling.test_orm.MergeTest.test_merge_load 3.5_postgresql_psycopg2_dbapiunicode_cextensions 1375 -test.aaa_profiling.test_orm.MergeTest.test_merge_load 3.5_postgresql_psycopg2_dbapiunicode_nocextensions 1398 -test.aaa_profiling.test_orm.MergeTest.test_merge_load 3.5_sqlite_pysqlite_dbapiunicode_cextensions 1256 -test.aaa_profiling.test_orm.MergeTest.test_merge_load 3.5_sqlite_pysqlite_dbapiunicode_nocextensions 1280 +test.aaa_profiling.test_orm.MergeTest.test_merge_load 3.5_mysql_mysqldb_dbapiunicode_cextensions 1226 +test.aaa_profiling.test_orm.MergeTest.test_merge_load 3.5_mysql_mysqldb_dbapiunicode_nocextensions 1245 +test.aaa_profiling.test_orm.MergeTest.test_merge_load 3.5_postgresql_psycopg2_dbapiunicode_cextensions 1114 +test.aaa_profiling.test_orm.MergeTest.test_merge_load 3.5_postgresql_psycopg2_dbapiunicode_nocextensions 1133 +test.aaa_profiling.test_orm.MergeTest.test_merge_load 3.5_sqlite_pysqlite_dbapiunicode_cextensions 988 +test.aaa_profiling.test_orm.MergeTest.test_merge_load 3.5_sqlite_pysqlite_dbapiunicode_nocextensions 1007 # TEST: test.aaa_profiling.test_orm.MergeTest.test_merge_no_load @@ -390,28 +390,28 @@ test.aaa_profiling.test_orm.QueryTest.test_query_cols 3.5_mysql_mysqldb_dbapiuni test.aaa_profiling.test_orm.QueryTest.test_query_cols 3.5_postgresql_psycopg2_dbapiunicode_cextensions 6324 test.aaa_profiling.test_orm.QueryTest.test_query_cols 3.5_postgresql_psycopg2_dbapiunicode_nocextensions 6894 test.aaa_profiling.test_orm.QueryTest.test_query_cols 3.5_sqlite_pysqlite_dbapiunicode_cextensions 6096 -test.aaa_profiling.test_orm.QueryTest.test_query_cols 3.5_sqlite_pysqlite_dbapiunicode_nocextensions 6756 +test.aaa_profiling.test_orm.QueryTest.test_query_cols 3.5_sqlite_pysqlite_dbapiunicode_nocextensions 6666 # TEST: test.aaa_profiling.test_orm.SessionTest.test_expire_lots -test.aaa_profiling.test_orm.SessionTest.test_expire_lots 2.7_mysql_mysqldb_dbapiunicode_cextensions 1147 -test.aaa_profiling.test_orm.SessionTest.test_expire_lots 2.7_mysql_mysqldb_dbapiunicode_nocextensions 1152 -test.aaa_profiling.test_orm.SessionTest.test_expire_lots 2.7_postgresql_psycopg2_dbapiunicode_cextensions 1148 -test.aaa_profiling.test_orm.SessionTest.test_expire_lots 2.7_postgresql_psycopg2_dbapiunicode_nocextensions 1134 -test.aaa_profiling.test_orm.SessionTest.test_expire_lots 2.7_sqlite_pysqlite_dbapiunicode_cextensions 1155 -test.aaa_profiling.test_orm.SessionTest.test_expire_lots 2.7_sqlite_pysqlite_dbapiunicode_nocextensions 1152 +test.aaa_profiling.test_orm.SessionTest.test_expire_lots 2.7_mysql_mysqldb_dbapiunicode_cextensions 1138 +test.aaa_profiling.test_orm.SessionTest.test_expire_lots 2.7_mysql_mysqldb_dbapiunicode_nocextensions 1156 +test.aaa_profiling.test_orm.SessionTest.test_expire_lots 2.7_postgresql_psycopg2_dbapiunicode_cextensions 1147 +test.aaa_profiling.test_orm.SessionTest.test_expire_lots 2.7_postgresql_psycopg2_dbapiunicode_nocextensions 1140 +test.aaa_profiling.test_orm.SessionTest.test_expire_lots 2.7_sqlite_pysqlite_dbapiunicode_cextensions 1154 +test.aaa_profiling.test_orm.SessionTest.test_expire_lots 2.7_sqlite_pysqlite_dbapiunicode_nocextensions 1168 test.aaa_profiling.test_orm.SessionTest.test_expire_lots 3.4_mysql_mysqldb_dbapiunicode_cextensions 1256 test.aaa_profiling.test_orm.SessionTest.test_expire_lots 3.4_mysql_mysqldb_dbapiunicode_nocextensions 1252 test.aaa_profiling.test_orm.SessionTest.test_expire_lots 3.4_postgresql_psycopg2_dbapiunicode_cextensions 1235 test.aaa_profiling.test_orm.SessionTest.test_expire_lots 3.4_postgresql_psycopg2_dbapiunicode_nocextensions 1278 test.aaa_profiling.test_orm.SessionTest.test_expire_lots 3.4_sqlite_pysqlite_dbapiunicode_cextensions 1258 test.aaa_profiling.test_orm.SessionTest.test_expire_lots 3.4_sqlite_pysqlite_dbapiunicode_nocextensions 1252 -test.aaa_profiling.test_orm.SessionTest.test_expire_lots 3.5_mysql_mysqldb_dbapiunicode_cextensions 1264 -test.aaa_profiling.test_orm.SessionTest.test_expire_lots 3.5_mysql_mysqldb_dbapiunicode_nocextensions 1254 -test.aaa_profiling.test_orm.SessionTest.test_expire_lots 3.5_postgresql_psycopg2_dbapiunicode_cextensions 1250 -test.aaa_profiling.test_orm.SessionTest.test_expire_lots 3.5_postgresql_psycopg2_dbapiunicode_nocextensions 1265 -test.aaa_profiling.test_orm.SessionTest.test_expire_lots 3.5_sqlite_pysqlite_dbapiunicode_cextensions 1235 -test.aaa_profiling.test_orm.SessionTest.test_expire_lots 3.5_sqlite_pysqlite_dbapiunicode_nocextensions 1242 +test.aaa_profiling.test_orm.SessionTest.test_expire_lots 3.5_mysql_mysqldb_dbapiunicode_cextensions 1302 +test.aaa_profiling.test_orm.SessionTest.test_expire_lots 3.5_mysql_mysqldb_dbapiunicode_nocextensions 1258 +test.aaa_profiling.test_orm.SessionTest.test_expire_lots 3.5_postgresql_psycopg2_dbapiunicode_cextensions 1257 +test.aaa_profiling.test_orm.SessionTest.test_expire_lots 3.5_postgresql_psycopg2_dbapiunicode_nocextensions 1259 +test.aaa_profiling.test_orm.SessionTest.test_expire_lots 3.5_sqlite_pysqlite_dbapiunicode_cextensions 1286 +test.aaa_profiling.test_orm.SessionTest.test_expire_lots 3.5_sqlite_pysqlite_dbapiunicode_nocextensions 1251 # TEST: test.aaa_profiling.test_pool.QueuePoolTest.test_first_connect @@ -623,8 +623,8 @@ test.aaa_profiling.test_zoomark.ZooMarkTest.test_invocation 3.5_postgresql_psyco # TEST: test.aaa_profiling.test_zoomark_orm.ZooMarkTest.test_invocation test.aaa_profiling.test_zoomark_orm.ZooMarkTest.test_invocation 2.7_postgresql_psycopg2_dbapiunicode_cextensions 6462,410,6777,17745,1170,2657 -test.aaa_profiling.test_zoomark_orm.ZooMarkTest.test_invocation 2.7_postgresql_psycopg2_dbapiunicode_nocextensions 6552,415,6897,18814,1276,2692 +test.aaa_profiling.test_zoomark_orm.ZooMarkTest.test_invocation 2.7_postgresql_psycopg2_dbapiunicode_nocextensions 6558,415,6897,18814,1276,2692 test.aaa_profiling.test_zoomark_orm.ZooMarkTest.test_invocation 3.4_postgresql_psycopg2_dbapiunicode_cextensions 6430,401,6925,18147,1169,2705 test.aaa_profiling.test_zoomark_orm.ZooMarkTest.test_invocation 3.4_postgresql_psycopg2_dbapiunicode_nocextensions 6520,406,7061,19258,1271,2746 -test.aaa_profiling.test_zoomark_orm.ZooMarkTest.test_invocation 3.5_postgresql_psycopg2_dbapiunicode_cextensions 6430,401,6909,18147,1169,2705 +test.aaa_profiling.test_zoomark_orm.ZooMarkTest.test_invocation 3.5_postgresql_psycopg2_dbapiunicode_cextensions 6435,401,6909,18147,1169,2705 test.aaa_profiling.test_zoomark_orm.ZooMarkTest.test_invocation 3.5_postgresql_psycopg2_dbapiunicode_nocextensions 6527,406,7045,19258,1271,2746 |