From: Mike Bayer Date: Tue, 10 Nov 2009 22:59:59 +0000 (+0000) Subject: scan for autocommit based on text() specific flag, saves isinstance() call on each... X-Git-Tag: rel_0_6beta1~172 X-Git-Url: http://git.ipfire.org/gitweb.cgi?a=commitdiff_plain;h=169c4fb3d33d841e860a429d151a626b5bfa88b9;p=thirdparty%2Fsqlalchemy%2Fsqlalchemy.git scan for autocommit based on text() specific flag, saves isinstance() call on each execution. --- diff --git a/lib/sqlalchemy/engine/default.py b/lib/sqlalchemy/engine/default.py index a7f6dc4fae..ca5106c341 100644 --- a/lib/sqlalchemy/engine/default.py +++ b/lib/sqlalchemy/engine/default.py @@ -256,8 +256,8 @@ class DefaultExecutionContext(base.ExecutionContext): self.isupdate = compiled.isupdate self.isdelete = compiled.isdelete self.should_autocommit = compiled.statement._autocommit - if isinstance(compiled.statement, expression._TextClause): - self.should_autocommit = self.should_autocommit or self.should_autocommit_text(self.statement) + if self.should_autocommit is expression.PARSE_AUTOCOMMIT: + self.should_autocommit = self.should_autocommit_text(self.statement) if not parameters: self.compiled_parameters = [compiled.construct_params()] diff --git a/lib/sqlalchemy/sql/expression.py b/lib/sqlalchemy/sql/expression.py index 5e4978bfb0..a7cba8161b 100644 --- a/lib/sqlalchemy/sql/expression.py +++ b/lib/sqlalchemy/sql/expression.py @@ -49,7 +49,7 @@ __all__ = [ 'literal_column', 'not_', 'null', 'or_', 'outparam', 'outerjoin', 'select', 'subquery', 'table', 'text', 'union', 'union_all', 'update', ] - +PARSE_AUTOCOMMIT = util._symbol('PARSE_AUTOCOMMIT') def desc(column): """Return a descending ``ORDER BY`` clause element. @@ -2189,7 +2189,7 @@ class _TextClause(ClauseElement): _hide_froms = [] def __init__(self, text = "", bind=None, - bindparams=None, typemap=None, autocommit=False): + bindparams=None, typemap=None, autocommit=PARSE_AUTOCOMMIT): self._bind = bind self.bindparams = {} self.typemap = typemap