From: Mike Bayer Date: Wed, 7 Nov 2007 00:52:49 +0000 (+0000) Subject: - fixed very hard-to-reproduce issue where by the FROM clause of Query X-Git-Tag: rel_0_4_1~49 X-Git-Url: http://git.ipfire.org/gitweb.cgi?a=commitdiff_plain;h=e09fed05c706b585b09749a8ff1bc87776b73ab5;p=thirdparty%2Fsqlalchemy%2Fsqlalchemy.git - fixed very hard-to-reproduce issue where by the FROM clause of Query could get polluted by certain generative calls [ticket:852] --- 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