Author: luke
Date: 2007-04-17 08:21:13 -0600 (Tue, 17 Apr 2007)
New Revision: 2546
Modified:
SQLObject/branches/cache-deps-on-views/sqlobject/sresults.py
Log:
bug with distinct and orderby in throughTo
Modified: SQLObject/branches/cache-deps-on-views/sqlobject/sresults.py
===================================================================
--- SQLObject/branches/cache-deps-on-views/sqlobject/sresults.py 2007-04-16 13:05:58 UTC (rev 2545)
+++ SQLObject/branches/cache-deps-on-views/sqlobject/sresults.py 2007-04-17 14:21:13 UTC (rev 2546)
@@ -310,21 +310,20 @@
raise AttributeError("throughTo argument (got %s) should be name of foreignKey or SQL*Join in %s" % (attr, self.sourceClass))
return otherClass.select(clause,
- distinct=True,
orderBy=orderBy,
connection=self._getConnection())
def _throughToFK(self, col):
otherClass = getattr(self.sourceClass, "_SO_class_"+col.foreignKey)
colName = col.name
- query = self.queryForSelect().newItems([sqlbuilder.ColumnAS(getattr(self.sourceClass.q, colName), colName)])
+ query = self.queryForSelect().newItems([sqlbuilder.ColumnAS(getattr(self.sourceClass.q, colName), colName)]).orderBy(None).distinct()
query = sqlbuilder.Alias(query, "%s_%s" % (self.sourceClass.__name__, col.name))
return otherClass, otherClass.q.id==getattr(query.q, colName)
def _throughToMultipleJoin(self, join):
otherClass = join.otherClass
colName = join.soClass.sqlmeta.style.dbColumnToPythonAttr(join.joinColumn)
- query = self.queryForSelect().newItems([sqlbuilder.ColumnAS(self.sourceClass.q.id, 'id')])
+ query = self.queryForSelect().newItems([sqlbuilder.ColumnAS(self.sourceClass.q.id, 'id')]).orderBy(None).distinct()
query = sqlbuilder.Alias(query, "%s_%s" % (self.sourceClass.__name__, join.joinMethodName))
joinColumn = getattr(otherClass.q, colName)
return otherClass, joinColumn==query.q.id
@@ -333,7 +332,7 @@
otherClass = join.otherClass
intTable = sqlbuilder.Table(join.intermediateTable)
colName = join.joinColumn
- query = self.queryForSelect().newItems([sqlbuilder.ColumnAS(self.sourceClass.q.id, 'id')])#sqlbuilder.ColumnAS(getattr(intTable, colName), colName)])
+ query = self.queryForSelect().newItems([sqlbuilder.ColumnAS(self.sourceClass.q.id, 'id')]).orderBy(None).distinct()
query = sqlbuilder.Alias(query, "%s_%s" % (self.sourceClass.__name__, join.joinMethodName))
clause = sqlbuilder.AND(otherClass.q.id == getattr(intTable, join.otherColumn),
getattr(intTable, colName) == query.q.id)
|