From: Ants Aasma Date: Thu, 29 May 2008 02:11:59 +0000 (+0000) Subject: add with_only_columns to Select to allow for removing columns from selects X-Git-Tag: rel_0_5beta1~17 X-Git-Url: http://git.ipfire.org/cgi-bin/gitweb.cgi?a=commitdiff_plain;h=4cccb5022818fc93e357c69ddb15e31fc3177ada;p=thirdparty%2Fsqlalchemy%2Fsqlalchemy.git add with_only_columns to Select to allow for removing columns from selects --- diff --git a/lib/sqlalchemy/sql/expression.py b/lib/sqlalchemy/sql/expression.py index a644582dbc..bf848654ca 100644 --- a/lib/sqlalchemy/sql/expression.py +++ b/lib/sqlalchemy/sql/expression.py @@ -3084,6 +3084,16 @@ class Select(_SelectBaseMixin, FromClause): s._froms = s._froms.union(_from_objects(column)) return s + def with_only_columns(self, columns): + """return a new select() construct with its columns clause replaced with the given columns.""" + s = self._generate() + s._raw_columns = [ + isinstance(c, _ScalarSelect) and c.self_group(against=operators.comma_op) or c + for c in + [_literal_as_column(c) for c in columns] + ] + return s + def where(self, whereclause): """return a new select() construct with the given expression added to its WHERE clause, joined to the existing clause via AND, if any."""