[yum-cvs] yum/yum sqlitesack.py,1.95,1.96

Jeremy Katz katzj at linux.duke.edu
Tue Apr 24 21:13:08 UTC 2007


Update of /home/groups/yum/cvs/yum/yum
In directory login1.linux.duke.edu:/tmp/cvs-serv9002/yum

Modified Files:
	sqlitesack.py 
Log Message:
>From Gijs Hollestelle --

Now for every package we get it's requirements, provides, etc by
performing a query like this:
select provides.* from provides,packages where provides.pkgKey =
packages.pkgKey and package.pkgId = 'foo'

This uses two tables in a join. Because yum is already smart enough to
know which sqlite database to query and because pkgKey's are unique
per database we can do this without the join by doing it directly on
the pkgKey:
select provides.* from provides where provides.pkgKey = 'bar'


Index: sqlitesack.py
===================================================================
RCS file: /home/groups/yum/cvs/yum/yum/sqlitesack.py,v
retrieving revision 1.95
retrieving revision 1.96
diff -u -r1.95 -r1.96
--- sqlitesack.py	11 Apr 2007 14:13:30 -0000	1.95
+++ sqlitesack.py	24 Apr 2007 21:13:06 -0000	1.96
@@ -64,7 +64,8 @@
             except (IndexError, KeyError):
                 return None
 
-        for item in ['name', 'arch', 'epoch', 'version', 'release', 'pkgId']:
+        for item in ['name', 'arch', 'epoch', 'version', 'release', 'pkgId',
+                     'pkgKey']:
             try:
                 setattr(self, item, db_obj[item])
             except (IndexError, KeyError):
@@ -180,11 +181,10 @@
             cur = cache.cursor()
             query = "select %s.name as name, %s.version as version, "\
                         "%s.release as release, %s.epoch as epoch, "\
-                        "%s.flags as flags from %s,packages "\
-                        "where packages.pkgKey = %s.pkgKey and "\
-                        "packages.pkgId = '%s'" % (prcotype, prcotype,
+                        "%s.flags as flags from %s "\
+                        "where %s.pkgKey = '%s'" % (prcotype, prcotype,
                         prcotype, prcotype, prcotype, prcotype, prcotype,
-                        self.pkgId)
+                        self.pkgKey)
             executeSQL(cur, query)
             for ob in cur:
                 self.prco[prcotype].append((ob['name'], ob['flags'],




More information about the Yum-cvs-commits mailing list