Changeset 178 in tracdarcs
- Timestamp:
- 05/12/10 18:40:53 (21 months ago)
- Hash name:
- 20100512164053-97f81-e69d930ef723d57a771c19c6a23bc5ed9781b30a
- Location:
- tracdarcs
- Files:
-
- 3 edited
-
dbutil.py (modified) (2 diffs)
-
repository.py (modified) (2 diffs)
-
updatedb.py (modified) (2 diffs)
Legend:
- Unmodified
- Added
- Removed
-
tracdarcs/dbutil.py
r169 r178 35 35 IS_TRAC_0_12_OR_BETTER = not not re.match(r'^0\.1[2-9]', tracVersion) 36 36 37 def query_nodes_for_revision(repo_id, rev=None ):37 def query_nodes_for_revision(repo_id, rev=None, cond=None): 38 38 ''' 39 39 Returns a query which represents the nodes available as of … … 44 44 if rev is None: 45 45 revfilter = "dn.remove_rev IS NULL" 46 revargs = [] 46 47 else: 47 revfilter = ("dnc2.rev <= %d" 48 " AND ((dn.remove_rev IS NULL) " 49 " OR (dn.remove_rev > %d))" % (rev,rev)) 48 revfilter = ("dnc2.rev <= %s" 49 " AND ((dn.remove_rev IS NULL)" 50 " OR (dn.remove_rev > %s))") 51 revargs = [rev, rev] 52 if cond is None: 53 cond = '' 54 else: 55 cond = 'AND %s' % cond 50 56 q = """SELECT dnc.node_id, dnc.rev, dnc.path, dnc.parent_id 51 57 FROM darcs_node_changes AS dnc 52 WHERE dnc.repo_id = % s58 WHERE dnc.repo_id = %%s 53 59 AND dnc.rev = (SELECT max(dnc2.rev) 54 FROM darcs_node_changes AS dnc2, darcs_nodes AS dn 60 FROM darcs_node_changes AS dnc2 61 JOIN darcs_nodes AS dn 62 ON dn.repo_id = dnc2.repo_id 63 AND dn.node_id = dnc2.node_id 55 64 WHERE dnc2.repo_id = dnc.repo_id 56 65 AND dnc2.node_id = dnc.node_id 57 AND dn.repo_id = dnc2.repo_id 58 AND dn.node_id = dnc2.node_id 59 AND %s)""" % (repo_id, revfilter) 60 return q 66 AND %s) 67 %s""" % (revfilter, cond) 68 return q, [repo_id] + revargs 61 69 62 70 def get_node_type(db, repo_id, node_id): -
tracdarcs/repository.py
r176 r178 95 95 else: 96 96 c = self.db.cursor() 97 q = query_nodes_for_revision(self.id, rev)98 q += ' AND dnc.path = %s'99 c.execute(q, (path,))97 q,args = query_nodes_for_revision(self.id, rev, 'dnc.path = %s') 98 args.append(path) 99 c.execute(q, args) 100 100 row = c.fetchone() 101 101 if row is None: … … 334 334 if self.__node_type == NODE_FILE_TYPE: 335 335 return 336 q = query_nodes_for_revision(self.repos.id, self.rev)337 336 if self.__node_id is None: 338 q += ' AND dnc.parent_id IS NULL' 339 else: 340 q += ' AND dnc.parent_id = %d' % self.__node_id 341 c = self.repos.db.cursor() 342 c.execute(q) 337 cond = 'dnc.parent_id IS NULL' 338 else: 339 cond = 'dnc.parent_id = %d' % self.__node_id 340 q,args = query_nodes_for_revision(self.repos.id, self.rev, cond) 341 c = self.repos.db.cursor() 342 c.execute(q, args) 343 343 for node_id,rev,path,_ in c: 344 344 node_type = get_node_type(self.repos.db, self.repos.id, node_id) -
tracdarcs/updatedb.py
r176 r178 252 252 if path in self.ignore_paths_in_db: 253 253 return None 254 q = query_nodes_for_revision(self.repo_id)255 q += ' AND dnc.path = %s'256 c = self.db.cursor() 257 c.execute(q, (path,))254 q,args = query_nodes_for_revision(self.repo_id, cond='dnc.path = %s') 255 args.append(path) 256 c = self.db.cursor() 257 c.execute(q, args) 258 258 row = c.fetchone() 259 259 if row is None: … … 279 279 out.append(info) 280 280 c = self.db.cursor() 281 q = query_nodes_for_revision(self.repo_id)282 q += ' AND dnc.path LIKE %s'283 c.execute(q, (path+'/%',))281 q,args = query_nodes_for_revision(self.repo_id, cond='dnc.path LIKE %s') 282 args.append(path+'/%') 283 c.execute(q, args) 284 284 for row in c: 285 285 node_id,rev,path,parent_id = row
Note: See TracChangeset
for help on using the changeset viewer.