diff options
| author | Mike Bayer <mike_mp@zzzcomputing.com> | 2016-01-11 14:35:56 -0500 |
|---|---|---|
| committer | Mike Bayer <mike_mp@zzzcomputing.com> | 2016-01-11 16:44:28 -0500 |
| commit | 6fbfadc7388dad4576ad99ce597e0878ee1d297f (patch) | |
| tree | 2aeaeec66050d6377ae719f825b6d5f45ea62252 /lib/sqlalchemy/engine/default.py | |
| parent | b301f009e18246db9277a4b9d7e3a1bf01a92ae9 (diff) | |
| download | sqlalchemy-6fbfadc7388dad4576ad99ce597e0878ee1d297f.tar.gz | |
- reorganize schema_translate_map to be succinct and gain the performance
back by using an attrgetter for the default case
Diffstat (limited to 'lib/sqlalchemy/engine/default.py')
| -rw-r--r-- | lib/sqlalchemy/engine/default.py | 10 |
1 files changed, 7 insertions, 3 deletions
diff --git a/lib/sqlalchemy/engine/default.py b/lib/sqlalchemy/engine/default.py index 160fe545e..6c42af8b1 100644 --- a/lib/sqlalchemy/engine/default.py +++ b/lib/sqlalchemy/engine/default.py @@ -16,7 +16,7 @@ as the base class for their own corresponding classes. import re import random from . import reflection, interfaces, result -from ..sql import compiler, expression +from ..sql import compiler, expression, schema from .. import types as sqltypes from .. import exc, util, pool, processors import codecs @@ -399,16 +399,20 @@ class DefaultDialect(interfaces.Dialect): self._set_connection_isolation(connection, isolation_level) if 'schema_translate_map' in opts: + getter = schema._schema_getter(opts['schema_translate_map']) + engine.schema_for_object = getter + @event.listens_for(engine, "engine_connect") def set_schema_translate_map(connection, branch): - connection._schema_translate_map = opts['schema_translate_map'] + connection.schema_for_object = getter def set_connection_execution_options(self, connection, opts): if 'isolation_level' in opts: self._set_connection_isolation(connection, opts['isolation_level']) if 'schema_translate_map' in opts: - connection._schema_translate_map = opts['schema_translate_map'] + getter = schema._schema_getter(opts['schema_translate_map']) + connection.schema_for_object = getter def _set_connection_isolation(self, connection, level): if connection.in_transaction(): |
