From: Mike Bayer Date: Wed, 7 Nov 2007 21:56:23 +0000 (+0000) Subject: - ._execute_clauseelement becomes a public method X-Git-Tag: rel_0_4_1~44 X-Git-Url: http://git.ipfire.org/gitweb.cgi?a=commitdiff_plain;h=a914fae9dbb43cfeadf63145fc392fff67cc3662;p=thirdparty%2Fsqlalchemy%2Fsqlalchemy.git - ._execute_clauseelement becomes a public method Connectable.execute_clauseelement --- diff --git a/CHANGES b/CHANGES index 23a8f8981a..3ae068bc49 100644 --- a/CHANGES +++ b/CHANGES @@ -44,6 +44,9 @@ CHANGES - fix to compiled bind parameters to not mistakenly populate None [ticket:853] + + - ._execute_clauseelement becomes a public method + Connectable.execute_clauseelement - orm - eager loading with LIMIT/OFFSET applied no longer adds the primary diff --git a/lib/sqlalchemy/engine/base.py b/lib/sqlalchemy/engine/base.py index f554d6a163..013c5704b9 100644 --- a/lib/sqlalchemy/engine/base.py +++ b/lib/sqlalchemy/engine/base.py @@ -509,6 +509,9 @@ class Connectable(object): def execute(self, object, *multiparams, **params): raise NotImplementedError() + def execute_clauseelement(self, elem, multiparams=None, params=None): + raise NotImplementedError() + class Connection(Connectable): """Provides high-level functionality for a wrapped DB-API connection. @@ -821,9 +824,9 @@ class Connection(Connectable): return [multiparams] def _execute_function(self, func, multiparams, params): - return self._execute_clauseelement(func.select(), multiparams, params) + return self.execute_clauseelement(func.select(), multiparams, params) - def _execute_clauseelement(self, elem, multiparams=None, params=None): + def execute_clauseelement(self, elem, multiparams=None, params=None): params = self.__distill_params(multiparams, params) if params: keys = params[0].keys() @@ -890,7 +893,7 @@ class Connection(Connectable): # poor man's multimethod/generic function thingy executors = { expression._Function : _execute_function, - expression.ClauseElement : _execute_clauseelement, + expression.ClauseElement : execute_clauseelement, Compiled : _execute_compiled, schema.SchemaItem:_execute_default, str.__mro__[-2] : _execute_text @@ -1120,9 +1123,9 @@ class Engine(Connectable): def scalar(self, statement, *multiparams, **params): return self.execute(statement, *multiparams, **params).scalar() - def _execute_clauseelement(self, elem, multiparams=None, params=None): + def execute_clauseelement(self, elem, multiparams=None, params=None): connection = self.contextual_connect(close_with_result=True) - return connection._execute_clauseelement(elem, multiparams, params) + return connection.execute_clauseelement(elem, multiparams, params) def _execute_compiled(self, compiled, multiparams, params): connection = self.contextual_connect(close_with_result=True) diff --git a/lib/sqlalchemy/sql/expression.py b/lib/sqlalchemy/sql/expression.py index fea8e8155f..75c809004f 100644 --- a/lib/sqlalchemy/sql/expression.py +++ b/lib/sqlalchemy/sql/expression.py @@ -970,7 +970,7 @@ class ClauseElement(object): e = self.bind if e is None: raise exceptions.InvalidRequestError("This Compiled object is not bound to any Engine or Connection.") - return e._execute_clauseelement(self, multiparams, params) + return e.execute_clauseelement(self, multiparams, params) def scalar(self, *multiparams, **params): """Compile and execute this ``ClauseElement``, returning the result's scalar representation."""