[Sqlalchemy-commits] [1315] sqlalchemy/branches/schema/lib/sqlalchemy/engine: dev
Brought to you by:
zzzeek
From: <co...@sq...> - 2006-04-22 16:45:16
|
<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.1//EN" "http://www.w3.org/TR/xhtml11/DTD/xhtml11.dtd"> <html xmlns="http://www.w3.org/1999/xhtml"> <head><style type="text/css"><!-- #msg dl { border: 1px #006 solid; background: #369; padding: 6px; color: #fff; } #msg dt { float: left; width: 6em; font-weight: bold; } #msg dt:after { content:':';} #msg dl, #msg dt, #msg ul, #msg li { font-family: verdana,arial,helvetica,sans-serif; font-size: 10pt; } #msg dl a { font-weight: bold} #msg dl a:link { color:#fc3; } #msg dl a:active { color:#ff0; } #msg dl a:visited { color:#cc6; } h3 { font-family: verdana,arial,helvetica,sans-serif; font-size: 10pt; font-weight: bold; } #msg pre { overflow: auto; background: #ffc; border: 1px #fc0 solid; padding: 6px; } #msg ul, pre { overflow: auto; } #patch { width: 100%; } #patch h4 {font-family: verdana,arial,helvetica,sans-serif;font-size:10pt;padding:8px;background:#369;color:#fff;margin:0;} #patch .propset h4, #patch .binary h4 {margin:0;} #patch pre {padding:0;line-height:1.2em;margin:0;} #patch .diff {width:100%;background:#eee;padding: 0 0 10px 0;overflow:auto;} #patch .propset .diff, #patch .binary .diff {padding:10px 0;} #patch span {display:block;padding:0 10px;} #patch .modfile, #patch .addfile, #patch .delfile, #patch .propset, #patch .binary, #patch .copfile {border:1px solid #ccc;margin:10px 0;} #patch ins {background:#dfd;text-decoration:none;display:block;padding:0 10px;} #patch del {background:#fdd;text-decoration:none;display:block;padding:0 10px;} #patch .lines, .info {color:#888;background:#fff;} --></style> <title>[1315] sqlalchemy/branches/schema/lib/sqlalchemy/engine: dev</title> </head> <body> <div id="msg"> <dl> <dt>Revision</dt> <dd>1315</dd> <dt>Author</dt> <dd>zzzeek</dd> <dt>Date</dt> <dd>2006-04-22 11:45:04 -0500 (Sat, 22 Apr 2006)</dd> </dl> <h3>Log Message</h3> <pre>dev</pre> <h3>Modified Paths</h3> <ul> <li><a href="#sqlalchemybranchesschemalibsqlalchemyenginebasepy">sqlalchemy/branches/schema/lib/sqlalchemy/engine/base.py</a></li> <li><a href="#sqlalchemybranchesschemalibsqlalchemyenginetransactionalpy">sqlalchemy/branches/schema/lib/sqlalchemy/engine/transactional.py</a></li> </ul> </div> <div id="patch"> <h3>Diff</h3> <a id="sqlalchemybranchesschemalibsqlalchemyenginebasepy"></a> <div class="modfile"><h4>Modified: sqlalchemy/branches/schema/lib/sqlalchemy/engine/base.py (1314 => 1315)</h4> <pre class="diff"><span> <span class="info">--- sqlalchemy/branches/schema/lib/sqlalchemy/engine/base.py 2006-04-21 23:18:17 UTC (rev 1314) +++ sqlalchemy/branches/schema/lib/sqlalchemy/engine/base.py 2006-04-22 16:45:04 UTC (rev 1315) </span><span class="lines">@@ -162,7 +162,11 @@ </span><span class="cx"> def _create_transaction(self, parent): </span><span class="cx"> return Transaction(self, parent) </span><span class="cx"> def connect(self): </span><ins>+ """connect() is implemented to return self so that an incoming Engine or Connection object can be treated similarly.""" </ins><span class="cx"> return self </span><ins>+ def contextual_connect(self): + """contextual_connect() is implemented to return self so that an incoming Engine or Connection object can be treated similarly.""" + return self </ins><span class="cx"> def begin(self): </span><span class="cx"> if self.transaction is None: </span><span class="cx"> self.transaction = self._create_transaction(None) </span><span class="lines">@@ -356,7 +360,7 @@ </span><span class="cx"> </span><span class="cx"> def _run_visitor(self, visitorcallable, element, connection=None, **kwargs): </span><span class="cx"> if connection is None: </span><del>- conn = self.connect() </del><ins>+ conn = self.contextual_connect() </ins><span class="cx"> else: </span><span class="cx"> conn = connection </span><span class="cx"> try: </span><span class="lines">@@ -366,23 +370,29 @@ </span><span class="cx"> conn.close() </span><span class="cx"> </span><span class="cx"> def execute(self, *args, **kwargs): </span><del>- connection = self.connect(close_with_result=True) </del><ins>+ connection = self.contextual_connect() </ins><span class="cx"> return connection.execute(*args, **kwargs) </span><span class="cx"> </span><span class="cx"> def execute_compiled(self, compiled, parameters, **kwargs): </span><del>- connection = self.connect(close_with_result=True) </del><ins>+ connection = self.contextual_connect() </ins><span class="cx"> return connection.execute_compiled(compiled, parameters, **kwargs) </span><span class="cx"> </span><span class="cx"> def compiler(self, statement, parameters, **kwargs): </span><span class="cx"> return self.dialect.compiler(statement, parameters, engine=self, **kwargs) </span><span class="cx"> </span><span class="cx"> def connect(self, **kwargs): </span><ins>+ """returns a newly allocated Connection object.""" </ins><span class="cx"> return Connection(self, **kwargs) </span><del>- </del><ins>+ + def contextual_connect(self, **kwargs): + """returns a Connection object which may be newly allocated, or may be part of some + ongoing context. This Connection is meant to be used by the various "auto-connecting" operations.""" + return Connection(self, close_with_result=True, **kwargs) + </ins><span class="cx"> def reflecttable(self, table, connection=None): </span><span class="cx"> """given a Table object, reflects its columns and properties from the database.""" </span><span class="cx"> if connection is None: </span><del>- conn = self.connect() </del><ins>+ conn = self.contextual_connect() </ins><span class="cx"> else: </span><span class="cx"> conn = connection </span><span class="cx"> try: </span></span></pre></div> <a id="sqlalchemybranchesschemalibsqlalchemyenginetransactionalpy"></a> <div class="modfile"><h4>Modified: sqlalchemy/branches/schema/lib/sqlalchemy/engine/transactional.py (1314 => 1315)</h4> <pre class="diff"><span> <span class="info">--- sqlalchemy/branches/schema/lib/sqlalchemy/engine/transactional.py 2006-04-21 23:18:17 UTC (rev 1314) +++ sqlalchemy/branches/schema/lib/sqlalchemy/engine/transactional.py 2006-04-22 16:45:04 UTC (rev 1315) </span><span class="lines">@@ -40,22 +40,23 @@ </span><span class="cx"> return t </span><span class="cx"> </span><span class="cx"> class TLEngine(base.ComposedSQLEngine): </span><del>- """a ComposedSQLEngine that includes support for thread-local managed transactions""" </del><ins>+ """a ComposedSQLEngine that includes support for thread-local managed transactions. This engine + is better suited to be used with threadlocal Pool object.""" </ins><span class="cx"> def __init__(self, *args, **kwargs): </span><span class="cx"> """the TLEngine relies upon the ConnectionProvider having "threadlocal" behavior, </span><span class="cx"> so that once a connection is checked out for the current thread, you get that same connection </span><span class="cx"> repeatedly.""" </span><span class="cx"> base.ComposedSQLEngine.__init__(self, *args, **kwargs) </span><span class="cx"> self.context = util.ThreadLocal() </span><del>- def unique_connection(self): </del><ins>+ def raw_connection(self): + """returns a DBAPI connection.""" + return self.connection_provider.unique_connection() + def connect(self, **kwargs): </ins><span class="cx"> """returns a Connection that is not thread-locally scoped. this is the equilvalent to calling </span><span class="cx"> "connect()" on a ComposedSQLEngine.""" </span><del>- return Connection(self, self.raw_unique_connection()) - def raw_unique_connection(self): - """returns a raw connection that is not thread-locally scoped. this is the equivalent to calling - raw_connection on a ComposedSQLEngine.""" - return self.connection_provider.unique_connection() - def connect(self, **kwargs): </del><ins>+ return base.Connection(self, self.connection_provider.unique_connection()) + def contextual_connect(self, **kwargs): + """returns a TLConnection which is thread-locally scoped.""" </ins><span class="cx"> return TLConnection(self, **kwargs) </span><span class="cx"> def begin(self): </span><span class="cx"> return self.connect().begin() </span></span></pre> </div> </div> </body> </html> |