[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