From 4cccb5022818fc93e357c69ddb15e31fc3177ada Mon Sep 17 00:00:00 2001 From: Ants Aasma Date: Thu, 29 May 2008 02:11:59 +0000 Subject: [PATCH] add with_only_columns to Select to allow for removing columns from selects --- lib/sqlalchemy/sql/expression.py | 10 ++++++++++ 1 file changed, 10 insertions(+) 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.""" -- 2.47.3