[yum-cvs] yum/yum sqlitesack.py,1.10,1.11

Gijs Hollestelle gijs at login.linux.duke.edu
Thu Mar 3 12:14:04 UTC 2005


Update of /home/groups/yum/cvs/yum/yum
In directory login:/tmp/cvs-serv4704

Modified Files:
	sqlitesack.py 
Log Message:
Applied a patch by Panu Matilainen that allows queries on raw prco data.



Index: sqlitesack.py
===================================================================
RCS file: /home/groups/yum/cvs/yum/yum/sqlitesack.py,v
retrieving revision 1.10
retrieving revision 1.11
diff -u -r1.10 -r1.11
--- sqlitesack.py	2 Mar 2005 20:07:37 -0000	1.10
+++ sqlitesack.py	3 Mar 2005 12:14:01 -0000	1.11
@@ -68,7 +68,11 @@
     def returnFileTypes(self):
         self.loadFiles()
         return YumAvailablePackage.returnFileTypes(self)
-        
+
+    def returnPrco(self, prcotype):
+        if not self.prco[prcotype]:
+           self.prco = self.sack.getPrco(self.pkgId)
+        return self.prco[prcotype]
 
 class YumSqlitePackageSack(repos.YumPackageSack):
     """ Implementation of a PackageSack that uses sqlite cache instead of fully
@@ -130,6 +134,22 @@
                               ))
         return result
 
+    def getPrco(self, pkgId):
+        result = {}
+        for (rep, cache) in self.primarydb.items():
+            cur = cache.cursor()
+            for prco in ['requires', 'provides', 'obsoletes', 'conflicts']:
+                result[prco] = []
+                cur.execute("select * from packages,%s where packages.pkgId = %s and packages.pkgKey = %s.pkgKey", prco, pkgId, prco)
+                for ob in cur.fetchall():
+                    name = ob['%s.name' % prco ]
+                    version = ob['%s.version' % prco ]
+                    release = ob['%s.release' % prco ]
+                    epoch = ob['%s.epoch' % prco ]
+                    flags = ob['%s.flags' % prco ]
+                    result[prco].append((name, flags, (version, release, epoch)))
+        return result
+
     # Get all files for a certain pkgId from the filelists.xml metadata
     def getFiles(self,pkgId):
         for (rep,cache) in self.filelistsdb.items():




More information about the Yum-cvs-commits mailing list