diff options
| author | Mike Bayer <mike_mp@zzzcomputing.com> | 2007-07-31 17:15:36 +0000 |
|---|---|---|
| committer | Mike Bayer <mike_mp@zzzcomputing.com> | 2007-07-31 17:15:36 +0000 |
| commit | 8f17efd7a3c337045299927f1a30cbbd013dd6b1 (patch) | |
| tree | 7336c463a42bd46fefe039fb314e255bc32f6f10 /lib/sqlalchemy/engine/default.py | |
| parent | 098b471c88449dbea1eeea01afd3eee58dcfaa68 (diff) | |
| download | sqlalchemy-8f17efd7a3c337045299927f1a30cbbd013dd6b1.tar.gz | |
- assurances that context.connection is safe to use by column default functions, helps proposal for [ticket:703]
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 a2e159639..185387177 100644 --- a/lib/sqlalchemy/engine/default.py +++ b/lib/sqlalchemy/engine/default.py @@ -145,7 +145,7 @@ class DefaultDialect(base.Dialect): class DefaultExecutionContext(base.ExecutionContext): def __init__(self, dialect, connection, compiled=None, statement=None, parameters=None): self.dialect = dialect - self.connection = connection + self._connection = connection self.compiled = compiled self._postfetch_cols = util.Set() @@ -172,11 +172,15 @@ class DefaultExecutionContext(base.ExecutionContext): self.statement = self.statement.encode(self.dialect.encoding) self.cursor = self.create_cursor() - + engine = property(lambda s:s.connection.engine) isinsert = property(lambda s:s.compiled and s.compiled.isinsert) isupdate = property(lambda s:s.compiled and s.compiled.isupdate) + connection = property(lambda s:s._connection._branch()) + + root_connection = property(lambda s:s._connection) + def __encode_param_keys(self, params): """apply string encoding to the keys of dictionary-based bind parameters""" if self.dialect.positional or self.dialect.supports_unicode_statements(): @@ -218,7 +222,7 @@ class DefaultExecutionContext(base.ExecutionContext): return re.match(r'SELECT', self.statement.lstrip(), re.I) is not None def create_cursor(self): - return self.connection.connection.cursor() + return self._connection.connection.cursor() def pre_execution(self): self.pre_exec() |
