summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
-rw-r--r--CHANGES3
-rw-r--r--lib/sqlalchemy/orm/query.py13
2 files changed, 3 insertions, 13 deletions
diff --git a/CHANGES b/CHANGES
index d337995f2..e8b94b21c 100644
--- a/CHANGES
+++ b/CHANGES
@@ -109,6 +109,9 @@ CHANGES
- Added proxying of save_or_update, __contains__ and __iter__ methods for
scoped sessions.
+ - fixed very hard-to-reproduce issue where by the FROM clause of Query
+ could get polluted by certain generative calls [ticket:852]
+
- dialects
- Added experimental support for MaxDB (versions >= 7.6.03.007 only).
diff --git a/lib/sqlalchemy/orm/query.py b/lib/sqlalchemy/orm/query.py
index 2029dd3be..c8a1f9cf8 100644
--- a/lib/sqlalchemy/orm/query.py
+++ b/lib/sqlalchemy/orm/query.py
@@ -770,12 +770,6 @@ class Query(object):
context = QueryContext(self)
from_obj = self._from_obj
- alltables = []
- for l in [sql_util.TableFinder(x) for x in from_obj]:
- alltables += l
-
- if self.table not in alltables:
- from_obj.append(self.table)
if self._nestable(**self._select_args()):
s = sql.select([self.table], whereclause, from_obj=from_obj, **self._select_args()).alias('getcount').count()
else:
@@ -833,13 +827,6 @@ class Query(object):
if self.select_mapper.single and self.select_mapper.polymorphic_on is not None and self.select_mapper.polymorphic_identity is not None:
whereclause = sql.and_(whereclause, self.select_mapper.polymorphic_on.in_(*[m.polymorphic_identity for m in self.select_mapper.polymorphic_iterator()]))
- alltables = []
- for l in [sql_util.TableFinder(x) for x in from_obj]:
- alltables += l
-
- if self.table not in alltables:
- from_obj.append(self.table)
-
context.from_clauses = from_obj
# give all the attached properties a chance to modify the query