]> git.ipfire.org Git - thirdparty/sqlalchemy/sqlalchemy.git/commitdiff
Fixed issue with :meth:`.TypeEngine.bind_expression` and
authorMike Bayer <mike_mp@zzzcomputing.com>
Tue, 7 Aug 2018 22:59:05 +0000 (18:59 -0400)
committerMike Bayer <mike_mp@zzzcomputing.com>
Wed, 8 Aug 2018 21:29:32 +0000 (17:29 -0400)
:meth:`.TypeEngine.column_expression` methods where these methods would not
work if the target type were part of a :class:`.Variant`, or other target
type of a :class:`.TypeDecorator`.  Additionally, the SQL compiler now
calls upon the dialect-level implementation when it renders these methods
so that dialects can now provide for SQL-level processing for built-in
types.

Change-Id: Ic7b39575184db582e628e6ecee48dcda7d03a817
Fixes: #3981
doc/build/changelog/migration_13.rst
doc/build/changelog/unreleased_13/3981.rst [new file with mode: 0644]
lib/sqlalchemy/sql/compiler.py
lib/sqlalchemy/sql/type_api.py
test/aaa_profiling/test_compiler.py
test/profiles.txt
test/sql/test_type_expressions.py

index 69937ce3b3ae90326cf0ff9fd2c75ce2e6fa3532..c81d95ed9cd1d14ae1c2f1c3f02150a2d1124221 100644 (file)
@@ -268,6 +268,51 @@ backend, such as "SELECT CAST(NULL AS INTEGER) WHERE 1!=1" for Postgresql,
 
 :ticket:`4271`
 
+.. _change_3981:
+
+TypeEngine methods bind_expression, column_expression work with Variant, type-specific types
+--------------------------------------------------------------------------------------------
+
+The :meth:`.TypeEngine.bind_expression` and :meth:`.TypeEngine.column_expression` methods
+now work when they are present on the "impl" of a particular datatype, allowing these methods
+to be used by dialects as well as for :class:`.TypeDecorator` and :class:`.Variant` use cases.
+
+The following example illustrates a :class:`.TypeDecorator` that applies SQL-time conversion
+functions to a :class:`.LargeBinary`.   In order for this type to work in the
+context of a :class:`.Variant`, the compiler needs to drill into the "impl" of the
+variant expression in order to locate these methods::
+
+    from sqlalchemy import TypeDecorator, LargeBinary, func
+
+    class CompressedLargeBinary(TypeDecorator):
+        impl = LargeBinary
+
+        def bind_expression(self, bindvalue):
+            return func.compress(bindvalue, type_=self)
+
+        def column_expression(self, col):
+            return func.uncompress(col, type_=self)
+
+    MyLargeBinary = LargeBinary().with_variant(CompressedLargeBinary(), "sqlite")
+
+The above expression will render a function within SQL when used on SQlite only::
+
+    from sqlalchemy import select, column
+    from sqlalchemy.dialects import sqlite
+    print(select([column('x', CompressedLargeBinary)]).compile(dialect=sqlite.dialect()))
+
+will render::
+
+    SELECT uncompress(x) AS x
+
+The change also includes that dialects can implement
+:meth:`.TypeEngine.bind_expression` and :meth:`.TypeEngine.column_expression`
+on dialect-level implementation types where they will now be used; in
+particular this will be used for MySQL's new "binary prefix" requirement as
+well as for casting decimal bind values for MySQL.
+
+:ticket:`3981`
+
 Key Behavioral Changes - Core
 =============================
 
diff --git a/doc/build/changelog/unreleased_13/3981.rst b/doc/build/changelog/unreleased_13/3981.rst
new file mode 100644 (file)
index 0000000..20347c2
--- /dev/null
@@ -0,0 +1,16 @@
+.. change::
+    :tags: bug, sql
+    :tickets: 3981
+
+    Fixed issue with :meth:`.TypeEngine.bind_expression` and
+    :meth:`.TypeEngine.column_expression` methods where these methods would not
+    work if the target type were part of a :class:`.Variant`, or other target
+    type of a :class:`.TypeDecorator`.  Additionally, the SQL compiler now
+    calls upon the dialect-level implementation when it renders these methods
+    so that dialects can now provide for SQL-level processing for built-in
+    types.
+
+    .. seealso::
+
+        :ref:`3981`
+
index 57da43217c91052dc43cc851596e87ba9c3ae5be..5fbc7d87f8c1f5c7f5a9a1a28abbf350a5109f3d 100644 (file)
@@ -1237,10 +1237,17 @@ class SQLCompiler(Compiled):
                         literal_binds=False,
                         skip_bind_expression=False,
                         **kwargs):
-        if not skip_bind_expression and bindparam.type._has_bind_expression:
-            bind_expression = bindparam.type.bind_expression(bindparam)
-            return self.process(bind_expression,
-                                skip_bind_expression=True)
+
+        if not skip_bind_expression:
+            impl = bindparam.type.dialect_impl(self.dialect)
+            if impl._has_bind_expression:
+                bind_expression = impl.bind_expression(bindparam)
+                return self.process(
+                    bind_expression, skip_bind_expression=True,
+                    within_columns_clause=within_columns_clause,
+                    literal_binds=literal_binds,
+                    **kwargs
+                )
 
         if literal_binds or \
             (within_columns_clause and
@@ -1510,10 +1517,12 @@ class SQLCompiler(Compiled):
                              within_columns_clause=True):
         """produce labeled columns present in a select()."""
 
-        if column.type._has_column_expression and \
+        impl = column.type.dialect_impl(self.dialect)
+        if impl._has_column_expression and \
                 populate_result_map:
-            col_expr = column.type.column_expression(column)
-            add_to_result_map = lambda keyname, name, objects, type_: \
+            col_expr = impl.column_expression(column)
+
+            def add_to_result_map(keyname, name, objects, type_):
                 self._add_to_result_map(
                     keyname, name,
                     (column,) + objects, type_)
index 6a323683bfe5dd97c3dbb037550531b91f8d2dba..a8dfa19be76f099e99351ab3bd1341e98b5a8d4c 100644 (file)
@@ -1239,6 +1239,33 @@ class TypeDecorator(SchemaEventTarget, TypeEngine):
         else:
             return self.impl.result_processor(dialect, coltype)
 
+    @util.memoized_property
+    def _has_bind_expression(self):
+        return (
+            self.__class__.bind_expression.__code__
+            is not TypeDecorator.bind_expression.__code__
+        ) or self.impl._has_bind_expression
+
+    def bind_expression(self, bindparam):
+        return self.impl.bind_expression(bindparam)
+
+    @util.memoized_property
+    def _has_column_expression(self):
+        """memoized boolean, check if column_expression is implemented.
+
+        Allows the method to be skipped for the vast majority of expression
+        types that don't use this feature.
+
+        """
+
+        return (
+            self.__class__.column_expression.__code__
+            is not TypeDecorator.column_expression.__code__
+        ) or self.impl._has_column_expression
+
+    def column_expression(self, column):
+        return self.impl.column_expression(column)
+
     def coerce_compared_value(self, op, value):
         """Suggest a type for a 'coerced' Python value in an expression.
 
@@ -1299,8 +1326,6 @@ class TypeDecorator(SchemaEventTarget, TypeEngine):
         return util.generic_repr(self, to_inspect=self.impl)
 
 
-
-
 class Variant(TypeDecorator):
     """A wrapping type that selects among a variety of
     implementations based on dialect in use.
index 5095be1032dc4126d4cc6330a8086f1be4dd94d9..51a92f5290e8fec3a350560c87b399dd00951046 100644 (file)
@@ -22,9 +22,12 @@ class CompileTest(fixtures.TestBase, AssertsExecutionResults):
                    Column('c1', Integer, primary_key=True),
                    Column('c2', String(30)))
 
+        cls.dialect = default.DefaultDialect()
+
         # do a "compile" ahead of time to load
-        # deferred imports
-        t1.insert().compile()
+        # deferred imports, use the dialect to pre-load
+        # dialect-level types
+        t1.insert().compile(dialect=cls.dialect)
 
         # go through all the TypeEngine
         # objects in use and pre-load their _type_affinity
@@ -36,8 +39,6 @@ class CompileTest(fixtures.TestBase, AssertsExecutionResults):
         for t in list(sqltypes._type_map.values()):
             t._type_affinity
 
-        cls.dialect = default.DefaultDialect()
-
     @profiling.function_call_count()
     def test_insert(self):
         t1.insert().compile(dialect=self.dialect)
index 04ddd9ee6f982f54bd1647c7906c8cda514c34ae..136cbf5ef416d8e9859d1bc5f2651d78e096b0f1 100644 (file)
 
 # TEST: test.aaa_profiling.test_compiler.CompileTest.test_insert
 
-test.aaa_profiling.test_compiler.CompileTest.test_insert 2.7_mssql_pyodbc_dbapiunicode_cextensions 75
-test.aaa_profiling.test_compiler.CompileTest.test_insert 2.7_mssql_pyodbc_dbapiunicode_nocextensions 75
-test.aaa_profiling.test_compiler.CompileTest.test_insert 2.7_mysql_mysqldb_dbapiunicode_cextensions 75,75
-test.aaa_profiling.test_compiler.CompileTest.test_insert 2.7_mysql_mysqldb_dbapiunicode_nocextensions 75,75
-test.aaa_profiling.test_compiler.CompileTest.test_insert 2.7_mysql_pymysql_dbapiunicode_cextensions 75,75
-test.aaa_profiling.test_compiler.CompileTest.test_insert 2.7_mysql_pymysql_dbapiunicode_nocextensions 75,75
-test.aaa_profiling.test_compiler.CompileTest.test_insert 2.7_oracle_cx_oracle_dbapiunicode_cextensions 75
-test.aaa_profiling.test_compiler.CompileTest.test_insert 2.7_oracle_cx_oracle_dbapiunicode_nocextensions 75
-test.aaa_profiling.test_compiler.CompileTest.test_insert 2.7_postgresql_psycopg2_dbapiunicode_cextensions 75,75,75
-test.aaa_profiling.test_compiler.CompileTest.test_insert 2.7_postgresql_psycopg2_dbapiunicode_nocextensions 75,75,75
-test.aaa_profiling.test_compiler.CompileTest.test_insert 2.7_sqlite_pysqlite_dbapiunicode_cextensions 75
-test.aaa_profiling.test_compiler.CompileTest.test_insert 2.7_sqlite_pysqlite_dbapiunicode_nocextensions 75
-test.aaa_profiling.test_compiler.CompileTest.test_insert 3.6_mssql_pyodbc_dbapiunicode_cextensions 78
-test.aaa_profiling.test_compiler.CompileTest.test_insert 3.6_mssql_pyodbc_dbapiunicode_nocextensions 78
-test.aaa_profiling.test_compiler.CompileTest.test_insert 3.6_mysql_mysqldb_dbapiunicode_cextensions 78,78
-test.aaa_profiling.test_compiler.CompileTest.test_insert 3.6_mysql_mysqldb_dbapiunicode_nocextensions 78,78
-test.aaa_profiling.test_compiler.CompileTest.test_insert 3.6_mysql_pymysql_dbapiunicode_cextensions 78,78
-test.aaa_profiling.test_compiler.CompileTest.test_insert 3.6_mysql_pymysql_dbapiunicode_nocextensions 78,78
-test.aaa_profiling.test_compiler.CompileTest.test_insert 3.6_oracle_cx_oracle_dbapiunicode_cextensions 78
-test.aaa_profiling.test_compiler.CompileTest.test_insert 3.6_oracle_cx_oracle_dbapiunicode_nocextensions 78
-test.aaa_profiling.test_compiler.CompileTest.test_insert 3.6_postgresql_psycopg2_dbapiunicode_cextensions 78,78,78
-test.aaa_profiling.test_compiler.CompileTest.test_insert 3.6_postgresql_psycopg2_dbapiunicode_nocextensions 78,78,78
-test.aaa_profiling.test_compiler.CompileTest.test_insert 3.6_sqlite_pysqlite_dbapiunicode_cextensions 78
-test.aaa_profiling.test_compiler.CompileTest.test_insert 3.6_sqlite_pysqlite_dbapiunicode_nocextensions 78
+test.aaa_profiling.test_compiler.CompileTest.test_insert 2.7_mssql_pyodbc_dbapiunicode_cextensions 70,70
+test.aaa_profiling.test_compiler.CompileTest.test_insert 2.7_mssql_pyodbc_dbapiunicode_nocextensions 70,70
+test.aaa_profiling.test_compiler.CompileTest.test_insert 2.7_mysql_mysqldb_dbapiunicode_cextensions 70,70
+test.aaa_profiling.test_compiler.CompileTest.test_insert 2.7_mysql_mysqldb_dbapiunicode_nocextensions 70,70
+test.aaa_profiling.test_compiler.CompileTest.test_insert 2.7_mysql_pymysql_dbapiunicode_cextensions 70,70
+test.aaa_profiling.test_compiler.CompileTest.test_insert 2.7_mysql_pymysql_dbapiunicode_nocextensions 70,70
+test.aaa_profiling.test_compiler.CompileTest.test_insert 2.7_oracle_cx_oracle_dbapiunicode_cextensions 70,70
+test.aaa_profiling.test_compiler.CompileTest.test_insert 2.7_oracle_cx_oracle_dbapiunicode_nocextensions 70,70
+test.aaa_profiling.test_compiler.CompileTest.test_insert 2.7_postgresql_psycopg2_dbapiunicode_cextensions 70,70,75
+test.aaa_profiling.test_compiler.CompileTest.test_insert 2.7_postgresql_psycopg2_dbapiunicode_nocextensions 70,70,75
+test.aaa_profiling.test_compiler.CompileTest.test_insert 2.7_sqlite_pysqlite_dbapiunicode_cextensions 70,70
+test.aaa_profiling.test_compiler.CompileTest.test_insert 2.7_sqlite_pysqlite_dbapiunicode_nocextensions 70,70
+test.aaa_profiling.test_compiler.CompileTest.test_insert 3.6_mssql_pyodbc_dbapiunicode_cextensions 73,73
+test.aaa_profiling.test_compiler.CompileTest.test_insert 3.6_mssql_pyodbc_dbapiunicode_nocextensions 73,73
+test.aaa_profiling.test_compiler.CompileTest.test_insert 3.6_mysql_mysqldb_dbapiunicode_cextensions 73,73
+test.aaa_profiling.test_compiler.CompileTest.test_insert 3.6_mysql_mysqldb_dbapiunicode_nocextensions 73,73
+test.aaa_profiling.test_compiler.CompileTest.test_insert 3.6_mysql_pymysql_dbapiunicode_cextensions 73,73
+test.aaa_profiling.test_compiler.CompileTest.test_insert 3.6_mysql_pymysql_dbapiunicode_nocextensions 73,73
+test.aaa_profiling.test_compiler.CompileTest.test_insert 3.6_oracle_cx_oracle_dbapiunicode_cextensions 73,73
+test.aaa_profiling.test_compiler.CompileTest.test_insert 3.6_oracle_cx_oracle_dbapiunicode_nocextensions 73,73
+test.aaa_profiling.test_compiler.CompileTest.test_insert 3.6_postgresql_psycopg2_dbapiunicode_cextensions 73,73,78
+test.aaa_profiling.test_compiler.CompileTest.test_insert 3.6_postgresql_psycopg2_dbapiunicode_nocextensions 73,73,78
+test.aaa_profiling.test_compiler.CompileTest.test_insert 3.6_sqlite_pysqlite_dbapiunicode_cextensions 73,73
+test.aaa_profiling.test_compiler.CompileTest.test_insert 3.6_sqlite_pysqlite_dbapiunicode_nocextensions 73,73
 
 # TEST: test.aaa_profiling.test_compiler.CompileTest.test_select
 
-test.aaa_profiling.test_compiler.CompileTest.test_select 2.7_mssql_pyodbc_dbapiunicode_cextensions 157
-test.aaa_profiling.test_compiler.CompileTest.test_select 2.7_mssql_pyodbc_dbapiunicode_nocextensions 157
-test.aaa_profiling.test_compiler.CompileTest.test_select 2.7_mysql_mysqldb_dbapiunicode_cextensions 157,157
-test.aaa_profiling.test_compiler.CompileTest.test_select 2.7_mysql_mysqldb_dbapiunicode_nocextensions 157,157
-test.aaa_profiling.test_compiler.CompileTest.test_select 2.7_mysql_pymysql_dbapiunicode_cextensions 157,157
-test.aaa_profiling.test_compiler.CompileTest.test_select 2.7_mysql_pymysql_dbapiunicode_nocextensions 157,157
-test.aaa_profiling.test_compiler.CompileTest.test_select 2.7_oracle_cx_oracle_dbapiunicode_cextensions 157
-test.aaa_profiling.test_compiler.CompileTest.test_select 2.7_oracle_cx_oracle_dbapiunicode_nocextensions 157
-test.aaa_profiling.test_compiler.CompileTest.test_select 2.7_postgresql_psycopg2_dbapiunicode_cextensions 157,157,157
-test.aaa_profiling.test_compiler.CompileTest.test_select 2.7_postgresql_psycopg2_dbapiunicode_nocextensions 157,157,157
-test.aaa_profiling.test_compiler.CompileTest.test_select 2.7_sqlite_pysqlite_dbapiunicode_cextensions 157
-test.aaa_profiling.test_compiler.CompileTest.test_select 2.7_sqlite_pysqlite_dbapiunicode_nocextensions 157
-test.aaa_profiling.test_compiler.CompileTest.test_select 3.6_mssql_pyodbc_dbapiunicode_cextensions 170
-test.aaa_profiling.test_compiler.CompileTest.test_select 3.6_mssql_pyodbc_dbapiunicode_nocextensions 170
-test.aaa_profiling.test_compiler.CompileTest.test_select 3.6_mysql_mysqldb_dbapiunicode_cextensions 170,170
-test.aaa_profiling.test_compiler.CompileTest.test_select 3.6_mysql_mysqldb_dbapiunicode_nocextensions 170,170
-test.aaa_profiling.test_compiler.CompileTest.test_select 3.6_mysql_pymysql_dbapiunicode_cextensions 170,170
-test.aaa_profiling.test_compiler.CompileTest.test_select 3.6_mysql_pymysql_dbapiunicode_nocextensions 170,170
-test.aaa_profiling.test_compiler.CompileTest.test_select 3.6_oracle_cx_oracle_dbapiunicode_cextensions 170
-test.aaa_profiling.test_compiler.CompileTest.test_select 3.6_oracle_cx_oracle_dbapiunicode_nocextensions 170
-test.aaa_profiling.test_compiler.CompileTest.test_select 3.6_postgresql_psycopg2_dbapiunicode_cextensions 170,170,170
-test.aaa_profiling.test_compiler.CompileTest.test_select 3.6_postgresql_psycopg2_dbapiunicode_nocextensions 170,170,170
-test.aaa_profiling.test_compiler.CompileTest.test_select 3.6_sqlite_pysqlite_dbapiunicode_cextensions 170
-test.aaa_profiling.test_compiler.CompileTest.test_select 3.6_sqlite_pysqlite_dbapiunicode_nocextensions 170
+test.aaa_profiling.test_compiler.CompileTest.test_select 2.7_mssql_pyodbc_dbapiunicode_cextensions 161,161
+test.aaa_profiling.test_compiler.CompileTest.test_select 2.7_mssql_pyodbc_dbapiunicode_nocextensions 161,161
+test.aaa_profiling.test_compiler.CompileTest.test_select 2.7_mysql_mysqldb_dbapiunicode_cextensions 161,161
+test.aaa_profiling.test_compiler.CompileTest.test_select 2.7_mysql_mysqldb_dbapiunicode_nocextensions 161,161
+test.aaa_profiling.test_compiler.CompileTest.test_select 2.7_mysql_pymysql_dbapiunicode_cextensions 161,161
+test.aaa_profiling.test_compiler.CompileTest.test_select 2.7_mysql_pymysql_dbapiunicode_nocextensions 161,161
+test.aaa_profiling.test_compiler.CompileTest.test_select 2.7_oracle_cx_oracle_dbapiunicode_cextensions 161,161
+test.aaa_profiling.test_compiler.CompileTest.test_select 2.7_oracle_cx_oracle_dbapiunicode_nocextensions 161,161
+test.aaa_profiling.test_compiler.CompileTest.test_select 2.7_postgresql_psycopg2_dbapiunicode_cextensions 161,161,157
+test.aaa_profiling.test_compiler.CompileTest.test_select 2.7_postgresql_psycopg2_dbapiunicode_nocextensions 161,161,157
+test.aaa_profiling.test_compiler.CompileTest.test_select 2.7_sqlite_pysqlite_dbapiunicode_cextensions 161,161
+test.aaa_profiling.test_compiler.CompileTest.test_select 2.7_sqlite_pysqlite_dbapiunicode_nocextensions 161,161
+test.aaa_profiling.test_compiler.CompileTest.test_select 3.6_mssql_pyodbc_dbapiunicode_cextensions 174,174
+test.aaa_profiling.test_compiler.CompileTest.test_select 3.6_mssql_pyodbc_dbapiunicode_nocextensions 174,174
+test.aaa_profiling.test_compiler.CompileTest.test_select 3.6_mysql_mysqldb_dbapiunicode_cextensions 174,174
+test.aaa_profiling.test_compiler.CompileTest.test_select 3.6_mysql_mysqldb_dbapiunicode_nocextensions 174,174
+test.aaa_profiling.test_compiler.CompileTest.test_select 3.6_mysql_pymysql_dbapiunicode_cextensions 174,174
+test.aaa_profiling.test_compiler.CompileTest.test_select 3.6_mysql_pymysql_dbapiunicode_nocextensions 174,174
+test.aaa_profiling.test_compiler.CompileTest.test_select 3.6_oracle_cx_oracle_dbapiunicode_cextensions 174,174
+test.aaa_profiling.test_compiler.CompileTest.test_select 3.6_oracle_cx_oracle_dbapiunicode_nocextensions 174,174
+test.aaa_profiling.test_compiler.CompileTest.test_select 3.6_postgresql_psycopg2_dbapiunicode_cextensions 174,174,170
+test.aaa_profiling.test_compiler.CompileTest.test_select 3.6_postgresql_psycopg2_dbapiunicode_nocextensions 174,174,170
+test.aaa_profiling.test_compiler.CompileTest.test_select 3.6_sqlite_pysqlite_dbapiunicode_cextensions 174,174
+test.aaa_profiling.test_compiler.CompileTest.test_select 3.6_sqlite_pysqlite_dbapiunicode_nocextensions 174,174
 
 # TEST: test.aaa_profiling.test_compiler.CompileTest.test_select_labels
 
-test.aaa_profiling.test_compiler.CompileTest.test_select_labels 2.7_mssql_pyodbc_dbapiunicode_cextensions 190
-test.aaa_profiling.test_compiler.CompileTest.test_select_labels 2.7_mssql_pyodbc_dbapiunicode_nocextensions 190
-test.aaa_profiling.test_compiler.CompileTest.test_select_labels 2.7_mysql_mysqldb_dbapiunicode_cextensions 190,190
-test.aaa_profiling.test_compiler.CompileTest.test_select_labels 2.7_mysql_mysqldb_dbapiunicode_nocextensions 190,190
-test.aaa_profiling.test_compiler.CompileTest.test_select_labels 2.7_mysql_pymysql_dbapiunicode_cextensions 190,190
-test.aaa_profiling.test_compiler.CompileTest.test_select_labels 2.7_mysql_pymysql_dbapiunicode_nocextensions 190,190
-test.aaa_profiling.test_compiler.CompileTest.test_select_labels 2.7_oracle_cx_oracle_dbapiunicode_cextensions 190
-test.aaa_profiling.test_compiler.CompileTest.test_select_labels 2.7_oracle_cx_oracle_dbapiunicode_nocextensions 190
-test.aaa_profiling.test_compiler.CompileTest.test_select_labels 2.7_postgresql_psycopg2_dbapiunicode_cextensions 190,190,190
-test.aaa_profiling.test_compiler.CompileTest.test_select_labels 2.7_postgresql_psycopg2_dbapiunicode_nocextensions 190,190,190
-test.aaa_profiling.test_compiler.CompileTest.test_select_labels 2.7_sqlite_pysqlite_dbapiunicode_cextensions 190
-test.aaa_profiling.test_compiler.CompileTest.test_select_labels 2.7_sqlite_pysqlite_dbapiunicode_nocextensions 190
-test.aaa_profiling.test_compiler.CompileTest.test_select_labels 3.6_mssql_pyodbc_dbapiunicode_cextensions 203
-test.aaa_profiling.test_compiler.CompileTest.test_select_labels 3.6_mssql_pyodbc_dbapiunicode_nocextensions 203
-test.aaa_profiling.test_compiler.CompileTest.test_select_labels 3.6_mysql_mysqldb_dbapiunicode_cextensions 203,203
-test.aaa_profiling.test_compiler.CompileTest.test_select_labels 3.6_mysql_mysqldb_dbapiunicode_nocextensions 203,203
-test.aaa_profiling.test_compiler.CompileTest.test_select_labels 3.6_mysql_pymysql_dbapiunicode_cextensions 203,203
-test.aaa_profiling.test_compiler.CompileTest.test_select_labels 3.6_mysql_pymysql_dbapiunicode_nocextensions 203,203
-test.aaa_profiling.test_compiler.CompileTest.test_select_labels 3.6_oracle_cx_oracle_dbapiunicode_cextensions 203
-test.aaa_profiling.test_compiler.CompileTest.test_select_labels 3.6_oracle_cx_oracle_dbapiunicode_nocextensions 203
-test.aaa_profiling.test_compiler.CompileTest.test_select_labels 3.6_postgresql_psycopg2_dbapiunicode_cextensions 203,203,203
-test.aaa_profiling.test_compiler.CompileTest.test_select_labels 3.6_postgresql_psycopg2_dbapiunicode_nocextensions 203,203,203
-test.aaa_profiling.test_compiler.CompileTest.test_select_labels 3.6_sqlite_pysqlite_dbapiunicode_cextensions 203
-test.aaa_profiling.test_compiler.CompileTest.test_select_labels 3.6_sqlite_pysqlite_dbapiunicode_nocextensions 203
+test.aaa_profiling.test_compiler.CompileTest.test_select_labels 2.7_mssql_pyodbc_dbapiunicode_cextensions 194,194
+test.aaa_profiling.test_compiler.CompileTest.test_select_labels 2.7_mssql_pyodbc_dbapiunicode_nocextensions 194,194
+test.aaa_profiling.test_compiler.CompileTest.test_select_labels 2.7_mysql_mysqldb_dbapiunicode_cextensions 194,194
+test.aaa_profiling.test_compiler.CompileTest.test_select_labels 2.7_mysql_mysqldb_dbapiunicode_nocextensions 194,194
+test.aaa_profiling.test_compiler.CompileTest.test_select_labels 2.7_mysql_pymysql_dbapiunicode_cextensions 194,194
+test.aaa_profiling.test_compiler.CompileTest.test_select_labels 2.7_mysql_pymysql_dbapiunicode_nocextensions 194,194
+test.aaa_profiling.test_compiler.CompileTest.test_select_labels 2.7_oracle_cx_oracle_dbapiunicode_cextensions 194,194
+test.aaa_profiling.test_compiler.CompileTest.test_select_labels 2.7_oracle_cx_oracle_dbapiunicode_nocextensions 194,194
+test.aaa_profiling.test_compiler.CompileTest.test_select_labels 2.7_postgresql_psycopg2_dbapiunicode_cextensions 194,194,190
+test.aaa_profiling.test_compiler.CompileTest.test_select_labels 2.7_postgresql_psycopg2_dbapiunicode_nocextensions 194,194,190
+test.aaa_profiling.test_compiler.CompileTest.test_select_labels 2.7_sqlite_pysqlite_dbapiunicode_cextensions 194,194
+test.aaa_profiling.test_compiler.CompileTest.test_select_labels 2.7_sqlite_pysqlite_dbapiunicode_nocextensions 194,194
+test.aaa_profiling.test_compiler.CompileTest.test_select_labels 3.6_mssql_pyodbc_dbapiunicode_cextensions 207,207
+test.aaa_profiling.test_compiler.CompileTest.test_select_labels 3.6_mssql_pyodbc_dbapiunicode_nocextensions 207,207
+test.aaa_profiling.test_compiler.CompileTest.test_select_labels 3.6_mysql_mysqldb_dbapiunicode_cextensions 207,207
+test.aaa_profiling.test_compiler.CompileTest.test_select_labels 3.6_mysql_mysqldb_dbapiunicode_nocextensions 207,207
+test.aaa_profiling.test_compiler.CompileTest.test_select_labels 3.6_mysql_pymysql_dbapiunicode_cextensions 207,207
+test.aaa_profiling.test_compiler.CompileTest.test_select_labels 3.6_mysql_pymysql_dbapiunicode_nocextensions 207,207
+test.aaa_profiling.test_compiler.CompileTest.test_select_labels 3.6_oracle_cx_oracle_dbapiunicode_cextensions 207,207
+test.aaa_profiling.test_compiler.CompileTest.test_select_labels 3.6_oracle_cx_oracle_dbapiunicode_nocextensions 207,207
+test.aaa_profiling.test_compiler.CompileTest.test_select_labels 3.6_postgresql_psycopg2_dbapiunicode_cextensions 207,207,203
+test.aaa_profiling.test_compiler.CompileTest.test_select_labels 3.6_postgresql_psycopg2_dbapiunicode_nocextensions 207,207,203
+test.aaa_profiling.test_compiler.CompileTest.test_select_labels 3.6_sqlite_pysqlite_dbapiunicode_cextensions 207,207
+test.aaa_profiling.test_compiler.CompileTest.test_select_labels 3.6_sqlite_pysqlite_dbapiunicode_nocextensions 207,207
 
 # TEST: test.aaa_profiling.test_compiler.CompileTest.test_update
 
-test.aaa_profiling.test_compiler.CompileTest.test_update 2.7_mssql_pyodbc_dbapiunicode_cextensions 78
-test.aaa_profiling.test_compiler.CompileTest.test_update 2.7_mssql_pyodbc_dbapiunicode_nocextensions 78
-test.aaa_profiling.test_compiler.CompileTest.test_update 2.7_mysql_mysqldb_dbapiunicode_cextensions 78,76
-test.aaa_profiling.test_compiler.CompileTest.test_update 2.7_mysql_mysqldb_dbapiunicode_nocextensions 78,76
-test.aaa_profiling.test_compiler.CompileTest.test_update 2.7_mysql_pymysql_dbapiunicode_cextensions 76,76
-test.aaa_profiling.test_compiler.CompileTest.test_update 2.7_mysql_pymysql_dbapiunicode_nocextensions 76,76
-test.aaa_profiling.test_compiler.CompileTest.test_update 2.7_oracle_cx_oracle_dbapiunicode_cextensions 78
-test.aaa_profiling.test_compiler.CompileTest.test_update 2.7_oracle_cx_oracle_dbapiunicode_nocextensions 78
-test.aaa_profiling.test_compiler.CompileTest.test_update 2.7_postgresql_psycopg2_dbapiunicode_cextensions 78,76,76
-test.aaa_profiling.test_compiler.CompileTest.test_update 2.7_postgresql_psycopg2_dbapiunicode_nocextensions 78,76,76
-test.aaa_profiling.test_compiler.CompileTest.test_update 2.7_sqlite_pysqlite_dbapiunicode_cextensions 78
-test.aaa_profiling.test_compiler.CompileTest.test_update 2.7_sqlite_pysqlite_dbapiunicode_nocextensions 78
-test.aaa_profiling.test_compiler.CompileTest.test_update 3.6_mssql_pyodbc_dbapiunicode_cextensions 79
-test.aaa_profiling.test_compiler.CompileTest.test_update 3.6_mssql_pyodbc_dbapiunicode_nocextensions 79
-test.aaa_profiling.test_compiler.CompileTest.test_update 3.6_mysql_mysqldb_dbapiunicode_cextensions 79,77
-test.aaa_profiling.test_compiler.CompileTest.test_update 3.6_mysql_mysqldb_dbapiunicode_nocextensions 79,77
-test.aaa_profiling.test_compiler.CompileTest.test_update 3.6_mysql_pymysql_dbapiunicode_cextensions 77,77
-test.aaa_profiling.test_compiler.CompileTest.test_update 3.6_mysql_pymysql_dbapiunicode_nocextensions 77,77
-test.aaa_profiling.test_compiler.CompileTest.test_update 3.6_oracle_cx_oracle_dbapiunicode_cextensions 79
-test.aaa_profiling.test_compiler.CompileTest.test_update 3.6_oracle_cx_oracle_dbapiunicode_nocextensions 79
-test.aaa_profiling.test_compiler.CompileTest.test_update 3.6_postgresql_psycopg2_dbapiunicode_cextensions 79,77,77
-test.aaa_profiling.test_compiler.CompileTest.test_update 3.6_postgresql_psycopg2_dbapiunicode_nocextensions 79,77,77
-test.aaa_profiling.test_compiler.CompileTest.test_update 3.6_sqlite_pysqlite_dbapiunicode_cextensions 79
-test.aaa_profiling.test_compiler.CompileTest.test_update 3.6_sqlite_pysqlite_dbapiunicode_nocextensions 79
+test.aaa_profiling.test_compiler.CompileTest.test_update 2.7_mssql_pyodbc_dbapiunicode_cextensions 82,80
+test.aaa_profiling.test_compiler.CompileTest.test_update 2.7_mssql_pyodbc_dbapiunicode_nocextensions 82,80
+test.aaa_profiling.test_compiler.CompileTest.test_update 2.7_mysql_mysqldb_dbapiunicode_cextensions 82,80
+test.aaa_profiling.test_compiler.CompileTest.test_update 2.7_mysql_mysqldb_dbapiunicode_nocextensions 82,80
+test.aaa_profiling.test_compiler.CompileTest.test_update 2.7_mysql_pymysql_dbapiunicode_cextensions 80,80
+test.aaa_profiling.test_compiler.CompileTest.test_update 2.7_mysql_pymysql_dbapiunicode_nocextensions 80,80
+test.aaa_profiling.test_compiler.CompileTest.test_update 2.7_oracle_cx_oracle_dbapiunicode_cextensions 82,80
+test.aaa_profiling.test_compiler.CompileTest.test_update 2.7_oracle_cx_oracle_dbapiunicode_nocextensions 82,80
+test.aaa_profiling.test_compiler.CompileTest.test_update 2.7_postgresql_psycopg2_dbapiunicode_cextensions 82,80,76
+test.aaa_profiling.test_compiler.CompileTest.test_update 2.7_postgresql_psycopg2_dbapiunicode_nocextensions 82,80,76
+test.aaa_profiling.test_compiler.CompileTest.test_update 2.7_sqlite_pysqlite_dbapiunicode_cextensions 82,80
+test.aaa_profiling.test_compiler.CompileTest.test_update 2.7_sqlite_pysqlite_dbapiunicode_nocextensions 82,80
+test.aaa_profiling.test_compiler.CompileTest.test_update 3.6_mssql_pyodbc_dbapiunicode_cextensions 83,81
+test.aaa_profiling.test_compiler.CompileTest.test_update 3.6_mssql_pyodbc_dbapiunicode_nocextensions 83,81
+test.aaa_profiling.test_compiler.CompileTest.test_update 3.6_mysql_mysqldb_dbapiunicode_cextensions 83,81
+test.aaa_profiling.test_compiler.CompileTest.test_update 3.6_mysql_mysqldb_dbapiunicode_nocextensions 83,81
+test.aaa_profiling.test_compiler.CompileTest.test_update 3.6_mysql_pymysql_dbapiunicode_cextensions 81,81
+test.aaa_profiling.test_compiler.CompileTest.test_update 3.6_mysql_pymysql_dbapiunicode_nocextensions 81,81
+test.aaa_profiling.test_compiler.CompileTest.test_update 3.6_oracle_cx_oracle_dbapiunicode_cextensions 83,81
+test.aaa_profiling.test_compiler.CompileTest.test_update 3.6_oracle_cx_oracle_dbapiunicode_nocextensions 83,81
+test.aaa_profiling.test_compiler.CompileTest.test_update 3.6_postgresql_psycopg2_dbapiunicode_cextensions 83,81,77
+test.aaa_profiling.test_compiler.CompileTest.test_update 3.6_postgresql_psycopg2_dbapiunicode_nocextensions 83,81,77
+test.aaa_profiling.test_compiler.CompileTest.test_update 3.6_sqlite_pysqlite_dbapiunicode_cextensions 83,81
+test.aaa_profiling.test_compiler.CompileTest.test_update 3.6_sqlite_pysqlite_dbapiunicode_nocextensions 83,81
 
 # TEST: test.aaa_profiling.test_compiler.CompileTest.test_update_whereclause
 
-test.aaa_profiling.test_compiler.CompileTest.test_update_whereclause 2.7_mssql_pyodbc_dbapiunicode_cextensions 150
-test.aaa_profiling.test_compiler.CompileTest.test_update_whereclause 2.7_mssql_pyodbc_dbapiunicode_nocextensions 150
-test.aaa_profiling.test_compiler.CompileTest.test_update_whereclause 2.7_mysql_mysqldb_dbapiunicode_cextensions 150,150
-test.aaa_profiling.test_compiler.CompileTest.test_update_whereclause 2.7_mysql_mysqldb_dbapiunicode_nocextensions 150,150
-test.aaa_profiling.test_compiler.CompileTest.test_update_whereclause 2.7_mysql_pymysql_dbapiunicode_cextensions 150,150
-test.aaa_profiling.test_compiler.CompileTest.test_update_whereclause 2.7_mysql_pymysql_dbapiunicode_nocextensions 150,150
-test.aaa_profiling.test_compiler.CompileTest.test_update_whereclause 2.7_oracle_cx_oracle_dbapiunicode_cextensions 150
-test.aaa_profiling.test_compiler.CompileTest.test_update_whereclause 2.7_oracle_cx_oracle_dbapiunicode_nocextensions 150
-test.aaa_profiling.test_compiler.CompileTest.test_update_whereclause 2.7_postgresql_psycopg2_dbapiunicode_cextensions 150,150,150
-test.aaa_profiling.test_compiler.CompileTest.test_update_whereclause 2.7_postgresql_psycopg2_dbapiunicode_nocextensions 150,150,150
-test.aaa_profiling.test_compiler.CompileTest.test_update_whereclause 2.7_sqlite_pysqlite_dbapiunicode_cextensions 150
-test.aaa_profiling.test_compiler.CompileTest.test_update_whereclause 2.7_sqlite_pysqlite_dbapiunicode_nocextensions 150
-test.aaa_profiling.test_compiler.CompileTest.test_update_whereclause 3.6_mssql_pyodbc_dbapiunicode_cextensions 150
-test.aaa_profiling.test_compiler.CompileTest.test_update_whereclause 3.6_mssql_pyodbc_dbapiunicode_nocextensions 150
-test.aaa_profiling.test_compiler.CompileTest.test_update_whereclause 3.6_mysql_mysqldb_dbapiunicode_cextensions 150,150
-test.aaa_profiling.test_compiler.CompileTest.test_update_whereclause 3.6_mysql_mysqldb_dbapiunicode_nocextensions 150,150
-test.aaa_profiling.test_compiler.CompileTest.test_update_whereclause 3.6_mysql_pymysql_dbapiunicode_cextensions 150,150
-test.aaa_profiling.test_compiler.CompileTest.test_update_whereclause 3.6_mysql_pymysql_dbapiunicode_nocextensions 150,150
-test.aaa_profiling.test_compiler.CompileTest.test_update_whereclause 3.6_oracle_cx_oracle_dbapiunicode_cextensions 150
-test.aaa_profiling.test_compiler.CompileTest.test_update_whereclause 3.6_oracle_cx_oracle_dbapiunicode_nocextensions 150
-test.aaa_profiling.test_compiler.CompileTest.test_update_whereclause 3.6_postgresql_psycopg2_dbapiunicode_cextensions 150,150,150
-test.aaa_profiling.test_compiler.CompileTest.test_update_whereclause 3.6_postgresql_psycopg2_dbapiunicode_nocextensions 150,150,150
-test.aaa_profiling.test_compiler.CompileTest.test_update_whereclause 3.6_sqlite_pysqlite_dbapiunicode_cextensions 150
-test.aaa_profiling.test_compiler.CompileTest.test_update_whereclause 3.6_sqlite_pysqlite_dbapiunicode_nocextensions 150
+test.aaa_profiling.test_compiler.CompileTest.test_update_whereclause 2.7_mssql_pyodbc_dbapiunicode_cextensions 156,156
+test.aaa_profiling.test_compiler.CompileTest.test_update_whereclause 2.7_mssql_pyodbc_dbapiunicode_nocextensions 156,156
+test.aaa_profiling.test_compiler.CompileTest.test_update_whereclause 2.7_mysql_mysqldb_dbapiunicode_cextensions 156,156
+test.aaa_profiling.test_compiler.CompileTest.test_update_whereclause 2.7_mysql_mysqldb_dbapiunicode_nocextensions 156,156
+test.aaa_profiling.test_compiler.CompileTest.test_update_whereclause 2.7_mysql_pymysql_dbapiunicode_cextensions 156,156
+test.aaa_profiling.test_compiler.CompileTest.test_update_whereclause 2.7_mysql_pymysql_dbapiunicode_nocextensions 156,156
+test.aaa_profiling.test_compiler.CompileTest.test_update_whereclause 2.7_oracle_cx_oracle_dbapiunicode_cextensions 156,156
+test.aaa_profiling.test_compiler.CompileTest.test_update_whereclause 2.7_oracle_cx_oracle_dbapiunicode_nocextensions 156,156
+test.aaa_profiling.test_compiler.CompileTest.test_update_whereclause 2.7_postgresql_psycopg2_dbapiunicode_cextensions 156,156,150
+test.aaa_profiling.test_compiler.CompileTest.test_update_whereclause 2.7_postgresql_psycopg2_dbapiunicode_nocextensions 156,156,150
+test.aaa_profiling.test_compiler.CompileTest.test_update_whereclause 2.7_sqlite_pysqlite_dbapiunicode_cextensions 156,156
+test.aaa_profiling.test_compiler.CompileTest.test_update_whereclause 2.7_sqlite_pysqlite_dbapiunicode_nocextensions 156,156
+test.aaa_profiling.test_compiler.CompileTest.test_update_whereclause 3.6_mssql_pyodbc_dbapiunicode_cextensions 156,156
+test.aaa_profiling.test_compiler.CompileTest.test_update_whereclause 3.6_mssql_pyodbc_dbapiunicode_nocextensions 156,156
+test.aaa_profiling.test_compiler.CompileTest.test_update_whereclause 3.6_mysql_mysqldb_dbapiunicode_cextensions 156,156
+test.aaa_profiling.test_compiler.CompileTest.test_update_whereclause 3.6_mysql_mysqldb_dbapiunicode_nocextensions 156,156
+test.aaa_profiling.test_compiler.CompileTest.test_update_whereclause 3.6_mysql_pymysql_dbapiunicode_cextensions 156,156
+test.aaa_profiling.test_compiler.CompileTest.test_update_whereclause 3.6_mysql_pymysql_dbapiunicode_nocextensions 156,156
+test.aaa_profiling.test_compiler.CompileTest.test_update_whereclause 3.6_oracle_cx_oracle_dbapiunicode_cextensions 156,156
+test.aaa_profiling.test_compiler.CompileTest.test_update_whereclause 3.6_oracle_cx_oracle_dbapiunicode_nocextensions 156,156
+test.aaa_profiling.test_compiler.CompileTest.test_update_whereclause 3.6_postgresql_psycopg2_dbapiunicode_cextensions 156,156,150
+test.aaa_profiling.test_compiler.CompileTest.test_update_whereclause 3.6_postgresql_psycopg2_dbapiunicode_nocextensions 156,156,150
+test.aaa_profiling.test_compiler.CompileTest.test_update_whereclause 3.6_sqlite_pysqlite_dbapiunicode_cextensions 156,156
+test.aaa_profiling.test_compiler.CompileTest.test_update_whereclause 3.6_sqlite_pysqlite_dbapiunicode_nocextensions 156,156
 
 # TEST: test.aaa_profiling.test_orm.AttributeOverheadTest.test_attribute_set
 
@@ -286,62 +286,62 @@ test.aaa_profiling.test_orm.BranchedOptionTest.test_query_opts_unbound_branching
 
 # TEST: test.aaa_profiling.test_orm.DeferOptionsTest.test_baseline
 
-test.aaa_profiling.test_orm.DeferOptionsTest.test_baseline 2.7_mssql_pyodbc_dbapiunicode_cextensions 17193
-test.aaa_profiling.test_orm.DeferOptionsTest.test_baseline 2.7_mssql_pyodbc_dbapiunicode_nocextensions 26198
-test.aaa_profiling.test_orm.DeferOptionsTest.test_baseline 2.7_mysql_mysqldb_dbapiunicode_cextensions 41206
-test.aaa_profiling.test_orm.DeferOptionsTest.test_baseline 2.7_mysql_mysqldb_dbapiunicode_nocextensions 50211
-test.aaa_profiling.test_orm.DeferOptionsTest.test_baseline 2.7_oracle_cx_oracle_dbapiunicode_cextensions 17273
-test.aaa_profiling.test_orm.DeferOptionsTest.test_baseline 2.7_oracle_cx_oracle_dbapiunicode_nocextensions 26278
-test.aaa_profiling.test_orm.DeferOptionsTest.test_baseline 2.7_postgresql_psycopg2_dbapiunicode_cextensions 17185
-test.aaa_profiling.test_orm.DeferOptionsTest.test_baseline 2.7_postgresql_psycopg2_dbapiunicode_nocextensions 26190
-test.aaa_profiling.test_orm.DeferOptionsTest.test_baseline 2.7_sqlite_pysqlite_dbapiunicode_cextensions 17150
-test.aaa_profiling.test_orm.DeferOptionsTest.test_baseline 2.7_sqlite_pysqlite_dbapiunicode_nocextensions 26155
-test.aaa_profiling.test_orm.DeferOptionsTest.test_baseline 3.6_mssql_pyodbc_dbapiunicode_cextensions 18207
-test.aaa_profiling.test_orm.DeferOptionsTest.test_baseline 3.6_mssql_pyodbc_dbapiunicode_nocextensions 27214
-test.aaa_profiling.test_orm.DeferOptionsTest.test_baseline 3.6_mysql_mysqldb_dbapiunicode_cextensions 30221
-test.aaa_profiling.test_orm.DeferOptionsTest.test_baseline 3.6_mysql_mysqldb_dbapiunicode_nocextensions 39228
-test.aaa_profiling.test_orm.DeferOptionsTest.test_baseline 3.6_oracle_cx_oracle_dbapiunicode_cextensions 18287
-test.aaa_profiling.test_orm.DeferOptionsTest.test_baseline 3.6_oracle_cx_oracle_dbapiunicode_nocextensions 27294
-test.aaa_profiling.test_orm.DeferOptionsTest.test_baseline 3.6_postgresql_psycopg2_dbapiunicode_cextensions 18214
-test.aaa_profiling.test_orm.DeferOptionsTest.test_baseline 3.6_postgresql_psycopg2_dbapiunicode_nocextensions 27221
-test.aaa_profiling.test_orm.DeferOptionsTest.test_baseline 3.6_sqlite_pysqlite_dbapiunicode_cextensions 18172
-test.aaa_profiling.test_orm.DeferOptionsTest.test_baseline 3.6_sqlite_pysqlite_dbapiunicode_nocextensions 27179
+test.aaa_profiling.test_orm.DeferOptionsTest.test_baseline 2.7_mssql_pyodbc_dbapiunicode_cextensions 17207
+test.aaa_profiling.test_orm.DeferOptionsTest.test_baseline 2.7_mssql_pyodbc_dbapiunicode_nocextensions 26212
+test.aaa_profiling.test_orm.DeferOptionsTest.test_baseline 2.7_mysql_mysqldb_dbapiunicode_cextensions 41220
+test.aaa_profiling.test_orm.DeferOptionsTest.test_baseline 2.7_mysql_mysqldb_dbapiunicode_nocextensions 50225
+test.aaa_profiling.test_orm.DeferOptionsTest.test_baseline 2.7_oracle_cx_oracle_dbapiunicode_cextensions 17287
+test.aaa_profiling.test_orm.DeferOptionsTest.test_baseline 2.7_oracle_cx_oracle_dbapiunicode_nocextensions 26292
+test.aaa_profiling.test_orm.DeferOptionsTest.test_baseline 2.7_postgresql_psycopg2_dbapiunicode_cextensions 17199
+test.aaa_profiling.test_orm.DeferOptionsTest.test_baseline 2.7_postgresql_psycopg2_dbapiunicode_nocextensions 26204
+test.aaa_profiling.test_orm.DeferOptionsTest.test_baseline 2.7_sqlite_pysqlite_dbapiunicode_cextensions 17164
+test.aaa_profiling.test_orm.DeferOptionsTest.test_baseline 2.7_sqlite_pysqlite_dbapiunicode_nocextensions 26169
+test.aaa_profiling.test_orm.DeferOptionsTest.test_baseline 3.6_mssql_pyodbc_dbapiunicode_cextensions 18221
+test.aaa_profiling.test_orm.DeferOptionsTest.test_baseline 3.6_mssql_pyodbc_dbapiunicode_nocextensions 27228
+test.aaa_profiling.test_orm.DeferOptionsTest.test_baseline 3.6_mysql_mysqldb_dbapiunicode_cextensions 30235
+test.aaa_profiling.test_orm.DeferOptionsTest.test_baseline 3.6_mysql_mysqldb_dbapiunicode_nocextensions 39242
+test.aaa_profiling.test_orm.DeferOptionsTest.test_baseline 3.6_oracle_cx_oracle_dbapiunicode_cextensions 18301
+test.aaa_profiling.test_orm.DeferOptionsTest.test_baseline 3.6_oracle_cx_oracle_dbapiunicode_nocextensions 27308
+test.aaa_profiling.test_orm.DeferOptionsTest.test_baseline 3.6_postgresql_psycopg2_dbapiunicode_cextensions 18228
+test.aaa_profiling.test_orm.DeferOptionsTest.test_baseline 3.6_postgresql_psycopg2_dbapiunicode_nocextensions 27235
+test.aaa_profiling.test_orm.DeferOptionsTest.test_baseline 3.6_sqlite_pysqlite_dbapiunicode_cextensions 18186
+test.aaa_profiling.test_orm.DeferOptionsTest.test_baseline 3.6_sqlite_pysqlite_dbapiunicode_nocextensions 27193
 
 # TEST: test.aaa_profiling.test_orm.DeferOptionsTest.test_defer_many_cols
 
-test.aaa_profiling.test_orm.DeferOptionsTest.test_defer_many_cols 2.7_mssql_pyodbc_dbapiunicode_cextensions 23233
-test.aaa_profiling.test_orm.DeferOptionsTest.test_defer_many_cols 2.7_mssql_pyodbc_dbapiunicode_nocextensions 26238
-test.aaa_profiling.test_orm.DeferOptionsTest.test_defer_many_cols 2.7_mysql_mysqldb_dbapiunicode_cextensions 23258
-test.aaa_profiling.test_orm.DeferOptionsTest.test_defer_many_cols 2.7_mysql_mysqldb_dbapiunicode_nocextensions 26263
-test.aaa_profiling.test_orm.DeferOptionsTest.test_defer_many_cols 2.7_oracle_cx_oracle_dbapiunicode_cextensions 23245
-test.aaa_profiling.test_orm.DeferOptionsTest.test_defer_many_cols 2.7_oracle_cx_oracle_dbapiunicode_nocextensions 26250
-test.aaa_profiling.test_orm.DeferOptionsTest.test_defer_many_cols 2.7_postgresql_psycopg2_dbapiunicode_cextensions 23225
-test.aaa_profiling.test_orm.DeferOptionsTest.test_defer_many_cols 2.7_postgresql_psycopg2_dbapiunicode_nocextensions 26230
-test.aaa_profiling.test_orm.DeferOptionsTest.test_defer_many_cols 2.7_sqlite_pysqlite_dbapiunicode_cextensions 23202
-test.aaa_profiling.test_orm.DeferOptionsTest.test_defer_many_cols 2.7_sqlite_pysqlite_dbapiunicode_nocextensions 26207
-test.aaa_profiling.test_orm.DeferOptionsTest.test_defer_many_cols 3.6_mssql_pyodbc_dbapiunicode_cextensions 24260
-test.aaa_profiling.test_orm.DeferOptionsTest.test_defer_many_cols 3.6_mssql_pyodbc_dbapiunicode_nocextensions 27267
-test.aaa_profiling.test_orm.DeferOptionsTest.test_defer_many_cols 3.6_mysql_mysqldb_dbapiunicode_cextensions 24286
-test.aaa_profiling.test_orm.DeferOptionsTest.test_defer_many_cols 3.6_mysql_mysqldb_dbapiunicode_nocextensions 27293
-test.aaa_profiling.test_orm.DeferOptionsTest.test_defer_many_cols 3.6_oracle_cx_oracle_dbapiunicode_cextensions 24272
-test.aaa_profiling.test_orm.DeferOptionsTest.test_defer_many_cols 3.6_oracle_cx_oracle_dbapiunicode_nocextensions 27279
-test.aaa_profiling.test_orm.DeferOptionsTest.test_defer_many_cols 3.6_postgresql_psycopg2_dbapiunicode_cextensions 24255
-test.aaa_profiling.test_orm.DeferOptionsTest.test_defer_many_cols 3.6_postgresql_psycopg2_dbapiunicode_nocextensions 27262
-test.aaa_profiling.test_orm.DeferOptionsTest.test_defer_many_cols 3.6_sqlite_pysqlite_dbapiunicode_cextensions 24237
-test.aaa_profiling.test_orm.DeferOptionsTest.test_defer_many_cols 3.6_sqlite_pysqlite_dbapiunicode_nocextensions 27244
+test.aaa_profiling.test_orm.DeferOptionsTest.test_defer_many_cols 2.7_mssql_pyodbc_dbapiunicode_cextensions 23235
+test.aaa_profiling.test_orm.DeferOptionsTest.test_defer_many_cols 2.7_mssql_pyodbc_dbapiunicode_nocextensions 26240
+test.aaa_profiling.test_orm.DeferOptionsTest.test_defer_many_cols 2.7_mysql_mysqldb_dbapiunicode_cextensions 23260
+test.aaa_profiling.test_orm.DeferOptionsTest.test_defer_many_cols 2.7_mysql_mysqldb_dbapiunicode_nocextensions 26265
+test.aaa_profiling.test_orm.DeferOptionsTest.test_defer_many_cols 2.7_oracle_cx_oracle_dbapiunicode_cextensions 23247
+test.aaa_profiling.test_orm.DeferOptionsTest.test_defer_many_cols 2.7_oracle_cx_oracle_dbapiunicode_nocextensions 26252
+test.aaa_profiling.test_orm.DeferOptionsTest.test_defer_many_cols 2.7_postgresql_psycopg2_dbapiunicode_cextensions 23227
+test.aaa_profiling.test_orm.DeferOptionsTest.test_defer_many_cols 2.7_postgresql_psycopg2_dbapiunicode_nocextensions 26232
+test.aaa_profiling.test_orm.DeferOptionsTest.test_defer_many_cols 2.7_sqlite_pysqlite_dbapiunicode_cextensions 23204
+test.aaa_profiling.test_orm.DeferOptionsTest.test_defer_many_cols 2.7_sqlite_pysqlite_dbapiunicode_nocextensions 26209
+test.aaa_profiling.test_orm.DeferOptionsTest.test_defer_many_cols 3.6_mssql_pyodbc_dbapiunicode_cextensions 24262
+test.aaa_profiling.test_orm.DeferOptionsTest.test_defer_many_cols 3.6_mssql_pyodbc_dbapiunicode_nocextensions 27269
+test.aaa_profiling.test_orm.DeferOptionsTest.test_defer_many_cols 3.6_mysql_mysqldb_dbapiunicode_cextensions 24288
+test.aaa_profiling.test_orm.DeferOptionsTest.test_defer_many_cols 3.6_mysql_mysqldb_dbapiunicode_nocextensions 27295
+test.aaa_profiling.test_orm.DeferOptionsTest.test_defer_many_cols 3.6_oracle_cx_oracle_dbapiunicode_cextensions 24274
+test.aaa_profiling.test_orm.DeferOptionsTest.test_defer_many_cols 3.6_oracle_cx_oracle_dbapiunicode_nocextensions 27281
+test.aaa_profiling.test_orm.DeferOptionsTest.test_defer_many_cols 3.6_postgresql_psycopg2_dbapiunicode_cextensions 24257
+test.aaa_profiling.test_orm.DeferOptionsTest.test_defer_many_cols 3.6_postgresql_psycopg2_dbapiunicode_nocextensions 27264
+test.aaa_profiling.test_orm.DeferOptionsTest.test_defer_many_cols 3.6_sqlite_pysqlite_dbapiunicode_cextensions 24239
+test.aaa_profiling.test_orm.DeferOptionsTest.test_defer_many_cols 3.6_sqlite_pysqlite_dbapiunicode_nocextensions 27246
 
 # TEST: test.aaa_profiling.test_orm.JoinedEagerLoadTest.test_build_query
 
 test.aaa_profiling.test_orm.JoinedEagerLoadTest.test_build_query 2.7_mssql_pyodbc_dbapiunicode_cextensions 418033
 test.aaa_profiling.test_orm.JoinedEagerLoadTest.test_build_query 2.7_mssql_pyodbc_dbapiunicode_nocextensions 418033
-test.aaa_profiling.test_orm.JoinedEagerLoadTest.test_build_query 2.7_mysql_mysqldb_dbapiunicode_cextensions 418124
+test.aaa_profiling.test_orm.JoinedEagerLoadTest.test_build_query 2.7_mysql_mysqldb_dbapiunicode_cextensions 418138
 test.aaa_profiling.test_orm.JoinedEagerLoadTest.test_build_query 2.7_mysql_mysqldb_dbapiunicode_nocextensions 418138
 test.aaa_profiling.test_orm.JoinedEagerLoadTest.test_build_query 2.7_oracle_cx_oracle_dbapiunicode_cextensions 418131
 test.aaa_profiling.test_orm.JoinedEagerLoadTest.test_build_query 2.7_oracle_cx_oracle_dbapiunicode_nocextensions 418138
-test.aaa_profiling.test_orm.JoinedEagerLoadTest.test_build_query 2.7_postgresql_psycopg2_dbapiunicode_cextensions 418131
-test.aaa_profiling.test_orm.JoinedEagerLoadTest.test_build_query 2.7_postgresql_psycopg2_dbapiunicode_nocextensions 418152
-test.aaa_profiling.test_orm.JoinedEagerLoadTest.test_build_query 2.7_sqlite_pysqlite_dbapiunicode_cextensions 418124
-test.aaa_profiling.test_orm.JoinedEagerLoadTest.test_build_query 2.7_sqlite_pysqlite_dbapiunicode_nocextensions 418131
+test.aaa_profiling.test_orm.JoinedEagerLoadTest.test_build_query 2.7_postgresql_psycopg2_dbapiunicode_cextensions 418138
+test.aaa_profiling.test_orm.JoinedEagerLoadTest.test_build_query 2.7_postgresql_psycopg2_dbapiunicode_nocextensions 418131
+test.aaa_profiling.test_orm.JoinedEagerLoadTest.test_build_query 2.7_sqlite_pysqlite_dbapiunicode_cextensions 418152
+test.aaa_profiling.test_orm.JoinedEagerLoadTest.test_build_query 2.7_sqlite_pysqlite_dbapiunicode_nocextensions 418138
 test.aaa_profiling.test_orm.JoinedEagerLoadTest.test_build_query 3.6_mssql_pyodbc_dbapiunicode_cextensions 445997
 test.aaa_profiling.test_orm.JoinedEagerLoadTest.test_build_query 3.6_mssql_pyodbc_dbapiunicode_nocextensions 445997
 test.aaa_profiling.test_orm.JoinedEagerLoadTest.test_build_query 3.6_mysql_mysqldb_dbapiunicode_cextensions 446102
@@ -355,26 +355,26 @@ test.aaa_profiling.test_orm.JoinedEagerLoadTest.test_build_query 3.6_sqlite_pysq
 
 # TEST: test.aaa_profiling.test_orm.JoinedEagerLoadTest.test_fetch_results
 
-test.aaa_profiling.test_orm.JoinedEagerLoadTest.test_fetch_results 2.7_mssql_pyodbc_dbapiunicode_cextensions 449846
-test.aaa_profiling.test_orm.JoinedEagerLoadTest.test_fetch_results 2.7_mssql_pyodbc_dbapiunicode_nocextensions 462646
-test.aaa_profiling.test_orm.JoinedEagerLoadTest.test_fetch_results 2.7_mysql_mysqldb_dbapiunicode_cextensions 432388
-test.aaa_profiling.test_orm.JoinedEagerLoadTest.test_fetch_results 2.7_mysql_mysqldb_dbapiunicode_nocextensions 445188
-test.aaa_profiling.test_orm.JoinedEagerLoadTest.test_fetch_results 2.7_oracle_cx_oracle_dbapiunicode_cextensions 536512
-test.aaa_profiling.test_orm.JoinedEagerLoadTest.test_fetch_results 2.7_oracle_cx_oracle_dbapiunicode_nocextensions 549214
-test.aaa_profiling.test_orm.JoinedEagerLoadTest.test_fetch_results 2.7_postgresql_psycopg2_dbapiunicode_cextensions 443046
-test.aaa_profiling.test_orm.JoinedEagerLoadTest.test_fetch_results 2.7_postgresql_psycopg2_dbapiunicode_nocextensions 455846
-test.aaa_profiling.test_orm.JoinedEagerLoadTest.test_fetch_results 2.7_sqlite_pysqlite_dbapiunicode_cextensions 422758
-test.aaa_profiling.test_orm.JoinedEagerLoadTest.test_fetch_results 2.7_sqlite_pysqlite_dbapiunicode_nocextensions 435460
-test.aaa_profiling.test_orm.JoinedEagerLoadTest.test_fetch_results 3.6_mssql_pyodbc_dbapiunicode_cextensions 452955
-test.aaa_profiling.test_orm.JoinedEagerLoadTest.test_fetch_results 3.6_mssql_pyodbc_dbapiunicode_nocextensions 465955
-test.aaa_profiling.test_orm.JoinedEagerLoadTest.test_fetch_results 3.6_mysql_mysqldb_dbapiunicode_cextensions 435597
-test.aaa_profiling.test_orm.JoinedEagerLoadTest.test_fetch_results 3.6_mysql_mysqldb_dbapiunicode_nocextensions 448597
-test.aaa_profiling.test_orm.JoinedEagerLoadTest.test_fetch_results 3.6_oracle_cx_oracle_dbapiunicode_cextensions 539523
-test.aaa_profiling.test_orm.JoinedEagerLoadTest.test_fetch_results 3.6_oracle_cx_oracle_dbapiunicode_nocextensions 552523
-test.aaa_profiling.test_orm.JoinedEagerLoadTest.test_fetch_results 3.6_postgresql_psycopg2_dbapiunicode_cextensions 462855
-test.aaa_profiling.test_orm.JoinedEagerLoadTest.test_fetch_results 3.6_postgresql_psycopg2_dbapiunicode_nocextensions 475855
-test.aaa_profiling.test_orm.JoinedEagerLoadTest.test_fetch_results 3.6_sqlite_pysqlite_dbapiunicode_cextensions 427369
-test.aaa_profiling.test_orm.JoinedEagerLoadTest.test_fetch_results 3.6_sqlite_pysqlite_dbapiunicode_nocextensions 440369
+test.aaa_profiling.test_orm.JoinedEagerLoadTest.test_fetch_results 2.7_mssql_pyodbc_dbapiunicode_cextensions 466544
+test.aaa_profiling.test_orm.JoinedEagerLoadTest.test_fetch_results 2.7_mssql_pyodbc_dbapiunicode_nocextensions 479246
+test.aaa_profiling.test_orm.JoinedEagerLoadTest.test_fetch_results 2.7_mysql_mysqldb_dbapiunicode_cextensions 448988
+test.aaa_profiling.test_orm.JoinedEagerLoadTest.test_fetch_results 2.7_mysql_mysqldb_dbapiunicode_nocextensions 461788
+test.aaa_profiling.test_orm.JoinedEagerLoadTest.test_fetch_results 2.7_oracle_cx_oracle_dbapiunicode_cextensions 553126
+test.aaa_profiling.test_orm.JoinedEagerLoadTest.test_fetch_results 2.7_oracle_cx_oracle_dbapiunicode_nocextensions 565828
+test.aaa_profiling.test_orm.JoinedEagerLoadTest.test_fetch_results 2.7_postgresql_psycopg2_dbapiunicode_cextensions 459744
+test.aaa_profiling.test_orm.JoinedEagerLoadTest.test_fetch_results 2.7_postgresql_psycopg2_dbapiunicode_nocextensions 472446
+test.aaa_profiling.test_orm.JoinedEagerLoadTest.test_fetch_results 2.7_sqlite_pysqlite_dbapiunicode_cextensions 439358
+test.aaa_profiling.test_orm.JoinedEagerLoadTest.test_fetch_results 2.7_sqlite_pysqlite_dbapiunicode_nocextensions 452060
+test.aaa_profiling.test_orm.JoinedEagerLoadTest.test_fetch_results 3.6_mssql_pyodbc_dbapiunicode_cextensions 469457
+test.aaa_profiling.test_orm.JoinedEagerLoadTest.test_fetch_results 3.6_mssql_pyodbc_dbapiunicode_nocextensions 482555
+test.aaa_profiling.test_orm.JoinedEagerLoadTest.test_fetch_results 3.6_mysql_mysqldb_dbapiunicode_cextensions 452197
+test.aaa_profiling.test_orm.JoinedEagerLoadTest.test_fetch_results 3.6_mysql_mysqldb_dbapiunicode_nocextensions 465197
+test.aaa_profiling.test_orm.JoinedEagerLoadTest.test_fetch_results 3.6_oracle_cx_oracle_dbapiunicode_cextensions 556137
+test.aaa_profiling.test_orm.JoinedEagerLoadTest.test_fetch_results 3.6_oracle_cx_oracle_dbapiunicode_nocextensions 569137
+test.aaa_profiling.test_orm.JoinedEagerLoadTest.test_fetch_results 3.6_postgresql_psycopg2_dbapiunicode_cextensions 479455
+test.aaa_profiling.test_orm.JoinedEagerLoadTest.test_fetch_results 3.6_postgresql_psycopg2_dbapiunicode_nocextensions 492455
+test.aaa_profiling.test_orm.JoinedEagerLoadTest.test_fetch_results 3.6_sqlite_pysqlite_dbapiunicode_cextensions 443969
+test.aaa_profiling.test_orm.JoinedEagerLoadTest.test_fetch_results 3.6_sqlite_pysqlite_dbapiunicode_nocextensions 456969
 
 # TEST: test.aaa_profiling.test_orm.LoadManyToOneFromIdentityTest.test_many_to_one_load_identity
 
@@ -401,72 +401,72 @@ 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_mssql_pyodbc_dbapiunicode_cextensions 89725
-test.aaa_profiling.test_orm.LoadManyToOneFromIdentityTest.test_many_to_one_load_no_identity 2.7_mssql_pyodbc_dbapiunicode_nocextensions 91524
-test.aaa_profiling.test_orm.LoadManyToOneFromIdentityTest.test_many_to_one_load_no_identity 2.7_mysql_mysqldb_dbapiunicode_cextensions 101254
-test.aaa_profiling.test_orm.LoadManyToOneFromIdentityTest.test_many_to_one_load_no_identity 2.7_mysql_mysqldb_dbapiunicode_nocextensions 102959
-test.aaa_profiling.test_orm.LoadManyToOneFromIdentityTest.test_many_to_one_load_no_identity 2.7_oracle_cx_oracle_dbapiunicode_cextensions 97213
-test.aaa_profiling.test_orm.LoadManyToOneFromIdentityTest.test_many_to_one_load_no_identity 2.7_oracle_cx_oracle_dbapiunicode_nocextensions 98965
-test.aaa_profiling.test_orm.LoadManyToOneFromIdentityTest.test_many_to_one_load_no_identity 2.7_postgresql_psycopg2_dbapiunicode_cextensions 91705
-test.aaa_profiling.test_orm.LoadManyToOneFromIdentityTest.test_many_to_one_load_no_identity 2.7_postgresql_psycopg2_dbapiunicode_nocextensions 93457
-test.aaa_profiling.test_orm.LoadManyToOneFromIdentityTest.test_many_to_one_load_no_identity 2.7_sqlite_pysqlite_dbapiunicode_cextensions 89206
-test.aaa_profiling.test_orm.LoadManyToOneFromIdentityTest.test_many_to_one_load_no_identity 2.7_sqlite_pysqlite_dbapiunicode_nocextensions 91005
-test.aaa_profiling.test_orm.LoadManyToOneFromIdentityTest.test_many_to_one_load_no_identity 3.6_mssql_pyodbc_dbapiunicode_cextensions 91292
-test.aaa_profiling.test_orm.LoadManyToOneFromIdentityTest.test_many_to_one_load_no_identity 3.6_mssql_pyodbc_dbapiunicode_nocextensions 93046
-test.aaa_profiling.test_orm.LoadManyToOneFromIdentityTest.test_many_to_one_load_no_identity 3.6_mysql_mysqldb_dbapiunicode_cextensions 103024
-test.aaa_profiling.test_orm.LoadManyToOneFromIdentityTest.test_many_to_one_load_no_identity 3.6_mysql_mysqldb_dbapiunicode_nocextensions 104778
-test.aaa_profiling.test_orm.LoadManyToOneFromIdentityTest.test_many_to_one_load_no_identity 3.6_oracle_cx_oracle_dbapiunicode_cextensions 98780
-test.aaa_profiling.test_orm.LoadManyToOneFromIdentityTest.test_many_to_one_load_no_identity 3.6_oracle_cx_oracle_dbapiunicode_nocextensions 100534
-test.aaa_profiling.test_orm.LoadManyToOneFromIdentityTest.test_many_to_one_load_no_identity 3.6_postgresql_psycopg2_dbapiunicode_cextensions 94272
-test.aaa_profiling.test_orm.LoadManyToOneFromIdentityTest.test_many_to_one_load_no_identity 3.6_postgresql_psycopg2_dbapiunicode_nocextensions 96026
-test.aaa_profiling.test_orm.LoadManyToOneFromIdentityTest.test_many_to_one_load_no_identity 3.6_sqlite_pysqlite_dbapiunicode_cextensions 90773
-test.aaa_profiling.test_orm.LoadManyToOneFromIdentityTest.test_many_to_one_load_no_identity 3.6_sqlite_pysqlite_dbapiunicode_nocextensions 92527
+test.aaa_profiling.test_orm.LoadManyToOneFromIdentityTest.test_many_to_one_load_no_identity 2.7_mssql_pyodbc_dbapiunicode_cextensions 89778
+test.aaa_profiling.test_orm.LoadManyToOneFromIdentityTest.test_many_to_one_load_no_identity 2.7_mssql_pyodbc_dbapiunicode_nocextensions 91530
+test.aaa_profiling.test_orm.LoadManyToOneFromIdentityTest.test_many_to_one_load_no_identity 2.7_mysql_mysqldb_dbapiunicode_cextensions 101260
+test.aaa_profiling.test_orm.LoadManyToOneFromIdentityTest.test_many_to_one_load_no_identity 2.7_mysql_mysqldb_dbapiunicode_nocextensions 102965
+test.aaa_profiling.test_orm.LoadManyToOneFromIdentityTest.test_many_to_one_load_no_identity 2.7_oracle_cx_oracle_dbapiunicode_cextensions 97469
+test.aaa_profiling.test_orm.LoadManyToOneFromIdentityTest.test_many_to_one_load_no_identity 2.7_oracle_cx_oracle_dbapiunicode_nocextensions 99221
+test.aaa_profiling.test_orm.LoadManyToOneFromIdentityTest.test_many_to_one_load_no_identity 2.7_postgresql_psycopg2_dbapiunicode_cextensions 91758
+test.aaa_profiling.test_orm.LoadManyToOneFromIdentityTest.test_many_to_one_load_no_identity 2.7_postgresql_psycopg2_dbapiunicode_nocextensions 93463
+test.aaa_profiling.test_orm.LoadManyToOneFromIdentityTest.test_many_to_one_load_no_identity 2.7_sqlite_pysqlite_dbapiunicode_cextensions 89212
+test.aaa_profiling.test_orm.LoadManyToOneFromIdentityTest.test_many_to_one_load_no_identity 2.7_sqlite_pysqlite_dbapiunicode_nocextensions 90964
+test.aaa_profiling.test_orm.LoadManyToOneFromIdentityTest.test_many_to_one_load_no_identity 3.6_mssql_pyodbc_dbapiunicode_cextensions 91298
+test.aaa_profiling.test_orm.LoadManyToOneFromIdentityTest.test_many_to_one_load_no_identity 3.6_mssql_pyodbc_dbapiunicode_nocextensions 93052
+test.aaa_profiling.test_orm.LoadManyToOneFromIdentityTest.test_many_to_one_load_no_identity 3.6_mysql_mysqldb_dbapiunicode_cextensions 103030
+test.aaa_profiling.test_orm.LoadManyToOneFromIdentityTest.test_many_to_one_load_no_identity 3.6_mysql_mysqldb_dbapiunicode_nocextensions 104784
+test.aaa_profiling.test_orm.LoadManyToOneFromIdentityTest.test_many_to_one_load_no_identity 3.6_oracle_cx_oracle_dbapiunicode_cextensions 99036
+test.aaa_profiling.test_orm.LoadManyToOneFromIdentityTest.test_many_to_one_load_no_identity 3.6_oracle_cx_oracle_dbapiunicode_nocextensions 100790
+test.aaa_profiling.test_orm.LoadManyToOneFromIdentityTest.test_many_to_one_load_no_identity 3.6_postgresql_psycopg2_dbapiunicode_cextensions 94278
+test.aaa_profiling.test_orm.LoadManyToOneFromIdentityTest.test_many_to_one_load_no_identity 3.6_postgresql_psycopg2_dbapiunicode_nocextensions 96032
+test.aaa_profiling.test_orm.LoadManyToOneFromIdentityTest.test_many_to_one_load_no_identity 3.6_sqlite_pysqlite_dbapiunicode_cextensions 90779
+test.aaa_profiling.test_orm.LoadManyToOneFromIdentityTest.test_many_to_one_load_no_identity 3.6_sqlite_pysqlite_dbapiunicode_nocextensions 92533
 
 # 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_mssql_pyodbc_dbapiunicode_cextensions 18354
-test.aaa_profiling.test_orm.MergeBackrefsTest.test_merge_pending_with_all_pks 2.7_mssql_pyodbc_dbapiunicode_nocextensions 18578
-test.aaa_profiling.test_orm.MergeBackrefsTest.test_merge_pending_with_all_pks 2.7_mysql_mysqldb_dbapiunicode_cextensions 18844
-test.aaa_profiling.test_orm.MergeBackrefsTest.test_merge_pending_with_all_pks 2.7_mysql_mysqldb_dbapiunicode_nocextensions 19116
-test.aaa_profiling.test_orm.MergeBackrefsTest.test_merge_pending_with_all_pks 2.7_oracle_cx_oracle_dbapiunicode_cextensions 18994
-test.aaa_profiling.test_orm.MergeBackrefsTest.test_merge_pending_with_all_pks 2.7_oracle_cx_oracle_dbapiunicode_nocextensions 19218
-test.aaa_profiling.test_orm.MergeBackrefsTest.test_merge_pending_with_all_pks 2.7_postgresql_psycopg2_dbapiunicode_cextensions 18292
-test.aaa_profiling.test_orm.MergeBackrefsTest.test_merge_pending_with_all_pks 2.7_postgresql_psycopg2_dbapiunicode_nocextensions 18468
-test.aaa_profiling.test_orm.MergeBackrefsTest.test_merge_pending_with_all_pks 2.7_sqlite_pysqlite_dbapiunicode_cextensions 18150
-test.aaa_profiling.test_orm.MergeBackrefsTest.test_merge_pending_with_all_pks 2.7_sqlite_pysqlite_dbapiunicode_nocextensions 18374
-test.aaa_profiling.test_orm.MergeBackrefsTest.test_merge_pending_with_all_pks 3.6_mssql_pyodbc_dbapiunicode_cextensions 18839
-test.aaa_profiling.test_orm.MergeBackrefsTest.test_merge_pending_with_all_pks 3.6_mssql_pyodbc_dbapiunicode_nocextensions 19083
-test.aaa_profiling.test_orm.MergeBackrefsTest.test_merge_pending_with_all_pks 3.6_mysql_mysqldb_dbapiunicode_cextensions 19379
-test.aaa_profiling.test_orm.MergeBackrefsTest.test_merge_pending_with_all_pks 3.6_mysql_mysqldb_dbapiunicode_nocextensions 19611
-test.aaa_profiling.test_orm.MergeBackrefsTest.test_merge_pending_with_all_pks 3.6_oracle_cx_oracle_dbapiunicode_cextensions 19433
-test.aaa_profiling.test_orm.MergeBackrefsTest.test_merge_pending_with_all_pks 3.6_oracle_cx_oracle_dbapiunicode_nocextensions 19665
-test.aaa_profiling.test_orm.MergeBackrefsTest.test_merge_pending_with_all_pks 3.6_postgresql_psycopg2_dbapiunicode_cextensions 18787
-test.aaa_profiling.test_orm.MergeBackrefsTest.test_merge_pending_with_all_pks 3.6_postgresql_psycopg2_dbapiunicode_nocextensions 19019
-test.aaa_profiling.test_orm.MergeBackrefsTest.test_merge_pending_with_all_pks 3.6_sqlite_pysqlite_dbapiunicode_cextensions 18609
-test.aaa_profiling.test_orm.MergeBackrefsTest.test_merge_pending_with_all_pks 3.6_sqlite_pysqlite_dbapiunicode_nocextensions 18853
+test.aaa_profiling.test_orm.MergeBackrefsTest.test_merge_pending_with_all_pks 2.7_mssql_pyodbc_dbapiunicode_cextensions 18454
+test.aaa_profiling.test_orm.MergeBackrefsTest.test_merge_pending_with_all_pks 2.7_mssql_pyodbc_dbapiunicode_nocextensions 18630
+test.aaa_profiling.test_orm.MergeBackrefsTest.test_merge_pending_with_all_pks 2.7_mysql_mysqldb_dbapiunicode_cextensions 18896
+test.aaa_profiling.test_orm.MergeBackrefsTest.test_merge_pending_with_all_pks 2.7_mysql_mysqldb_dbapiunicode_nocextensions 19168
+test.aaa_profiling.test_orm.MergeBackrefsTest.test_merge_pending_with_all_pks 2.7_oracle_cx_oracle_dbapiunicode_cextensions 19015
+test.aaa_profiling.test_orm.MergeBackrefsTest.test_merge_pending_with_all_pks 2.7_oracle_cx_oracle_dbapiunicode_nocextensions 19286
+test.aaa_profiling.test_orm.MergeBackrefsTest.test_merge_pending_with_all_pks 2.7_postgresql_psycopg2_dbapiunicode_cextensions 18297
+test.aaa_profiling.test_orm.MergeBackrefsTest.test_merge_pending_with_all_pks 2.7_postgresql_psycopg2_dbapiunicode_nocextensions 18568
+test.aaa_profiling.test_orm.MergeBackrefsTest.test_merge_pending_with_all_pks 2.7_sqlite_pysqlite_dbapiunicode_cextensions 18155
+test.aaa_profiling.test_orm.MergeBackrefsTest.test_merge_pending_with_all_pks 2.7_sqlite_pysqlite_dbapiunicode_nocextensions 18426
+test.aaa_profiling.test_orm.MergeBackrefsTest.test_merge_pending_with_all_pks 3.6_mssql_pyodbc_dbapiunicode_cextensions 18903
+test.aaa_profiling.test_orm.MergeBackrefsTest.test_merge_pending_with_all_pks 3.6_mssql_pyodbc_dbapiunicode_nocextensions 19147
+test.aaa_profiling.test_orm.MergeBackrefsTest.test_merge_pending_with_all_pks 3.6_mysql_mysqldb_dbapiunicode_cextensions 19419
+test.aaa_profiling.test_orm.MergeBackrefsTest.test_merge_pending_with_all_pks 3.6_mysql_mysqldb_dbapiunicode_nocextensions 19663
+test.aaa_profiling.test_orm.MergeBackrefsTest.test_merge_pending_with_all_pks 3.6_oracle_cx_oracle_dbapiunicode_cextensions 19501
+test.aaa_profiling.test_orm.MergeBackrefsTest.test_merge_pending_with_all_pks 3.6_oracle_cx_oracle_dbapiunicode_nocextensions 19745
+test.aaa_profiling.test_orm.MergeBackrefsTest.test_merge_pending_with_all_pks 3.6_postgresql_psycopg2_dbapiunicode_cextensions 18843
+test.aaa_profiling.test_orm.MergeBackrefsTest.test_merge_pending_with_all_pks 3.6_postgresql_psycopg2_dbapiunicode_nocextensions 19075
+test.aaa_profiling.test_orm.MergeBackrefsTest.test_merge_pending_with_all_pks 3.6_sqlite_pysqlite_dbapiunicode_cextensions 18661
+test.aaa_profiling.test_orm.MergeBackrefsTest.test_merge_pending_with_all_pks 3.6_sqlite_pysqlite_dbapiunicode_nocextensions 18893
 
 # TEST: test.aaa_profiling.test_orm.MergeTest.test_merge_load
 
-test.aaa_profiling.test_orm.MergeTest.test_merge_load 2.7_mssql_pyodbc_dbapiunicode_cextensions 1039
-test.aaa_profiling.test_orm.MergeTest.test_merge_load 2.7_mssql_pyodbc_dbapiunicode_nocextensions 1056
-test.aaa_profiling.test_orm.MergeTest.test_merge_load 2.7_mysql_mysqldb_dbapiunicode_cextensions 1205
-test.aaa_profiling.test_orm.MergeTest.test_merge_load 2.7_mysql_mysqldb_dbapiunicode_nocextensions 1222
-test.aaa_profiling.test_orm.MergeTest.test_merge_load 2.7_oracle_cx_oracle_dbapiunicode_cextensions 1100
-test.aaa_profiling.test_orm.MergeTest.test_merge_load 2.7_oracle_cx_oracle_dbapiunicode_nocextensions 1117
-test.aaa_profiling.test_orm.MergeTest.test_merge_load 2.7_postgresql_psycopg2_dbapiunicode_cextensions 1128
-test.aaa_profiling.test_orm.MergeTest.test_merge_load 2.7_postgresql_psycopg2_dbapiunicode_nocextensions 1145
-test.aaa_profiling.test_orm.MergeTest.test_merge_load 2.7_sqlite_pysqlite_dbapiunicode_cextensions 976
-test.aaa_profiling.test_orm.MergeTest.test_merge_load 2.7_sqlite_pysqlite_dbapiunicode_nocextensions 993
-test.aaa_profiling.test_orm.MergeTest.test_merge_load 3.6_mssql_pyodbc_dbapiunicode_cextensions 1060
-test.aaa_profiling.test_orm.MergeTest.test_merge_load 3.6_mssql_pyodbc_dbapiunicode_nocextensions 1079
-test.aaa_profiling.test_orm.MergeTest.test_merge_load 3.6_mysql_mysqldb_dbapiunicode_cextensions 1242
-test.aaa_profiling.test_orm.MergeTest.test_merge_load 3.6_mysql_mysqldb_dbapiunicode_nocextensions 1261
-test.aaa_profiling.test_orm.MergeTest.test_merge_load 3.6_oracle_cx_oracle_dbapiunicode_cextensions 1121
-test.aaa_profiling.test_orm.MergeTest.test_merge_load 3.6_oracle_cx_oracle_dbapiunicode_nocextensions 1140
-test.aaa_profiling.test_orm.MergeTest.test_merge_load 3.6_postgresql_psycopg2_dbapiunicode_cextensions 1146
-test.aaa_profiling.test_orm.MergeTest.test_merge_load 3.6_postgresql_psycopg2_dbapiunicode_nocextensions 1165
-test.aaa_profiling.test_orm.MergeTest.test_merge_load 3.6_sqlite_pysqlite_dbapiunicode_cextensions 1003
-test.aaa_profiling.test_orm.MergeTest.test_merge_load 3.6_sqlite_pysqlite_dbapiunicode_nocextensions 1022
+test.aaa_profiling.test_orm.MergeTest.test_merge_load 2.7_mssql_pyodbc_dbapiunicode_cextensions 1045
+test.aaa_profiling.test_orm.MergeTest.test_merge_load 2.7_mssql_pyodbc_dbapiunicode_nocextensions 1062
+test.aaa_profiling.test_orm.MergeTest.test_merge_load 2.7_mysql_mysqldb_dbapiunicode_cextensions 1214
+test.aaa_profiling.test_orm.MergeTest.test_merge_load 2.7_mysql_mysqldb_dbapiunicode_nocextensions 1231
+test.aaa_profiling.test_orm.MergeTest.test_merge_load 2.7_oracle_cx_oracle_dbapiunicode_cextensions 1108
+test.aaa_profiling.test_orm.MergeTest.test_merge_load 2.7_oracle_cx_oracle_dbapiunicode_nocextensions 1125
+test.aaa_profiling.test_orm.MergeTest.test_merge_load 2.7_postgresql_psycopg2_dbapiunicode_cextensions 1148
+test.aaa_profiling.test_orm.MergeTest.test_merge_load 2.7_postgresql_psycopg2_dbapiunicode_nocextensions 1165
+test.aaa_profiling.test_orm.MergeTest.test_merge_load 2.7_sqlite_pysqlite_dbapiunicode_cextensions 982
+test.aaa_profiling.test_orm.MergeTest.test_merge_load 2.7_sqlite_pysqlite_dbapiunicode_nocextensions 999
+test.aaa_profiling.test_orm.MergeTest.test_merge_load 3.6_mssql_pyodbc_dbapiunicode_cextensions 1066
+test.aaa_profiling.test_orm.MergeTest.test_merge_load 3.6_mssql_pyodbc_dbapiunicode_nocextensions 1085
+test.aaa_profiling.test_orm.MergeTest.test_merge_load 3.6_mysql_mysqldb_dbapiunicode_cextensions 1251
+test.aaa_profiling.test_orm.MergeTest.test_merge_load 3.6_mysql_mysqldb_dbapiunicode_nocextensions 1270
+test.aaa_profiling.test_orm.MergeTest.test_merge_load 3.6_oracle_cx_oracle_dbapiunicode_cextensions 1129
+test.aaa_profiling.test_orm.MergeTest.test_merge_load 3.6_oracle_cx_oracle_dbapiunicode_nocextensions 1148
+test.aaa_profiling.test_orm.MergeTest.test_merge_load 3.6_postgresql_psycopg2_dbapiunicode_cextensions 1162
+test.aaa_profiling.test_orm.MergeTest.test_merge_load 3.6_postgresql_psycopg2_dbapiunicode_nocextensions 1181
+test.aaa_profiling.test_orm.MergeTest.test_merge_load 3.6_sqlite_pysqlite_dbapiunicode_cextensions 1009
+test.aaa_profiling.test_orm.MergeTest.test_merge_load 3.6_sqlite_pysqlite_dbapiunicode_nocextensions 1028
 
 # TEST: test.aaa_profiling.test_orm.MergeTest.test_merge_no_load
 
@@ -493,72 +493,72 @@ test.aaa_profiling.test_orm.MergeTest.test_merge_no_load 3.6_sqlite_pysqlite_dba
 
 # TEST: test.aaa_profiling.test_orm.QueryTest.test_query_cols
 
-test.aaa_profiling.test_orm.QueryTest.test_query_cols 2.7_mssql_pyodbc_dbapiunicode_cextensions 6150
-test.aaa_profiling.test_orm.QueryTest.test_query_cols 2.7_mssql_pyodbc_dbapiunicode_nocextensions 6700
-test.aaa_profiling.test_orm.QueryTest.test_query_cols 2.7_mysql_mysqldb_dbapiunicode_cextensions 7940
-test.aaa_profiling.test_orm.QueryTest.test_query_cols 2.7_mysql_mysqldb_dbapiunicode_nocextensions 8490
-test.aaa_profiling.test_orm.QueryTest.test_query_cols 2.7_oracle_cx_oracle_dbapiunicode_cextensions 6200
-test.aaa_profiling.test_orm.QueryTest.test_query_cols 2.7_oracle_cx_oracle_dbapiunicode_nocextensions 6750
-test.aaa_profiling.test_orm.QueryTest.test_query_cols 2.7_postgresql_psycopg2_dbapiunicode_cextensions 6070
-test.aaa_profiling.test_orm.QueryTest.test_query_cols 2.7_postgresql_psycopg2_dbapiunicode_nocextensions 6620
-test.aaa_profiling.test_orm.QueryTest.test_query_cols 2.7_sqlite_pysqlite_dbapiunicode_cextensions 5924
-test.aaa_profiling.test_orm.QueryTest.test_query_cols 2.7_sqlite_pysqlite_dbapiunicode_nocextensions 6474
-test.aaa_profiling.test_orm.QueryTest.test_query_cols 3.6_mssql_pyodbc_dbapiunicode_cextensions 6324
-test.aaa_profiling.test_orm.QueryTest.test_query_cols 3.6_mssql_pyodbc_dbapiunicode_nocextensions 6894
-test.aaa_profiling.test_orm.QueryTest.test_query_cols 3.6_mysql_mysqldb_dbapiunicode_cextensions 7324
-test.aaa_profiling.test_orm.QueryTest.test_query_cols 3.6_mysql_mysqldb_dbapiunicode_nocextensions 7894
-test.aaa_profiling.test_orm.QueryTest.test_query_cols 3.6_oracle_cx_oracle_dbapiunicode_cextensions 6374
-test.aaa_profiling.test_orm.QueryTest.test_query_cols 3.6_oracle_cx_oracle_dbapiunicode_nocextensions 6944
-test.aaa_profiling.test_orm.QueryTest.test_query_cols 3.6_postgresql_psycopg2_dbapiunicode_cextensions 6334
-test.aaa_profiling.test_orm.QueryTest.test_query_cols 3.6_postgresql_psycopg2_dbapiunicode_nocextensions 6904
-test.aaa_profiling.test_orm.QueryTest.test_query_cols 3.6_sqlite_pysqlite_dbapiunicode_cextensions 6106
-test.aaa_profiling.test_orm.QueryTest.test_query_cols 3.6_sqlite_pysqlite_dbapiunicode_nocextensions 6676
+test.aaa_profiling.test_orm.QueryTest.test_query_cols 2.7_mssql_pyodbc_dbapiunicode_cextensions 6230
+test.aaa_profiling.test_orm.QueryTest.test_query_cols 2.7_mssql_pyodbc_dbapiunicode_nocextensions 6780
+test.aaa_profiling.test_orm.QueryTest.test_query_cols 2.7_mysql_mysqldb_dbapiunicode_cextensions 8020
+test.aaa_profiling.test_orm.QueryTest.test_query_cols 2.7_mysql_mysqldb_dbapiunicode_nocextensions 8570
+test.aaa_profiling.test_orm.QueryTest.test_query_cols 2.7_oracle_cx_oracle_dbapiunicode_cextensions 6280
+test.aaa_profiling.test_orm.QueryTest.test_query_cols 2.7_oracle_cx_oracle_dbapiunicode_nocextensions 6830
+test.aaa_profiling.test_orm.QueryTest.test_query_cols 2.7_postgresql_psycopg2_dbapiunicode_cextensions 6150
+test.aaa_profiling.test_orm.QueryTest.test_query_cols 2.7_postgresql_psycopg2_dbapiunicode_nocextensions 6700
+test.aaa_profiling.test_orm.QueryTest.test_query_cols 2.7_sqlite_pysqlite_dbapiunicode_cextensions 6004
+test.aaa_profiling.test_orm.QueryTest.test_query_cols 2.7_sqlite_pysqlite_dbapiunicode_nocextensions 6554
+test.aaa_profiling.test_orm.QueryTest.test_query_cols 3.6_mssql_pyodbc_dbapiunicode_cextensions 6404
+test.aaa_profiling.test_orm.QueryTest.test_query_cols 3.6_mssql_pyodbc_dbapiunicode_nocextensions 6974
+test.aaa_profiling.test_orm.QueryTest.test_query_cols 3.6_mysql_mysqldb_dbapiunicode_cextensions 7404
+test.aaa_profiling.test_orm.QueryTest.test_query_cols 3.6_mysql_mysqldb_dbapiunicode_nocextensions 7974
+test.aaa_profiling.test_orm.QueryTest.test_query_cols 3.6_oracle_cx_oracle_dbapiunicode_cextensions 6454
+test.aaa_profiling.test_orm.QueryTest.test_query_cols 3.6_oracle_cx_oracle_dbapiunicode_nocextensions 7024
+test.aaa_profiling.test_orm.QueryTest.test_query_cols 3.6_postgresql_psycopg2_dbapiunicode_cextensions 6414
+test.aaa_profiling.test_orm.QueryTest.test_query_cols 3.6_postgresql_psycopg2_dbapiunicode_nocextensions 6984
+test.aaa_profiling.test_orm.QueryTest.test_query_cols 3.6_sqlite_pysqlite_dbapiunicode_cextensions 6186
+test.aaa_profiling.test_orm.QueryTest.test_query_cols 3.6_sqlite_pysqlite_dbapiunicode_nocextensions 6756
 
 # TEST: test.aaa_profiling.test_orm.SelectInEagerLoadTest.test_round_trip_results
 
-test.aaa_profiling.test_orm.SelectInEagerLoadTest.test_round_trip_results 2.7_mssql_pyodbc_dbapiunicode_cextensions 167875
-test.aaa_profiling.test_orm.SelectInEagerLoadTest.test_round_trip_results 2.7_mssql_pyodbc_dbapiunicode_nocextensions 172279
-test.aaa_profiling.test_orm.SelectInEagerLoadTest.test_round_trip_results 2.7_mysql_mysqldb_dbapiunicode_cextensions 178844
-test.aaa_profiling.test_orm.SelectInEagerLoadTest.test_round_trip_results 2.7_mysql_mysqldb_dbapiunicode_nocextensions 183248
-test.aaa_profiling.test_orm.SelectInEagerLoadTest.test_round_trip_results 2.7_oracle_cx_oracle_dbapiunicode_cextensions 187148
-test.aaa_profiling.test_orm.SelectInEagerLoadTest.test_round_trip_results 2.7_oracle_cx_oracle_dbapiunicode_nocextensions 191454
-test.aaa_profiling.test_orm.SelectInEagerLoadTest.test_round_trip_results 2.7_postgresql_psycopg2_dbapiunicode_cextensions 169214
-test.aaa_profiling.test_orm.SelectInEagerLoadTest.test_round_trip_results 2.7_postgresql_psycopg2_dbapiunicode_nocextensions 173618
-test.aaa_profiling.test_orm.SelectInEagerLoadTest.test_round_trip_results 2.7_sqlite_pysqlite_dbapiunicode_cextensions 162313
-test.aaa_profiling.test_orm.SelectInEagerLoadTest.test_round_trip_results 2.7_sqlite_pysqlite_dbapiunicode_nocextensions 166619
-test.aaa_profiling.test_orm.SelectInEagerLoadTest.test_round_trip_results 3.6_mssql_pyodbc_dbapiunicode_cextensions 169642
-test.aaa_profiling.test_orm.SelectInEagerLoadTest.test_round_trip_results 3.6_mssql_pyodbc_dbapiunicode_nocextensions 174250
-test.aaa_profiling.test_orm.SelectInEagerLoadTest.test_round_trip_results 3.6_mysql_mysqldb_dbapiunicode_cextensions 181511
-test.aaa_profiling.test_orm.SelectInEagerLoadTest.test_round_trip_results 3.6_mysql_mysqldb_dbapiunicode_nocextensions 186119
-test.aaa_profiling.test_orm.SelectInEagerLoadTest.test_round_trip_results 3.6_oracle_cx_oracle_dbapiunicode_cextensions 188817
-test.aaa_profiling.test_orm.SelectInEagerLoadTest.test_round_trip_results 3.6_oracle_cx_oracle_dbapiunicode_nocextensions 193425
-test.aaa_profiling.test_orm.SelectInEagerLoadTest.test_round_trip_results 3.6_postgresql_psycopg2_dbapiunicode_cextensions 173581
-test.aaa_profiling.test_orm.SelectInEagerLoadTest.test_round_trip_results 3.6_postgresql_psycopg2_dbapiunicode_nocextensions 178189
-test.aaa_profiling.test_orm.SelectInEagerLoadTest.test_round_trip_results 3.6_sqlite_pysqlite_dbapiunicode_cextensions 165589
-test.aaa_profiling.test_orm.SelectInEagerLoadTest.test_round_trip_results 3.6_sqlite_pysqlite_dbapiunicode_nocextensions 170197
+test.aaa_profiling.test_orm.SelectInEagerLoadTest.test_round_trip_results 2.7_mssql_pyodbc_dbapiunicode_cextensions 168601
+test.aaa_profiling.test_orm.SelectInEagerLoadTest.test_round_trip_results 2.7_mssql_pyodbc_dbapiunicode_nocextensions 172907
+test.aaa_profiling.test_orm.SelectInEagerLoadTest.test_round_trip_results 2.7_mysql_mysqldb_dbapiunicode_cextensions 179472
+test.aaa_profiling.test_orm.SelectInEagerLoadTest.test_round_trip_results 2.7_mysql_mysqldb_dbapiunicode_nocextensions 183876
+test.aaa_profiling.test_orm.SelectInEagerLoadTest.test_round_trip_results 2.7_oracle_cx_oracle_dbapiunicode_cextensions 187982
+test.aaa_profiling.test_orm.SelectInEagerLoadTest.test_round_trip_results 2.7_oracle_cx_oracle_dbapiunicode_nocextensions 192288
+test.aaa_profiling.test_orm.SelectInEagerLoadTest.test_round_trip_results 2.7_postgresql_psycopg2_dbapiunicode_cextensions 169933
+test.aaa_profiling.test_orm.SelectInEagerLoadTest.test_round_trip_results 2.7_postgresql_psycopg2_dbapiunicode_nocextensions 174246
+test.aaa_profiling.test_orm.SelectInEagerLoadTest.test_round_trip_results 2.7_sqlite_pysqlite_dbapiunicode_cextensions 162941
+test.aaa_profiling.test_orm.SelectInEagerLoadTest.test_round_trip_results 2.7_sqlite_pysqlite_dbapiunicode_nocextensions 167247
+test.aaa_profiling.test_orm.SelectInEagerLoadTest.test_round_trip_results 3.6_mssql_pyodbc_dbapiunicode_cextensions 170172
+test.aaa_profiling.test_orm.SelectInEagerLoadTest.test_round_trip_results 3.6_mssql_pyodbc_dbapiunicode_nocextensions 174878
+test.aaa_profiling.test_orm.SelectInEagerLoadTest.test_round_trip_results 3.6_mysql_mysqldb_dbapiunicode_cextensions 182139
+test.aaa_profiling.test_orm.SelectInEagerLoadTest.test_round_trip_results 3.6_mysql_mysqldb_dbapiunicode_nocextensions 186747
+test.aaa_profiling.test_orm.SelectInEagerLoadTest.test_round_trip_results 3.6_oracle_cx_oracle_dbapiunicode_cextensions 189651
+test.aaa_profiling.test_orm.SelectInEagerLoadTest.test_round_trip_results 3.6_oracle_cx_oracle_dbapiunicode_nocextensions 194259
+test.aaa_profiling.test_orm.SelectInEagerLoadTest.test_round_trip_results 3.6_postgresql_psycopg2_dbapiunicode_cextensions 174209
+test.aaa_profiling.test_orm.SelectInEagerLoadTest.test_round_trip_results 3.6_postgresql_psycopg2_dbapiunicode_nocextensions 178817
+test.aaa_profiling.test_orm.SelectInEagerLoadTest.test_round_trip_results 3.6_sqlite_pysqlite_dbapiunicode_cextensions 166217
+test.aaa_profiling.test_orm.SelectInEagerLoadTest.test_round_trip_results 3.6_sqlite_pysqlite_dbapiunicode_nocextensions 170825
 
 # TEST: test.aaa_profiling.test_orm.SessionTest.test_expire_lots
 
-test.aaa_profiling.test_orm.SessionTest.test_expire_lots 2.7_mssql_pyodbc_dbapiunicode_cextensions 1154
-test.aaa_profiling.test_orm.SessionTest.test_expire_lots 2.7_mssql_pyodbc_dbapiunicode_nocextensions 1157
-test.aaa_profiling.test_orm.SessionTest.test_expire_lots 2.7_mysql_mysqldb_dbapiunicode_cextensions 1142
-test.aaa_profiling.test_orm.SessionTest.test_expire_lots 2.7_mysql_mysqldb_dbapiunicode_nocextensions 1142
-test.aaa_profiling.test_orm.SessionTest.test_expire_lots 2.7_oracle_cx_oracle_dbapiunicode_cextensions 1127
-test.aaa_profiling.test_orm.SessionTest.test_expire_lots 2.7_oracle_cx_oracle_dbapiunicode_nocextensions 1147
-test.aaa_profiling.test_orm.SessionTest.test_expire_lots 2.7_postgresql_psycopg2_dbapiunicode_cextensions 1146
-test.aaa_profiling.test_orm.SessionTest.test_expire_lots 2.7_postgresql_psycopg2_dbapiunicode_nocextensions 1138
-test.aaa_profiling.test_orm.SessionTest.test_expire_lots 2.7_sqlite_pysqlite_dbapiunicode_cextensions 1136
-test.aaa_profiling.test_orm.SessionTest.test_expire_lots 2.7_sqlite_pysqlite_dbapiunicode_nocextensions 1146
-test.aaa_profiling.test_orm.SessionTest.test_expire_lots 3.6_mssql_pyodbc_dbapiunicode_cextensions 1257
-test.aaa_profiling.test_orm.SessionTest.test_expire_lots 3.6_mssql_pyodbc_dbapiunicode_nocextensions 1248
-test.aaa_profiling.test_orm.SessionTest.test_expire_lots 3.6_mysql_mysqldb_dbapiunicode_cextensions 1258
-test.aaa_profiling.test_orm.SessionTest.test_expire_lots 3.6_mysql_mysqldb_dbapiunicode_nocextensions 1261
-test.aaa_profiling.test_orm.SessionTest.test_expire_lots 3.6_oracle_cx_oracle_dbapiunicode_cextensions 1251
-test.aaa_profiling.test_orm.SessionTest.test_expire_lots 3.6_oracle_cx_oracle_dbapiunicode_nocextensions 1236
-test.aaa_profiling.test_orm.SessionTest.test_expire_lots 3.6_postgresql_psycopg2_dbapiunicode_cextensions 1253
-test.aaa_profiling.test_orm.SessionTest.test_expire_lots 3.6_postgresql_psycopg2_dbapiunicode_nocextensions 1247
-test.aaa_profiling.test_orm.SessionTest.test_expire_lots 3.6_sqlite_pysqlite_dbapiunicode_cextensions 1253
-test.aaa_profiling.test_orm.SessionTest.test_expire_lots 3.6_sqlite_pysqlite_dbapiunicode_nocextensions 1251
+test.aaa_profiling.test_orm.SessionTest.test_expire_lots 2.7_mssql_pyodbc_dbapiunicode_cextensions 1141
+test.aaa_profiling.test_orm.SessionTest.test_expire_lots 2.7_mssql_pyodbc_dbapiunicode_nocextensions 1136
+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 1147
+test.aaa_profiling.test_orm.SessionTest.test_expire_lots 2.7_oracle_cx_oracle_dbapiunicode_cextensions 1141
+test.aaa_profiling.test_orm.SessionTest.test_expire_lots 2.7_oracle_cx_oracle_dbapiunicode_nocextensions 1153
+test.aaa_profiling.test_orm.SessionTest.test_expire_lots 2.7_postgresql_psycopg2_dbapiunicode_cextensions 1154
+test.aaa_profiling.test_orm.SessionTest.test_expire_lots 2.7_postgresql_psycopg2_dbapiunicode_nocextensions 1146
+test.aaa_profiling.test_orm.SessionTest.test_expire_lots 2.7_sqlite_pysqlite_dbapiunicode_cextensions 1163
+test.aaa_profiling.test_orm.SessionTest.test_expire_lots 2.7_sqlite_pysqlite_dbapiunicode_nocextensions 1151
+test.aaa_profiling.test_orm.SessionTest.test_expire_lots 3.6_mssql_pyodbc_dbapiunicode_cextensions 1249
+test.aaa_profiling.test_orm.SessionTest.test_expire_lots 3.6_mssql_pyodbc_dbapiunicode_nocextensions 1266
+test.aaa_profiling.test_orm.SessionTest.test_expire_lots 3.6_mysql_mysqldb_dbapiunicode_cextensions 1265
+test.aaa_profiling.test_orm.SessionTest.test_expire_lots 3.6_mysql_mysqldb_dbapiunicode_nocextensions 1249
+test.aaa_profiling.test_orm.SessionTest.test_expire_lots 3.6_oracle_cx_oracle_dbapiunicode_cextensions 1238
+test.aaa_profiling.test_orm.SessionTest.test_expire_lots 3.6_oracle_cx_oracle_dbapiunicode_nocextensions 1260
+test.aaa_profiling.test_orm.SessionTest.test_expire_lots 3.6_postgresql_psycopg2_dbapiunicode_cextensions 1262
+test.aaa_profiling.test_orm.SessionTest.test_expire_lots 3.6_postgresql_psycopg2_dbapiunicode_nocextensions 1259
+test.aaa_profiling.test_orm.SessionTest.test_expire_lots 3.6_sqlite_pysqlite_dbapiunicode_cextensions 1272
+test.aaa_profiling.test_orm.SessionTest.test_expire_lots 3.6_sqlite_pysqlite_dbapiunicode_nocextensions 1264
 
 # TEST: test.aaa_profiling.test_pool.QueuePoolTest.test_first_connect
 
@@ -728,8 +728,8 @@ test.aaa_profiling.test_resultset.ResultSetTest.test_raw_string 3.6_mssql_pyodbc
 test.aaa_profiling.test_resultset.ResultSetTest.test_raw_string 3.6_mssql_pyodbc_dbapiunicode_nocextensions 14249
 test.aaa_profiling.test_resultset.ResultSetTest.test_raw_string 3.6_mysql_mysqldb_dbapiunicode_cextensions 20285,20287
 test.aaa_profiling.test_resultset.ResultSetTest.test_raw_string 3.6_mysql_mysqldb_dbapiunicode_nocextensions 34289,34291
-test.aaa_profiling.test_resultset.ResultSetTest.test_raw_string 3.6_mysql_pymysql_dbapiunicode_cextensions 88041,88066
-test.aaa_profiling.test_resultset.ResultSetTest.test_raw_string 3.6_mysql_pymysql_dbapiunicode_nocextensions 102055,102065
+test.aaa_profiling.test_resultset.ResultSetTest.test_raw_string 3.6_mysql_pymysql_dbapiunicode_cextensions 88036,88066
+test.aaa_profiling.test_resultset.ResultSetTest.test_raw_string 3.6_mysql_pymysql_dbapiunicode_nocextensions 102040,102065
 test.aaa_profiling.test_resultset.ResultSetTest.test_raw_string 3.6_oracle_cx_oracle_dbapiunicode_cextensions 324
 test.aaa_profiling.test_resultset.ResultSetTest.test_raw_string 3.6_oracle_cx_oracle_dbapiunicode_nocextensions 14328
 test.aaa_profiling.test_resultset.ResultSetTest.test_raw_string 3.6_postgresql_psycopg2_dbapiunicode_cextensions 290,292,292
@@ -743,8 +743,8 @@ test.aaa_profiling.test_resultset.ResultSetTest.test_raw_unicode 2.7_mssql_pyodb
 test.aaa_profiling.test_resultset.ResultSetTest.test_raw_unicode 2.7_mssql_pyodbc_dbapiunicode_nocextensions 15258
 test.aaa_profiling.test_resultset.ResultSetTest.test_raw_unicode 2.7_mysql_mysqldb_dbapiunicode_cextensions 40304,40306
 test.aaa_profiling.test_resultset.ResultSetTest.test_raw_unicode 2.7_mysql_mysqldb_dbapiunicode_nocextensions 55326,55328
-test.aaa_profiling.test_resultset.ResultSetTest.test_raw_unicode 2.7_mysql_pymysql_dbapiunicode_cextensions 122262,122267
-test.aaa_profiling.test_resultset.ResultSetTest.test_raw_unicode 2.7_mysql_pymysql_dbapiunicode_nocextensions 137264,137274
+test.aaa_profiling.test_resultset.ResultSetTest.test_raw_unicode 2.7_mysql_pymysql_dbapiunicode_cextensions 122257,122267
+test.aaa_profiling.test_resultset.ResultSetTest.test_raw_unicode 2.7_mysql_pymysql_dbapiunicode_nocextensions 137259,137274
 test.aaa_profiling.test_resultset.ResultSetTest.test_raw_unicode 2.7_oracle_cx_oracle_dbapiunicode_cextensions 20355
 test.aaa_profiling.test_resultset.ResultSetTest.test_raw_unicode 2.7_oracle_cx_oracle_dbapiunicode_nocextensions 35377
 test.aaa_profiling.test_resultset.ResultSetTest.test_raw_unicode 2.7_postgresql_psycopg2_dbapiunicode_cextensions 290,292,292
@@ -755,8 +755,8 @@ test.aaa_profiling.test_resultset.ResultSetTest.test_raw_unicode 3.6_mssql_pyodb
 test.aaa_profiling.test_resultset.ResultSetTest.test_raw_unicode 3.6_mssql_pyodbc_dbapiunicode_nocextensions 14249
 test.aaa_profiling.test_resultset.ResultSetTest.test_raw_unicode 3.6_mysql_mysqldb_dbapiunicode_cextensions 20285,20287
 test.aaa_profiling.test_resultset.ResultSetTest.test_raw_unicode 3.6_mysql_mysqldb_dbapiunicode_nocextensions 34289,34291
-test.aaa_profiling.test_resultset.ResultSetTest.test_raw_unicode 3.6_mysql_pymysql_dbapiunicode_cextensions 88086,88056
-test.aaa_profiling.test_resultset.ResultSetTest.test_raw_unicode 3.6_mysql_pymysql_dbapiunicode_nocextensions 102065,102055
+test.aaa_profiling.test_resultset.ResultSetTest.test_raw_unicode 3.6_mysql_pymysql_dbapiunicode_cextensions 88036,88056
+test.aaa_profiling.test_resultset.ResultSetTest.test_raw_unicode 3.6_mysql_pymysql_dbapiunicode_nocextensions 102040,102055
 test.aaa_profiling.test_resultset.ResultSetTest.test_raw_unicode 3.6_oracle_cx_oracle_dbapiunicode_cextensions 324
 test.aaa_profiling.test_resultset.ResultSetTest.test_raw_unicode 3.6_oracle_cx_oracle_dbapiunicode_nocextensions 14328
 test.aaa_profiling.test_resultset.ResultSetTest.test_raw_unicode 3.6_postgresql_psycopg2_dbapiunicode_cextensions 290,292,292
@@ -766,68 +766,68 @@ test.aaa_profiling.test_resultset.ResultSetTest.test_raw_unicode 3.6_sqlite_pysq
 
 # TEST: test.aaa_profiling.test_resultset.ResultSetTest.test_string
 
-test.aaa_profiling.test_resultset.ResultSetTest.test_string 2.7_mssql_pyodbc_dbapiunicode_cextensions 506
-test.aaa_profiling.test_resultset.ResultSetTest.test_string 2.7_mssql_pyodbc_dbapiunicode_nocextensions 15508
-test.aaa_profiling.test_resultset.ResultSetTest.test_string 2.7_mysql_mysqldb_dbapiunicode_cextensions 40513,40515
-test.aaa_profiling.test_resultset.ResultSetTest.test_string 2.7_mysql_mysqldb_dbapiunicode_nocextensions 55515,55517
-test.aaa_profiling.test_resultset.ResultSetTest.test_string 2.7_mysql_pymysql_dbapiunicode_cextensions 122476,122476
-test.aaa_profiling.test_resultset.ResultSetTest.test_string 2.7_mysql_pymysql_dbapiunicode_nocextensions 137483,137488
-test.aaa_profiling.test_resultset.ResultSetTest.test_string 2.7_oracle_cx_oracle_dbapiunicode_cextensions 515
-test.aaa_profiling.test_resultset.ResultSetTest.test_string 2.7_oracle_cx_oracle_dbapiunicode_nocextensions 15517
-test.aaa_profiling.test_resultset.ResultSetTest.test_string 2.7_postgresql_psycopg2_dbapiunicode_cextensions 498,500,500
-test.aaa_profiling.test_resultset.ResultSetTest.test_string 2.7_postgresql_psycopg2_dbapiunicode_nocextensions 15500,15502,15502
-test.aaa_profiling.test_resultset.ResultSetTest.test_string 2.7_sqlite_pysqlite_dbapiunicode_cextensions 440
-test.aaa_profiling.test_resultset.ResultSetTest.test_string 2.7_sqlite_pysqlite_dbapiunicode_nocextensions 15442
-test.aaa_profiling.test_resultset.ResultSetTest.test_string 3.6_mssql_pyodbc_dbapiunicode_cextensions 510
-test.aaa_profiling.test_resultset.ResultSetTest.test_string 3.6_mssql_pyodbc_dbapiunicode_nocextensions 14514
-test.aaa_profiling.test_resultset.ResultSetTest.test_string 3.6_mysql_mysqldb_dbapiunicode_cextensions 20518,20520
-test.aaa_profiling.test_resultset.ResultSetTest.test_string 3.6_mysql_mysqldb_dbapiunicode_nocextensions 34522,34524
-test.aaa_profiling.test_resultset.ResultSetTest.test_string 3.6_mysql_pymysql_dbapiunicode_cextensions 88315,88275
+test.aaa_profiling.test_resultset.ResultSetTest.test_string 2.7_mssql_pyodbc_dbapiunicode_cextensions 526
+test.aaa_profiling.test_resultset.ResultSetTest.test_string 2.7_mssql_pyodbc_dbapiunicode_nocextensions 15528
+test.aaa_profiling.test_resultset.ResultSetTest.test_string 2.7_mysql_mysqldb_dbapiunicode_cextensions 40533,40515
+test.aaa_profiling.test_resultset.ResultSetTest.test_string 2.7_mysql_mysqldb_dbapiunicode_nocextensions 55535,55517
+test.aaa_profiling.test_resultset.ResultSetTest.test_string 2.7_mysql_pymysql_dbapiunicode_cextensions 122496,122476
+test.aaa_profiling.test_resultset.ResultSetTest.test_string 2.7_mysql_pymysql_dbapiunicode_nocextensions 137498,137488
+test.aaa_profiling.test_resultset.ResultSetTest.test_string 2.7_oracle_cx_oracle_dbapiunicode_cextensions 535
+test.aaa_profiling.test_resultset.ResultSetTest.test_string 2.7_oracle_cx_oracle_dbapiunicode_nocextensions 15537
+test.aaa_profiling.test_resultset.ResultSetTest.test_string 2.7_postgresql_psycopg2_dbapiunicode_cextensions 518,500,500
+test.aaa_profiling.test_resultset.ResultSetTest.test_string 2.7_postgresql_psycopg2_dbapiunicode_nocextensions 15520,15502,15502
+test.aaa_profiling.test_resultset.ResultSetTest.test_string 2.7_sqlite_pysqlite_dbapiunicode_cextensions 460
+test.aaa_profiling.test_resultset.ResultSetTest.test_string 2.7_sqlite_pysqlite_dbapiunicode_nocextensions 15462
+test.aaa_profiling.test_resultset.ResultSetTest.test_string 3.6_mssql_pyodbc_dbapiunicode_cextensions 530
+test.aaa_profiling.test_resultset.ResultSetTest.test_string 3.6_mssql_pyodbc_dbapiunicode_nocextensions 14534
+test.aaa_profiling.test_resultset.ResultSetTest.test_string 3.6_mysql_mysqldb_dbapiunicode_cextensions 20538,20520
+test.aaa_profiling.test_resultset.ResultSetTest.test_string 3.6_mysql_mysqldb_dbapiunicode_nocextensions 34542,34524
+test.aaa_profiling.test_resultset.ResultSetTest.test_string 3.6_mysql_pymysql_dbapiunicode_cextensions 88290,88275
 test.aaa_profiling.test_resultset.ResultSetTest.test_string 3.6_mysql_pymysql_dbapiunicode_nocextensions 102294,102299
-test.aaa_profiling.test_resultset.ResultSetTest.test_string 3.6_oracle_cx_oracle_dbapiunicode_cextensions 519
-test.aaa_profiling.test_resultset.ResultSetTest.test_string 3.6_oracle_cx_oracle_dbapiunicode_nocextensions 14523
-test.aaa_profiling.test_resultset.ResultSetTest.test_string 3.6_postgresql_psycopg2_dbapiunicode_cextensions 523,525,525
-test.aaa_profiling.test_resultset.ResultSetTest.test_string 3.6_postgresql_psycopg2_dbapiunicode_nocextensions 14527,14529,14529
-test.aaa_profiling.test_resultset.ResultSetTest.test_string 3.6_sqlite_pysqlite_dbapiunicode_cextensions 460
-test.aaa_profiling.test_resultset.ResultSetTest.test_string 3.6_sqlite_pysqlite_dbapiunicode_nocextensions 14464
+test.aaa_profiling.test_resultset.ResultSetTest.test_string 3.6_oracle_cx_oracle_dbapiunicode_cextensions 539
+test.aaa_profiling.test_resultset.ResultSetTest.test_string 3.6_oracle_cx_oracle_dbapiunicode_nocextensions 14543
+test.aaa_profiling.test_resultset.ResultSetTest.test_string 3.6_postgresql_psycopg2_dbapiunicode_cextensions 543,525,525
+test.aaa_profiling.test_resultset.ResultSetTest.test_string 3.6_postgresql_psycopg2_dbapiunicode_nocextensions 14547,14529,14529
+test.aaa_profiling.test_resultset.ResultSetTest.test_string 3.6_sqlite_pysqlite_dbapiunicode_cextensions 480
+test.aaa_profiling.test_resultset.ResultSetTest.test_string 3.6_sqlite_pysqlite_dbapiunicode_nocextensions 14484
 
 # TEST: test.aaa_profiling.test_resultset.ResultSetTest.test_unicode
 
-test.aaa_profiling.test_resultset.ResultSetTest.test_unicode 2.7_mssql_pyodbc_dbapiunicode_cextensions 506
-test.aaa_profiling.test_resultset.ResultSetTest.test_unicode 2.7_mssql_pyodbc_dbapiunicode_nocextensions 15508
-test.aaa_profiling.test_resultset.ResultSetTest.test_unicode 2.7_mysql_mysqldb_dbapiunicode_cextensions 40513,40515
-test.aaa_profiling.test_resultset.ResultSetTest.test_unicode 2.7_mysql_mysqldb_dbapiunicode_nocextensions 55515,55517
-test.aaa_profiling.test_resultset.ResultSetTest.test_unicode 2.7_mysql_pymysql_dbapiunicode_cextensions 122486,122481
-test.aaa_profiling.test_resultset.ResultSetTest.test_unicode 2.7_mysql_pymysql_dbapiunicode_nocextensions 137478,137478
-test.aaa_profiling.test_resultset.ResultSetTest.test_unicode 2.7_oracle_cx_oracle_dbapiunicode_cextensions 20515
-test.aaa_profiling.test_resultset.ResultSetTest.test_unicode 2.7_oracle_cx_oracle_dbapiunicode_nocextensions 55517
-test.aaa_profiling.test_resultset.ResultSetTest.test_unicode 2.7_postgresql_psycopg2_dbapiunicode_cextensions 498,500,500
-test.aaa_profiling.test_resultset.ResultSetTest.test_unicode 2.7_postgresql_psycopg2_dbapiunicode_nocextensions 15500,15502,15502
-test.aaa_profiling.test_resultset.ResultSetTest.test_unicode 2.7_sqlite_pysqlite_dbapiunicode_cextensions 440
-test.aaa_profiling.test_resultset.ResultSetTest.test_unicode 2.7_sqlite_pysqlite_dbapiunicode_nocextensions 15442
-test.aaa_profiling.test_resultset.ResultSetTest.test_unicode 3.6_mssql_pyodbc_dbapiunicode_cextensions 510
-test.aaa_profiling.test_resultset.ResultSetTest.test_unicode 3.6_mssql_pyodbc_dbapiunicode_nocextensions 14514
-test.aaa_profiling.test_resultset.ResultSetTest.test_unicode 3.6_mysql_mysqldb_dbapiunicode_cextensions 20518,20520
-test.aaa_profiling.test_resultset.ResultSetTest.test_unicode 3.6_mysql_mysqldb_dbapiunicode_nocextensions 34522,34524
-test.aaa_profiling.test_resultset.ResultSetTest.test_unicode 3.6_mysql_pymysql_dbapiunicode_cextensions 88275,88275
-test.aaa_profiling.test_resultset.ResultSetTest.test_unicode 3.6_mysql_pymysql_dbapiunicode_nocextensions 102274,102274
-test.aaa_profiling.test_resultset.ResultSetTest.test_unicode 3.6_oracle_cx_oracle_dbapiunicode_cextensions 519
-test.aaa_profiling.test_resultset.ResultSetTest.test_unicode 3.6_oracle_cx_oracle_dbapiunicode_nocextensions 14523
-test.aaa_profiling.test_resultset.ResultSetTest.test_unicode 3.6_postgresql_psycopg2_dbapiunicode_cextensions 523,525,525
-test.aaa_profiling.test_resultset.ResultSetTest.test_unicode 3.6_postgresql_psycopg2_dbapiunicode_nocextensions 14527,14529,14529
-test.aaa_profiling.test_resultset.ResultSetTest.test_unicode 3.6_sqlite_pysqlite_dbapiunicode_cextensions 460
-test.aaa_profiling.test_resultset.ResultSetTest.test_unicode 3.6_sqlite_pysqlite_dbapiunicode_nocextensions 14464
+test.aaa_profiling.test_resultset.ResultSetTest.test_unicode 2.7_mssql_pyodbc_dbapiunicode_cextensions 526
+test.aaa_profiling.test_resultset.ResultSetTest.test_unicode 2.7_mssql_pyodbc_dbapiunicode_nocextensions 15528
+test.aaa_profiling.test_resultset.ResultSetTest.test_unicode 2.7_mysql_mysqldb_dbapiunicode_cextensions 40533,40515
+test.aaa_profiling.test_resultset.ResultSetTest.test_unicode 2.7_mysql_mysqldb_dbapiunicode_nocextensions 55535,55517
+test.aaa_profiling.test_resultset.ResultSetTest.test_unicode 2.7_mysql_pymysql_dbapiunicode_cextensions 122496,122481
+test.aaa_profiling.test_resultset.ResultSetTest.test_unicode 2.7_mysql_pymysql_dbapiunicode_nocextensions 137498,137478
+test.aaa_profiling.test_resultset.ResultSetTest.test_unicode 2.7_oracle_cx_oracle_dbapiunicode_cextensions 20535
+test.aaa_profiling.test_resultset.ResultSetTest.test_unicode 2.7_oracle_cx_oracle_dbapiunicode_nocextensions 55537
+test.aaa_profiling.test_resultset.ResultSetTest.test_unicode 2.7_postgresql_psycopg2_dbapiunicode_cextensions 518,500,500
+test.aaa_profiling.test_resultset.ResultSetTest.test_unicode 2.7_postgresql_psycopg2_dbapiunicode_nocextensions 15520,15502,15502
+test.aaa_profiling.test_resultset.ResultSetTest.test_unicode 2.7_sqlite_pysqlite_dbapiunicode_cextensions 460
+test.aaa_profiling.test_resultset.ResultSetTest.test_unicode 2.7_sqlite_pysqlite_dbapiunicode_nocextensions 15462
+test.aaa_profiling.test_resultset.ResultSetTest.test_unicode 3.6_mssql_pyodbc_dbapiunicode_cextensions 530
+test.aaa_profiling.test_resultset.ResultSetTest.test_unicode 3.6_mssql_pyodbc_dbapiunicode_nocextensions 14534
+test.aaa_profiling.test_resultset.ResultSetTest.test_unicode 3.6_mysql_mysqldb_dbapiunicode_cextensions 20538,20520
+test.aaa_profiling.test_resultset.ResultSetTest.test_unicode 3.6_mysql_mysqldb_dbapiunicode_nocextensions 34542,34524
+test.aaa_profiling.test_resultset.ResultSetTest.test_unicode 3.6_mysql_pymysql_dbapiunicode_cextensions 88290,88275
+test.aaa_profiling.test_resultset.ResultSetTest.test_unicode 3.6_mysql_pymysql_dbapiunicode_nocextensions 102294,102274
+test.aaa_profiling.test_resultset.ResultSetTest.test_unicode 3.6_oracle_cx_oracle_dbapiunicode_cextensions 539
+test.aaa_profiling.test_resultset.ResultSetTest.test_unicode 3.6_oracle_cx_oracle_dbapiunicode_nocextensions 14543
+test.aaa_profiling.test_resultset.ResultSetTest.test_unicode 3.6_postgresql_psycopg2_dbapiunicode_cextensions 543,525,525
+test.aaa_profiling.test_resultset.ResultSetTest.test_unicode 3.6_postgresql_psycopg2_dbapiunicode_nocextensions 14547,14529,14529
+test.aaa_profiling.test_resultset.ResultSetTest.test_unicode 3.6_sqlite_pysqlite_dbapiunicode_cextensions 480
+test.aaa_profiling.test_resultset.ResultSetTest.test_unicode 3.6_sqlite_pysqlite_dbapiunicode_nocextensions 14484
 
 # TEST: test.aaa_profiling.test_zoomark.ZooMarkTest.test_invocation
 
-test.aaa_profiling.test_zoomark.ZooMarkTest.test_invocation 2.7_postgresql_psycopg2_dbapiunicode_cextensions 5872,297,3745,12012,1156,2037,2503
-test.aaa_profiling.test_zoomark.ZooMarkTest.test_invocation 2.7_postgresql_psycopg2_dbapiunicode_nocextensions 5916,297,3865,13316,1271,2050,2734
-test.aaa_profiling.test_zoomark.ZooMarkTest.test_invocation 3.6_postgresql_psycopg2_dbapiunicode_cextensions 5658,279,3729,11985,1154,1985,2552
-test.aaa_profiling.test_zoomark.ZooMarkTest.test_invocation 3.6_postgresql_psycopg2_dbapiunicode_nocextensions 5724,279,3857,13249,1264,2004,2764
+test.aaa_profiling.test_zoomark.ZooMarkTest.test_invocation 2.7_postgresql_psycopg2_dbapiunicode_cextensions 6025,303,3889,12512,1169,2099,2543
+test.aaa_profiling.test_zoomark.ZooMarkTest.test_invocation 2.7_postgresql_psycopg2_dbapiunicode_nocextensions 6052,303,4009,13818,1283,2112,2778
+test.aaa_profiling.test_zoomark.ZooMarkTest.test_invocation 3.6_postgresql_psycopg2_dbapiunicode_cextensions 5794,285,3873,12487,1166,2047,2596
+test.aaa_profiling.test_zoomark.ZooMarkTest.test_invocation 3.6_postgresql_psycopg2_dbapiunicode_nocextensions 5860,285,4001,13751,1276,2066,2808
 
 # 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 6568,413,6801,17811,1170,2665
-test.aaa_profiling.test_zoomark_orm.ZooMarkTest.test_invocation 2.7_postgresql_psycopg2_dbapiunicode_nocextensions 6659,418,6921,18880,1276,2700
-test.aaa_profiling.test_zoomark_orm.ZooMarkTest.test_invocation 3.6_postgresql_psycopg2_dbapiunicode_cextensions 6537,404,6933,18213,1170,2714
-test.aaa_profiling.test_zoomark_orm.ZooMarkTest.test_invocation 3.6_postgresql_psycopg2_dbapiunicode_nocextensions 6634,409,7069,19324,1272,2755
+test.aaa_profiling.test_zoomark_orm.ZooMarkTest.test_invocation 2.7_postgresql_psycopg2_dbapiunicode_cextensions 6619,413,6945,18269,1183,2718
+test.aaa_profiling.test_zoomark_orm.ZooMarkTest.test_invocation 2.7_postgresql_psycopg2_dbapiunicode_nocextensions 6711,418,7065,19338,1288,2752
+test.aaa_profiling.test_zoomark_orm.ZooMarkTest.test_invocation 3.6_postgresql_psycopg2_dbapiunicode_cextensions 6594,404,7077,18671,1182,2766
+test.aaa_profiling.test_zoomark_orm.ZooMarkTest.test_invocation 3.6_postgresql_psycopg2_dbapiunicode_nocextensions 6686,409,7213,19782,1284,2807
index 75ff3b85ea87b917c33f9bef60222b1f252fc3c5..71229bfaeb0f8b51e7df09bacd82814f7a7ec2e2 100644 (file)
@@ -13,20 +13,97 @@ from sqlalchemy.testing import eq_
 
 class _ExprFixture(object):
 
+    def _test_table(self, type_):
+        test_table = Table(
+            'test_table',
+            MetaData(), Column('x', String), Column('y', type_)
+        )
+        return test_table
+
     def _fixture(self):
         class MyString(String):
 
+            # supercedes any processing that might be on
+            # String
             def bind_expression(self, bindvalue):
                 return func.lower(bindvalue)
 
             def column_expression(self, col):
                 return func.lower(col)
 
-        test_table = Table(
-            'test_table',
-            MetaData(), Column('x', String), Column('y', MyString)
-        )
-        return test_table
+        return self._test_table(MyString)
+
+    def _type_decorator_outside_fixture(self):
+        class MyString(TypeDecorator):
+            impl = String
+
+            def bind_expression(self, bindvalue):
+                return func.outside_bind(bindvalue)
+
+            def column_expression(self, col):
+                return func.outside_colexpr(col)
+
+        return self._test_table(MyString)
+
+    def _type_decorator_inside_fixture(self):
+        class MyInsideString(String):
+            def bind_expression(self, bindvalue):
+                return func.inside_bind(bindvalue)
+
+            def column_expression(self, col):
+                return func.inside_colexpr(col)
+
+        class MyString(TypeDecorator):
+            impl = MyInsideString
+
+        return self._test_table(MyString)
+
+    def _type_decorator_both_fixture(self):
+        class MyDialectString(String):
+            def bind_expression(self, bindvalue):
+                return func.inside_bind(bindvalue)
+
+            def column_expression(self, col):
+                return func.inside_colexpr(col)
+
+        class MyString(TypeDecorator):
+            impl = String
+
+            # this works because when the compiler calls dialect_impl(),
+            # a copy of MyString is created which has just this impl
+            # as self.impl
+            def load_dialect_impl(self, dialect):
+                return MyDialectString()
+
+            # user-defined methods need to invoke explicitly on the impl
+            # for now...
+            def bind_expression(self, bindvalue):
+                return func.outside_bind(self.impl.bind_expression(bindvalue))
+
+            def column_expression(self, col):
+                return func.outside_colexpr(self.impl.column_expression(col))
+
+        return self._test_table(MyString)
+
+    def _variant_fixture(self, inner_fixture):
+        type_ = inner_fixture.c.y.type
+
+        variant = String().with_variant(type_, "default")
+        return self._test_table(variant)
+
+    def _dialect_level_fixture(self):
+
+        class ImplString(String):
+            def bind_expression(self, bindvalue):
+                return func.dialect_bind(bindvalue)
+
+            def column_expression(self, col):
+                return func.dialect_colexpr(col)
+
+        from sqlalchemy.engine import default
+        dialect = default.DefaultDialect()
+        dialect.colspecs = {String: ImplString}
+        return dialect
 
 
 class SelectTest(_ExprFixture, fixtures.TestBase, AssertsCompiledSQL):
@@ -98,6 +175,105 @@ class SelectTest(_ExprFixture, fixtures.TestBase, AssertsCompiledSQL):
             "test_table WHERE test_table.y = lower(:y_1)"
         )
 
+    def test_dialect(self):
+        table = self._fixture()
+        dialect = self._dialect_level_fixture()
+
+        # 'x' is straight String
+        self.assert_compile(
+            select([table.c.x]).where(table.c.x == "hi"),
+            "SELECT dialect_colexpr(test_table.x) AS x "
+            "FROM test_table WHERE test_table.x = dialect_bind(:x_1)",
+            dialect=dialect
+        )
+
+    def test_type_decorator_inner(self):
+        table = self._type_decorator_inside_fixture()
+
+        self.assert_compile(
+            select([table]).where(table.c.y == "hi"),
+            "SELECT test_table.x, inside_colexpr(test_table.y) AS y "
+            "FROM test_table WHERE test_table.y = inside_bind(:y_1)"
+        )
+
+    def test_type_decorator_inner_plus_dialect(self):
+        table = self._type_decorator_inside_fixture()
+        dialect = self._dialect_level_fixture()
+
+        # for "inner", the MyStringImpl is a subclass of String, #
+        # so a dialect-level
+        # implementation supersedes that, which is the same as with other
+        # processor functions
+        self.assert_compile(
+            select([table]).where(table.c.y == "hi"),
+            "SELECT dialect_colexpr(test_table.x) AS x, "
+            "dialect_colexpr(test_table.y) AS y FROM test_table "
+            "WHERE test_table.y = dialect_bind(:y_1)",
+            dialect=dialect
+        )
+
+    def test_type_decorator_outer(self):
+        table = self._type_decorator_outside_fixture()
+
+        self.assert_compile(
+            select([table]).where(table.c.y == "hi"),
+            "SELECT test_table.x, outside_colexpr(test_table.y) AS y "
+            "FROM test_table WHERE test_table.y = outside_bind(:y_1)"
+        )
+
+    def test_type_decorator_outer_plus_dialect(self):
+        table = self._type_decorator_outside_fixture()
+        dialect = self._dialect_level_fixture()
+
+        # for "outer", the MyString isn't calling the "impl" functions,
+        # so we don't get the "impl"
+        self.assert_compile(
+            select([table]).where(table.c.y == "hi"),
+            "SELECT dialect_colexpr(test_table.x) AS x, "
+            "outside_colexpr(test_table.y) AS y "
+            "FROM test_table WHERE test_table.y = outside_bind(:y_1)",
+            dialect=dialect
+        )
+
+    def test_type_decorator_both(self):
+        table = self._type_decorator_both_fixture()
+
+        self.assert_compile(
+            select([table]).where(table.c.y == "hi"),
+            "SELECT test_table.x, "
+            "outside_colexpr(inside_colexpr(test_table.y)) AS y "
+            "FROM test_table WHERE "
+            "test_table.y = outside_bind(inside_bind(:y_1))"
+        )
+
+    def test_type_decorator_both_plus_dialect(self):
+        table = self._type_decorator_both_fixture()
+        dialect = self._dialect_level_fixture()
+
+        # for "inner", the MyStringImpl is a subclass of String,
+        # so a dialect-level
+        # implementation supersedes that, which is the same as with other
+        # processor functions
+        self.assert_compile(
+            select([table]).where(table.c.y == "hi"),
+            "SELECT dialect_colexpr(test_table.x) AS x, "
+            "outside_colexpr(dialect_colexpr(test_table.y)) AS y "
+            "FROM test_table WHERE "
+            "test_table.y = outside_bind(dialect_bind(:y_1))",
+            dialect=dialect
+        )
+
+    def test_type_decorator_both_w_variant(self):
+        table = self._variant_fixture(self._type_decorator_both_fixture())
+
+        self.assert_compile(
+            select([table]).where(table.c.y == "hi"),
+            "SELECT test_table.x, "
+            "outside_colexpr(inside_colexpr(test_table.y)) AS y "
+            "FROM test_table WHERE "
+            "test_table.y = outside_bind(inside_bind(:y_1))"
+        )
+
 
 class DerivedTest(_ExprFixture, fixtures.TestBase, AssertsCompiledSQL):
     __dialect__ = 'default'
@@ -217,6 +393,7 @@ class RoundTripTestBase(object):
         )
 
 
+
 class StringRoundTripTest(fixtures.TablesTest, RoundTripTestBase):
 
     @classmethod