From: Mike Bayer Date: Fri, 5 May 2006 01:18:55 +0000 (+0000) Subject: added from_obj option to select() X-Git-Tag: rel_0_1_7~2 X-Git-Url: http://git.ipfire.org/cgi-bin/gitweb.cgi?a=commitdiff_plain;h=a7ba115c3dd536ac75c334838872c3f587a9c2ec;p=thirdparty%2Fsqlalchemy%2Fsqlalchemy.git added from_obj option to select() --- diff --git a/lib/sqlalchemy/mapping/query.py b/lib/sqlalchemy/mapping/query.py index 8233fba654..2ef23c5606 100644 --- a/lib/sqlalchemy/mapping/query.py +++ b/lib/sqlalchemy/mapping/query.py @@ -223,14 +223,16 @@ class Query(object): def _compile(self, whereclause = None, **kwargs): order_by = kwargs.pop('order_by', False) + from_obj = kwargs.pop('from_obj', []) if order_by is False: order_by = self.order_by if order_by is False: if self.table.default_order_by() is not None: order_by = self.table.default_order_by() - + if self._should_nest(**kwargs): - s2 = sql.select(self.table.primary_key, whereclause, use_labels=True, from_obj=[self.table], **kwargs) + from_obj.append(self.table) + s2 = sql.select(self.table.primary_key, whereclause, use_labels=True, from_obj=from_obj, **kwargs) # raise "ok first thing", str(s2) if not kwargs.get('distinct', False) and order_by: s2.order_by(*util.to_list(order_by)) @@ -243,7 +245,8 @@ class Query(object): if order_by: statement.order_by(*util.to_list(order_by)) else: - statement = sql.select([], whereclause, from_obj=[self.table], use_labels=True, **kwargs) + from_obj.append(self.table) + statement = sql.select([], whereclause, from_obj=from_obj, use_labels=True, **kwargs) if order_by: statement.order_by(*util.to_list(order_by)) # for a DISTINCT query, you need the columns explicitly specified in order