From: Mike Bayer Date: Sat, 13 Feb 2010 21:40:02 +0000 (+0000) Subject: - Documentation clarification for query.delete() X-Git-Tag: rel_0_6beta2~196 X-Git-Url: http://git.ipfire.org/gitweb.cgi?a=commitdiff_plain;h=f2974ef3993e02646a2dfade5feb74afb78f370f;p=thirdparty%2Fsqlalchemy%2Fsqlalchemy.git - Documentation clarification for query.delete() [ticket:1689] --- diff --git a/CHANGES b/CHANGES index e38d0932f1..cdf7e71f56 100644 --- a/CHANGES +++ b/CHANGES @@ -54,7 +54,10 @@ CHANGES - Some internal streamlining of object loading grants a small speedup for large results, estimates are around 10-15%. - + + - Documentation clarification for query.delete() + [ticket:1689] + - sql - Added math negation operator support, -x. diff --git a/lib/sqlalchemy/orm/query.py b/lib/sqlalchemy/orm/query.py index 456f1f19c5..bd5a08987e 100644 --- a/lib/sqlalchemy/orm/query.py +++ b/lib/sqlalchemy/orm/query.py @@ -1682,7 +1682,8 @@ class Query(object): 'evaluate' - Evaluate the query's criteria in Python straight on the objects in the session. If evaluation of the criteria isn't - implemented, the 'fetch' strategy will be used as a fallback. + implemented, an error is raised. In that case you probably + want to use the 'fetch' strategy as a fallback. The expression evaluator currently doesn't account for differing string collations between the database and Python. @@ -1707,14 +1708,17 @@ class Query(object): #TODO: cascades need handling. if synchronize_session not in [False, 'evaluate', 'fetch']: - raise sa_exc.ArgumentError("Valid strategies for session synchronization are False, 'evaluate' and 'fetch'") + raise sa_exc.ArgumentError("Valid strategies for session " + "synchronization are False, 'evaluate' and 'fetch'") self._no_select_modifiers("delete") self = self.enable_eagerloads(False) context = self._compile_context() - if len(context.statement.froms) != 1 or not isinstance(context.statement.froms[0], schema.Table): - raise sa_exc.ArgumentError("Only deletion via a single table query is currently supported") + if len(context.statement.froms) != 1 or \ + not isinstance(context.statement.froms[0], schema.Table): + raise sa_exc.ArgumentError("Only deletion via a single table " + "query is currently supported") primary_table = context.statement.froms[0] session = self.session