Mercurial > p > roundup > code
comparison 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 |
comparison
equal
deleted
inserted
replaced
| 6152:546763f4ce44 | 6155:ba0cfc1a87c9 |
|---|---|
| 2261 tn = p.table_name | 2261 tn = p.table_name |
| 2262 ln = p.linkid_name | 2262 ln = p.linkid_name |
| 2263 nn = p.nodeid_name | 2263 nn = p.nodeid_name |
| 2264 cn = '_' + self.classname | 2264 cn = '_' + self.classname |
| 2265 ret = '' | 2265 ret = '' |
| 2266 if p.rev_property and isinstance(p.rev_property, Link): | 2266 dis = '' |
| 2267 ret = 'and %s.__retired__=%s ' % (tn, a) | 2267 ord = '' |
| 2268 allvalues += (0, ) | 2268 if p.rev_property: |
| 2269 if isinstance(p.rev_property, Link): | |
| 2270 ret = 'and %s.__retired__=%s ' % (tn, a) | |
| 2271 allvalues += (0, ) | |
| 2272 dis = 'distinct ' | |
| 2273 ord = ' order by %s.id' % cn | |
| 2269 if type(values) is type(''): | 2274 if type(values) is type(''): |
| 2270 allvalues += (values,) | 2275 allvalues += (values,) |
| 2271 s = a | 2276 s = a |
| 2272 else: | 2277 else: |
| 2273 allvalues += tuple(values) | 2278 allvalues += tuple(values) |
| 2274 s = ','.join([a]*len(values)) | 2279 s = ','.join([a]*len(values)) |
| 2275 sql.append("""select %s.id from %s, %s where %s.__retired__=%s | 2280 sql.append("""select %s%s.id from %s, %s where %s.__retired__=%s |
| 2276 %sand %s.id = %s.%s and %s.%s in (%s)"""%(cn, cn, tn, cn, | 2281 %sand %s.id = %s.%s and %s.%s in (%s)%s"""%(dis, cn, cn, |
| 2277 a, ret, cn, tn, nn, tn, ln, s)) | 2282 tn, cn, a, ret, cn, tn, nn, tn, ln, s, ord)) |
| 2278 | 2283 |
| 2279 if not sql: | 2284 if not sql: |
| 2280 return [] | 2285 return [] |
| 2281 sql = ' union '.join(sql) | 2286 sql = ' union '.join(sql) |
| 2282 self.db.sql(sql, allvalues) | 2287 self.db.sql(sql, allvalues) |
