[yum-cvs] yum/yum sqlitesack.py,1.90,1.91
James Bowes
jbowes at linux.duke.edu
Sun Apr 8 21:15:48 UTC 2007
Update of /home/groups/yum/cvs/yum/yum
In directory login1.linux.duke.edu:/tmp/cvs-serv13293/yum
Modified Files:
sqlitesack.py
Log Message:
Speed up searchFiles by searching for dirname when name is not a glob.
This takes yum install eclipse-cdt from 33s to 13s on my machine.
Index: sqlitesack.py
===================================================================
RCS file: /home/groups/yum/cvs/yum/yum/sqlitesack.py,v
retrieving revision 1.90
retrieving revision 1.91
diff -u -r1.90 -r1.91
--- sqlitesack.py 4 Apr 2007 12:18:53 -0000 1.90
+++ sqlitesack.py 8 Apr 2007 21:15:46 -0000 1.91
@@ -311,14 +311,20 @@
matches = filter(lambda x: name==x, fns)
return len(matches)
+ if glob:
+ dirname_check = ""
+ else:
+ dirname = os.path.dirname(name)
+ dirname_check = "filelist.dirname = '%s' and " % dirname
+
cache.create_function("filelist_globber", 2, filelist_globber)
# for all the ones where filenames is multiple files,
# make the files up whole and use python's globbing method
- executeSQL(cur, "select packages.pkgID as pkgID \
- from filelist,packages where \
- packages.pkgKey = filelist.pkgKey \
- and length(filelist.filetypes) > 1 \
- and filelist_globber(filelist.dirname,filelist.filenames)")
+ executeSQL(cur, "select packages.pkgId as pkgId \
+ from filelist, packages where \
+ %s length(filelist.filetypes) > 1 \
+ and filelist_globber(filelist.dirname,filelist.filenames) \
+ and packages.pkgKey = filelist.pkgKey " % dirname_check)
for ob in cur:
if self._excluded(rep, ob['pkgId']):
More information about the Yum-cvs-commits
mailing list