diff options
author | Mike Bayer <mike_mp@zzzcomputing.com> | 2010-05-30 20:24:08 -0400 |
---|---|---|
committer | Mike Bayer <mike_mp@zzzcomputing.com> | 2010-05-30 20:24:08 -0400 |
commit | 9bab63b69341bf9d89a30de2f624644b55afc6e9 (patch) | |
tree | b1c0a4956a743ba208a0c2cf506b9fcc634ac82d /lib/sqlalchemy/engine/base.py | |
parent | a19e403010804ad25260a96e5f38e0894c1d72af (diff) | |
download | sqlalchemy-9bab63b69341bf9d89a30de2f624644b55afc6e9.tar.gz |
- Pool classes will reuse the same "pool_logging_name" setting
after a dispose() occurs.
- Engine gains an "execution_options" argument and
update_execution_options() method, which will apply to
all connections generated by this engine.
- Added more aggressive caching to the mapper's usage of
UPDATE, INSERT, and DELETE expressions. Assuming the
statement has no per-object SQL expressions attached,
the expression objects are cached by the mapper after
the first create, and their compiled form is stored
persistently in a cache dictionary for the duration of
the related Engine.
- change #3 required change #1 so that we could test
a set of mappers operating over the course of many engines without
memory usage increase.
Diffstat (limited to 'lib/sqlalchemy/engine/base.py')
-rw-r--r-- | lib/sqlalchemy/engine/base.py | 27 |
1 files changed, 23 insertions, 4 deletions
diff --git a/lib/sqlalchemy/engine/base.py b/lib/sqlalchemy/engine/base.py index d39880cbf..a02cb81a0 100644 --- a/lib/sqlalchemy/engine/base.py +++ b/lib/sqlalchemy/engine/base.py @@ -799,7 +799,7 @@ class Connection(Connectable): Provides execution support for string-based SQL statements as well as ClauseElement, Compiled and DefaultGenerator objects. Provides - a begin method to return Transaction objects. + a :meth:`begin` method to return Transaction objects. The Connection object is **not** thread-safe. @@ -807,7 +807,6 @@ class Connection(Connectable): single: thread safety; Connection """ - _execution_options = util.frozendict() def __init__(self, engine, connection=None, close_with_result=False, _branch=False, _execution_options=None): @@ -828,7 +827,9 @@ class Connection(Connectable): self._echo = self.engine._should_log_info() if _execution_options: self._execution_options =\ - self._execution_options.union(_execution_options) + engine._execution_options.union(_execution_options) + else: + self._execution_options = engine._execution_options def _branch(self): """Return a new Connection which references this Connection's @@ -1557,8 +1558,12 @@ class Engine(Connectable, log.Identified): """ + _execution_options = util.frozendict() + def __init__(self, pool, dialect, url, - logging_name=None, echo=None, proxy=None): + logging_name=None, echo=None, proxy=None, + execution_options=None + ): self.pool = pool self.url = url self.dialect = dialect @@ -1571,6 +1576,20 @@ class Engine(Connectable, log.Identified): self.Connection = _proxy_connection_cls(Connection, proxy) else: self.Connection = Connection + if execution_options: + self.update_execution_options(**execution_options) + + def update_execution_options(self, **opt): + """update the execution_options dictionary of this :class:`Engine`. + + For details on execution_options, see + :meth:`Connection.execution_options` as well as + :meth:`sqlalchemy.sql.expression.Executable.execution_options`. + + + """ + self._execution_options = \ + self._execution_options.union(opt) @property def name(self): |