[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