From e09fed05c706b585b09749a8ff1bc87776b73ab5 Mon Sep 17 00:00:00 2001 From: Mike Bayer Date: Wed, 7 Nov 2007 00:52:49 +0000 Subject: [PATCH] - fixed very hard-to-reproduce issue where by the FROM clause of Query could get polluted by certain generative calls [ticket:852] --- CHANGES | 3 +++ lib/sqlalchemy/orm/query.py | 13 ------------- 2 files changed, 3 insertions(+), 13 deletions(-) diff --git a/CHANGES b/CHANGES index d337995f2f..e8b94b21cc 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 2029dd3bee..c8a1f9cf86 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 -- 2.47.3