dabo Commit
Revision 5204
Date: 2009-05-06 09:38:08 -0700 (Wed, 06 May 2009)
Author: Paul
Trac: http://trac.dabodev.com/changeset/5204

Changed:
U   trunk/dabo/db/dCursorMixin.py

Log:
This fixes the changes in r5180 that broke the old-style setFromClause() that
included the joins instead of setting them separately with addJoin().



Diff:
Modified: trunk/dabo/db/dCursorMixin.py
===================================================================
--- trunk/dabo/db/dCursorMixin.py       2009-05-04 21:42:02 UTC (rev 5203)
+++ trunk/dabo/db/dCursorMixin.py       2009-05-06 16:38:08 UTC (rev 5204)
@@ -2151,8 +2151,21 @@
 
        def setChildFilter(self, fld, val):
                """ This method sets the appropriate filter for dependent child 
queries."""
-               # The alias is the last 'word' in the FROM clause
-               alias = self.sqlManager._fromClause.split()[-1]
+
+               def getTableAlias(fromClause):
+                       joinStrings = ["left join", "right join", "outer join", 
"inner join", "join"]
+                       foundAlias = None
+                       for joinString in joinStrings:
+                               at = fromClause.lower().find(joinString)
+                               if at >= 0:
+                                       foundAlias = fromClause[:at].strip()
+                                       break
+                       if not foundAlias:
+                               # The alias is the last 'word' in the FROM 
clause
+                               foundAlias = fromClause.strip().split()[-1]
+                       return foundAlias
+
+               alias = getTableAlias(self.sqlManager._fromClause)
                filtExpr = " %s.%s = %s " % (alias, fld, val)
                self.setChildFilterClause(filtExpr)
 



_______________________________________________
Post Messages to: [email protected]
Subscription Maintenance: http://leafe.com/mailman/listinfo/dabo-dev
Searchable Archives: http://leafe.com/archives/search/dabo-dev
This message: 
http://leafe.com/archives/byMID/[email protected]

Reply via email to