]> git.ipfire.org Git - thirdparty/sqlalchemy/sqlalchemy.git/commitdiff
added from_obj option to select()
authorMike Bayer <mike_mp@zzzcomputing.com>
Fri, 5 May 2006 01:18:55 +0000 (01:18 +0000)
committerMike Bayer <mike_mp@zzzcomputing.com>
Fri, 5 May 2006 01:18:55 +0000 (01:18 +0000)
lib/sqlalchemy/mapping/query.py

index 8233fba654c5a3162f5ab29ac08446640bd7bc45..2ef23c5606792ae04cbd1c6cbc304f354021a3ea 100644 (file)
@@ -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