Mercurial > p > roundup > code
diff roundup/backends/rdbms_common.py @ 6155:ba0cfc1a87c9
Fix Database.find for rev_multilink
| author | Ralf Schlatterbeck <rsc@runtux.com> |
|---|---|
| date | Sat, 02 May 2020 22:23:53 +0200 |
| parents | ff059afae50a |
| children | 3c52093d7490 |
line wrap: on
line diff
--- a/roundup/backends/rdbms_common.py Fri May 01 17:13:15 2020 +0200 +++ b/roundup/backends/rdbms_common.py Sat May 02 22:23:53 2020 +0200 @@ -2263,18 +2263,23 @@ nn = p.nodeid_name cn = '_' + self.classname ret = '' - if p.rev_property and isinstance(p.rev_property, Link): - ret = 'and %s.__retired__=%s ' % (tn, a) - allvalues += (0, ) + dis = '' + ord = '' + if p.rev_property: + if isinstance(p.rev_property, Link): + ret = 'and %s.__retired__=%s ' % (tn, a) + allvalues += (0, ) + dis = 'distinct ' + ord = ' order by %s.id' % cn if type(values) is type(''): allvalues += (values,) s = a else: allvalues += tuple(values) s = ','.join([a]*len(values)) - sql.append("""select %s.id from %s, %s where %s.__retired__=%s - %sand %s.id = %s.%s and %s.%s in (%s)"""%(cn, cn, tn, cn, - a, ret, cn, tn, nn, tn, ln, s)) + sql.append("""select %s%s.id from %s, %s where %s.__retired__=%s + %sand %s.id = %s.%s and %s.%s in (%s)%s"""%(dis, cn, cn, + tn, cn, a, ret, cn, tn, nn, tn, ln, s, ord)) if not sql: return []
