comparison roundup/backends/rdbms_common.py @ 3525:7be25d75c3d5

Fixed SQL generation for sort/group by separate Link properties [SF#1417565] Metakit fails the new test. I have no idea why.
author Richard Jones <richard@users.sourceforge.net>
date Mon, 30 Jan 2006 00:36:26 +0000
parents 87e512f87bae
children 5cd1c83dea50
comparison
equal deleted inserted replaced
3524:ed82c2c6ee34 3525:7be25d75c3d5
1 # $Id: rdbms_common.py,v 1.163 2006-01-24 08:27:54 a1s Exp $ 1 # $Id: rdbms_common.py,v 1.164 2006-01-30 00:36:26 richard Exp $
2 ''' Relational database (SQL) backend common code. 2 ''' Relational database (SQL) backend common code.
3 3
4 Basics: 4 Basics:
5 5
6 - map roundup classes to relational tables 6 - map roundup classes to relational tables
2156 2156
2157 # "grouping" is just the first-order sorting in the SQL fetch 2157 # "grouping" is just the first-order sorting in the SQL fetch
2158 orderby = [] 2158 orderby = []
2159 ordercols = [] 2159 ordercols = []
2160 mlsort = [] 2160 mlsort = []
2161 rhsnum = 0
2161 for sortby in group, sort: 2162 for sortby in group, sort:
2162 sdir, prop = sortby 2163 sdir, prop = sortby
2163 if sdir and prop: 2164 if sdir and prop:
2164 if isinstance(props[prop], Multilink): 2165 if isinstance(props[prop], Multilink):
2165 mlsort.append(sortby) 2166 mlsort.append(sortby)
2174 link = self.db.classes[lcn] 2175 link = self.db.classes[lcn]
2175 o = '_%s._%s'%(cn, prop) 2176 o = '_%s._%s'%(cn, prop)
2176 op = link.orderprop() 2177 op = link.orderprop()
2177 if op != 'id': 2178 if op != 'id':
2178 tn = '_' + lcn 2179 tn = '_' + lcn
2179 loj.append('LEFT OUTER JOIN %s as rhs_ on %s=rhs_.id' 2180 rhs = 'rhs%s_'%rhsnum
2180 %(tn, o)) 2181 rhsnum += 1
2181 o = 'rhs_._%s'%op 2182 loj.append('LEFT OUTER JOIN %s as %s on %s=%s.id'%(
2183 tn, rhs, o, rhs))
2184 o = '%s._%s'%(rhs, op)
2182 ordercols.append(o) 2185 ordercols.append(o)
2183 elif prop == 'id': 2186 elif prop == 'id':
2184 o = '_%s.id'%cn 2187 o = '_%s.id'%cn
2185 else: 2188 else:
2186 o = '_%s._%s'%(cn, prop) 2189 o = '_%s._%s'%(cn, prop)

Roundup Issue Tracker: http://roundup-tracker.org/